Прежде всего, что такое цикл? Цикл это повторяющееся действие/действия. Вся наша жизнь состоит из циклов. Посудите сами: каждый день вы встаете, моетесь, завтракаете, одеваетесь и топаете в школу. И так день ото дня, ну кроме выходных и праздников.
В паскале цикл просто необходим: он позволяет сократить время написания программы и оптимизации кода. Особенно часто циклы используются для работы с базами данных и массивами. Итак как же выглядит цикл
for оператор:=начальное значение to конечное значение do
действие
- оператор — любая переменная (например i,j,h,g,min,nachal), описанная заранее и имеющая тип integer
- начальное значение — любое целое число (обычно это 1)
- конечное значение — любое целое число, не меньшее числа для начального значения
Рассмотрим простой пример использования оператора цикла. Пусть нам нужно заполнить массив, состоящий из 20 чисел. А так как для заполнения массива обязательно вводить каждый его элемент, то без цикла тут просто не обойтись.
var s:array [1..20] of integer;
i:integer;
begin
for i:=1 to 20 do
read(s[i]);
end.
В результате цикл 20 раз выполнит функцию read. Обратите внимание: сам по себе цикл повторяет только одно действие, идущее непосредственно после цикла. Например для нашей задачи для повтора берется строчка
read(s[i])
Если же нам необходимо использовать в цикле несколько действий, нужно их нужно заключить в логические скобки (begin и end). Усложним нашу задачу. Добавим к вводу 20 чисел массива вывод суммы всех его элементов. Тогда программа примет такой вид:
var s:array [1..20] of integer;
i,x:integer;
begin
for i:=1 to 20 do begin
read(s[i]);
x:=x+s[i];
end;
writeln(‘Сумма всех элементов массива = ‘,x);
end.
Большинство задач проводят операции с цифрами, строками, массивами, множествами и т.д., поэтому цикл встречается почти в каждой задаче.
Оператор цикла гибок, то есть он подстраивается практически под любое необходимое условие. Например возможен вариант использования цикла в цикле, что очень удобно. Выглядеть это будет так
for i:=1 to 10 do
for j:=1 to 10 do
То есть при каждом шаге первого цикла активируется второй цикл и выполняет 10 своих шагов. Поясню: при i:=1 стартует цикл for j:=1 to 10 do, который в свою очередь выполняется 10 раз,при i:=2 опять стартует второй цикл и снова выполняет десять шагов (начиная от j:=1 по j:=10), и так до тех пор, пока i не станет равным десяти. Тогда второй цикл последний раз выполняет свои 10 шагов и оба цикла прекращают свои действия. в итоге оба цикла выполняют 100 шагов (10*10).