Цикл со счетчиком в Паскаль (цикл for)
Автор: Виктор Трофимов, МОУ гимназия №5, г. Волгодонск, Ростовская обл.
Циклы со счетчиком
Цикл со счетчиком в Паскаль (цикл for) имеет вид:
for <переменная-счетчик> := <начальное значение> to <конечное значение> do
где <переменная-счетчик> — переменная целоисчисленного типа (byte, integer);
<начальное значение> — целое число, которое будет начальным значением переменной-счетчика;
<конечное значение> — целое число, которое должно быть больше <начального значения>.
В данном цикле переменная счетчик будет увеличиваться на единицу каждый раз при выполнении тела цикла, пока не достигнет конечного значения включительно. Тело цикла – оператор после служебного слова do. Если необходимо выполнить несколько операторов, то их замыкают между begin и end; (с точкой с запятой).
Данный цикл выведет 10 раз (первоначальное i равно 1, конечное равно 10) на экран слово «Привет!»:
for i := 1 to 10 do writeln(‘Привет!’);
Следующий цикл выведет 10 раз слово «Привет!» и посчитает сумму чисел от 1 до 10:
for i := 1 to 10 do
begin
writeln(‘Привет!’);
sum := sum + i;
end;
Два выполняемых в теле цикла оператора (writeln и операция накопления суммы) заключены между begin и end;.
При необходимости можно воспользоваться следующей конструкцией:
for <переменная-счетчик> := <начальное значение> downto <конечное значение> do
Действие этого цикла равнозначно предыдущему за одним исключением: параметр downto дает команду процессору уменьшать значение переменной-счетчика на единицу при каждом проходе тела цикла (а не увеличивать его, как в случае с параметром to). То есть начальное значение всегда должно быть выше конечного значения.
for i := 10 downto 1 do
begin
writeln(‘Привет!’);
sum := sum + i;
end;
Результат этой конструкции будет аналогичен предыдущему, пользователь не заметит никаких различий. Но математика алгоритма немного другая. Если при параметре to в переменную sum поступает цепочка: 1 + 2 + 3 + 4 + … + 9 + 10, то при downto это будет: 10 + 9 + 8 + 7 + … + 3 + 2 + 1.
Автор: Александр Чернышов
2 комментария
Спасибо! Всё объяснили просто и доступно!
В приведенном примере кода есть ошибка. Кошмары нашего образования.
Цитата:
for i := 1 to 10 do
begin
writeln(‘Привет!’);
sum := sum + i;
end;