Операторы цикла. Цикл for в Паскаль
В большинстве программ встречается необходимость многократного выполнения некоторого оператора (или блока операторов). Для организации подобного рода конструкций могут использоваться операторы цикла. В языке программирования Паскаль используются следующие виды операторов цикла: for, while, repeat (в PascalABC.NET используется также оператор цикла foreach).
Блок операторов, который необходимо выполнить многократно называется телом цикла.
Оператор for в Паскаль
Если число повторений тела цикла заранее известно, то используется оператор цикла for, который также часто называют оператором цикла с параметром.
Оператор for состоит из двух частей: тела цикла и заголовка, который предназначен для описания начального и конечного значений параметра цикла, а также варианта его изменения.
В зависимости от направления изменения параметра цикла (возрастание - to или убывание - downto) в языке Паскаль оператор цикла for может быть записан в одной из двух форм:
- for параметр := нач_знач to кон_знач do
- оператор;
или
- for параметр := нач_знач downto кон_знач do
- оператор;
Переменная-параметр цикла может принимать любой порядковый тип. При этом начальное и конечное значения должны иметь тип совместимый с типом переменной-параметром.
Рассмотрим работу цикла for.
Перед началом выполнения оператора цикла вычисляются начальное значение, присваиваемое переменной-параметру, и конечное значение. Затем, циклически выполняются следующие операции:
- Сравнивается текущее значение параметра с конечным значением.
- Если условие параметр <= кон_знач истинно, то выполняется тело цикла, в противном случае оператор for завершает работу и управление передается оператору, следующему за циклом.
Внимание: в языке Паскаль параметр цикла, вне зависимости от возрастания или убывания, всякий раз изменяется на единицу.
Задача. Вывести на экран список квадратов целых чисел от 10 до 1.
Решение. В поставленной задаче параметр цикла убывает.
{Фрагмент кода программы}
- for i := 10 downto 1 do
- writeln(i:2, ' ', i * i);
Внимание: если в теле цикла необходимо использовать более одного оператора, то применяется составной оператор (операторные скобки begin и end).
Пример 2. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.
Задача. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.
Решение. Будем использовать в программе оператор цикла с параметрами, так как известно количество повторений выполняемых действий (абитуриент получил ровно четыре отметки)
{Фрагмент кода программы}
- s := 0;
- for i := 1 to 4 do
- begin
- readln(mark);
- s := s + mark;
- end;
- writeln(s);