какую задачу решает приведенный фрагмент программы на языке Паскаль (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 отличается от меньшего из них

Ответы

Ответ дал: bibizyan
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, которая содержит двоечку. Таким образом, либо при постановке задачи допущена ошибка, либо в перечне допустимых вариантов отсутствует правильный ответ.
Вас заинтересует