Покажите, что приведённая программа не всегда верно определяет максимальное из трёх чисел, записанных в переменные a,b, c.если a>b то M:=a if a>b then M:=a;иначе M:=b всё else M:=b;если c>b то M:=c if c>b then M:=cиначе M:=b всё else M:=b;Приведите контрпример т.е. значения переменных при котором в переменной М будет получен неверный ответ. Как нужно доработать программу чтобы она всегда работала правильно?
По логике программы, переменная M должна будет равна 3, так как a больше b и c. Однако, переменная M будет равна 2, так как после проверки условия c > b, программа присвоит M значение переменной b, а не c.
Для того, чтобы программа всегда правильно определяла максимальное из трёх чисел, необходимо доработать программу следующим образом:
if a > b and a > c then M := a else if b > a and b > c then M := b else M := c
Этот код сначала проверяет, является ли a наибольшим числом, затем b, иначе присваивает значение c переменной M.
Контрпример:
a = 3, b = 2, c = 1
По логике программы, переменная M должна будет равна 3, так как a больше b и c. Однако, переменная M будет равна 2, так как после проверки условия c > b, программа присвоит M значение переменной b, а не c.
Для того, чтобы программа всегда правильно определяла максимальное из трёх чисел, необходимо доработать программу следующим образом:
if a > b and a > c thenM := a
else if b > a and b > c then
M := b
else
M := c
Этот код сначала проверяет, является ли a наибольшим числом, затем b, иначе присваивает значение c переменной M.