Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29_Ae1.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
302.08 Кб
Скачать

X, y, max: integer;

BEGIN

...

IF X>MAX THEN

Y:=MAX

ELSE

Y:=X;

...

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина, т.е. условие выполняется), то выполняется <оператор_1>, а <оператор_2> пропускается; если результат есть FALSE (ложь, т.е. условие не выполняется), наоборот, <оператор_1> пропускается, а выполняется <оператор_2>.

10. Оператор цикла с перечислением

ПЕРЕЧИСЛЯЕМЫЙ ТИП

Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение должно являться идентификатором (смотри главу Алфавит языка) и располагаться в круглых скобках через запятую. Количество элементов в перечислении не более 65536. Вводить и выводить переменные перечисляемого типа запрещено. Перечислимый тип является порядковым (смотри главу Типы данных), поэтому к переменным такого типа можно применять функции Ord, Pred, Succ. Функция Ord возвращает порядковый номер значения начиная с нуля.

ПРИМЕР: Объявление перечисляемых типов.

Type Colors = (Red,Green,Blue);

Numbers = (Zero,One,Two,Three,Four,Five);

var c:Colors; n:Numbers;

begin

c:=Red; write(Ord(c)); {0}

n:=Four; write(Ord(n)); {4}

c:=Succ(c); {c=Green}

for n:=One to Five do write(Ord(n)); {12345}

end.

Следует отметить, что стандартные типы byte, word, char и boolean также можно считать вариантами перечислимого типа.

11. Циклы с предусловием

Цикл с предусловием: сначала проверяется условие, затем, в зависимости от того, истинно оно или ложно, либо выполняется тело цикла, либо следует переход к оператору, следующему за телом цикла. После завершения тела цикла управление вновь передается на проверку условия. Естественно, предполагается, что в теле цикла было обеспечено некоторое изменение входящих в условие переменных – в противном случае произойдет зацикливание и программа "зависнет".

x:=1;

while x<=20 do begin

{операторы расчета}

x:=x+1;

end;

цикл с предусловием может не выполняться ни разу, если условие сразу же окажется ложным.

12. Циклы с постусловием

Цикл с постусловием: сначала выполняется тело цикла, затем управление передается на проверку условия. В зависимости от истинности или ложности условия, тело цикла выполняется повторно или же происходит переход к оператору, следующему за телом цикла. Всё, сказанное о возможном зацикливании для цикла с предусловием, справедливо и для цикла с постусловием.

x:=1;

repeat

{операторы расчета}

x:=x+1;

until x>20;

цикл с постусловием гарантированно выполняется хотя бы раз

13. Оператор варианта.

Оператор варианта (casе) состоит из выражения (переключателя) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Переключатель (селектор) должен иметь порядковый тип (размером в байт или слово). Таким образом, строковый тип и длинный целый тип являются недопустимыми типами переключателя. Все константы выбора должны быть уникальными и иметь порядковый тип, совместимый с типом переключателя.

Структура оператора выбора такова:

CASE <ключ_выбора> OF       <список_выбора      ELSE <оператор END

Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.

case I of    0, 2, 4, 6, 8: Writeln('Четная цифра');    1, 3, 5, 7, 9: Writeln('Нечетная цифра');    10..100: Writeln('Между 10 и 100'); end;

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