PascalABC.NET 3.4.2, сборка 1843 от 24.10.2018
Внимание! Если программа не работает, обновите версию!
type
Pt = record
x, y: real
end;
Res = record
P1, P2: Pt;
L2: real
end;
function L(M1, M2: Pt): Res;
begin
Result.P1 := M1;
Result.P2 := M2;
Result.L2 := Sqr(M2.x - M1.x) + Sqr(M2.y - M1.y)
end;
begin
var M := new Pt[3];
var R := new Res[3];
for var i := 0 to 2 do
Read(M[i].x, M[i].y);
R[0] := L(M[0], M[1]);
R[1] := L(M[0], M[2]);
R[2] := L(M[1], M[2]);
var minr := R.MinBy(t -> t.L2);
var s := $'({minr.P1.x},{minr.P1.y}) и ({minr.P2.x},{minr.P2.y})';
Println('Минимальное расстояние между точками', s)
end.
Пример
-2 1.5 0.5 3 3 -2
Минимальное расстояние между точками (-2,1.5) и (0.5,3)