SHARE
TWEET

Untitled

a guest Sep 21st, 2019 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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('Точка лежит вне заданного треугольника.')
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top