Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
7.34 Mб
Скачать

Бесконечные циклы

Бесконечный цикл может быть представлен следующей схемой:

i :=0;

5: i := i + 1; эти три оператора образуют бесконечный цикл

i := i -1;

GoTo 5;

Как правило, появление в программе бесконечных циклов вызвано логическими ошибками, допущенными программистом при разработке алгоритма и кодировании (написании операторов программы) и использовании оператора безусловного перехода GoTo. Поэтому в современных алгоритмических языках этот оператор практически не используется, а заменяется циклами. Бесконечные циклы не выявляются транслятором при синтаксическом контроле и проявляются только после запуска программы на выполнение следующим образом:

  1. длительное время (десятки секунд) программа не выводит на устройство вывода никакой информации – программа зависает,

  2. на устройство вывода постоянно выводится одна и та же информация.

Таким образом, бесконечные циклы – это логические ошибки программиста. С ними встречается любой программист, и поэтому необходимо овладеть методами их поиска.

Циклы с предусловием

Как правило, некоторую цепочку операторов необходимо повторять не бесконечно, а до тех пор, пока выполняется некоторое условие:

ПОКА (условие) ВЫПОЛНЯТЬ

цепочка;

Т акой цикл называется циклом с предусловием (циклом ПОКА) и изображается следующей схемой:

Условие – это логическое выражение, зависящее от переменных, входящих в цепочку. Цикл повторяется до тех пор, пока условие истинно. Значит, данное условие является условием продолжения цикла. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.

Цикл не выполняется ни разу, если условие было ложным с самого начала.

Цикл ПОКА превращается в бесконечный, если условие подобрано так, что оно всегда истинно.

В Паскале цикл с предусловием реализуется оператором цикла While:

While (условие) Do

оператор;

или

While (условие) Do

Begin

оператор;

оператор;

оператор;

End;

Операторы, находящиеся между Begin и End, называются телом цикла.

Внимание! После слова Do точка с запятой не ставится!

Если поставить точку с запятой после слова Do, то этот цикл, как правило, превращается в бесконечный, потому что в этом случае условие изменяться не будет.

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

Действия оператора While:

  1. проверяется выполнение условия,

  2. если оно истинно, то выполняется оператор (цепочка), стоящий после Do,

  3. после его выполнения снова проверяется условие, и если оно снова истинно, то цикл повторяется,

  4. если условие становится ложным, то цикл заканчивает работу.

Примеры:

  1. вычислить сумму ста первых натуральных чисел:

s = 1 + 2 + 3 + … + 98 + 99 + 100

Пусть s – искомая сумма,

i – очередное число (изменяется от 1 до 100).

Тогда алгоритм решения задачи можно описать следующим образом:

  1. обнуляем сумму s – в ней ничего нет,

  2. берем первое число: i = 1,

  3. д обавляем в сумму очередное число, пока оно не достигнет 100.

Представим этот алгоритм так:

s = 0;

i = 1;

ПОКА (i ≤ 100) ВЫПОЛНЯТЬ

НАЧАЛО

s = s + i;

i = i + 1;

КОНЕЦ;

Программа:

Program Gauss;

Uses CRT;