- •2.5.2.3. Средства программирования разветвляющихся структур
- •2.5.1.2. Средства программирования алгоритмов линейной структуры
- •Input [;] [подсказка { ; | , }] список_переменных
- •Input “Введите коэффициенты уравнения a, b, c “, a#, b#, c#
- •Input ;“Радиус круга”; r!
- •2.5.1.3. Средства программирования разветвляющихся структур
- •If выражение then оператор(ы) [else оператор(ы)]
- •2.5.1.4. Средства программирования регулярных циклических структур
- •2.5.1.5. Средства программирования итеративных циклических структур
- •2.5.1.6. Средства описания и работы с одномерными массивами данных
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •2.5.2.8. Строковые данные и операции над строками
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •Тема 2.5. Основные конструкции языков программирования Страница 295
2.5.1.4. Средства программирования регулярных циклических структур
Алгоритмы регулярной циклической структуры характеризуются заданным (известным) числом повторений: иногда это число задается явно, иногда его предварительно вычисляют. К таким алгоритмам относятся: алгоритмы вычисления значений функций одной или нескольких переменных, у которых аргументы изменяются в известном диапазоне и с заданным шагом изменения; алгоритмы вычисления конечных сумм и произведений и многие другие. Программирование такой алгоритмической структуры на языке QB производится при помощи оператора FOR...NEXT, имеющего следующий формат:
FOR параметр=выражение1 TO выражение2 [STEP выражение3] блок_операторов
[EXITFOR] NEXT параметр
Здесь параметр цикла – это переменная, для которой выражение1 является начальным значением, выражение2 – конечным значением, а выражение3 - шаг изменения параметра цикла. Причем шаг изменения параметра может быть как положительным, так и отрицательным. По умолчанию его значение равно 1. Блок операторов, находящихся между конструкциями FOR и NEXT, называется телом цикла, количество повторений которого определяется числом возможных значений параметра цикла. Перед каждым повторением цикла, в том числе первым входом в цикл, текущее значение параметра цикла сравнивается со значением выражение2 (конечным значением). После каждого выполнения операторов тела цикла к переменной (параметру цикла) прибавляется значение выражение3 (шаг) и снова производится сравнение параметра с конечным значением. Тело цикла перестает выполняться, когда значение параметра станет больше конечного значения (шаг положителен) или меньше конечного значения (шаг отрицателен). Если условие выхода из цикла выполняется при начальном значении параметра, то тело цикла пропускается, и управление сразу же передается оператору, следующему за NEXT. Для выхода из цикла до его завершения можно использовать оператор EXIT FOR.
При организации вложенных циклов (цикл в цикле) используются пары операторов FOR…NEXT , которые не должны “пересекаться” друг с другом. Другими словами, каждой конструкции FOR должна соответствовать конструкция NEXT. При этом конструкция NEXT для внутреннего цикла должна предшествовать конструкции NEXT внешнего цикла. Для преждевременного выхода из цикла по условию используется оператор EXIT FOR. Например:
FOR i = 1 TO 10 FOR j = 1 TO 2
' тело внутреннего цикла
IF g=2 THEN EXIT FOR NEXT j
NEXT i
2.5.1.5. Средства программирования итеративных циклических структур
Отличительной особенностью алгоритмов итеративных циклических структур является заранее неизвестное число повторений цикла. К ним относятся, например, алгоритм проверки ввода исходных данных, алгоритмы вычисления отдельных членов, суммы или произведения членов бесконечных последовательностей, алгоритмы вычислений по итерационным формулам и некоторые другие алгоритмы. При программировании алгоритмов итеративных циклических структур используется оператор DO…LOOP в одном из двух возможных форматов.
Первый формат оператора DO…LOOP используется при программировании итеративной циклической структуры с предусловием:
DO [{ WHILE | UNTIL } логическое_выражение]
блок_операторов
[EXIT DO]
LOOP
Второй формат оператора DO…LOOP реализует структуру с постусловием:
DO блок_операторов
[EXIT DO] LOOP [{ WHILE | UNTIL } логическое_выражение]
При использовании конструкции WHILE тело цикла будет выполняться до тех пор, пока значение логического_выражения истинно. Как только это выражение становится ложным, происходит выход из цикла и управление передается оператору, следующему за LOOP. При использовании конструкции UNTIL тело цикла выполняется до тех пор, пока выражение остается ложным. Как только оно становится истинным, происходит выход из цикла и управление передается оператору, следующему за LOOP. Поэтому, после WHILE записывается условие продолжения цикла, а после UNTIL - условие окончания цикла.
Если конструкция WHILE или UNTIL в операторе цикла опущена, то имеет место бесконечный цикл, выход из которого на оператор, следующий после LOOP, осуществляется только при использовании оператора EXIT DO. Оператор EXIT DO может использоваться и при наличии конструкций WHILE и UNTIL для организации досрочного выхода из цикла по некоторому дополнительному условию.
