Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 25 QBasic.doc
Скачиваний:
10
Добавлен:
24.04.2019
Размер:
186.37 Кб
Скачать

Операторы цикла

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

Общий вид оператора цикла

FOR I=A TO B STEP H

< ОПЕРАТОРЫ ТЕЛА ЦИКЛА>

NEXT I

I—имя управляющей переменной;

A— выражение, определяющее начальное значение;

B— выражение, определяющее конечное значение;

H—выражение, определяющее величину приращения.

Если шаг изменения управляющей переменной равен 1, то оператор заголовка цикла может быть записан так

FOR I=A TO B

В операторе FOR управляющей переменной I присваивается начальное значение A и производится анализ на конец цикла. Если начальное значение переменной A меньше конечного значения B , то выполняются операторы тела цикла. Тело цикла начинается за оператором FOR и завершается оператором NEXT(от слова NEXT – следующий.

При выполнении оператора NEXT изменяется значение управляющей переменной (A=A+H) и производится анализ на конец цикла. Цикл повторяется до тех пор, пока значение управляющей переменной не станет строго больше (при положительном приращении) или строго меньше (при отрицательном приращении) конечного значения B.

Цикл FOR…NEXT — это цикл с заданным заранее количеством повторений.

Если A>=B,то число k повторений цикла определяется выражением:

, где квадратные скобки означают выделение целой части.

Пример 1.

Составить блок- схему алгоритма и программу для вычисления таблицы значений функции

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Блок-схема алгоритма

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

FOR X=0 TO 1 STEP 0.1

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

NEXT X

PRINT “Сумма=”;S; “Произведение=”;P;

END

Операторы while…wend

WHILE <УСЛОВИЕ>

<ОПЕРАТОРЫ>

WEND

Этот оператор не задает закон изменения параметров цикла, поэтому для изменения необходимо перед циклом задавать начальное значение параметра с помощью оператора присваивания, а внутри цикла вычислять с помощью оператора присваивания его текущее значение, увеличивая предыдущее на величину шага. Операторы цикла выполняются до тех пор, пока условие истинно, в противном случае осуществляется выход из цикла к оператору, следующему за оператором WEND.

Пример 2.

Составить блок- схему алгоритма и программу для вычисления таблицы значений функции

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

X=0

WHILE X<=1

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

X=X+0.1

WEND

PRINT “Сумма=”;S; “Произведение=”;P

END

Если необходимо вычислить сумму значений некоторой фунции y = f(x) при различных значениях аргумента, целесообразно организовать цикл, в котором надо предусмотреть не только вычисление значений функции, но и накопление суммы путем прибавления полученных слагаемых к сумме всех предыдущих слагаемых. Формула, используемая для накопления суммы, имеет вид S(n)=S(n-1)+Y(n) .Поскольку надобности в запоминании значений всех слагаемых и промежуточных сумм нет, в качестве S и Y нужно использовать простые переменные и накопление суммы вести в цикле по формуле S=S+Y, где знак "=" означает присваивание значения. Если начальное значение S предварительно приравнять нулю, то после первого выполнения цикла значение S будет равно первому значению функции Y.

Аналогично накапливается и произведение с той лишь разницей, что для его накопления используется формула P=P*y, а начальное значение произведения должно быть равно единице.

Оператор DOLOOP с предусловием

DO (WHILE|UNTIL) <УСЛОВИЕ>

<ОПЕРАТОРЫ>

LOOP

Оператор DOLOOP с послеусловием

DO

<ОПЕРАТОРЫ>

LOOP (WHILE|UNTIL) <УСЛОВИЕ>

Начальное значение параметра цикла задаeтся до цикла. Внутри цикла текущее значение параметра цикла увеличивается на величину шага. Операторы тела цикла выполняются до тех пор, пока значение логического выражения «истинно» или «ложно».

Пример 3.

Составить блок- схему алгоритма и программу для вычисления таблицы значений функции

на отрезке [0,1],

если X на этом отрезке изменяется с шагом 0.1.

Найти сумму, произведение значений функции.

Программа

REM Циклический вычислительный процесс

S=0 ‘Начальное значение суммы

P=1 ‘Начальное значение произведения

X=0

DO

Y= EXP(X)+SIN(3*X)^2 ‘ Вычисление значений функции

S=S+Y ‘Накопление суммы

P=P*Y ‘Накопление произведения

PRINT “X=”;X;”Y=”;Y‘ Вывод таблицы значений функции

X=X+0.1

LOOP UNTIL X>1

PRINT “Сумма=”;S; “Произведение=”;P

END