Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть1. Структурное программирование.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

4. Программа. Программа составляется по блок-схеме с учетом таблицы распределения идентификаторов.

Рис. 7. Блок-схема программы

Program Primer;

Uses Crt;

Var

x: integer;

Begin

Write('Vvedite X = ');

Readln(x);

case x of

5..8: Writeln ('Morning');

9..15: Writeln ('Day');

16..21: Writeln ('Evening');

22..24, 0..4: Writeln ('Night')

end;

writeln;

end.

5. Протокол работы программы. Результаты протокола работы программы и контрольного просчета равны. Vvedite X = 7

Morning

Vvedite X = 19

Evening

6. Содержание отчета (см. задача 1).

Лабораторная работа №3 Программирование циклических вычислительных процессов

Цель работы: изучение особенностей алгоритмизации и программирования циклических вычислительных процессов.

Общие положения

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

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

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

- циклы с заранее заданным числом повторений;

- циклы с заданным интервалом изменения переменной;

- циклы, выполняемые до достижения заданной точности вычислений.

В языке Pascal существуют следующие конструкции для организации циклов:

• оператор цикла со счетчиком (параметром).

• оператор цикла с предварительным условием (предусловием);

• оператор цикла с последующим условием (постусловием);

Оператор цикла со параметром (for-to-do).

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

Общая форма записи оператора:

1) for i= A to B do

begin

<оператор – тело цикла >;

end;

2) for i := A downto B do

begin

<оператор – тело цикла>;

end;

где i – параметр цикла (переменная порядкового типа);

А, В – начальное и конечное значения параметра цикла (порядкового типа);

for (для), to (до), to (выполнить) – служебные слова;

<оператор – тело цикла > – любой оператор языка Паскаль.

Конструкция for-to-do используется, если переменная цикла увеличивается на единицу, а for-downto-do – если уменьшается на единицу.

При использовании цикла for компьютер выполняет за программиста черновую работу по инициализации управляющей переменной и по ее увеличению (уменьшению) при каждом повторении цикла. Параметр цикла не должен изменяться какими-либо операторами внутри цикла. К нему можно о

Рис. 8. Алгоритмическая

конструкция

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

Управляющая переменная должна описываться, как и любая другая переменная. Обычно переменная цикла имеет тип integer.

Оператор for-to-do реализует алгоритмическую конструкцию, представленную на рис. 8.

Оператор цикла с предусловием (while-do).

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

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока заданное в операторе условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

Общая форма записи следующая:

while <условие> do

begin

< оператор – тело цикла >;

end;

где while (пока), do (выполнить) – служебные слова;

<условие> – логическое выражение;

< оператор – тело цикла > – любой оператор языка Паскаль.

Оператор while-do реализует алгоритмическую конструкцию «Цикл с предусловием» (рис. 9).

Рис. 9. Алгоритмическая конструкция

Операторные скобки ставят, чтобы отделить от остальной программы группу операторов, которую нужно повторить в цикле. Если в цикле нужно выполнить только один оператор, то операторные скобки не ставят.

При использовании цикла с предусловием надо помнить следующее:

  1. начальное значение переменной цикла должно быть определено до начала цикла;

  2. если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла;

  3. хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия цикла, иначе цикл будет повторяться бесконечное число раз.

Цикл с постусловием (repeat-until).

Иногда при решении задач возникает необходимость выполнить тело цикла хотя бы один раз, а потом исследовать условие, повторять ли его еще раз. Эту задачу выполнит другой вид цикла repeat-until.

repeat повторяй

операторы операторы

until <условие>; до тех пор, пока условие ложно

Для выполнения в теле цикла repeat-until нескольких операторов не следует помещать операторы в операторные скобки begin ... end. Зарезервированные слова repeat и until действуют как операторные скобки.

К

Рис. 10. Алгоритмическая конструкция

онструкция repeat-until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий. Это гарантирует хотя бы одно выполнение действий до завершения цикла.

Оператор repeat-until реализует алгоритмическую конструкцию «Цикл с постусловием» (рис. 10). При использовании цикла с постусловием надо помнить следующее:

  1. начальное значение переменной цикла должно быть определено до начала цикла;

  2. если значение условия ложно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие истинно, то происходит выход из цикла;

  3. хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз.