Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гладков_Кулютникова.doc
Скачиваний:
8
Добавлен:
03.11.2018
Размер:
1.36 Mб
Скачать

Условный оператор

Ветвящиеся (разветвляющиеся) алгоритмы (см. раздел “Алгоритм и его свойства”) программируются при помощи условного оператора, полная форма которого следующая:

If логическое_выражение then оператор1 else оператор2;

if (если), then (тогда), else (иначе) - служебные слова.

Выполнение оператора: если логическое выражение истинно, то выполняется оператор1, иначе (если логическое выражение ложно) выполняется оператор2. В качестве оператора1 и оператора2 может быть любой оператор Паскаля, в том числе и условный оператор.

Краткая форма условного оператора:

If логическое_выражение then оператор1;

Если логическое выражение истинно, то выполняется оператор1, иначе выполняется оператор, расположенный после этого условного оператора.

Если по какой-либо веточке условного оператора необходимо выполнить более одного оператора, то эти операторы надо заключить в операторные скобки begin ... end.

if логическое_выражение

then begin оператор1;

оператор2;

...

end

else begin оператор1;

оператор2;

...

end;

Перед else ‘;’ не ставится. Else всегда относится к ближайшему then.

Пример. Напишите программу, определяющую максимальное из двух целых чисел.

program task2;

var a, b: integer;

begin

write (‘введите два целых числа’); readln (a, b);

if a > b then writeln (‘максимальное =’, a)

else writeln (‘максимальное =’, b);

end.

Операторы цикла

В Паскале циклические алгоритмы (см. раздел “Алгоритм и его свойства”) могут быть записаны с помощью следующих операторов.

Арифметический цикл (или цикл с увеличивающимся параметром):

for параметр := выражение1 to выражение2 do оператор;

for, to, do - служебные слова. Выражение1 и выражение2 вычисляются только один раз при входе в цикл и в процессе выполнения цикла не изменяются. В начале выполнения цикла параметру присваивается значение выражения1. Затем проверяется значение параметра  выражения2. Если да, то выполняется оператор тела цикла, после чего значение параметра автоматически получает значение, следующее за текущим значением параметра в соответствии с его типом. Если параметр целого типа, то значение параметра увеличивается на единицу. Если параметр символьного типа, то выбирается следующий символ из кодовой таблицы. Если параметр логического типа, то выбирается следующее логическое значение. Отсюда следует, что параметр должен быть порядкового типа и не может быть вещественного типа. Параметр, выражение1, выражение2 должны быть одного типа. Если выражение1 > выражение2, то тело цикла не выполнится ни разу. Нельзя явным образом менять значение параметра в теле цикла. Если тело цикла содержит более одного оператора, то оно оформляется как составной оператор с использованием операторных скобок begin ... end.

Арифметический цикл (или цикл с уменьшающимся параметром).

for параметр := выражение1 downto выражение2 do оператор;

for, downto, do - служебные слова . Выражение1 и выражение2 вычисляются только один раз при входе в цикл и в процессе выполнения цикла не изменяются. В начале выполнения цикла параметру присваивается значение выражения1. Затем проверяется значение параметра  выражения2. Если да, то выполняется оператор тела цикла, после чего значение параметра автоматически получает значение, предшествующее текущему значению параметра в соответствии с его типом. Если параметр целого типа, то значение параметра уменьшается на единицу. Если параметр символьного типа, то выбирается предыдущий символ из кодовой таблицы. Если параметр логического типа, то выбирается предыдущее логическое значение. Отсюда следует, что параметр должен быть порядкового типа и не может быть вещественного типа. Параметр, выражение1, выражение2 должны быть одного типа. Если выражение1 < выражение2, то тело цикла не выполнится ни разу. Нельзя явным образом менять значение параметра в теле цикла. Если тело цикла содержит более одного оператора, то оно оформляется как составной оператор.

Цикл с предусловием:

while логическое_выражение do оператор;

while, do - служебные слова. Оператор тела цикла выполняется до тех пор, пока значение логического_выражения истинно. Для того, чтобы цикл не стал бесконечным (не зациклился), необходимо наличие в теле цикла оператора, влияющего на значение логического выражения. В качестве оператора может быть любой оператор Паскаля. Если тело цикла содержит более одного оператора, то оно оформляется как составной оператор. Тело цикла может ни разу ни выполниться, если при первой проверке логическое_условие ложно.

Цикл с постусловием:

repeat операторы тела цикла until логическое_выражение;

repeat, until - служебные слова. Операторы тела цикла выполняются до тех пор, пока логическое выражение ложно. В теле цикла можно указывать любые операторы Паскаля без использования операторных скобок. Для выхода из цикла необходимо, чтобы операторы тела цикла изменили значение логического_выражения на истинное, иначе произойдет зацикливание. Тело цикла выполнится хотя бы один раз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]