Если ввести 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-й вопрос.
7
Объяснение:
k = 1 dat[1] = 12 12 > 12 (НЕТ) m = 0
k = 2 dat[2] = 15 15 > 12 (ДА) m = 1
k = 3 dat[3] = 17 17 > 12 (ДА) m = 2
k = 4 dat[4] = 15 15 > 12 (ДА) m = 3
k = 5 dat[5] = 14 14 > 12 (ДА) m = 4
k = 6 dat[6] = 12 12 > 12 (НЕТ) m = 4
k = 7 dat[7] = 10 10 > 12 (НЕТ) m = 4
k = 8 dat[8] = 13 13 > 12 (ДА) m = 5
k = 9 dat[9] = 14 14 > 12 (ДА) m = 6
k = 10 dat[10] = 15 15 > 12 (ДА) m = 7