Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОРМАТИКА_Паскаль.doc
Скачиваний:
7
Добавлен:
08.05.2019
Размер:
1.77 Mб
Скачать

6. Разветвляющиеся алгоритмы

Если рассмотренный ранее алгоритм линейной структуры является алгоритмом последовательного выполнения приведенных в программе операторов, то в алгоритме разветвлённой структуры предусматривается наличие нескольких ветвей вычислительного процесса, выбираемых в зависимости от результата проверки какого-либо одного условия или их совокупности.

Простейшие условия на языке программирования Паскаль составляются из математических сравнений по величине двух переменных целого или (и) вещественного типа с помощью операций отношений, имеющих вид: <(меньше); <= (меньше или равно); = (равно); <>(не равно); >= (больше или равно) и >(больше). Такие условия, состоящие из отношений неравенств, являются логическими и называются в программировании логическими выражениями. Результатом любого из приведенных сравнений является логическая константа TRUE (истина) или FALSE (ложь), относящаяся к типу данных BOOLEAN и называемого булевским (по имени английского математика Джорджа Буля, создателя особой области математики – математической логики). Так, например, логическое выражение 5>3 является истинным (TRUE), а выражения 5=3 и 5<3 являются ложными (FALSE). Для практического усвоения изложенных сведений по простейшим логическим выражениям можно воспользоваться простейшей Паскаль-программой вида:

Program Prostoe_LV;

Uses Crt; Var A, B : Real;

BEGIN

Write('Bведитедвачисла: '); ReadLn(A, B); ClrScr;

Write (A:3:1,'> ', B:3:1,' -', A > B, ’ ‘);

WriteLn(A:3:1,'< ', B:3:1,' -', A < B);

Write (A:3:1,'= ', B:3:1,' -', A = B, ’ ‘);

WriteLn(A:3:1,'<>', B:3:1,' -',A<>B);

Write (A:3:1,'>=', B:3:1,' -',A>=B, ’ ‘);

WriteLn(A:3:1,'<=', B:3:1,' -',A<=B);

READLNEND.

При вводе по её запросу двух любых числовых данных (например, 25.5 и 50.5) эта программа выдаёт распечатку:

25.5 >50.5 – FALSE 25.5 < 50.5 – TRUE

25.5 = 50.5 – FALSE 25.5<>50.5 – TRUE

25.5>=50.5 – FALSE 25.5<=50.5 – TRUE ,

очевидная справедливость, которой легко проверяется.

Из приведенных простейших логических и арифметических выражений могут быть составлены различные их совокупности (составные логические выражения) с помощью операций логического сложения OR (операции ИЛИ, дизъюнкции), логическогоумноженияAND (операцииИ, конъюнкции) и логического отрицанияNOT (операции НЕ, инверсии). Их результаты над логическими переменнымиА и В представлены в таблице:

A

B

NOT A

NOT B

A OR B

A AND B

FALSE

FALSE

TRUE

TRUE

FALSE

FALSE

FALSE

TRUE

TRUE

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

TRUE

FALSE

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

Так, например, результат операции (С>10) OR (D<3) будет истинным приС=12 и D=2 (т.к. TRUE OR TRUE=TRUE), при С=12 и D=5 (т.к. TRUE OR FALSE=TRUE) и при С=8 и D=2 (т.к. FALSE OR TRUE=TRUE), но будет ложным при С=8 и D=5 (так как FALSEOR FALSE=FALSE).Результат операции (С>10) AND (D<3) будет истинным приС=12 и D=2, но будет ложным при С=12 и D=5, при С=8 и D=5 и при С=8 и D=2.

При программном выполнении сложных составных логических выражений учитывается приоритет выполнения содержащихся в нём логических, арифметических и других операций. Он (приоритет) обычно изображается в четырёх строках: