Определить, могут ли заданные точки быть вершинами тупоугольного треугольника - Pascal ABC
Формулировка задачи:
Даны координаты трех точек на плоскости. Если они могут быть вершинами тупоугольного треугольника, то вывести длины его сторон в порядке убывания, иначе выдать соответствующее сообщение.
Решение задачи: «Определить, могут ли заданные точки быть вершинами тупоугольного треугольника»
textual
Листинг программы
function Dlina(x1,y1,x2,y2:real):real; begin Dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2)); end; procedure DlinySt(a,b,c:real;var mx,mn,sr:real); begin mx:=a; if b>mx then mx:=b; if c>mx then mx:=c; mn:=a; if b<mn then mn:=b; if c<mn then mn:=c; sr:=a+b+c-mx-mn; end; var x1,y1,x2,y2,x3,y3,a,b,c,mx,mn,sr:real; begin writeln('Введите координаты вершин треугольника:'); writeln('1->'); readln(x1,y1); writeln('2->'); readln(x2,y2); writeln('3->'); readln(x3,y3); a:=Dlina(x1,y1,x2,y2); b:=Dlina(x1,y1,x3,y3); c:=Dlina(x3,y3,x2,y2); DlinySt(a,b,c,mx,mn,sr); if mn*mn+sr*sr<mx*mx then begin writeln('Это тупоугольный треугольник!'); writeln('Его стороны в порядке убывания ',mx:0:2,' ',sr:0:2,' ',mn:0:2); end else write('Это не тупоугольный треугольник!'); end.
Объяснение кода листинга программы
- Функция Dlina принимает четыре аргумента типа real и вычисляет длину расстояния между двумя точками в пространстве с помощью формулы расстояния между двумя точками в n-мерном пространстве (функция sqr используется для вычисления квадрата расстояния).
- Процедура DlinySt принимает шесть аргументов типа real и две переменные типа real (mx и mn), которые будут использоваться для нахождения медианы треугольника. Сначала находятся наибольшая и наименьшая из трех координат, затем находится сумма всех трех координат, и наконец, находится медиана как значение между вторым и третьим элементами.
- Переменные x1, y1, x2, y2, x3, y3, a, b, c, mx, mn, sr инициализируются значениями, введенными пользователем.
- Вызывается функция Dlina для вычисления длин сторон треугольника.
- Затем вызывается процедура DlinySt, которая находит медиану треугольника, используя значения координат, введенных пользователем.
- В зависимости от результата вычисления длины медианы, выводится сообщение о том, является ли треугольник тупоугольным или нет. Если медиана меньше или равна сумме сторон, то треугольник тупоугольный. Если медиана больше суммы сторон, то треугольник остроугольный.
- Координаты сторон треугольника выводятся в порядке убывания длины.