Какую задачу решает приведенный фрагмент программы ** языке Паскаль (a и b-переменные...

0 голосов
364 просмотров

Какую задачу решает приведенный фрагмент программы на языке Паскаль (a и b-переменные целого типа)

readln (a,b);
while a<>b do
if a>b
then a:=a-b
else b:=b-a;
writeln(a);

1)определяет минимум из двух чисел a и b
2)меняет значение a и b местами
3)определяет наименьшее общее кратное чисел a и b
4)определяет наибольшее общее кратное чисел a и b
5)определяет,на сколько больше значение среди чиселa а и b отличается от меньшего из них


Информатика (508 баллов) | 364 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Ответ: Определяет наибольший общий делитель
Пример 1:
a=2 и b=3
Первая итерация цикла: b=1
Вторая итерация цикла: a=1
Вывод: 1
Пример 2:
a=15 и b=5
Первая итерация цикла: a=10
Вторая итерация цикла: a=5
Вывод: 5
Пример 3
a=25 и b=15
Первая итерация цикла: a=10
Вторая итерация цикла: b=5
Третья итерация цикла: a=5
Вывод: 5

(38.6k баллов)
0 голосов

5-й вариант.
Обратите внимание на условие: если a больше b, то вычислить a - b. В противном случае, т.е., если b больше или равно a, вычисляется b-a. Однако, в задаче неточность. Строка else b:=b-a должна выглядеть вот так: else a:=b-a.
Иначе, в случае, если второе число больше или равно первому, то выводится первое, а результат вычислений нигде не используется и не показывается.
В доказательство моих слов давайте рассмотрим два варианта
1) a=5; b=1
Условие выполняется, происходит вычисление 5-1, результат которого помещается в переменную a, которая потом выводится на экран. Т.е. на экране будет напечатано 4.
2) a=2; b=3
Условие не выполняется, переход к блоку else, где происходит вычисление 3-2, результат которого помещается в переменную b. Однако, на экран выводится переменная a, которая содержит двоечку. Таким образом, либо при постановке задачи допущена ошибка, либо в перечне допустимых вариантов отсутствует правильный ответ.

(216 баллов)