Добавил:
Negorov1337@gmail.com inst:vech.no_17 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб 6 циклы / Лабораторный_практикум_по_программированию_Ч.3.doc
Скачиваний:
9
Добавлен:
11.10.2020
Размер:
1.02 Mб
Скачать

Приложение б (обязательное) Операторы, реализующие структуру «цикл»

При реализации структуры «ЦИКЛ» многократно выполняются отдельные группы операторов определенное число раз. Поэтому при организации циклических операций необходимы средства, позволяющие выделять повторяемые группы операторов, считать число повторений и в нужный момент прекратить выполняемые операции. При этом должно быть обеспечено изменение значений определенных переменных при повторении операций. Циклический алгоритм можно реализовать с помощью условного перехода IF. Однако в языке Basic существуют операторы, специально предназначенные для составления программ циклических алгоритмов. Это операторы цикла:

– оператор For-Next;

– оператор While-Wend;

– оператор Do-Loop.

Оператор For-Next

Оператор цикла For-Next определяет цикл с автоматическим увеличением (или уменьшением) счетчика цикла.

Используется для организации циклов с заданным числом повторений, т.е. для организации цикла – ДЛЯ.

Синтаксис:

FOR переменная = x TO y [STEP z]

[блок_операторов] – тело цикла

NEXT [переменная [,переменная]...]

Параметр «переменная» – числовая переменная, используемая как счетчик цикла. X, y и z – числовые выражения. X задает начальное значение счетчика, y задает конечное значение счетчика, z задает величину приращения счетчика после каждого цикла.

Блок_операторов – один или несколько операторов языка BASIC, которые будут циклически выполняться.

Строки программы, следующие за оператором For (тело цикла), исполняются до тех пор, пока не встретится оператор Next. Тогда заданная переменная цикла увеличивается на z. Если z опущено, то приращение равно 1. Каждый раз выполняется проверка, не превышает ли счетчик заданного конечного значения y (или для отрицательных z меньше или равен y), после чего цикл заканчивается.

Циклы For-Next выполняются быстрее при целочисленных значениях счетчика и констант x, y и z.

Тело цикла обходится, если начальное значение x превышает его конечное значение y или если z – отрицательное и x меньше, чем y.

Циклы For-Next могут быть вложенными, т.е. цикл For-Next может быть расположен внутри другого цикла For-Next. Когда используются вложенные циклы, каждый из них должен иметь свое имя переменной, являющейся счетчиком. Кроме того, оператор Next внутреннего цикла должен идти до оператора Next внешнего цикла.

Обозначив цикл квадратной скобкой, можно схематично представить варианты взаимного расположения циклов (рис.).

1) вложенные 2) последовательные 3) пересекающиеся – запрещены

Следующая программа имеет пересекающиеся циклы и не будет компилироваться:

For j = 1 To 10

For i = 1 To 20

.

.

.

Next j

Next i

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

For j = 1 To 10

For i = 1 To 2 0

.

.

.

next i, j

Переменная счетчика в операторе Next может быть опущена, но если она включена, то она должна быть переменной, соответствующей нужному счетчику.

Например:

For n = 1 to 10

.

.

.

Next next n будет работать также, но не Next m

В программировании операторы, находящиеся между For и Next, рекомендуется располагать с отступом на два или три пробела от края, выделяя таким образом структуру цикла. Хотя компилятору это безразлично.

Если необходимо выйти из цикла до его завершения, используется оператор Еxit For.

Оператор While-Wend

Оператор While-Wend используется для организации циклов с проверкой в начале цикла, т.е. для организации цикла с предусловием – цикла-ПОКА.

Позволяет организовать цикл с неизвестным числом повторений – итерационный цикл.

Синтаксис:

While условие

[блок_операторов] – тело цикла

Wend

Если значение условие – ИСТИНА (т.е. оно не равно нулю), выполняются все операторы, заключенные между While и завершающим Wend – тело цикла. Затем Basic выполняет переход на оператор While и повторяет проверку. Если результат все еще ненулевой, снова выполняются операторы тела цикла. Этот процесс повторяется до тех пор, пока проверяемое выражение не дает в результате ноль (ЛОЖЬ), после чего управление пере-дается оператору, следующему за Wend.

Если значение «условие» является ЛОЖЬ (нуль) при первой проверке, то не выполняется ни один из операторов тела цикла.

Циклы, построенные с помощью операторов While/Wend, могут быть вложенными (заключены один в другой). Каждому Wend соответствует ближайший оператор While. Чтобы сделать более наглядной структуру построенного цикла, рекомендуется сдвигать операторы, заключенные между While и Wend, на два или три пробела вправо (для компилятора это значения не имеет).

Чтобы выйти из цикла While/Wend до его завершения, используется оператор Exit While.

Оператор Do-Loop

Оператор Do/Loop позволяет создать одну из наиболее современных конструкций программирования.

Do-Loop является циклом с проверкой условия цикла в начале и/или в конце цикла.

Синтаксис:

DO [{WHILE } условие | UNTIL} условие]

[блок_операторов]

LOOP [{WHILE условие | UNTIL} условие]

Повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным.

Аргумент «условие» задает числовое выражение, ненулевое значение которого воспринимается как ИСТИНА, а нулевое – как ЛОЖЬ.

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

Конструкция «While условие» заставляет повторять тело цикла до тех пор, пока значение выражения ИСТИНА и заканчивать при значении ЛОЖЬ.

Конструкция «Until условие» дает противоположный эффект, т.е. приводит к повтору цикла, если значение выражения ЛОЖЬ до тех пор, пока значение выражения не станет ИСТИНА.

Общий синтаксис оператора Do...Loop можно представить в виде следующих форм записи:

Do While условие

[блок_операторов]

Loop

Тело цикла выполняется до тех пор, пока условие – ИСТИНА (может не выполниться ни разу).

Do Until условие

[блок_операторов]

Loop

Тело цикла выполняется до тех пор, пока условие – ЛОЖЬ (может не выполниться ни разу).

Do

[блок_операторов]

Loop While условие

Тело цикла выполняется до тех пор, пока условие – ИСТИНА (выполнится хотя бы один раз).

Do

[блок_операторов]

Loop Until условие

Тело цикла выполняется до тех пор, пока условие – ЛОЖЬ (выполнится хотя бы один раз).

Например, оператор:

Do While a =13

.. операторы

.Loop

выполняет операторы между Do и Loop до тех пор, пока а равно 13. Этот цикл дает тот же эффект, что и следующий оператор While-Wend.

While a =13

.

.

.

Wend

Оператор:

Do Until a =13

.. операторы

Loop

выполняет операторы между Do и Loop до тех пор, пока a не станет равным 13.

Если условие проверяется в начале цикла:

Do [While выражение | Until выражение]

операторы

Loop

то оператор Do...Loop реализует «цикл-ПОКА». Если условие проверяется в конце цикла:

Do

операторы

Loop [While выражение | Until выражение]

то оператор Do...Loop реализует «цикл-ДО».

В любой точке цикла Do-Loop можно включать оператор Exit Do. Это эквивалентно выполнению оператора Gotoпереходу на оператор, следующий за завершающим цикл зарезервированным словом Loop.

Учебное издание

ДИБРОВА Галина Дмитриевна

ЛАБОРАТОРНЫЙ

ПРАКТИКУМ

ПО ПРОГРАММИРОВАНИЮ

Ответственный за выпуск Н.В. Ковбасюк

ИД № 06457 от 19.12.01 г. Издательство ЮРГУЭС.

Подписано в печать 3.10.08 г.

Формат бумаги 60x84/16. Усл. печ. л. 1,9. Тираж 100 экз. Заказ № 425.

ПЛД № 65-175 от 05.11.99 г.

Типография Издательства ЮРГУЭС.

Соседние файлы в папке лаб 6 циклы