Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6 Циклы.doc
Скачиваний:
3
Добавлен:
02.11.2018
Размер:
199.68 Кб
Скачать

Оператор цикла с постусловием Repeat . . Until Оператор цикла с постусловием repeat . . Until

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

Относится к итеративным циклам.

В этом виде цикла условие стоит после тела цикла, поэтому этот цикл называют с постусловием.

Алгоритмическая структура «До» реализуется оператором

repeatuntil

repeat . . .

<группа операторов> // тело цикла

. . .

until <выражение>;

repeat - повторять,

until - пока не станет.

Результат выражения должен быть логического типа, определяющее условие завершения цикла.

Пока <выражение> = false (ложно), инструкции цикла повторяются.

Если <выражение> = true (истинно), осуществляется выход из цикла.

Тело цикла выполняется хотя бы один раз.

repeat и until образуют операторные скобки. Поэтому тело цикла может содержать несколько операторов.

Например:

repeat

//инструкции, которые надо выполнить несколько раз;

until <условие ложно>;

Оператор repeat выполняется следующим образом:

  1. Сначала выполняются находящиеся между repeat и until инструкции тела цикла.

  2. Затем вычисляется значение выражения условия.

  3. Если значение выражения условия ложно (false), то инструкции тела цикла выполняются еще раз.

  4. Если значение выражения условия истинно (true), то выполнение цикла прекращается и выполняется следующий оператор, предусмотренный ходом выполнения программы.

Цикл repeat, как правило, используется для организации приближенных вычислений с заданной точностью, задач поиска и обработки данных в массиве или в файле.

Задача6. Вычислить наибольшее положительное целое число n, удовлетворяющее условию: 3n5 - 690n 7.

program Example6;

uses

SysUtils

var n: byte; //вводимое число

begin

n:=1;

repeat n : = n + 1;

until 3*exp(5*ln(n))  690*n > 7;

writeln('n= ', n - 1);

readln

end.

Задача7. Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры.

program Example7;

uses

SysUtils;

var

a:integer; // вводимое с клавиатуры число

n:integer; // количество чисел

s:integer; // сумма чисел

m:real; // среднее арифметическое

begin

s:=0; n:=0; // начальные значения

writeln('Vvodite posle > chisla. ',

'Dly zaversheniy cikla vvedite 0 .');

repeat

write(' > ');

readln(a); // ввод чисел

s:=s+a; // накопление суммы

n:=n+1; // подсчет чисел

until a<=0;

n:=n-1;

writeln('vvedeno chisel: ',n); // количество

writeln('summa chisel: ',s); // сумма

m:=s/n;

writeln('srednee: ',m:6:2); // среднее

readln арифметическое

end.

Регулярные циклы с шагом не равным 1

Решение подобных задач можно организовать на основе структуры ветвление или с помощью итеративных циклов.

Задача8.

Вычислить на ЭВМ значения функций

при а=1.3, b=1.29, t = [ 0.1… 2.2], t изменяется в диапазоне от 0.1 до 2.2 с шагом h=0.3.

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

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