1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
   |  
program exo87;
uses crt,graph,dos;
type tab=array[1..1000]of longint;
var t,c,r:tab;
      taille:integer;
 procedure lect1d(var t:tab; taille: integer);
var i: integer; 
begin 
    for i:=1 to taille do 
        begin 
 
            read(t[i]);
        end; 
end; 
procedure affiche_tab(t:tab;n:integer);
 
var  x :integer;
     t1:tab;
begin
readln(n);
for x:=1 to n do
 
 t[x]:=t1[x];
(* affich le tableaux *)
textcolor(white);
write(#218);
for x:=1 to (n-1) do
write (#196#196#196#194);
write (#196#196#196#191);
writeln;
write(#179);
for x:=1 to n do
write('   ',#179);
writeln;
write (#179);
for x:=1 to n-1 do
begin
for x:=1 to n do
begin
textcolor(red);
write (t[x]:3);
textcolor(white);
write (#179)
end;
writeln;
write (#195);
for x:=1 to (n-1) do
write (#196#196#196#197);
write (#196#196#196#180);
writeln;
readln;
end;
end;
 
 
 
 
procedure permut(t:tab;n:integer;a,b:integer);
    var i:integer;
    begin
    for i:=1 to n do
    t[i]:=a;
    a:=b;
    b:=t[i];
    end;
procedure get_cpt(t:tab;n:integer;var tc:tab);
 var i,cpt,j:integer;
 begin
     for i:=1 to n do
     begin
     cpt:=0;
     for j:=1 to n do
     begin
        if t[i]>t[j] then
         begin
           cpt:=cpt+1;
         end;
     end;
     tc[i]:=cpt;
    end;
 end;
 procedure tri_comp(var t,tc:tab;n:integer);
 var i,j:integer;
 begin
 for i:=1 to n do
   begin
   for j:=1 to n do  begin
      if tc[j]=i-1 then
      begin
      permut(t,n,t[j],t[i]);
      permut(tc,n,tc[j],tc[i]);
      end;
      end;
      end;
      end;
 
procedure tri3tab(t,tc:tab;n:integer;var tr:tab);
var i,p:integer;
begin
  for i:=1 to n do
     begin
        p:=tc[i];
        tr[p+1]:=t[i];
     end;
end;
begin
writeln('donner la taille du tableau');
readln(taille);
lect1d(t,taille);
affiche_tab(t,taille);
get_cpt(t,taille,c);
affiche_tab(c,taille);
tri_comp(t,c,taille);
tri3tab(t,c,taille,r);
affiche_tab(r,taille);
end. | 
Partager