Консультация № 136470
12.05.2008, 13:53
0.00 руб.
0 1 1
Вычислить площадь треугольника по координатам его вершин

Обсуждение

Неизвестный
12.05.2008, 14:13
общий
это ответ
Здравствуйте, Cobain!

Программа в приложении. Комментарии по ходу программы подскажут, что к чему.

Приложение:
{ Нахождение площади треугольника по известным координатам его вершин }Program Pr135680_2; Uses CRT; { Формула Герона } function Gerone(a, b, c: Real): Real; var p: Real; begin p := (a + b + c) / 2; { полупериметр } Gerone := Sqrt(p * (p - a) * (p - b) * (p - c)); end; { новый тип - для вершин треугольника } type TPixel = record x, y: Real; end; { Процедура ввода вершины треугольника (как обычной точки), выводящая подсказки для пользователя } Procedure PixelInput(PixelName: String; var Pixel: TPixel); begin if PixelName <> ‘‘ then WriteLn(‘Введите точку ‘, PixelName, ‘:‘); Write(‘ x = ‘); ReadLn(Pixel.x); Write(‘ y = ‘); ReadLn(Pixel.y); end; { Расчёт длины отрезка (стороны треугольника) по известным вершинам концов } function SideLen(p1, p2: TPixel): Real; begin SideLen := Sqrt(SQR(p2.x - p1.x) + SQR(p2.y - p1.y)); end; var Pa, Pb, Pc: TPixel; a, b, c, S: Real;Begin ClrScr; PixelInput(‘A‘, Pa); PixelInput(‘B‘, Pb); PixelInput(‘C‘, Pc); WriteLn; a := SideLen(Pb, Pc); b := SideLen(Pa, Pc); c := SideLen(Pa, Pb); S := Gerone(a, b, c); Write(‘Площадь треугольника равна ‘); { Если площадь невелика, выводим её в привычном виде } if S < 10000 then WriteLn(S:10:5) else WriteLn(S); ReadLn;End.
Форма ответа