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




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

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

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

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

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

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

Формат конструкции: … FOR переменная_счетчик = нач. TO кон. [STEP шаг] Блок операторов [EXIT FOR] NEXT [переменная_счетчик] … Блок-схема конструкции:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dim I As Integer FOR I = 2 TO 10 STEP 2 Console.Writeline (“i ={0}”, i) NEXT i

В качестве блока операторов можно использовать любые операторы 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

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

Конструкция DO…LOOP (“пока”, с предусловием и с послеусловием)
(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.

K = 1: S = 1: E = 10 ^ (-5) DO K = K +.1 S = S + 1/K LOOP UNTIL 1/K < E Console.Writeline (“S ={0}”, S)

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

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

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

Формат конструкции: … WHILE условие Блок операторов WEND … Блок-схема конструкции:

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

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: