|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Использование функции
На плоскости своими координатами n точек. Создать массив размером n(n-1) , элементами которого явл.расстояние от каждой из точек до n-1 других
|
#2
|
||||
|
||||
Не совсем понял задание, но расстояние между точками определяется по формуле Sqrt(Sqr(X1 - X2) + Sqr(Y1 - Y2))
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#3
|
|||
|
|||
Код:
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. |