Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Инф1_Лекц_5

.doc
Скачиваний:
10
Добавлен:
08.04.2015
Размер:
79.36 Кб
Скачать

3.

Алгоритмы с циклической структурой

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

В QB существуют три оператора циклов:

FOR…NEXT, DO…LOOP и WHILE…WEND.

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

Конструкция FORNEXT (“для” или счетчик) (for − для, next − следующий)

Повторяет блок операторов для достижения максимального (конечного) значения переменной_счётчика, то есть до тех пор, пока её значение не станет больше максимального.

Формат конструкции:

FOR переменная_счетчик = нач. TO кон. [STEP шаг]

Блок операторов

[EXIT FOR]

NEXT [переменная_счетчик]

Блок-схема конструкции:

Элементы формата:

  • FOR – начинает процедуру цикла.

  • переменная_счетчик – числовая переменная, значение которой автоматически изменяется в процессе работы и отслеживается циклом.

  • Начальное_значение (нач.) – первое значение счетчика цикла

  • TO – служебное слово, которое отделяет начальное значение от конечного.

  • Конечное_значение (кон.) – последнее значение счётчика цикла.

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

  • STEP – служебное слово, которое определяет значение шага.

  • Значение_шага (шаг) – величина, которая прибавляется к счётчику цикла после каждой итерации. Она может быть задана числом, переменной или математическим выражением.

Слово STEP и значение шага можно не указывать. В этом случае (по умолчанию) QB будет считать значение шага равным +1, если начальное значение счетчика меньше конечного, или -1 в противном случае.

  • EXIT FOR – команда досрочного (принудительного) выхода из цикла. В результате её действия управление сразу передаётся первому оператору, следующему за NEXT, независимо от значения счетчика цикла.

  • NEXT – возвращает управление в строку FOR. Название счетчика указывать не обязательно. Программа определяет блок операторов цикла как все команды расположенные между FOR и NEXT.

Код простейшей программы:

Задание: Вывести на экран монитора чётные числа от 2 до 10.

CLS

FOR I = 2 TO 10 STEP 2

PRINT i

NEXT i

END

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

Правила работы с вложенными циклами:

  1. Название переменной_счетчика вложенного цикла не должно совпадать с названием переменной_счетчика внешнего цикла.

  2. Командой NEXT сначала закрываются внутренний цикл, а затем внешний.

Варианты форматов конструкции циклов с вложенными циклами:

FOR i = …

FOR j = …

NEXT j

NEXT i

FOR i = …

FOR j = …

NEXT j

FOR f = …

NEXT f

NEXT i

FOR i = …

FOR j = …

NEXT j, i

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

Конструкция DOLOOP (“пока”, с предусловием и с послеусловием) (do – делать, loop – петля)

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

Формат конструкции:

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

Блок операторов

[EXIT DO]

LOOP

Блок-схема конструкции:

Формат конструкции:

DO

Блок операторов

[EXIT DO]

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

Блок-схема конструкции:

Элементы формата:

  • DO – начинает процедуру условного цикла.

  • UNTIL – команда закончить цикл, как только выполнится условие. Пока условие не выполнено цикл продолжает работу. (until − до тех пор, пока не; Till в отрицательной форме − до).

  • WHILE – команда продолжить цикл, пока выполняется условие. (while − пока).

  • Условие – условие окончания цикла. Может быть сложным и включать в себя логические операции.

  • EXIT DO – команда принудительного выхода из цикла. В результате её действия управление переходит к первому оператору, расположенному в коде программы за LOOP.

  • LOOP – возвращает управление в начало цикла.

Программа определяет блок операторов как все команды, расположенные между DO и LOOP. Если циклы вложены друг в друга, то команда LOOP соответствует ближайшему к ней DO. Выбор варианта конструкции (по позиции в ней условия) определяется программистом исходя из решаемой задачи.

Код простейшей программы:

Задание: Рассчитать сумму элементов числовой последовательности. Расчёт прекратить, как только значение очередного слагаемого станет меньше 10-5.

CLS

K = 1: S = 1: E = 10 ^ (-5)

DO

K = K + .1

S = S + 1/K

LOOP UNTIL 1/K < E

PRINT “S =”; S

END

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

Конструкция WHILEWEND (“пока”, с предусловием) (while – пока, wend – идти)

Возможностей у этого оператора меньше, чем у DO…LOOP. С его помощью можно создавать только циклы с предусловием, работающие пока условие выполняется.

Формат конструкции:

WHILE условие

Блок операторов

WEND

Блок-схема конструкции:

Элементы формата:

  • WHILE – начинает процедуру условного цикла.

  • Условие – условие окончания цикла. Если условие не выполняется, управление передаётся к первому оператору за WEND.

  • WENDпередаёт управление в начало цикла.