triangle

Download Raw Clone


  1. program Triangle;
  2. {Пусть даны координаты трех точек на плоскости. Если они могут быть
  3. вершинами треугольника, определите его вид (прямоугольный, тупоугольный,
  4. остроугольный). Вычислите длины его высот и напечатайте их в порядке убывания.
  5. Козлова М.А.}
  6. {$APPTYPE CONSOLE}
  7. uses
  8. SysUtils,
  9. Windows;
  10. const e=0.00001;
  11. var x1, y1, x2, y2, x3, y3, a, b, c, h1, h2, h3, q, p: real;
  12. begin
  13. SetConsoleCP(1251);
  14. SetConsoleOutPutCP(1251);
  15. writeln('Введите координаты точки А:');
  16. write('x - ');
  17. read(x1);
  18. write('y - ');
  19. readln(y1);
  20. writeln('Введите координаты точки B:');
  21. write('x - ');
  22. read(x2);
  23. write('y - ');
  24. readln(y2);
  25. writeln('Введите координаты точки C:');
  26. write('x - ');
  27. read(x3);
  28. write('y - ');
  29. readln(y3);
  30. // высчитываем длины сторон
  31. a:=sqrt(sqr(x2-x1)+sqr(y2-y1));
  32. b:=sqrt(sqr(x3-x2)+sqr(y3-y2));
  33. c:=sqrt(sqr(x3-x1)+sqr(y3-y1));
  34. // проверяем существование треугольника
  35. if (a+b<=c) or (a+c<=b) or (b+c<=a)
  36. then
  37. writeln('Такого треугольника не существует')
  38. else
  39. // если треугольник существует, располагаем стороны в порядке убывания
  40. begin
  41. if a<b then
  42. begin
  43. q:=a;
  44. a:=b;
  45. b:=q;
  46. end;
  47. if b<c then
  48. begin
  49. q:=c;
  50. c:=b;
  51. b:=q;
  52. end;
  53. if a<b then
  54. begin
  55. q:=a;
  56. a:=b;
  57. b:=q;
  58. end;
  59. // определяем вид треугольника
  60. if (sqr(b)+sqr(c)-sqr(a)>e)
  61. then writeln('Треугольник остроугольный')
  62. else
  63. if ((sqr(a)-sqr(b)-sqr(c))>=e)
  64. then writeln('Треугольник тупоугольный')
  65. else
  66. if (sqr(a)-sqr(b)-sqr(c)<e)
  67. then writeln('Треугольник прямоугольный');
  68. p:=(a+b+c)/2;
  69. // находим высоты треугольника
  70. h1:=2*sqrt(p*(p-a)*(p-b)*(p-c))/a;
  71. h2:=2*sqrt(p*(p-a)*(p-b)*(p-c))/b;
  72. h3:=2*sqrt(p*(p-a)*(p-b)*(p-c))/c;
  73. writeln('Высоты треугольника в порядке убывания: ', h3:0:2, ' ', h2:0:2, ' ', h1:0:2);
  74. end;
  75. readln;
  76. end.

Raw paste data: