Дано 2 треугольника. Координаты вершин с клавиатуры В программе должно быть первая процедура, вторая функция.В процедуре должно считать стороны треугольников(по формуле нахождение сторон через координаты), всё это должно быть в...
Дано 2 треугольника. Координаты вершин с клавиатуры В программе должно быть первая процедура, вторая функция.В процедуре должно считать стороны треугольников(по формуле нахождение сторон через координаты), всё это должно быть выражено через одну переменную!!! (не знаю в цикле это как то чтоб через одну переменную и по двум точкам находить все стороны треугольников) в функции периметры треугольников. В программе сумму периметров. Помогите плиз.
Ответ(ы) на вопрос:
Гость
var
p: real;
a1, b1, c1: real;
a2, b2, c2: real;
function SideLength(a1, a2, b1, b2: real): real;
begin
SideLength := sqrt(sqr(a1 - b1) + sqr(a2 - b2));
end;
function Perimeter(a1, a2, b1, b2, c1, c2: real): real;
var
a, b, c: real;
begin
a := SideLength(a1, a2, b1, b2);
b := SideLength(c1, c2, b1, b2);
c := SideLength(a1, a2, c1, c2);
Perimeter := a + b + c;
end;
begin
writeln('Первый треугольник.');
readln(a1, a2, b1, b2, c1, c2);
p := Perimeter(a1, a2, b1, b2, c1, c2);
writeln('Второй треугольник.');
readln(a1, a2, b1, b2, c1, c2);
writeln(p + Perimeter(a1, a2, b1, b2, c1, c2));
end.
Гость
Конечно, так нормальные люди не пишут, но это ради выполнения корявых требований процедуры и функции.
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
Point=record
x,y:real
end;
function Len(A,B:Point):=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y));
procedure Sides(A,B,C:Point; var la,lb,lc:real);
begin
la:=Len(B,C); lb:=Len(A,C); lc:=Len(A,B)
end;
function Perim(a,b,c:real):=a+b+c;
begin
var a,b,c:Point;
var l1,l2,l3:real;
for var i:=1 to 2 do begin
Writeln('Вводите парами координаты каждой вершины треугольника;');
Read(a.x,a.y,b.x,b.y,c.x,c.y);
Sides(a,b,c,l1,l2,l3);
Writeln('Периметр треугольника ',Perim(l1,l2,l3))
end
end.
Не нашли ответ?
Похожие вопросы