Циклы применяются для повторения какой-либо последовательности операторов несколько раз. В Паскале существуют три вида циклов:
- Цикл For (со счетчиком);
- Цикл While (с предусловием);
- Цикл Repeat (с постусловием).
Оператор цикла For
Цикл for позволяет выполнить серию действий заданное число раз.
Общая форма цикла for такова:
for i:=start to limit do
тело цикла
или
for i:=start downto limit do
тело цикла
где start и limit – переменные программы
В данной конструкции «i» играет роль управляющей переменной цикла или счетчика и должна быть только целого типа.
Слово start – обозначает здесь начальное значение переменной a, limit – ее конечное значение. Тело цикла должно состоять из одного оператора, но можно поместить в тело цикла несколько операторов, для этого их нужно взять в логические скобки begin – end.
Цикл for выполняется следующим образом. Сначала производится инициализация (присваивание начального значения) i – его начальным значением становится start.
Если i меньше или равно limit , тело цикла выполняется (при значении i равном start). Всякий раз, когда тело цикла завершается, значение i автоматически увеличивается на 1, и тело цикла выполняется вновь, но уже с новым (следующим по порядку) значением i.
Циклические повторения тела будут продолжаться до тех пор, пока не будет превзойдено конечное значение. Когда это случится, цикл завершится, и будет выполняться строка программы, непосредственно следующая за конструкцией For.
Если в теле цикла находится несколько операторов, обрамленные парой слов-ограничителей begin и end, то общая форма цикла выглядит следующим образом:
for i := start to limit do
begin
предложение 1;
предложение 2;
.............
предложение n
end;
В этой структуре при каждом входе в тело цикла будут выполняться предложение 1, предложение 2, ..., предложение n.
В варианте цикла For со словом downto (вместо to) переменная пробегает последовательность значений от начального к конечному в обратном порядке, уменьшая каждый раз на 1. Внешне это выглядит так:
for i:= limit downto start do
тело цикла
1. Наберите следующую программу. Компьютер выведет на экран в столбик 15 случайных чисел от 8 до 39.
program sly;
uses crt;
var c, s : integer;
begin
writeln('15 случайных чисел от 8 до 40');
for c:=1 to 15 do
begin
s:= random(32) + 8; {Генерируется случайное число в диапазоне от 0 до 31, затем
к нему прибавляется 8, получаем случайное число от 8 до 39}
writeln (s);
end;
end.
Самостоятельно измените программу так, чтобы на экране были напечатаны в строчку 8 случайных дробных чисел от 5 до 25.
2. Напечатать таблицу стоимости порций сыра стоимостью 280 рублей от 100 г до 1 кг с шагом 100 г.
program sir;
uses crt;
var s,k:real;
c:integer;
begin
clrscr;
writeln('таблицa стоимости порций сыра');
for c:=1 to 10 do
begin
k:=280*c/10;
writeln (c*100,' г стоит ',k,' рублей');
end;
end.
Задачи для самостоятельного решения
1. Вычислить сумму первых 10 натуральных чисел. Использовать счетчик типа S=S+A, т.е. счетчик суммы. Использовать управляющую переменную цикла.
2. Запросить с клавиатуры в цикле 5 любых целых чисел, найти их сумму и среднее арифметическое, результаты вывести на экран.
3. Вычислить сумму квадратов первых 7 натуральных чисел.