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 :

Afficher un histogramme


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Afficher un histogramme
    Salut les amis ;p.
    Je veux créer un programme qui lie 3 entiers puis affiche un histogramme
    Exemple:
    x1=2
    x2=6
    x3=1
    Le programme affiche

    *B*
    *B*
    *B*
    *B*
    AB*
    ABC


    Aidez moi SVP
    voila mon code source, je crois qu'il marche mais je ne sais pas ou est le problème


    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
    program ex1;
    uses wincrt;
    var
    x1,x2,x3,i,j,max:integer;
    tab:array[1..50,1..50]of char;
     
    begin
    writeln('Saisir X1');
    readln(x1);
    writeln('Saisir X2');
    readln(x2);
    writeln('Saisir X3');
    readln(x3);
    max:=x1;
    if  x2>max then
    max:=x2
    else
    if x3>max then
    max:=x3;
     
    for i:= 1 to 3 do
    begin
    for j:= 1 to max do
    begin
    tab[j,i]:='*'
    end;
    end;
     
    for i:= max to 1 do
    begin
    if X1>0 then
    Tab[i,1]:='A';
    X1:=x1-1
    end ;
     
    for i:= max to 1 do
    if X2>0 then
    Tab[i,2]:='B';
    x2:=x2-1 ;
     
     
    for i:= max to 1 do
    if X3>0 then
    Tab[i,3]:='C';
    x3:=x3-1;}
     
    for i := 1 to max do
    begin
    for j := 1 to 3 do
    begin
    write(tab[i,j])
    end;
    writeln
     
    end;
    end.
    Le probable a mon avis c'est dans le boucle pour

    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
    program ex1;
    uses wincrt;
    var
    x1,x2,x3,i,j,max:integer;
    tab:array[1..50,1..50]of char;
     
    begin
    writeln('Saisir X1');
    readln(x1);
    writeln('Saisir X2');
    readln(x2);
    writeln('Saisir X3');
    readln(x3);
    max:=x1;
    if  x2>max then
    max:=x2
    else
    if x3>max then
    max:=x3;
     
    for i:= 1 to 3 do
    begin
    for j:= 1 to max do
    begin
    tab[j,i]:=' '
    end;
    end;
     
    for i:= max to 1 do
    begin
    if X1>0 then
    Tab[i,1]:='A';
    X1:=x1-1
    end ;
     
    for i:= max to 1 do
    if X2>0 then
    Tab[i,2]:='B';
    x2:=x2-1 ;
     
     
    for i:= max to 1 do
    if X3>0 then
    Tab[i,3]:='C';
    x3:=x3-1;}
     
    for i := 1 to max do
    begin
    for j := 1 to 3 do
    begin
    write(tab[i,j])
    end;
    writeln
     
    end;
    end.
    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Re, j'ai corriger mon code source maintenant il marche 100% j'ai changer le boucle pour avec un boucle répéter voila mon code source:

    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
    program ex1;
    uses wincrt;
    var
    x1,x2,x3,i,j,max:integer;
    tab:array[1..50,1..50]of char;
     
    begin
    writeln('Saisir X1');
    readln(x1);
    writeln('Saisir X2');
    readln(x2);
    writeln('Saisir X3');
    readln(x3);
    max:=x1;
    if  x2>max then
    max:=x2
    else
    if x3>max then
    max:=x3;
     
    for i:= 1 to 3 do
    begin
    for j:= 1 to max do
    begin
    tab[j,i]:=' '
    end;
    end;
     
    i:=max;
    repeat
    tab[i,1]:='A';
    x1:=x1-1;
    i:=i-1;
    until x1<=0 ;
    i:=max;
    repeat
    tab[i,2]:='B';
    x2:=x2-1;
    i:=i-1;
    until x2<=0 ;
     
    i:=max;
    repeat
    tab[i,3]:='C';
    x3:=x3-1;
    i:=i-1;
    until x3<=0 ;
     
    for i := 1 to max do
    begin
    for j := 1 to 3 do
    begin
    write(tab[i,j])
    end;
    writeln
     
    end;
    end.

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 951
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 951
    Points : 5 671
    Points
    5 671
    Par défaut
    Hie,

    On y revient encore et toujours : penser à la présentation du code (indentation régulière et cohérente, aérer avec des lignes vides pour séparer les blocs de code, commentaires...)

    Exemple avec ton code, j'ai seulement indenté et ajouté quelques lignes vides :
    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
    program ex1;
     
    uses wincrt;
     
    var
      x1, x2, x3, i, j, Max : integer;
      tab : array[1..50,1..50] of char;
     
    begin
      Writeln('Saisir X1');
      Readln(x1);
      Writeln('Saisir X2');
      Readln(x2);
      Writeln('Saisir X3');
      Readln(x3);
      Max := x1;
      if x2 > Max then
        Max := x2
      else if x3 > Max then
        Max := x3;
     
      for i := 1 to 3 do
      begin
        for j := 1 to Max do
        begin
          tab[j, i] := ' '
        end;
      end;
     
      i := Max;
      repeat
        tab[i, 1] := 'A';
        x1 := x1 - 1;
        i := i - 1;
      until x1 <= 0;
     
      i := Max;
      repeat
        tab[i, 2] := 'B';
        x2 := x2 - 1;
        i := i - 1;
      until x2 <= 0;
     
      i := Max;
      repeat
        tab[i, 3] := 'C';
        x3 := x3 - 1;
        i := i - 1;
      until x3 <= 0;
     
      for i := 1 to Max do
      begin
        for j := 1 to 3 do
        begin
          Write(tab[i, j])
        end;
        Writeln
      end;
     
    end.
    C'est tout de même plus clair à lire, non ?

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci ami

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quoi utiliser afin de créer et afficher des histogrammes ?
    Par shadock0 dans le forum Général Python
    Réponses: 3
    Dernier message: 31/10/2012, 14h29
  2. [JpGraph] afficher un histogramme depuis une BDD MySQL
    Par soufiyan dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/06/2012, 22h59
  3. Afficher un histogramme dans un fenêtre
    Par jean_eudes dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 21/07/2009, 04h59
  4. [Oracle] afficher un histogramme
    Par apersonnat dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/07/2009, 16h32
  5. [débutant] afficher un histogramme
    Par apersonnat dans le forum Débuter
    Réponses: 2
    Dernier message: 03/07/2009, 20h29

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