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

nik667755mm nik667755mm    3   27.08.2019 20:30    0

Ответы
Maxguvci Maxguvci  09.09.2020 09:46
ответ: Определяет наибольший общий делитель
Пример 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
ПОКАЗАТЬ ОТВЕТЫ
kall4 kall4  09.09.2020 09:46
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, которая содержит двоечку. Таким образом, либо при постановке задачи допущена ошибка, либо в перечне допустимых вариантов отсутствует правильный ответ.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика