Guest User

Untitled

a guest
May 18th, 2013
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. program bac2010;
  2. uses wincrt;
  3. type
  4. tab=array[1..10,'A'..'J'] of integer;
  5. mat=array['A'..'J','A'..'J'] of real;
  6. var
  7. n:integer;
  8. t:tab;
  9. i:char;
  10. M:mat;
  11.  
  12. procedure remplir(var T:tab;n:integer);
  13. var
  14. c:char;
  15.  
  16. begin
  17. for c:='A' to chr(n+64) do
  18. begin
  19. writeln('donner X',c);
  20. readln(T[1,c]);
  21. write('donner Y',c);
  22. read(T[2,c]);
  23.  
  24. end;
  25. end;
  26. function distance(T:tab;i,j:char):real;
  27. var
  28. d:real;
  29. begin
  30. d:=sqrt(sqr(T[1,i]-T[1,j])+sqr(T[2,i]-T[2,j]));
  31. distance:=d;
  32. end;
  33.  
  34. function proche(M:mat;i:char;n:integer):char;
  35. var
  36. j:char;
  37. p:real;
  38. begin
  39. p:=M[i,'A'];
  40. for j:='A' to chr(n+65) do
  41. if (j<>i) then
  42. if M[i,j]<p then
  43. begin
  44. p:=M[i,j];
  45. proche:=j;
  46. end;
  47. end;
  48. procedure remplir_M(var M:mat; t:tab; n:integer);
  49.  
  50. var i,j:char;
  51.  
  52. begin
  53. for i:='A' to chr(n+64) do
  54. for j:='A' to chr(n+65) do
  55. if i=j then M[i,j]:=0
  56. else
  57. M[i,j]:=distance(T,i,j);
  58. end;
  59.  
  60.  
  61.  
  62.  
  63.  
  64. begin
  65. repeat read(n) until n in [3..10] ;
  66. remplir(T,n);
  67. remplir_M(M,T,n);
  68. write('Donner un point du tableau');
  69. read(i);
  70. writeln('Le point le plus proche de ',i,' est ', proche(M,i,n));
  71. end.
Advertisement
Add Comment
Please, Sign In to add comment