Posted by : aymen Saturday, 18 January 2014

program application_Tri;
uses wincrt ;
Type
TAB = array[1..100] of integer;
Var
T:TAB;
N,p:integer;

{========== CORPS DE LA PROCEDURE DE TAILLE ===========}
{ UN PEU DE RECURSIVITE POUR LA SAISIE DE N PAS MAL }

procedure taille(Var N: integer);
Begin
read(N);
if NOT (N in [1..100]) then
taille(N);
End;

{========== CORPS DE LA PROCEDURE REMPLISSAGE ===========}


procedure remplissage( var T:TAB ; N:integer) ;
Begin
if (N=1) then  readln(T[1])
else
 Begin
  readln(T[N]);
  remplissage(T,N-1);
 End;
End;

{========== CORPS DE LA PROCEDURE DE TRI ===========}

procedure shell_itr(var t:tab;n:integer);
var
i,j,p,tmp:integer;
begin
p:=1;
while(p<n)do
 p:=3*p+1;
while (p>1) do
begin
 p:=p div 3;
  for i:= p+1 to n do
   begin
    tmp:=t[i];
    j:=i;
    while((j>p) and (tmp<t[j-p])) do
     begin
      t[j]:=t[j-p];
      j:=j-p;
     end;
     t[j]:=tmp;
    end;
 end;
end;
{========== CORPS DE LA PROCEDURE AFFICHAGE ===========}

procedure affichage( T:TAB ; N:integer);
var
i:integer;
Begin
for i:=1 to  N  do
write(T[i],' | ');
End;

{========== CORPS DE PROGRAMME PRINCIPAL ===========}

Begin
write('quelle est la taille de votre tableau ? .........: ');
taille(N);
writeln('commencer à remplir le tableau :');
remplissage(T,N);
{clrscr;  }
writeln('Contenu du tableau AVANT le TRI ');
affichage(T,N);
p:=0;
while (p<=N) do
p:=3*P+1;
shell_itr(t,n);
writeln;
writeln('Contenu du tableau APRES le TRI ');
affichage(T,N);
End.


Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog
Blogger Tips and TricksLatest Tips For BloggersBlogger Tricks
Blogger Tricks

Popular Post

Blogger templates

إتصل بنا

Aymen Jaballi : 27380474
Sofiane Ben Khemis : 23656535

Labels

Notice: Undefined variable: code_pub_serv in /home/webestools/www/page/gen_iphost.php on line 20

Blogger news

Powered by Blogger.

Wikipedia

Search results

Translate

من أنا

Featured Posts

- Copyright © BAC INFO DJERBA --- - Designed by sofiane ben khemis and aymen jaballi -