Дано 2 треугольника. Координаты вершин с клавиатуры В программе должно быть первая...

0 голосов
19 просмотров

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


Информатика (51 баллов) | 19 просмотров
0

Требование "все выразить через одну переменную"некорректно

0

Разве что только сделать эту переменную типа "запись" с нужной структурой. только кому это надо?

0

Наш учитель информатики задал такое не корректное задание

0

может вы мне поможете написать по остальным требованием

0

чтото подобное мы недавно решали

Дано ответов: 2
0 голосов
Правильный ответ

Конечно, так нормальные люди не пишут, но это ради выполнения корявых требований процедуры и функции.

// 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.

(142k баллов)
0

спасибо за ваше терпение

0 голосов

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.

(53.1k баллов)
0

Извени за мою назойливость но возможно как-то функцию переделать в процедуру. в любом случае спасибо.

0

не вижу как сделать процедуру. не вижу в ней смысла

0

я тоже не вижу

0

но так сказать бесмысленные требования всегда были. За это могут снизить балл.

0

это так называемая "адекватность"

0

но все равно спасибо

0

можно конечно добавить еще процедуру которая например делает вывод длин сторон. это копипаст но лучше чем переделка существующего