[МУЗЫКА] Рассмотрим, как в языке Pascal записывается циклическая конструкция. Начнём мы с цикла со счётчиком — он же цикл «от... до». В псевдокоде этот цикл в общем виде записывался следующим образом: цикл от i присвоить «начальное значение» до «конечное значение» переменной цикла, и затем мог указываться шаг. Если шаг был, то указывалось с каким шагом будет меняться наша переменная цикла, затем действие и завершается эта конструкция ключевым словом «конец цикла». В языке Pascal соответствующая конструкция выглядит так: for i присвоить «начальное значение», затем ключевое слово to либо downto, «конечное значение» do и затем «оператор». Ключевое слово to соответствует шагу +1, а ключевое слово downto — это шаг −1. Напомню обозначение: i — это переменная, или счетчик цикла, — в языке Pascal она должна обязательно иметь порядковый тип; <н.з.> — это начальное значение этой переменной; <к.з.> — это её конечное значение; <приращение> — это шаг, с которым будет меняться переменная; и при записи этой конструкции на языке Pascal использована вертикальная черта — это обозначает «или», то есть мы используем либо ключевое слово to либо ключевое слово downto. Какие правила оформления этого цикла? Если в цикле имеется несколько действий, то необходимо использовать составной оператор, то есть операторные скобки begin и end. Затем при выходе из цикла for значение переменной цикла не является большим на шаг, чем конечное значение. На самом деле, это значение считается неопределённым, и использовать при выходе из цикла эту переменную мы можем, но считаем, что её значение равно чему-то случайному. Затем переменная цикла, а также её конечное значение и начальное значение в теле цикла изменяться не должны. Если мы будем пробовать это делать, то наш цикл может не заработать или заработать совершенно непредсказуемым образом. Затем тип начального значения и конечного значения, которые оба могут быть выражениями, должен обязательно соответствовать типу переменной цикла. В языке Pascal, как мы уже с вами поняли, в этом цикле можно использовать либо шаг + 1 — это будет ключевое слово to, либо downto — тогда шаг будет равен −1. И возникает законный вопрос: ведь в алгоритмическом языке в псевдокоде был допустим любой шаг, а здесь почему-то только +1 или −1? Если нам будет нужно сделать шаг, отличный от +1 и −1 в языке Pascal, то мы можем применить различные способы моделирования этого шага. Давайте посмотрим, как это будет выглядеть. Во-первых, в качестве примера рассмотрим фрагмент алгоритма вычисления суммы. Наш цикл проходит значение от 1 до 5 с шагом 0.5. Такой шаг в Pascal непосредственно записать нельзя. Что же можно сделать? Во-первых, мы можем применить следующий прием: мы возьмем и добавим в качестве переменной цикла другую переменную — это будет «номер шага». Далее у нас переменная i и сумма приобретают начальные значения до начала этого цикла, а затем переменная k проходит значение от 1 до 9, и в этом цикле так же, как и в оригинале, считается сумма, а ещё на каждом шаге переменная i увеличивается на 0.5. То есть мы ввели дополнительную переменную и при этом сохранили цикл for. То есть это цикл for, но выраженный через другую переменную. Теперь попробуем другой вариант: вместо цикла for используем цикл while. Тогда перед началом цикла мы присваиваем начальное значение сумме и переменной i, затем, пока i не превышает конечного значения 5, мы проделываем следующие действия: считаем сумму, и ещё вручную увеличиваем переменную i. Мы можем на языке Pascal смоделировать любой шаг цикла, в том числе отличный от + и −1. [МУЗЫКА] [МУЗЫКА] [МУЗЫКА]