Простите Delphi

Тема в разделе "WASM.BEGINNERS", создана пользователем punxer, 16 дек 2010.

Статус темы:
Закрыта.
  1. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев

    Код (Text):
    1. program Project2;
    2.  
    3. {$APPTYPE CONSOLE}
    4.  
    5. uses
    6.   SysUtils;
    7.  
    8. type
    9.   POINT2D = record
    10.     x : integer;
    11.     y : integer;
    12.   end;
    13.  
    14. var
    15.   points : array[1..5] of POINT2D;
    16.   za : array[1..5] of double;
    17.   minnum: integer;
    18.  
    19. procedure PrintResult (pt : array of POINT2D;z : array of double; min:integer;size:integer);
    20. var
    21.   iter : integer;
    22.   txt : string;
    23. begin
    24.     writeln('Initial Data:');
    25.     for iter:=1 to size do
    26.     begin
    27.  
    28.       writeln(inttostr(pt[iter].x)+';'+inttostr(pt[iter].y));
    29.  
    30.     end;
    31.     writeln('Result Data:');
    32.     for iter:=1 to size do
    33.     begin
    34.       Str(z[iter],txt);
    35.       writeln('Z['+inttostr(iter)+']='+txt);
    36.  
    37.     end;
    38.     writeln('Number='+inttostr(min));
    39.  
    40. end;
    41.  
    42. function GetMin(m : array of double; size : integer) : integer;
    43. var
    44.   cur : integer;
    45.   iter : integer;
    46.   min : double;
    47. begin
    48.   min:=m[1];
    49.   cur:=1;
    50.   for iter:=1 to size do
    51.   begin
    52.      if (m[iter]<min) then
    53.      begin
    54.       min:=m[iter];
    55.       cur:=iter;
    56.      end;
    57.  
    58.   end;
    59. Result:=  cur;
    60.  
    61.  
    62. end;
    63. function GetLength(pt1 : POINT2D; pt2 : POINT2D) : double;
    64. begin
    65.    Result:=sqrt(sqr(pt2.x-pt1.x)+sqr(pt2.y-pt1.y))
    66. end;
    67.  
    68. procedure InitZArray (m : array of POINT2D; out zarray : array of double; size : integer);
    69. var
    70.   iter : integer;
    71.   iter2 : integer;
    72.   t : double;
    73. begin
    74.  
    75.   for iter:=1 to size do
    76.   begin
    77.  
    78.     for iter2:=1 to size do
    79.     begin
    80.       if (iter <> iter2) then
    81.       begin
    82.         t:=  GetLength(m[iter],m[iter2]);
    83.         zarray[iter]:=zarray[iter]+t;
    84.       end;
    85.     end;
    86.  
    87.   end;
    88.  
    89.  
    90. end;
    91.  
    92.  
    93. procedure InitPoints (out m: array of POINT2D;size : integer);
    94. var
    95.   iter : integer;
    96.   t : integer;
    97. begin
    98.   for iter:=1 to size do
    99.   begin
    100.       writeln('X=');
    101.       readln(t);
    102.       m[iter].x:=t;
    103.       writeln('Y=');
    104.       readln(t);
    105.       m[iter].y:=t;
    106.   end;
    107.  
    108. end;
    109.  
    110. begin
    111.     InitPoints( points ,5);
    112.     InitZArray(points,za,5);
    113.     minnum:=GetMin( za,5);
    114.     PrintResult(points,za,minnum,5);;
    115.     readln;
    116. end.
    Получается полная чушь.
    например при вводе 1 2 1 2 1 2 ...
    Ткните где накосячил плиз
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    punxer
    Это что за Паскаль такой албанский? Во-первых, не "out", а "var", во-вторых, чтобы массивы нормально передавались в функции по значению, нужно предварительно определить тип, а в-третьих, "array of ..." стандартом вообще не предусмотрен, а в Delphi такие массивы - динамические, и им перед использованием нужно делать SetLength(нужный_размер). Если речь строго о 5 точках - определяй тип
    Код (Text):
    1. T5Points=array[1..5] of TPoint;
    и его дальше и используй.
     
  3. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    CyberManiac ппц
    Спасибо.
     
  4. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Ну так маньяк же.
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Володя бы вас расстрелял - на форуме по низкоуровневому программированию спрашивать как на форме расположить точки, кнопки и прочую хрень

     
  6. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Я б не расстрелял, но тему бы снёс нафиг без вопросов, хотя сам на ПК пишу на Дельфях. Ибо неча
     
  7. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Ни 3.14здеть была команда! Если дельфи, то сразу нах, а если MFC, то обсосём в подробностях!
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну вот даже тут сральник развели)
     
Статус темы:
Закрыта.