Найти длины высот треугольника - Prolog

Узнай цену своей работы

Формулировка задачи:

Что-то не хочет запускаться у меня программа Турбо Пролог. Возможно вина пиратской винды 7. Потому у меня вопрос к знающим. Условие задачи: Длины сторон треугольника а, b, c. Найдите длины Нa,Нb,Нc его высот. Решение. Найдем площадь по формуле Герона p=(a+b+c)/2, s=sqrt(p*(p-a)*(p-b)*(p-c)). И высоты по формулам Ha=2*s/a, Hb=2*s/b, Hc=2*s/c. Тест1 (a=3,b=4,c=5 ответ Ha=4,Hb=3,Hc=2.4) Тест2 (a=5,b=4,c=5 ответ Ha=3.66,Hb=4.58,Hc=3.66)
Листинг программы
  1. predicates
  2. Plosh(integer, integer, integer, integer)
  3. clauses
  4. Plosh(p, a, b, c):-p=(a+b+c)/2.
  5. goal
  6. Plosh(p, 3, 4, 5).
  7. predicates
  8. Plos(integer, integer, integer, integer, integer)
  9. clauses
  10. Plos(s, p, a, b, c):-s=sqrt(p*(p-a)*(p-b)*(p-c)).
  11. goal
  12. Plos(s, p, 5, 4, 5).
  13.  
  14. predicates
  15. vys (integer, integer, integer, integer, integer)
  16. clauses
  17. vys (На, s, a, b, c):- Ha=2*s/a.
  18. vys b, s, a, b, c):- Hb=2*s/b.
  19. vys c, s, a, b, c):- Hc=2*s/c.
  20. goal vys (На, Нb, Hc).

Решение задачи: «Найти длины высот треугольника»

textual
Листинг программы
  1. predicates
  2. area(real, real, real, real)
  3. height(real,real,real)
  4. task(real,real,real)
  5.  
  6. clauses
  7. area(A,B,C,S) :- P=(A+B+C)/2, S=sqrt(P*(P-A)*(P-B)*(P-C)).
  8. height(A,S,H) :- H=2*S/A.
  9. task(A,B,C)    :- A<B+C, B<A+C, C<A+B, area(A,B,C,S),
  10.                        height(A,S,HA), write("Ha="),write(HA),nl,
  11.                        height(B,S,HB), write("Hb="),write(HB),nl,
  12.                        height(C,S,HC), write("Hc="),write(HC),nl.
  13. task(A,B,C)    :- write("Bad data"),nl,fail.
  14.        
  15. goal
  16.  
  17. task(3,4,5).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы