Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program tri_mat;
- uses WinCrt;
- type
- MAT=array [1..200,1..200] of integer;
- var
- M:mat;
- sl,sc:integer;
- OK:Boolean;
- {***************SAISIE************}
- Procedure saisie(var x:integer);
- begin
- repeat
- write('x=');
- readln(x);
- until ((x>=1) AND (x<=200));
- end;
- {************REMPLISSAGE************}
- procedure remp (var M:mat ; sl,sc:integer);
- var l,c:integer;
- begin
- for l:=1 to sl do
- for c:=1 to sc do
- begin
- repeat
- write('donner un entier entre 1 et 5000: ');
- readln(M[l,c]);
- until ((M[l,c] >= 1) AND (M[l,c] <= 5000));
- end;
- writeln;
- end;
- {************AFFICHAGE**************}
- procedure aff(M:mat ; sl,sc:integer);
- var l,c:integer;
- begin
- for l:=1 to sl do
- begin
- for c:=1 to sc do
- begin
- write(M[l,c],' ');
- end;
- writeln;
- end;
- end;
- {******************* PERMUTATION*****************}
- Procedure permut(x1,x2:integer);
- var aux:integer;
- begin
- aux:=x1;
- x1:=x2;
- x2:=aux;
- end;
- {****************TRI D'UNE LIGNE*****************}
- procedure tril( VAR M:mat; l,sc:integer);
- var c:integer; V:Boolean;
- begin
- repeat
- V:=TRUE;
- for c:=1 to sc-1 do
- begin
- if (M[l,c] > M[l,c+1]) then
- begin
- permut(M[l,c],M[l,c+1]);
- v:=False;
- end;
- end;
- sc:=sc-1;
- until V;
- end;
- {******************TRI D'UNE COLONNE*****************}
- procedure TRIC (var M:mat ; c,sl:integer);
- var l:integer; V:Boolean;
- begin
- repeat
- V:=true;
- for l:=1 to sl-1 do
- begin
- if (M[l,c]>M[l+1,c]) then
- begin
- permut(M[l,c],M[l+1,c]);
- V:=FalsE;
- end;
- end;
- sl:=sl-1;
- until V;
- end;
- {***************TRI DES EXTREMITES****************}
- Procedure trixt(var m:mat;sl:integer;var ok:Boolean );
- var i:integer;
- begin
- ok:=true;
- for i:=1 to sl do
- begin
- if (M[i,sc] > M[i+1,1]) then
- Begin
- permut(M[i,sc],M[i+1,1]);
- OK:=false;
- end;
- end;
- end;
- {*******************TRI*******************}
- Procedure TRI(var M:mat; sl,sc:integer);
- var l,c:integer; OK:Boolean;
- begin
- repeat
- for l:=1 to sl do
- begin
- tril(M,l,sc);
- for c:=1 to sc do
- begin
- tric(M,c,sl);
- end;
- end;
- trixt(m,sl,ok);
- until ok;
- end;
- {*****************PP**************}
- begin
- saisie(sl);
- saisie(sc);
- remp(m,sl,sc);
- writeln('Matrice Initiale');
- aff(m,sl,sc);
- TRI(M,sl,sc);
- writeln('Matrice Trié');
- aff(m,sl,sc);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement