M1RAI

BAC2010_distance_points

May 22nd, 2020
1,489
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program distance_points;
  2. uses wincrt;
  3. type
  4. cord = RECORD
  5. x,y:byte;
  6. end;
  7. TAB = array ['A'..'J'] of cord;
  8. MAT = array ['A'..'J','A'..'J'] of real;
  9. var
  10. n:byte;
  11. T:TAB;
  12. M:MAT;
  13. procedure saisie(var n:byte);
  14. begin
  15.         repeat
  16.                  write('n=');
  17.                  readln(n);
  18.         Until  n in [3..10];
  19. end;
  20.  
  21. procedure remp(var T:TAB; n:byte);
  22. var i: Char;
  23. begin
  24.         for i:= 'A' to chr(64+n) do
  25.         begin
  26.                 write('saisir x',i,' = ');
  27.                 readln(T[i].x);
  28.                 write('saisir y',i,' = ');
  29.                 readln(T[i].y);
  30.         end;
  31. end;
  32.  
  33.  
  34.  
  35.  
  36. Procedure rempm (var M:MAT; T:TAB;n:byte);
  37. var l,c:char;
  38. begin
  39.         for l:='A' to chr(64+n) do
  40.         begin
  41.                     M[l,l]:=0;
  42.                     for c:='A' to chr(64+n) do
  43.                     begin
  44.                             M[l,c]:= sqrt(sqr(T[l].x-T[c].x) + sqr(T[l].y-T[c].y));
  45.                     end;
  46.         end;
  47.        
  48.        
  49. end;
  50.  
  51. procedure affiche(M:MAT;n:byte);
  52. var l,c:char;
  53. begin
  54.         for l:='A' to  chr(64+n) do
  55.         begin
  56.             for c:='A' to chr(64+n) do
  57.                 write(M[l,c]:2:3,'    ');
  58.             writeln;
  59.         end;
  60. end;
  61.  
  62. procedure proche (M:MAT);
  63. var k,i,x:char;
  64. begin
  65.         write('saisir le nom d une point : ');
  66.         readln(k);
  67.         for i :='A' to chr(64+n) do
  68.         begin
  69.                  x:='A';
  70.                  if (M[k,i] < M[k,x]) AND (M[k,i] <> 0) then x:=i;
  71.         end;
  72.         write('Le point le plus proche est : ', x);
  73. end;
  74.  
  75.  
  76. begin
  77.         saisie(n);
  78.         remp(T,n);
  79.         rempm(M,T,n);
  80.         affiche(M,n);
  81.         proche(m);
  82. end.
RAW Paste Data