Операторы повторений

Оператор выбора

Else

Else

If (a > b) and (b > c) then

Begin

a:=c; b:=c;

End

Begin

a:=-a; b:=-b; c:=-c;

End;

Writeln(‘a =’, a,’ b = ‘,b,’ c = ‘,c);

Readkey;

End.

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

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

case <ключ выбора> of

список констант 1: оператор 1;

список констант 2: оператор 2;

…………………………………..

список констант N: оператор N;

else <оператор>;

end;

case, of, else, end – зарезервированные слова (случай, из, иначе, конец)

Оператор выбора является естественным продолжением условного оператора для случая нескольких альтернатив. В начале оператора задается выражение порядкового типа, а альтернативы «помечаются» конкретными значениями этого типа – списками констант. Любой список констант может состоять из одной константы.

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

Пример 4. Составим программу, которая в зависимости от номера месяца печатает количество дней в нем.

Program ех_4;

Uses crt;

Var n: integer;

Begin

Clrscr;

Write(‘Введите номер месяца: ’);

Readln(n);

Case n of

1, 3, 5, 7, 8, 10, 12: writeln(‘В этом месяце 31 день’);

4, 6, 9, 11: writeln(‘В этом месяце 30 дней’);

else writeln(‘В этом месяце 28 дней’);

end;

Readkey;

End.

В языке Турбо Паскаль есть три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ (циклы).

3.1. Оператор цикла с параметром используют, когда известно число повторений одного и того же действия.

Он имеет такую структуру:

for <параметр> := <нач_знач> to <кон_знач> do <оператор>;

for, to, do – зарезервированные слова (для, до, выполнить)

<параметр> - переменная порядкового типа;

<нач_знач> - начальное значение параметра – выражение того же типа

<кон_знач> - конечное значение параметра - выражение того же типа

<оператор> - произвольный оператор Турбо Паскаля.

При выполнении оператора For вначале вычисляется выражение <нач_знач> и осуществляется присваивание <параметр>:=<нач_знач>. После этого циклически повторяется:

ü Проверка условия <параметр> <= <кон_знач>; если условие не выполнено, оператор for завершает свою работу; (если условие не выполняется в самом начале работы оператора For, исполняемый оператор не будет выполнен ни разу)

ü Выполнение оператора <оператор>;

ü Наращивание переменной <параметр> на единицу.

Пример 5. Составить программу, подсчитывающую сумму всех натуральных чисел от 1 до N.

Program ex_5;

Uses crt;

Var I, n, S: integer;

Begin

Clrscr;

Write(‘ Введите натуральное число n’);

read (n);

S:=0; { начальное значение суммы}

For I:=1 to n do {цикл подсчета суммы}

S:=S+I;

Writeln (‘Сумма =’, S); {вывод результата}

Readkey;

End.

Существует другая форма оператора For:

for <параметр> := <нач_знач> downto <кон_знач> do <оператор>;

Цикл выполняется аналогичным образом, но шаг наращивания параметра цикла равен (-1), поэтому, чтобы цикл выполнился хотя бы один раз начальное значение параметра цикла должно быть не меньше конечного значения параметра.

Модифицированный фрагмент программы из примера 5.

……..

For I:=n downto 1 do {цикл подсчета суммы}

S:=s+I;

……..

3.2. Оператор цикла While с предпроверкой условия:

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

While, do – зарезервированные слова (пока [выполняется условие], делать);

<условие> - выражение логического типа;

<оператор> - произвольный оператор Турбо Паскаля;

Если выражение <условие> имеет значение true (истина), то выполняется <оператор>, после чего вычисление выражения <условия> и его проверка повторяются. Если <условие> имеет значение false (ложь), оператор While прекращает свою работу.

Пример 6. Составить программу, подсчитывающую сумму всех натуральных чисел от 1 до N.

Program ex_6;

Uses crt;

Var I, n, S: integer;

Begin

Clrscr;

Write(‘ Введите натуральное число n’); read (n);

S:=0; I:=1; { начальное значение суммы}

While I<=n do {цикл подсчета суммы}

begin

S:=S+I;

I:=I+1;

End;

Writeln (‘Сумма =’, S); {вывод результата}

Readkey;

End.

3.3. Оператор цикла Repeat …Until с постпроверкой условия:

Repeat <тело цикла> until <условие>;

Repeat, Until - зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

<Тело цикла> произвольная последовательность операторов Турбо Паскаля;

<условие> - выражение логического типа;

Операторы <тело цикла> выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть false (ложь), операторы <тело цикла> повторяются, в противном случае оператор Repeat … Until завершает свою работу

Пример 7. Составить программу, подсчитывающую сумму всех натуральных чисел от 1 до N.

Program ex_7;

Uses crt;

Var I, n, S: integer;

Begin

Clrscr;

Write(‘ Введите натуральное число n’); read (n);

S:=0; I:=1; { начальное значение суммы}

Repeat {цикл подсчета суммы}

S:=S+I;

I:=I+1;

Until i>n;

Writeln (‘Сумма =’, S); {вывод результата}

Readkey;

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: