Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава7.doc
Скачиваний:
1
Добавлен:
16.04.2019
Размер:
139.26 Кб
Скачать

Глава 7. Программирование циклических вычислительных процессов

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

Для организации циклов используются специальные операторы языка, называемые операторами цикла.

В языке TurboPascal таких операторов три: оператор с предусловием While, оператор с постус­ловием Repeat и оператор с парамет­ром For.

7.1. Оператор цикла с предусловием while

Общий вид оператора

while L do оператор,

где L - логическое выражение, оператор - простой или состав­ной оператор, который является телом цикла (рис. 7.1).

Рис. 7.1. Синтаксическая диаграмма оператора while

Оператор while выполняется так:

1) вычисляется логическое выражение L, результат вычисления анализируется;

2) если результат вычислений true, то выполняется тело цикла, после чего осуществляется возврат к оператору while; если результат false, то тело цикла не выполняется, а управление пе­редаётся оператору программы, расположенному непосредственно пос­ле тела цикла.

Если первая проверка условия окончания цикла дала результат false, то тело цикла не выполнится ни разу.

Логику действия оператора while можно сформулировать так: «выполнять тело цикла, пока условие истинно».

Пример 7.1

Вычислить значения функции y=sin(x2) на отрезке [1,2], если шаг изменения её аргумента x=0,1.

Схема алгоритма не приводится, т.к. она отличается от схемы, приведенной в примере 1.11, только тем, что проверка условия выхода из цикла выполняется перед телом цикла, а не после него.

program example71;

var

x, y, dx, a, b : real;

begin

write ('введите a,b,dx - ');

readln (a,b,dx);

x := a; { присваивание параметру цикла x его

начального значения }

while x <= b do {проверка условия работы цикла}

begin {операторы, составляющие}

y := sin(x * x); {тело цикла, заключены в}

writeln ('x=', x:10:3, ' y=' ,y:10:3);

x := x + dx {опе­раторные скобки }

end { begin-end }

end.

7.2. Оператор цикла с постусловием repeat

Общий вид оператора

repeat

oператор1;

oператор2;

……………..

oператорN

until L

где L - логическое выражение; опе­ратор1, оператор2,..., операторN - операторы, представляющие в совокупности тело цикла (рис. 7.2).

Рис. 7.2. Синтаксическая диаграмма оператора repeat

Последовательность выполнения оператора repeat:

1) исполняются операторы, составляющие тело цикла;

2) Вычисляется логическое выражение l, результат вычисления анализируется;

3) если результатом вычислений является false, тело цикла выполняется снова, в противном случае (результат вычислений - true) очередного повторения тела не происходит, а осуществляется выход из цикла на следующий по порядку оператор программы.

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

Пример 7.2

Выполнить задание примера 7.1, используя оператор repeat.

program example72;

var

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]