Циклы. Повторяющиеся действия

В этом разделе мы поговорим с вами о том, что делать, если у вас образуются в программах куски кода, которые полностью или очень во многом похожи друг на друга.

Рассмотрим первый пример: я хочу вывести на экран 5 раз слово счастье в одну строчку. Давайте напишем первый вариант программы:

После запуска программы мы видим, что она работает, но строчка print(‘счастье’) повторяется аж 5 раз. А если бы мне захотелось вывести это слово 500 раз. Неужели пришлось бы дублировать 500 раз одно и тоже? Нет. мы можем воспользоваться циклами, которые нужны для того, чтобы повторно исполнять одни и те же куски кода.

Цикл Loop

Итак, знакомимся, первый цикл, который нужно знать — loop. Loop в переводе с английского означает петля, цикл. Как воспользоваться этой конструкцией?

loop 5 — значит повторить 5 раз, дальше обязательное слово do. Повторить 5 раз что? То, что между словами begin и end с точкой с запятой. То, что между begin и end с точкой с запятой (а это может быть отнюдь не одна строчка кода) будет повторяться столько раз, какое число указано после loop.

Попробуйте самостоятельно между блоком begin и end; написать несколько разных принтов или принтлнов. Понаблюдайте за результатами.

Мы только что добились того, что слово День стало выводиться 3 раза, как сделать так, чтобы рядом со словом день выводился бы ещё номер дня. Для этого добавим переменную до цикла, а внутри цикла будем её увеличивать на 1.

Так можно писать, но решение не слишком удачное, так как нам нужно задавать переменную вне цикла, а также помнить о том, что внутри цикла переменную нужно увеличивать на 1.

Оговоримся, что значит внутри цикла. Внутри цикла — то есть между begin и end с точкой с запятой. В нашем примере выше — четвёртая и пятая строчки.

Цикл For

Давайте исправим недочёты предыдущей программы. Пусть мы хотим задать интервал изменения переменной от 1 до 3, а увеличение значения переменной хотим чтобы делал сам PascalAbc.Net

При помощи цикла for мы прямо внутри цикла можем объявить переменную, указать стартовое значение равное одному, после to указываем значение до какого числа включительно должна быть увеличена переменная day. Когда программа запускается, когда мы доходим до цикла, то сначала переменной day присваивается 1, выполняется то, что внутри цикла, затем значение переменной day увеличивается на 1, теперь там два, цикл выполняется с этим значение, затем значение day опять увеличивается на 1 и так далее, пока day не станет равным 3, тогда работа цикла завершается.

For. Обратный порядок

Теперь мы напишем с вами таймер обратного отсчёта. Давайте попробуем просто поменять местами числа в цикле for. Теперь пусть сначала будет большее число, затем меньшее.

Перепечатайте и запустите программу. Теперь почему-то программа ничего не выводит. Секрет в том, что мы написали 3 to 1. Мы просим PascalAbc.Net последовательно превратить цифру три в один путём прибавления единицы! А очевидно, что сколько бы мы единицу не прибавляли к 3, мы никогда не придём к одну, будем наоборот отдалятся от единицы. Abc.Net это видит и даже не пытается выполнить этот код.

Задумаемся, какое число нам нужно прибавить в трём, чтобы получить число на 1 меньше. Это цифра -1. Как записать. Всего навсего достаточно заменить 3 to 1 на 3 downto 1.

И добавим на торт последнюю вишенку, «заставим» Abc.Net «засыпать» на одну секунду после вывода числа. Для этого воспользуемся функцией sleep, которая на вход принимает количество миллисекунд, на которое требуется приостановить работу программы.

На всякий случай напомню, что в одной секунде 1000 миллисекунд.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *