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

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

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


Информатика (51 баллов)
оставил комментарий Архангел (142k баллов)

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

оставил комментарий Архангел (142k баллов)

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

оставил комментарий (51 баллов)

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

оставил комментарий (51 баллов)

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

оставил комментарий Доцент (53.1k баллов)

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

Дано ответов: 2
0 голосов
Архангел (142k баллов)
 
Правильный ответ

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

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

оставил комментарий (51 баллов)

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

0 голосов
Доцент (53.1k баллов)

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.

оставил комментарий (51 баллов)

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

оставил комментарий Доцент (53.1k баллов)

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

оставил комментарий (51 баллов)

я тоже не вижу

оставил комментарий (51 баллов)

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

оставил комментарий (51 баллов)

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

оставил комментарий (51 баллов)

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

оставил комментарий Доцент (53.1k баллов)

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

...