Нужна с информатикой. треугольник задан координатами своих вершин. программа должна вычислить его площадь, используя подпрограмму вычисления расстояния между двумя точками.
// 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.
// Внимание! Если программа не работает, обновите версию!
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.