Требовалось записать в переменную М максимальное из трёх чисел, записанных в переменные a, b и с. Программист написал программу так: if a > b: M = a else: M = b if c > b: M = c else: M = b
if a > b (3 > 1): M = a (M = 3, условие сработало - эту ветку выполняем)
else: M = b (условие сработало - эту ветку пропускаем)
if c > b (2 > 1): M = c (M = 2, условие сработало - эту ветку выполняем)
else: M = b (условие сработало - эту ветку пропускаем)
M = 2
if c > M: M = c
a = 3, b = 1, c = 2
if a > b (3 > 1): M = a (M = 3)
else: M = b (условие сработало - эту ветку пропускаем)
if c > M (2 > 3): M = c (условие НЕ сработало - эту ветку пропускаем)
M = 3
Объяснение:
В первой программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают второе и третье число и переменной М присваивают значение большего из них. Если первое и третье число больше второго числа, то программа выдаёт неверный результат.
Во второй программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают третье число и переменную М и переменной М присваивают значение третьего числа, если оно больше. Программа выдаёт верный результат.
a = 3, b = 1, c = 2
if a > b (3 > 1): M = a (M = 3, условие сработало - эту ветку выполняем)
else: M = b (условие сработало - эту ветку пропускаем)
if c > b (2 > 1): M = c (M = 2, условие сработало - эту ветку выполняем)
else: M = b (условие сработало - эту ветку пропускаем)
M = 2
if c > M: M = c
a = 3, b = 1, c = 2
if a > b (3 > 1): M = a (M = 3)
else: M = b (условие сработало - эту ветку пропускаем)
if c > M (2 > 3): M = c (условие НЕ сработало - эту ветку пропускаем)
M = 3
Объяснение:
В первой программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают второе и третье число и переменной М присваивают значение большего из них. Если первое и третье число больше второго числа, то программа выдаёт неверный результат.
Во второй программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают третье число и переменную М и переменной М присваивают значение третьего числа, если оно больше. Программа выдаёт верный результат.