Вопрос задан 07.05.2019 в 09:35. Предмет Информатика. Спрашивает Чемезова Таня.

Требовалось написать программу, которая определяет, можно ли построить треугольник из отрезков с

длинами х, у, z. Программа должна выводить соответствующее текстовое сообщение. Программист сделал в программе ошибки. var х, у, z: real; begin readln (x, у, z); if (x + y > z) then begin if (x + z > y) then if (y + z > x) then writeln('треугольник построить можно'); end else writeln('треугольник построить нельзя'); end Последовательно выполните задания: 1. Приведите пример таких чисел х, у, z, при которых программа неверно решает поставленную задачу. 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы (можно указать один из способов доработки исходной программы). 3. Укажите, как можно доработать программу, чтобы она вместо вложенных операторов IF содержала логическую операцию AND. Нужен подробный ответ.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Дедова Дарья.
Если ввести X или Y значительно больше чем Z то программа на втором или тертьем условии выдаст false и закончит свою работу ничего не написав. Например: если указать X = 10 , Y = 2, Z = 3; то на первом условии будет true, потому что 10 +2 > 3 , но на третьем условии выдаст false потому что 2+3 < 10 но так как ничего не прописано на этот случай программа просто закончит свою работу.
Что бы исправить этот баг необходимо все условия свести в одно: 
if ((x + y > z)and (x + z > y) and (y + z > x) ) then 
   writeln('треугольник построить можно')
else  
 writeln('треугольник построить нельзя');
end.
------------------------------------
Это решение так же является ответом на 3-й вопрос.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

1. Пример чисел x, y, z, при которых программа неверно решает поставленную задачу: x = 1, y = 2, z = 10. В данном случае, программа выведет сообщение "треугольник построить можно", хотя треугольник с такими сторонами невозможно построить.

2. Для того чтобы исправить ошибку в программе, нужно изменить условие проверки на возможность построения треугольника. Вместо проверки (x + y > z) нужно проверять (x + y >= z), чтобы учесть случай, когда сумма длин двух сторон равна длине третьей стороны.

3. Для того чтобы использовать логическую операцию AND вместо вложенных операторов IF, можно переписать программу следующим образом:

var x, y, z: real; begin readln(x, y, z); if (x + y >= z) and (x + z >= y) and (y + z >= x) then writeln('треугольник построить можно') else writeln('треугольник построить нельзя'); end

В данном случае, мы используем логическую операцию AND для объединения условий проверки на возможность построения треугольника. Если все три условия выполняются, то программа выводит сообщение "треугольник построить можно", иначе - "треугольник построить нельзя".

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос