Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.70 KB | None | 0 0
  1. #Треугольник
  2.  
  3. from math import sqrt
  4. import sys
  5.  
  6. x1 = int(input('Введите абциссу первой вершины:'))
  7. y1 = int(input('Введите ординату первой вершины:'))
  8.  
  9. x2 = int(input('Введите абциссу второй вершины:'))
  10. y2 = int(input('Введите ординату второй вершины:'))
  11.  
  12. x3 = int(input('Введите абциссу третей вершины:'))
  13. y3 = int(input('Введите ординату третей вершины:'))
  14.  
  15. AB = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
  16. BC = sqrt((x3 - x2) ** 2 + (y3 - y2) ** 2)
  17. AC = sqrt((x3 - x1) ** 2 + (y3 - y1) ** 2)
  18.  
  19. polper = (AB + BC + AC) / 2
  20. surface = sqrt(polper * (polper - AB) * (polper - BC) * (polper - AC))
  21. if surface <= 0:
  22.     print()
  23.     print('Введены некоректные данные, треугольника не существует.')
  24.     print('Перезапустите программу и введите коректные данные.')
  25.     sys.exit()
  26.  
  27. print()
  28. print('AB = {:.4f}'.format(AB))
  29. print('BC = {:.4f}'.format(BC))
  30. print('AC = {:.4f}'.format(AC))
  31.  
  32. max_side = max(AB,BC,AC)
  33. if AB == max_side:
  34.     bis = sqrt(BC * AC * polper * 2 * (BC + AC - AB))/(BC + AC)
  35. if BC == max_side:
  36.     bis = sqrt(AB * AC * polper * 2 * (AB + AC - BC))/(AB + AC)
  37. if AC == max_side:
  38.     bis = sqrt(BC * AB * polper * 2 * (BC + AB - AC))/(BC + AB)
  39.  
  40. print()
  41. print('Биссектриса, проведенная из наибольшего угла = {:.4f}'.format(bis))
  42. print()
  43.  
  44. if AB == BC == AC:
  45.     print('Получившийся треугольник - равносторонний.')
  46.     print()
  47.  
  48. x4 = int(input('Введите абциссу точки:'))
  49. y4 = int(input('Введите ординату точки:'))
  50. print()
  51.  
  52. AM = sqrt((x4 - x1) ** 2 + (y4 - y1) ** 2)
  53. BM = sqrt((x4 - x2) ** 2 + (y4 - y2) ** 2)
  54. CM = sqrt((x4 - x3) ** 2 + (y4 - y3) ** 2)
  55.  
  56. per1 = (AM + BM + AB) / 2
  57. per2 = (BM + CM + BC) / 2
  58. per3 = (AM + CM + AC) / 2
  59.  
  60. surf1 = sqrt(per1 * (per1 - AM) * (per1 - BM) * (per1 - AB))
  61. surf2 = sqrt(per2 * (per2 - BM) * (per2 - CM) * (per2 - BC))
  62. surf3 = sqrt(per3 * (per3 - AM) * (per3 - CM) * (per3 - AC))
  63. print(surf1 + surf2 + surf3,surface)
  64.  
  65. if surface == surf1 + surf2 + surf3:
  66.     height1 = (2 * surf1) / AB
  67.     height2 = (2 * surf2) / BC
  68.     height3 = (2 * surf3) / AC
  69.     min_h = min(height1,height2,height3)
  70.     print('Точка находится внутри треугольника.')
  71.     print('Расстояние от точки до ближайшей стороны = {:.4f}'.format(min_h))
  72. else:
  73.     print('Точка лежит вне заданного треугольника.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement