// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!
begin
var d:(real,real,real,real)->real:=
(x1,y1,x2,y2)->Sqrt(Sqr(x2-x1)+Sqr(y2-y1));
var (x1,y1):=ReadReal2('Введите координаты 1-й точки:');
var (x2,y2):=ReadReal2('Введите координаты 2-й точки:');
var (x3,y3):=ReadReal2('Введите координаты 3-й точки:');
var a:=d(x1,y1,x2,y2);
var b:=d(x2,y2,x3,y3);
var c:=d(x1,y1,x3,y3);
if (a+b>c) and (a+c>b) and (b+c>a) then begin
var p:=(a+b+c)/2;
var s:=Sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('S = ',s)
end
else
Writeln('Невозможно построить треугольник')
end.
Пример
Введите координаты 1-й точки: -2.5 1.6
Введите координаты 2-й точки: 5.2 4
Введите координаты 3-й точки: 1 -1
S = 14.21
Pascal ABC, Free Pascal
var
x1,y1,x2,y2,x3,y3,a,b,c,p,s:real;
function d(x1,y1,x2,y2:real):real;
begin
d:=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))
end;
begin
Write('Введите координаты 1-й точки:'); Read(x1,y1);
Write('Введите координаты 2-й точки:'); Read(x2,y2);
Write('Введите координаты 3-й точки:'); Read(x3,y3);
a:=d(x1,y1,x2,y2);
b:=d(x2,y2,x3,y3);
c:=d(x1,y1,x3,y3);
if (a+b>c) and (a+c>b) and (b+c>a) then begin
p:=(a+b+c)/2;
s:=Sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('S = ',s)
end
else
Writeln('Невозможно построить треугольник')
end.
С процедурой:
var
x1,y1,x2,y2,x3,y3,a,b,c,p,s:real;
procedure d(x1,y1,x2,y2:real; var r:real);
begin
r:=Sqrt(Sqr(x2-x1)+Sqr(y2-y1))
end;
begin
Write('Введите координаты 1-й точки:'); Read(x1,y1);
Write('Введите координаты 2-й точки:'); Read(x2,y2);
Write('Введите координаты 3-й точки:'); Read(x3,y3);
d(x1,y1,x2,y2,a);
d(x2,y2,x3,y3,b);
d(x1,y1,x3,y3,c);
if (a+b>c) and (a+c>b) and (b+c>a) then begin
p:=(a+b+c)/2;
s:=Sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('S = ',s)
end
else
Writeln('Невозможно построить треугольник')
end.