Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2- Введение в программирование.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
753 Кб
Скачать
☆

Оператор множественного выбора

Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Если варианта всего два, то можно использовать оператор if, если больше, то оптимален оператор case, структура которого имеет вид:

case <ключ выбора> of <список выбора> else <операторы> end

где <ключ выбора> - переменная или выражение любого порядкового типа кроме LongInt,

<список выбора> - одна или несколько констукций вида:

<константа выбора> : <оператор>; где константа выбора - константа того же типа, что и ключ выбора.

Если ключ выбора - выражение, то оно вычисляется при исполнении оператора case. В зависимсти от значения ключа выбора выбирается тот оператор, которому предшествует константа выбора, равная вычисленному значению. Оператор может быть простым или составным. Найденный оператор вычисляется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора управление передается операторам (их может быть несколько), стоящим за словом else. Имеется принциальная возможность опускать часть else <операторы>. В этом случае при отсутствии в списке выбора нужной константы ничего не произойдет, и оператор выбора просто завершит свою работу. По-прежнему, перед end и else точка с запятой не обязательна (если поставить - работать будет). Константы выбора могут перечисляться через запятую, а также записываться в виде диапазона. Значения констант должны быть уникальными в каждом наборе, т.е. они могут появиться только в одном варианте. Пересечение набора значений в разных вариантах является ошибкой. Пример:

case I of {I : Word}

1 : X := X +1;

2,3 : X := X +2;

4..9 : begin

Write(X);

X := X + 3 {м.б. ";"}

end {м.б. «;»}

else

X := X*X;

Writeln(X) {м.б. «;»}

end;

Эффективность оператора case будет максимальным, если размещать наиболее вероятные значений первыми в порядке следования.

Оператор цикла "пока" (с предусловием)

В практике программирования циклы - повторяющиеся выполнения одних и тех же операторов - играют очень важную роль. Один из трех стандартных способов организации циклических вычислений связан с использованием оператора цикла с предусловием. Формат:

while <условие> do <оператор>;

Оператор (простой или составной), стоящий после служебного слова do и называемый телом цикла будет выполняться циклически до тех пор, пока выполняется логическое условие, т.е. пока значение условия равно True. Само условие цикла может быть логической константой, переменной или выражением с логическим результатом.

Условие проверяется до начала выполнения каждой итерации. Поэтому, если условие не выполняется сразу на первом же шаге, то тело цикла игнорируется и будет выполняться оператор, стоящий сразу за телом цикла.

Следует помнить о двух моментах:

  • чтобы цикл имел шанс когда-либо завершиться, содержимое его тела должно влиять на условие цикла;

  • условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.

Пример вычисления 10!

Var

F,N : Integer;

Begin

F := 1; N := 1;

while N <= 10 do

begin

F := F*N;

Inc(N) {N := N + 1}

end;

Writeln(F)

End.

Здесь важно присваивание N := 1 перед началом цикла, без него значение N может быть любым, и условие может быть некорректным.