Операторы цикла
Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.
Алгоритмы, построенные только с использованием циклов, называют итеративными.
Один проход цикла называется итерацией.
Для выполнения процессов повторения на языке Паскаль предусмотрены три вида операторов цикла:
· Цикл с параметром – FOR…DO;
· Цикл с предусловием – WHILE…DO;
· Цикл с постусловием – REPEAT…UNTIL.
Проверка условия выполняется на каждой итерации либо до тела цикла (цикл с предусловием), либо после тела цикла (цикл с постусловием).
2. Оператор цикла REPEAT…UNTIL. Этот оператор называется циклом с постусловием, т.к. проверка условия осуществляется после каждого выполнения тела цикла:
Формат записи оператора REPEAT:
REPEAT
<оператор>
UNTIL <условие>;
Выполняется <оператор 1>, после чего проверяется <условие>. Если условие ложно, цикл повторится, а иначе – выход из цикла.
Рисунок 1 – Блок-схема оператора REPEAT
Цикл REPEAT, как правило, используется для организации приближенных вычислений, задач поиска и обработки данных, вводимых с клавиатуры.
Пример:
С клавиатуры вводятся числа. Найти сумму этой последовательности. Как только введено число большее 999, суммирование выполнить последний раз и выдать результат на печать.
{Программа подсчета суммы}
Program sum;
const PRK = 999;
var x, summa: real;
Begin
summa:=0;
repeat
readln (x);
summa:=summa + x
until x> PRK;
writeln (summa:10:4)
end.
Задание для СРС:
1. Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности не ограничена). Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом). | Определение максимального числа последовательности положительных чисел. Вводите после стрелки числа. Для завершения ввода введите ноль. -> 56 ->75 ->43 -> 0 Максимальное число: 75. |
{Определение максимального числа последовательности положительных чисел}
Var
a:integer; {очередное число}
m:integer; {максимальное число}
Begin
write (‘Определение максимального числа‘);
writeln (‘последовательности положительных чисел.’);
writeln (‘Вводите после стрелки числа.’, ‘Для завершения ввода введите ноль’);
m:=0;
repeat
write(‘ > ‘);
readln(a);
if a>m then m:=a;
until a<= 0;
writeln (‘Максимальное число: ‘, m);
writeln (‘Для завершения работы программы нажмите <Enter>’);
readln;
End.
Задание на СРСП:
1. Создание программы на Turbo Pascal 7.0.
2. Разработка алгоритма и продумывание реализации будущей программы.
1. Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел, которые вводятся с клавиатуры. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом). | Вычисление среднего арифметического последовательности положительных чисел. Вводите после стрелки числа. Для завершения ввода введите ноль. -> 45 ->23 ->15 -> 0 Введено чисел: 3 Сумма чисел: 83 Среднее арифметическое: 27.67. |
3. Запуск интегрированной среды разработчика Turbo Pascal 7.0. Создание файла. Набор текста программы в окне. Проверка текста программы на наличие синтаксических ошибок. Проверка программы на предмет правильности ее работы и выполнения задачи. Сохранение файла.
Контроль выполненного задания состоится на занятиях СРСП (по расписанию занятий).
4. Основы алгоритмизации и программирования.Turbo Pascal 7.0.
Форма контроля – рефераты, 10 стр. Сроки сдачи – на следующей неделе.
Контрольные вопросы:
А) Для письменного контроля:
1. Что такое цикл?
2. Из каких частей состоит оператор цикла?
3. Какие алгоритмы называются циклическими?
4. Какой формат записи оператора Repeat?
5. Какое отличие между операторами While и Repeat?
Б) Для компьютерного тестирования:
Для чего используется оператор REPEAT.. UNTIL?
А) для алгоритмов разветвляющейся структуры
В) для алгоритмов линейной структуры
С) для описания переменных
D) для построения цикла
Когда заканчивает цикл при использовании оператора REPEAT.. UNTIL?
А) когда условия выполняются
В) когда условия не выполняются
С) после 10 итерации
D) после 5 итерации