Электронная версия курса лекций по дисциплине "Информатика", страница 13

x:=xn;

repeat

                    y:=a*x+b;

                    writeln(' x=',x:6:2,' y=':20,y:4:2);

                    x:=x+dx

until(x>xk);

end.

4.3 Особенности конструкции repeat:

    а) Поскольку используется постусловие, то тело цикла выполняется не меньше чем один раз;

    б)  В качестве постусловия записывается условие выхода из цикла, а не условие выполнения тела цикла;

    в) Тип и значение параметра цикла являются произвольными;

    г) При использовании этой конструкции требуется не забыть до начала цикла присвоить начальное значение параметру цикла. А в теле цикла обеспечить изменение параметра цикла на величину шага изменения параметра. При невыполнении последнего требования возможно зацикливание программы.

Вопрос 4

Запись конструкции повторение в виде схемы с использованием блока модификация


Этот вариант схемы может быть использован для последующей реализации на языке программирования любой из возможных конструкций «повторение».

Внимание! У блока модификация два входа и два выхода

В общем случае  ПЦ, НЗ, КЗ, Ш – могут  быть выражениями.

Преимущество в использовании блока модификация состоит в простоте получаемой схемы и в большей доступности ее для восприятия.

Недостатком является то, что из нее не ясно какая разновидность конструкции «ПОВТОРЕНИЕ» будет использована в программе и, следовательно, как она будет работать.

Рекомендация - использовать блок модификация в основном для изображения ниже рассмотренной конструкции повторение с параметром, т.к. форма записи в блоке модификация и в заголовке цикла FOR в этом случае совпадают.

Начинающим программистам для записи конструкций «ПОКА» и «ДО»  рекомендуется использовать схему с блоком «РЕШЕНИЕ».

Вопрос 5

Конструкция повторение с параметром (FOR) («Для»)

(При использовании в качестве параметра целочисленной переменной)

1  Особенности конструкции «Для»

У блока модификация два входа и два выхода !!!

 
При реализации конструкции «Для» на языке программирования Паскаль и Delphi на неё было наложено ограничение: в качестве параметра должна использоваться переменная только перечисляемого типа (тип real не является перечисляемым).

Далее будем рассматривать случаи, когда параметр цикла будет иметь целочисленный тип. При этом имеют место следующие особенности: шаг параметра цикла равен либо +1, либо  –1, а начальное и конечное значения параметра цикла являются выражениями (в частном случае переменными) целочисленного типа.

2  Запись конструкции «Для» в виде схем

Её изучение будем вести на примере частного случая, когда параметр цикла, его начальное и конечные значения обозначены соответственно: Х, Хн, Хк. Вид схемы конструкции повторение с параметром зависит от того, чему равен шаг +1 или –1, а также от того какой блок используется при её рассмотрении «решение» или «модификация». В п. 1 и 2 рассматриваются упрощенные схемы конструкции for с блоком решения, но эти схемы по результатам работы являются эквивалентными реальным схемам.

 


Комментарий к п.2.1.

·  Переменной Х присваивается Хн - начальное значение параметра цикла.

·  Проверяется условие выполнения цикла Х£Хк. Если оно истинно, то выполняется тело цикла: выполняются операторы, а затем параметру цикла Х присваивается значение параметра цикла Х плюс 1.

·  Затем опять проверяется условие выполнения цикла: Х£Хк. Если оно ложно, то осуществляется выход из цикла, а если оно истинно, то выполняется тело цикла и т.д.

Комментарий к п. 2.2.

·  Переменной Х присваивается Хн - начальное значение параметра цикла.

·  Проверяется условие выполнения цикла Х³Хк. Если оно истинно, то выполняется тело цикла: выполняются операторы, а затем параметру цикла Х присваивается значение параметра цикла Х минус 1.

·  Затем опять проверяется условие выполнения цикла: Х³Хк. Если оно ложно, то осуществляется выход из цикла, а если оно истинно, то выполняется тело цикла и т.д.

Для записи схем для реализации которых будет использована конструкция повторение с параметром, рекомендуется использовать блок “модификация” .


3  Запись конструкции «Для» на языке Паскаль (Delphi)

(на примере частного случая).

 


4  Замечания по применению конструкции for

·  Оператор for обеспечивает автоматическое изменение параметра цикла с шагом +1 или –1 и исключает зацикливания, т.к. значения параметра цикла меняются от начального до конечного значения с заданным шагом.

·  Параметр цикла, его начальное и конечное значения не могут быть действительного типа (real).

·  В общем случае начальное и конечное значения параметра цикла могут быть выражениями, имеющими целочисленный результат.

·  Значения Xn  и Xk (начального и конечного значений параметра цикла) не должны меняться в теле цикла.

·  Конструкцию for  рекомендуется использовать в случае, когда известны, либо могут быть рассчитаны,  целочисленные начальное и конечные значения параметра цикла, а шаг его изменения равен +1 или –1.

·  Обычно удобно использовать эту конструкцию при работе с массивами.

·  Тело цикла не выполняется ни разу при  величине шага

·  +1, в случае если начальное значение превышает конечное значение;

·  -1, в случае если конечное значение превышает начальное значение.

·  Таким образом, цикл с параметром является циклом с предшествующим условием. Этим объясняется то, что в некоторых случаях одна и та же схема, содержащая циклы выполненные с помощью блока решение, может быть запрограммирована, как с использованием конструкции while, так и for. 

5  Пример решения задачи с использованием конструкции

повторение  с параметром

Рассмотрим решение ранее сформулированной задачи при изменении Х с шагом равным 1 и при целочисленных значениях Xn  и Xk.