Оператора цикла REPEAT аналогичен оператору цикла WHILE, но отличается от него тем, что условие проверяется после очередного выполнения тела цикла. Поэтому оператор REPEAT называется циклом с постусловием. Таким образом, цикл REPEAT всегда выполняется хотя бы один раз. Кроме того, в операторе REPEAT задается условие выхода из цикла, а не продолжения цикла, как в операторе WHILE. За это оператор REPEAT называется также циклом «ДО», т.к. он прекращает выполняться, как только значение условия, записанного после слова UNTIL, становится равным TRUE (истина).
Формат оператора цикла с постусловием:
repeat
<тело цикла>
until <условие выхода из цикла>;
repeat, until – зарезервированные слова («повторять», «до тех пор, пока»)
repeat – заголовок цикла
<тело цикла> – произвольный оператор Паскаля (может быть составным)
<условие выхода из цикла> – выражение логического типа
Порядок работы оператора REPEAT
Сначала выполняется <тело цикла>, затем проверяется значение <условия выхода из цикла>. В том случае, если оно равно FALSE (ложь), т.е. не выполняется – тело цикла повторяется еще раз. Так продолжается до тех пор, пока условие не станет TRUE (истина). Если значение условия равно TRUE, то происходит выход из цикла и переход к следующему после REPEAT оператору.
Блок-схема оператора цикла REPEAT:
![]() |
Нет
Да
Подготовка к практической работе:
1. изучить конспект по теме «Программирование алгоритмов циклической структуры»;
2. изучить краткие теоретические сведения данной работы;
3. ответить на контрольные вопросы.
Контрольные вопросы (допуск к работе):
1. Что такое программа (алгоритм) циклической структуры?
2. Формат оператора цикла с постусловием.
3. Правила выполнения оператора цикла с постусловием.
4. В чем отличия операторов цикла While и Repeat?
5. Возможны ли ситуации, когда тело цикла с параметром не выполнится ни разу?
Задание
Составить программу вычисления функции y = с использованием оператора цикла с постусловием.
Порядок выполнения работы
1. Поэтапно разработайте решение поставленной задачи (постановка задачи, список используемых переменных, тип используемого алгоритма, текст программы на Паскале, тестовый пример, протокол выполнения программы).
2. Загрузите Pascal.
3. Наберите текст программы.
4. Выполните отладку программы.
5. Запустите программу на выполнение и проверьте результаты тестовых примеров.
Содержание отчета:
1. постановка задачи
2. список используемых переменных
3. блок-схема алгоритма с указанием типа алгоритма
4. текст программы на Pascal
5. тестовый пример
6. протокол работы программы
Пример оформления отчета:
Постановка задачи.
Составить программу вычисления функции y = с использованием оператора цикла с постусловием.
Список используемых переменных.
Исходные данные: N – количество слагаемых (целого типа)
Результат: y – функция (вещественного типа)
Промежуточные переменные: i – номер слагаемого (целого типа)
Тип алгоритма: циклический.
Блок-схема:
Нет
Да
Текст программы на Pascal:
Program Example;
Uses CRT;
Var N,y,i:integer;
Begin
Write(‘Введите количество слагаемых N=’);
Readln(N);
y:=0; {значение суммы у принимает значение 0}
i:=1; {номер слагаемого принимает значение 1}
Repeat {цикл для вычисления суммы}
y:=y+sqr(i); {тело цикла – вычисление суммы}
i:=i+1 {тело цикла – увеличение номера слагаемого на 1}
until i>N; {цикл повторяется пока условие i>N не станет истинным}
Writeln(‘Сумма y=’,y);
Readln;
End.
Тестовый пример:
Если N=4, тогда y=30
Протокол работы программы:
Введите количество слагаемых N=4
Сумма у= 30
Контрольные вопросы:
1. Что обозначают зарезервированные слова REPEAT, UNTIL?
2. Условие в цикле Repeat является условием для продолжения цикла или для его завершения?
3. Какое значение примет переменная S после выполнения следующих операторов:
1) i:=2; S:=0; repeat S:=S+(i-1); i:=i+1until i>6;
2) i:=0; S:=1; repeat S:=S+i*i; i:=i-1 until i<-4;
4. Сколько раз выполниться тело цикла для следующих операторов:
1) i:=2; S:=0; repeat S:=S+(i-1); i:=i+1until i>4;
2) i:=1; S:=1; repeat S:=S+i*i; i:=i-1 until i<-3;
5. Какой оператор цикла будет бесконечным:
1) i:=0; S:=1; repeat S:=S+i*i; inc(i) until i<-4;
2) i:=0; S:=1; repeat S:=S+i*i; dec(i) until i<0;
3) i:=-4; S:=0; repeat S:=S+i*i until i<-4;
Варианты заданий
Вариант 1
1. Составить программу вычисления функции
![]() |
Вариант 2
1. Составить программу вычисления функции
![]() |
Вариант 3
1. Составить программу вычисления функции
![]() |
Вариант 4
1. Составить программу вычисления функции
![]() |
Вариант 5
1. Составить программу вычисления функции
![]() ![]() |
Вариант 6
1. Составить программу вычисления функции
![]() |
Вариант 7
1. Составить программу вычисления функции
![]() |
Вариант 8
1. Составить программу вычисления функции
![]() |
Вариант 9
1. Составить программу вычисления функции
![]() |
Вариант 10
1. Составить программу вычисления функции
![]() |
Вариант 11
1. Составить программу вычисления функции
![]() |
Вариант 12
1. Составить программу вычисления функции
![]() |
Вариант 13
1. Составить программу вычисления функции
![]() |
Вариант 14
1. Составить программу вычисления функции
![]() ![]() |
Вариант 15
1. Составить программу вычисления функции
![]() |
Вариант 16
1. Составить программу вычисления функции
![]() |
Вариант 17
1. Составить программу вычисления функции
![]() ![]() |
Вариант 18
1. Составить программу вычисления функции
![]() |
Вариант 19
1. Составить программу вычисления функции
![]() |
Вариант 20
1. Составить программу вычисления функции
![]() |
Вариант 21
1. Составить программу вычисления функции
![]() |
Вариант 22
1. Составить программу вычисления функции
![]() |
Вариант 23
1. Составить программу вычисления функции
![]() ![]() |
Вариант 24
1. Составить программу вычисления функции
![]() |
Вариант 25
1. Составить программу вычисления функции
![]() |
Вариант 26
1. Составить программу вычисления функции
![]() |
Вариант 27
1. Составить программу вычисления функции
![]() |
Вариант 28
1. Составить программу вычисления функции
![]() |
Вариант 29
1. Составить программу вычисления функции
![]() |
Вариант 30
1. Составить программу вычисления функции
![]() |
Вариант 31
1. Составить программу вычисления функции
![]() |
Вариант 32
1. Составить программу вычисления функции
![]() |
Вариант 33
1. Составить программу вычисления функции
![]() |