Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program distance_points;
- uses wincrt;
- type
- cord = RECORD
- x,y:byte;
- end;
- TAB = array ['A'..'J'] of cord;
- MAT = array ['A'..'J','A'..'J'] of real;
- var
- n:byte;
- T:TAB;
- M:MAT;
- procedure saisie(var n:byte);
- begin
- repeat
- write('n=');
- readln(n);
- Until n in [3..10];
- end;
- procedure remp(var T:TAB; n:byte);
- var i: Char;
- begin
- for i:= 'A' to chr(64+n) do
- begin
- write('saisir x',i,' = ');
- readln(T[i].x);
- write('saisir y',i,' = ');
- readln(T[i].y);
- end;
- end;
- Procedure rempm (var M:MAT; T:TAB;n:byte);
- var l,c:char;
- begin
- for l:='A' to chr(64+n) do
- begin
- M[l,l]:=0;
- for c:='A' to chr(64+n) do
- begin
- M[l,c]:= sqrt(sqr(T[l].x-T[c].x) + sqr(T[l].y-T[c].y));
- end;
- end;
- end;
- procedure affiche(M:MAT;n:byte);
- var l,c:char;
- begin
- for l:='A' to chr(64+n) do
- begin
- for c:='A' to chr(64+n) do
- write(M[l,c]:2:3,' ');
- writeln;
- end;
- end;
- procedure proche (M:MAT);
- var k,i,x:char;
- begin
- write('saisir le nom d une point : ');
- readln(k);
- for i :='A' to chr(64+n) do
- begin
- x:='A';
- if (M[k,i] < M[k,x]) AND (M[k,i] <> 0) then x:=i;
- end;
- write('Le point le plus proche est : ', x);
- end;
- begin
- saisie(n);
- remp(T,n);
- rempm(M,T,n);
- affiche(M,n);
- proche(m);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement