Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
61
Добавлен:
04.06.2015
Размер:
7.62 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;