Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Qbasic.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
886.78 Кб
Скачать

Лабораторная работа №4. Программирование циклических алгоритмов

Цель работы: Овладеть навыками программирования алгоритмов циклической структуры.

Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же ветвей при различных значениях промежуточных данных. Различают циклы с параметрами и циклы с условием.

В QBasic используется три формы оператора цикла, с помощью которых можно осуществить многократно повторяющиеся вычисления:

  • оператор цикла с предусловием;

  • оператор цикла с постусловием;

  • оператор цикла с параметром.

  1. О ператор цикла с предусловием WHILE:

WHILE <условие>

<оператор>

WEND

или

WHILE <условие>

<оператор 1>

<оператор 2>

<оператор N>

WEND

Если <условие> принимает значение TRUE, то выполняется <оператор> (или группа операторов), после чего повторяется проверка <условия>. В противном случае оператор WHILE прекращает работу и управление передается на следующий после него оператор программы.

2 ) Оператор цикла с постусловием DO WHILE:

DO

<оператор 1>

<оператор 2>

<оператор N>

LOOP UNTIL <условие>

Здесь оператор или группа операторов, записанная после слова DO, выполняется до тех пор, пока <условие> остается ложным (FALSE). Как только <условие> принимает значение TRUE, выполнение оператора цикла прекращается.

3) Оператор цикла с параметром FOR:

Оператор FOR используется в том случае, когда заранее известно сколько раз должен выполняться цикл. Структура оператора FOR:

FOR i = xn TO xk STEP h

<оператор 1>

<

тело цикла

оператор 2>

<оператор N>

NEXT i

где

i – параметр цикла;

xn, xk – начальное и конечное значения переменной i;

h – изменение (шаг) значения параметра. По умолчанию h =1.

Операторы FOR и NEXT используются только совместно: оператор FOR определяет начало цикла и проверку условия выхода из цикла, когда параметр цикла превысит свое значение, а оператор NEXT - его конец.

Выход из цикла можно осуществить двумя способами: 1) естественным, когда цикл выполняется заданное число раз, т.е. при проверке обнаруживается, что параметр цикла превысил конечное значение; 2) не дожидаясь естественного окончания цикла с помощью управляющего оператора GOTO, передающего управление на какой-либо оператор программы.

Пример 1. Найти сумму четных чисел от 1 до 10.

REM Сумма четных чисел от 1 до 10

s = 0

FOR i = 2 TO 10 STEP 2

s = s + i

NEXT i

PRINT "Сумма четных чисел равна "; s

END

В результате выполнения программы должно получиться число 30.

Пример 2. Алгоритм Евклида.

Алгоритм Евклида используется при подсчете НОД (наибольшего общего делителя) двух натуральных чисел.

Этот алгоритм основан на утверждении о том, что:

Н ОД(А, В) = А, если А = В

НОД(А, В) = НОД(А, ВА), если А < В

НОД(А, В) = НОД(А  В, В), если А > В

Программа подсчета НОД сводится к повторению одной и той же последовательности действий: 1) проверка равенства чисел; 2) если они равны, то НОД найден; 3) если они не равны, то среди чисел находится максимальное и из него вычитается другое число. Алгоритм повторяется до тех пор, пока числа не сравняются между собой.

REM Алгоритм Евклида

INPUT "'Введите числа a и b "; a, b

WHILE a <> b

IF a > b THEN

a = a  b

ELSE

b = b  a

END IF

WEND

PRINT "НОД чисел равен "; a