IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Affichage de trois tableaux


Sujet :

Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Affichage de trois tableaux
    Bonjour; j'ai un problème
    Je ne sais pas comment utiliser les procédures en programme principal pour afficher trois tableaux de même taille en même temps ?
    Parce que je veux trier un tableau par comptage avec trois tables.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    {cette procedure dessine un tableau de taille "tail"}
    procedure DESSIN(tail:integer);
    var i,k:integer;
      begin
        k:=2;
        gotoxy(1,8);
        write('Ú');
        gotoxy(1,9);
        write('³');
        gotoxy(1,10);
        write('À');
        for i:=1 to tail do
          begin
            gotoxy(k,8);
            write('ÄÄÄÄÄÂ');
            gotoxy(k,9);
            write('     ³');
            gotoxy(k,10);
            write('ÄÄÄÄÄÁ');
            k:=k+6;
          end;
            gotoxy(1+6*tail,8);
            write('¿');
            gotoxy(1+6*tail,9);
            write('³');
            gotoxy(1+6*tail,10);
            write('Ù');
      end;
    {*********procedure ecritab*********}
    procedure ECRITAB(k,tail:integer;t:tab);
    var j,m:integer;
      begin
        gotoxy(1,8);
        clreol;
        gotoxy(1,9);
        clreol;
        gotoxy(1,10);
        clreol;
        DESSIN(tail);
        m:=2;
        for j:=1 to k do
          begin
            gotoxy(m,9);
            write(t[j]);
            m:=m+6;
          end;
      end;
     
    (*±±±±±±±±± PROCEDURE :LIRETAB ±±±±±±±±±±±±±*)
    procedure LIRETAB(var t:tab;var tail:integer);
    var i,k:integer;
        ch:string;
      begin
         k:=2;
         i:=1;
         while i<=tail do
           begin
             gotoxy(k,9);
             read(t[i]);
             str(t[i],ch);
             if length(ch)>5 then
               begin
                 gotoxy(19,15);
                 sound(550);
                 delay(500);
                 nosound;
                 textcolor(9);
                 write('ERREUR! APPUYER SUR ENTREE POUR CORRIGER');
                 readkey;
                 gotoxy(1,14);
                 clreol;
                 textcolor(7);
                 gotoxy(k+5,9);
                 write('³');
                 ECRITAB(i-1,tail,t);
                 i:=i-1;
                 k:=k-6;
               end;
                 i:=i+1;
                 k:=k+6;
           end;
      end;
    Aidez-moi SVP

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 943
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 943
    Points : 5 655
    Points
    5 655
    Par défaut
    Gia,

    Il suffit d'écrire une procédure prenant les 3 tableaux en paramètres.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    slt,voici mon code il s'execute pas le problem est dans affiche_tab mais je nsais pas comment lcorrigé???:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut
    Bonsoir,

    déja première chose, indente ton code s'il te plait

    deuxième chose,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     for x:=1 to n do
     
     t[x]:=t1[x]
    pourquoi copie tu t1 qui est vide et non initialisé, dans t?


    troisième chose, revois un peu tes boucles for, tu as unt ableau unidimensionnel et tu tentes de l'afficher au moyen de deux boucles imbriquées dans lesquelles d'ailleurs ton incrément est modifié hors condition ce qui est tjs préférable de ne pas faire
    Certified Oracle Advanced PL/SQL Professional
    Certified Oracle APEX Expert
    Certified Oracle SQL Expert

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/05/2009, 22h14
  2. aligner trois tableaux sur une même ligne
    Par étoile de mer dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 11/05/2009, 18h25
  3. jQuery/DOM affichage de n tableaux
    Par noobC dans le forum jQuery
    Réponses: 2
    Dernier message: 13/08/2008, 12h21
  4. [PDF] Générer trois tableaux PDF via PHP
    Par fille95 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/06/2008, 10h55
  5. ranger trois tableaux cote a cote
    Par Art19 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/07/2005, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo