
14.12.2007, 07:59
|
Активный
|
|
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
|
|
Код:
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;
//------------------------------------------------------------------------------
// Вычисление расстояния между двумя точками в позициях I и J
//------------------------------------------------------------------------------
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.
|