

Операторы цикла в паскале
Циклы — одна из самых больших тем в паскале , по совместительству одна из самых сложных.
Но так как сам по себе язык паскаль довольно простой , то и циклы не будут такими трудными для понимания.
Что такое цикл , для чего он нужен , как используется и другое
Что такое цикл. Цикл — это повторения определенного участка кода N количество раз. Циклы также можно встретить в повседневной жизни и при этом довольно часто. Например : мыть посуду пока она не закончится.
Циклы имеют свои условия окончания , например : пока a больше b.
В языке программирования pascal предусмотрено 3 вида циклов. Первый цикл это for , второй — while, третий — repeat. Все они немного отличаются друг от друга и все же они довольно простые.
Цикл for :

Результат выполнения данной программы будет таким — на экран будут выведены цифры 1 , 2 , 3 , 4 и 5.
На картинке показано как именно записывается этот самый цикл for. Вначале пишется слово for далее мы обозначаем переменную — счетчик и задаем ей начальное значение , в нашем случае это переменная i ( i:= 1 ).
Её значение ( которое мы задали ) равно 1 , переменной — счетчику можно задать любое целое значение , например : 0,1,2,3 …
Важно запомнить , что переменная счетчик ( её тип ) должен быть целым !
Далее пишется слово to и после него целое число ( конечное значение переменной -счетчика ). В конце слово do ( делай ).
После слова do идет тело цикла ( команды ). Следует помнить о том , что в теле цикла выполняется только первая команда. Для того , чтобы в теле цикла выполнялось сразу несколько команд их следует заключать в блок begin end.

Поэтому после переменная i равна двум. И так далее пока i не станет равна 5 , при этом тело цикла выполнится , когда переменная i равна 5.
Пример его использования такой — например нам нужно заполнить массив значениями с клавиатуры. Это делается так , как показано на картинке ниже.

Цикл while :
Отличие цикла while от цикла for заключается в том , что цикл while не имеет переменную счетчика . Аналог работы программы , которая выводит циклом for 5 цифр будет выглядеть так :

Внутри тела цикла увеличиваем переменную i , для того чтобы наш цикл мог закончиться , когда переменная i станет больше 5.
Немного о том , как работает данные цикл. Вначале работы цикла проверяется условие , если оно истинно , то выполняется тело цикла. После выполнения тела цикла снова проверяется условие , если оно истинно то тело выполнится ещё раз. И так далее пока условие не станет ложным. Как только условие становится ложным , тело цикла не выполняется и программа идет дальше.
Цикл repeat :
Данный вид цикла мало отличается от цикла while . Отличие заключается только в том , что цикл заканчивается , когда условие станет истинным , в отличии от цикла while , в котором цикл заканчивается при ложном условии. А также для использования нескольких команд , теперь нам не нужен блок begin end.

Как вы понимаете ничего сложного в теме циклов нет , но понимать что это такое и для чего они нужно стоит. Для решения задачи вы можете использовать любой из трех видов. Лично я чаще всего использую цикл For , однако есть такие задачи , которые не решить одним видом цикла.
Вложенные циклы :
В аналогии с условиями , любые циклы могут вкладываться друг в друга. Внутри каждого цикла могут быть ещё несколько циклов , а внутри них ещё несколько. Все это позволяет решать множество задач на языке паскаль. Например нам требует заполнить двумерный массив случайными числами. Это будет выглядеть примерно так :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
program mypascal; uses crt; var a: array[1..10,1..10] of integer; i,i1:integer; begin for i:= 1 to 10 do for i1:= 1 to 10 do a[i,i1]:= random(11)+1; end. |
Break :
Команда break позволяет выйти из цикла в любое время и на любом шаге. Данная команда довольно часто используется , поэтому вам следует запомнить её. Для чего нужна команда break ? Допустим , мы имеем очень большой массив с числами ,в котором нам нужно найти всего одно отрицательное число ( меньше 0 ). Как только цикл находит первое отрицательное число мы можем выйти из него , так как остальные шаги в цикле будут бесполезны и займут очень большое время. Как это работает :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
program mypascal; uses crt; var a: array[1..1000] of integer; i:integer; begin for i:= 1 to 1000 do a[i]:= random(21)-10; for i:= 1 to 1000 do if ( a[i] < ) then begin writeln(a[i]); break; end; end. |
Вначале программы мы заполняем массив длинной в 1000 ячеек ( диапазон значений от -10 до 10 ). После это начинаем цикл. Как только находим отрицательное число , выводим его и выходим из цикла , чтобы не тратить время. При этом переменная i будет равна шагу , на котором было найдено отрицательное число.
Continue :
Данная команда работает почти так же как и break , однако она не выходит из цикла , а лишь завершает шаг , на котором находится цикл. Если мы поставим команду contineu в середине тела цикла , то цикл будет выполнять лишь половину цикла. Узнать о работе с файлами в Паскаль