Advertisement
MarMar_IV

Body v rovine

Jun 10th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.65 KB | None | 0 0
  1. type
  2.   TZaznam = class(TObject)  //trida TZaznam
  3.     bod1_index: Integer;
  4.     bod2_index: Integer;
  5.     vzdalenost: Double;    
  6.   end;
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. procedure blablabla();
  19. var
  20.   input: array of TPoint;
  21.   I,J : Integer;
  22.  
  23.   bod1, bod2: TPoint;
  24.   temp_vzdalenost: Double;
  25.  
  26.   temp_zaznam: TZaznam;
  27.   zaznamy: array of TZaznam;
  28.   zaznamIndex: Integer;
  29.  
  30.   minimum: Double;
  31.   minimumIndex: Integer;
  32. begin
  33.   SetLength(input, 4);
  34.   input[0] := Point(1, 1);
  35.   input[1] := Point(1, 6);
  36.   input[2] := Point(2, 3);
  37.   input[3] := Point(5, 1);
  38.  
  39.   zaznamIndex := 0;
  40.   SetLength(zaznamy, (Length(input)*Length(input)));
  41.   for I := 0 to Length(input) do begin
  42.     for J := I to Length(input) do begin    
  43.       if(I<>J)then begin
  44.         bod1 := input[I];
  45.         bod2 := input[J];
  46.  
  47.         temp_vzdalenost := Sqrt(Sqr(bod1.X-bod2.X)+Sqr(bod1.Y-bod2.Y));
  48.  
  49.         temp_zaznam := TZaznam.Create;
  50.         temp_zaznam.bod1_index := I;
  51.         temp_zaznam.bod2_index := J;        
  52.         temp_zaznam.vzdalenost := temp_vzdalenost;
  53.  
  54.         zaznamy[zaznamIndex] := temp_zaznam;
  55.         Inc(zaznamIndex);
  56.       end;
  57.     end;
  58.   end;
  59.  
  60.   minimum := 0;
  61.   minimumIndex := -1;
  62.   for I := 0 to Length(zaznamy) do begin
  63.     temp_zaznam := zaznamy[I];
  64.     if(temp_zaznam<>nil)then begin
  65.       if(temp_zaznam.vzdalenost>minimum)then begin
  66.         minimum := temp_zaznam.vzdalenost;
  67.         minimumIndex := I;
  68.       end;
  69.     end;
  70.   end;
  71.  
  72.   if(minimumIndex>-1)then begin
  73.     temp_zaznam := zaznamy[minimumIndex];
  74.     ShowMessage(IntToStr(temp_zaznam.bod1_index)+', '+IntToStr(temp_zaznam.bod2_index)+' - '+FloatToStr(temp_zaznam.vzdalenost));
  75.   end;
  76. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement