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. 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. salut, j'ai un probléme, je veux savoir comment trier un tableau par selection par la méthode recursive
        1. J'ai un probleme, je veux savoir comment l'ordi interprete un tableau en pascal lors d'un programme
          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. Bonjour,
              suivant la logique du programme,quelles modifications dois je apporter pour la fusion de 2 tableaux?