Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР(информатика) / Бейсик (курс 'Информатика') №6.doc
Скачиваний:
13
Добавлен:
14.03.2016
Размер:
523.78 Кб
Скачать

Программа к задаче 5.2

Input "Введите числа X и y", X, y

IF x<y THEN k=x ELSE k=y 'определение минимального (переменная К) значения из X и Y

FOR i = k TO 1 STEP –1 'перебор чисел от К до 1

IF (x MOD i=0) AND (y MOD i=0) THEN ?"НОД="; i: EXIT FOR 'если X и Y делятся нацело на i, НОД=i найден

NEXT

Напоминаем, что взятие модуля X по I означает получение целого остатка от деления X на I. Иными словами, если x MOD i=0 , то число X кратно числу I.

Задачи для самостоятельного решения.

1). Имеется N произвольных чисел X. Составить программу вычисления суммы S всех положительных чисел меньших 10 и среднее арифметическое SR всех отрицательных чисел.

2). Напечатать цепочку чисел, каждое из которых равно сумме двух предыдущих. Самые первые два числа X и Y задаются произвольно.

3). Напечатать все числа, на которые число X делится без остатка.

4). Вычислить наименьшее общее кратное (НОК) чисел X и Y. НОК – это минимальное число, которое делится на X и Y без остатка. Общим кратным, конечно, является произведение X на Y, но оно не обязательно наименьшее. Так если X=6, а Y=9, то X*Y=54. Однако еще есть общие кратные 36 и 18. Т.е. НОК=18. Удобно поиск НОК осуществлять, перебирая все числа от 1 до X*Y, до встречи первого числа, которое делится на X и Y без остатка.

5). В банке хранится известное количество N срочных вкладов. О каждом вкладе известно его значение на начало года – X. Размер годовой прибыли зависит от величины вклада. Если вклад до 10000 руб. – прирост составляет 10% годовых, если до 50000 руб. – 12%, если больше – 15%. Вычислить и напечатать значение каждого вклада на конец года Y, а также сумму всех вкладов на начало SX и конец SY года. Задачу решить двумя способами – с оператором цикла и без него. Указание. Процент увеличения вклада удобно отобразить в виде коэффициента. Так при 12% годовых, значение вклада Y на конец года соответствует 1.2X.

Оператор итерационного цикла имеет вид

WHILE условие

операторы

WEND

Такая конструкция позволяет организовывать итерационные циклы. Операторы, входящие в тело цикла выполняются до тех пор, пока истинно условие.

Для примера снова решим задачу 3 (вычислять и печатать Y=2/X до обнаружения первого X=0). Программа приведена ниже.

Input X

WHILE x< >0

?х; x/2

Input X

WEND

Если параметр условие опущен, цикл будет выполняться бесконечно. В этом случае внутри него должно быть предусмотрено средство выхода, например строка GOTO. Кроме того, в Бейсике имеется еще один оператор цикла с условием. Он имеет две разновидности: цикл с предусловием (условие рассматривается до входа в цикл)

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

операторы

LOOP

и цикл с постусловием (условие оценивается после выполнения тела цикла)

DO

операторы

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

Ключевое слово UNTIL действует обратным образом по отношению к WHILE, т.е. UNTIL-цикл будет выполняться до тех пор, пока условие не станет истинным. Иными словами WHILE условие это UNTIL NOT условие.

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

EXIT DO

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

Задачи для самостоятельного решения.

1). Решите задачу 4.2, используя оператор WHILE, а затем оператор DO.

2). Суммировать элементы числового ряда вида 2+6+18+… до тех пор, пока сумма не превысит число 120. Напечатать получившуюся сумму и номер элемента, на котором произошло это событие.