Дано 2 треугольника. координаты вершин с клавиатуры в программе должно быть первая процедура, вторая функция.в процедуре должно считать стороны треугольников(по формуле нахождение сторон через координаты), всё это должно быть выражено через одну ! (не знаю в цикле это как то чтоб через одну переменную и по двум точкам находить все стороны треугольников) в функции периметры треугольников. в программе сумму периметров. .

mandarin50 mandarin50    3   30.07.2019 07:00    0

Ответы
amid69 amid69  03.10.2020 17:14
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.
ПОКАЗАТЬ ОТВЕТЫ
7773530 7773530  03.10.2020 17:14
Конечно, так нормальные люди не пишут, но это ради выполнения корявых требований процедуры и функции.

// 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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика