СРОЧНО!!! Заранее, спасибо) напишите функцию, вычисляющую длину отрезка по коорди?
СРОЧНО!!! Заранее, спасибо)
напишите функцию, вычисляющую длину отрезка по коорди??атам его концов. С помощью этой функции напишите программу, вычисляющую периметр треугольника по координатам его вершин
Ответ(ы) на вопрос:
Гость
1. Современное короткое, но скорее всего, мало понятное школьнику решение
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
function LineLen(a,b:(real,real)):=
Sqrt(Sqr(b.Item1-a.Item1)+Sqr(b.Item2-a.Item2));
begin
var a:array[1..3] of (real,real);
var x,y:real;
Writeln('Введите три пары координат x,y');
for var i:=1 to 3 do begin Read(x,y); a[i]:=(x,y) end;
Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+
LineLen(a[1],a[3])+LineLen(a[2],a[3]))
end.
Тестовое решение:
Введите три пары координат x,y
3 -3.5 -6 8 4 5.2
Периметр треугольника равен 33.7449685386805
2. Традиционное, но возможно тоже не очень понятное школьнику решение
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
type
Point=record
x,y:real
end;
function LineLen(a,b:Point):real;
begin
Result:=Sqrt(Sqr(b.x-a.x)+Sqr(b.y-a.y));
end;
var
a:array[1..3] of Point;
begin
Writeln('Введите три пары координат x,y');
for var i:=1 to 3 do Read(a[i].x,a[i].y);
Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+
LineLen(a[1],a[3])+LineLen(a[2],a[3]))
end.
Не нашли ответ?
Похожие вопросы