fork download
  1. program TriangleSides;
  2.  
  3. uses
  4. SysUtils, Math;
  5.  
  6. type
  7. Point = record
  8. X, Y: Double;
  9. end;
  10.  
  11. function Distance(P1, P2: Point): Double;
  12. begin
  13. Exit(Sqrt(Sqr(P2.X - P1.X) + Sqr(P2.Y - P1.Y)));
  14. end;
  15.  
  16. function IsRightTriangle(a, b, c: Double): Boolean;
  17. begin
  18. Exit(Sqr(a) + Sqr(b) = Sqr(c));
  19. end;
  20.  
  21. procedure SortSides(var a, b, c: Double);
  22. var
  23. temp: Double;
  24. begin
  25. if a > b then
  26. begin
  27. temp := a;
  28. a := b;
  29. b := temp;
  30. end;
  31. if a > c then
  32. begin
  33. temp := a;
  34. a := c;
  35. c := temp;
  36. end;
  37. if b > c then
  38. begin
  39. temp := b;
  40. b := c;
  41. c := temp;
  42. end;
  43. end;
  44.  
  45. var
  46. A, B, C: Point;
  47. AB, BC, AC: Double;
  48. begin
  49. // Ввод координат точек
  50. A.X := 0; A.Y := 0; // Точка A (0, 0)
  51. B.X := 3; B.Y := 4; // Точка B (3, 4)
  52. C.X := 3; C.Y := 0; // Точка C (3, 0)
  53.  
  54. // Вычисление длин отрезков
  55. AB := Distance(A, B);
  56. BC := Distance(B, C);
  57. AC := Distance(A, C);
  58.  
  59. // Упорядочивание длин
  60. SortSides(AB, BC, AC);
  61.  
  62. // Вывод упорядоченных длин сторон
  63. WriteLn('Упорядоченные длины отрезков:');
  64. WriteLn('AB: ', AB:0:2);
  65. WriteLn('BC: ', BC:0:2);
  66. WriteLn('AC: ', AC:0:2);
  67.  
  68. // Проверка на прямоугольный треугольник
  69. if IsRightTriangle(AB, BC, AC) then
  70. WriteLn('Отрезки являются сторонами прямоугольного треугольника.')
  71. else
  72. WriteLn('Отрезки не являются сторонами прямоугольного треугольника.');
  73.  
  74. ReadLn;
  75. end.
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Упорядоченные длины отрезков:
AB: 3.00
BC: 4.00
AC: 5.00
Отрезки являются сторонами прямоугольного треугольника.