program
PointDistance;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, Math;
type
TPoint =
record
X, Y:
Integer
;
end
;
const
NUM_POINTS =
4
;
Points:
Array
[
0..
NUM_POINTS -
1
]
of
TPoint = (
(X:
00
; Y:
02
),
(X:
04
; Y:
02
),
(X:
02
; Y:
01
),
(X:
00
; Y:
00
)
);
procedure
WriteStr(S:
String
);
var
Dst:
Array
[
0..255
]
Of
Char
;
begin
AnsiToOem(
PChar
(S), Dst);
Writeln
(Dst);
end
;
function
FmtInt(X:
Integer
):
String
;
begin
Result := Format(
'%3d'
, [X]);
end
;
function
FmtDbl(X:
Double
):
String
;
begin
Result := Format(
'%5.2f'
, [X]);
end
;
function
CalcDistance(I, J:
Integer
):
Double
;
begin
Result := Sqrt(Sqr(Points[i].X - Points[J].X) + Sqr(Points[i].Y - Points[J].Y));
end
;
var
Distance :
Array
[
0..
NUM_POINTS -
1
,
0..
NUM_POINTS -
2
]
Of
Double
;
i1, i2, J :
Integer
;
begin
for
i1 :=
0
to
NUM_POINTS -
1
do
begin
J :=
0
;
Write
(FmtInt(i1) +
') '
);
for
i2 :=
0
to
NUM_POINTS -
1
do
if
i2 <> i1
then
begin
Distance[i1, J] := CalcDistance(i1, i2);
Write
(FmtInt(i2) +
':'
+ FmtDbl(Distance[i1, J]));
Inc(J);
end
;
Writeln
;
end
;
Writeln
;
WriteStr(
'Нажмите Enter.'
);
Readln;
end
.