Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по математике и информатике / Лекция 22 - ТР(теория).doc
Скачиваний:
79
Добавлен:
19.03.2015
Размер:
371.2 Кб
Скачать
  1. Цикл с предусловием.

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора. Формат записи:

while <условие продолжения повторений> do

<тело цикла>;

Условие - булевское выражение,

Тело цикла - простой или составной оператор.

Работа оператора:

Перед каждым выполнением тела цикла вычисляется значение выражения условия:

  • Если результат равен True, то тело цикла выполняется и снова вычисляется выражение условия.

  • Если результат равен False, то происходит выход из цикла и переход к первому после while оператору.

Пример 1: Произведите суммирование 10 произвольно введённых целых чисел.

Program DemoWhile;

Const Limit =10;

Var Count, Item, Sum: integer;

Begin

Count: = 0; {счётчик чисел}

Sum: = 0; {сумма чисел}

While (Count < Limit) do {условие выполнения цикла}

Begin

Count: = Count + 1;

Write (‘Введите ’, Count, ’- е целое число: ’);

Readln(Item); {Ввод очередного числа с клавиатуры}

Sum: = Sum + Item;

End;

Writeln(‘Сумма введённых чисел равна ’, Sum);

Readln;

End.

В данном примере в разделе описания констант описана константа Limit =10, задающая ограничение на количество вводимых чисел. В разделе описания переменных описаны переменные Count, Item, Sum целочисленного типа.

Пример 2. Составить таблицу значений функции y(x) = ax2 + bx - d, где значения переменной x являются числами из натурального (целые положительные числа) ряда.

Значение переменных a, b, d - неизвестны, поэтому их необходимо ввести. Т.к. неизвестно последнее значение переменной х, обозначим его за N. Шаг изменения также неизвестен, поэтому по умолчанию примем значение шага равным 1.

Т.е. x  (1; N), с = 1 Program Function;

x0 = 1 var a, b, d: real;

x1 = x0 + 1 x: integer;

x2 = x1 + 1 begin

………… writeln (‘Введите значение переменных a,b,d’);

xn = xn-1 + 1 readln (a, b, d);

writeln (‘Введите конечное значение параметра цикла N’);

readln (N);

x:=1;

while (x < N) do

begin

Y: = a * SQR(x) + b * x - d;

writeln (‘Y(x) = ’, Y);

end;

readln;

end.

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

Оператор повтора repeat аналогичен оператору while.

Отличие:

  • условие проверяется после очередного выполнения операторов тела цикла, что гарантирует хотя бы однократное выполнение цикла,

  • критерием прекращения цикла является равенство выражение константе True.

За это цикл repeat называют циклом с постусловием. Или циклом «ДО», так как он прекращает выполнение, как только значение выражения условия, записанного после слова until, равно True (истина). Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until. Формат записи:

Repeat

<оператор>;

<оператор>;

until <условие окончания цикла>;

Операторы, заключённые между словами repeat и until, является телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполняется хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется ещё раз; если результат True, происходит выход из цикла.

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

Пример 3: Введите и суммируйте любое количество целочисленных значений.

Если введено значение 999, то на экран выводится результат суммирования.

Program Summa;

var x: integer;

S: real;

begin

S: = 0

repeat

write (‘Введите значение x ’);

readln (x);

if x < > 999 then S:= S + x;

until x = 999;

writeln (‘Сумма введенных чисел Summa =’, S);

readln;

end.