Tri d'un tableau en pascal

Bonjour,
Bonjour, j'ai un probleme tres difficile , il m'enerve , et en plus aucun de mes colegues possede une solution
svp aidez moi pour resoudre le probleme suivant:

On veut ecrire un programme qui permet de remplir un tablea T par n enties positifs triés dans l'ordre crissant,
puis d'afficher les entiers manquant entre le premier et le dernier element de ce tablea.

example: si n=7 et si T est le tableau suivant:
5 6 8 9 10 12 15
le programme affichera: les entiers manquants sont 7,11,13,14

et MERCI d'avance....

s'il vous plais en lenguage pascal
Configuration: Windows Me!
Firefox 2.0

8 réponses

  1. le tableau est supposé etre trié
    1. salut, j'ai un probléme, je veux savoir comment trier un tableau par selection par la méthode recursive
      1. Voici abir une solution sans tablo a 2 dimensions :
        program ex;
        uses wincrt;
        var i,j,n,x,y:integer;
        T:array[1..100] of integer;
        BEGIN
        repeat
        write('n=');readln(n);
        until (n>=2);
        j:=1;
        repeat
        readln(T[j]);
        until T[j]>=0;
        for i:=2 to n do
        begin
        repeat
        writeln('T[',i,']= ');readln(T[i]);
        until (T[i]>=0) and (T[i]>T[j]);
        j:=i;
        end;

        for i:=1 to n-1 do
        begin
        x:=T[i]; y:=T[i+1];
        while x<>y-1 do
        begin
        write(x+1,' ');
        x:=x+1;
        end;
        end;
        END.
        1. J'ai un probleme, je veux savoir comment l'ordi interprete un tableau en pascal lors d'un programme
          1. Est ce que le tableau est supposé etre trié ou on va se charger de le trier ?
            1. Voici le programme:

              Program ex;

              Uses wincrt;
              Var A:array[1..dim] of integer;
              dim,i,j:integer;
              B:array[1..dim-1] of integer;
              {un tableau dynamique}
              C:Array[1..dim,1,dim-1] of integer;

              Begin:
              write('Donnez le nombre de cases dans le tableau');
              read(dim);
              for i:=1 to dim-1 do
              begin
              read(A[i]);
              B[i]:=A[i+1]-A[i]-1; // on va determiner les espaces entre les cases
              for j:=1 to B[i] do
              begin
              C[i,j]:=A[i]+j; // les nombres manquant entre la case A[i] et A[i+1]
              write(C[i,j]); // afficher les résultats
              end;
              1. solution sans matrice :

                program ex;
                uses wincrt;
                var i,j,n,x,y:integer;
                T:array[1..100] of integer;
                BEGIN
                repeat
                write('n=');readln(n);
                until (n>=2);
                j:=1;
                repeat
                readln(T[j]);
                until T[j]>=0;
                for i:=2 to n do
                begin
                repeat
                writeln('T[',i,']= ');readln(T[i]);
                until (T[i]>=0) and (T[i]>T[j]);
                j:=i;
                end;

                for i:=1 to n-1 do
                begin
                x:=T[i]; y:=T[i+1];
                while x<>y-1 do
                begin
                write(x+1,' ');
                x:=x+1;
                end;
                end;
                END.
            2. Bonjour,
              suivant la logique du programme,quelles modifications dois je apporter pour la fusion de 2 tableaux?