Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕХНИКА ПРОГРАММИРОВАНИЯ НА Basic.docx
Скачиваний:
15
Добавлен:
20.04.2015
Размер:
93.04 Кб
Скачать

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

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

x = 12: y = 8

‘определение минимального (переменная К) значения из X и Y

IF x<y THEN k=x ELSE k=y

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

‘если Х и Y делятся нацело на i, НОД=i найден

IF x MOD i=0 AND y MOD i=0 THEN ?"НОД="; i: EXIT FOR

NEXT

END

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

1). Имеется N произвольных чисел Х. Составить программу вычисления и напечатать сумму всех положительных чисел S, число отрицательных чисел К и произведение P всех чисел, не равных нулю. Сделать проверочные выкладки для N=5 (аналогичные выполненным выше). В качестве значений Х использовать последовательные цифры натурального ряда с изменяющимися знаками (Х=0, –1, 2, –3, 4, –5).

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

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

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

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

WHILE условие

операторы

WEND

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

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

Input X

WHILE x<>0

?х; 2/x

Input X

WEND

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

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

операторы

LOOP

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

DO

операторы

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

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

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

EXIT DO

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

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

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

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