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 :

Addition du nombre d'apparitions d'un chiffre dans un tableau


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Addition du nombre d'apparitions d'un chiffre dans un tableau
    Bonjour,

    j'ai un petit problème de calcul.

    je veut savoir combien de fois le nombre x apparait dans mon tableau, mais je fais une erreur a un endroit dans mon programme.
    si quelqu'un peut m'aider et commenter si possible mais erreurs cela serait grandement apprécier car je débute en programmation et je veut savoir ce que je fait.

    Présentement tableau apparait 10X10 et il me dit:
    Il y a 0 nombre1
    ""
    ""
    ""
    Il y a 0 nombre 8.

    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
    program Tableau;
     
    type
      tab1=array [1..10, 1..10] OF integer ; //10 lignes= i, 10 colonnes= j
      tab2=array [1..8] of integer;  //classer nombre
    var
      b,c,d,e,f,g,h,j,k,n:integer;
      a:tab1;
      i:tab2;
    begin
     
     randomize;
      for d:=1 to 10 do
        begin
          for e:=1 to 10 do
            begin
    	           k:=random(8)+1;
                 a[d,e]:=k;       // k = valeur de l'élément du tableau
                  write(a[d,e],' ');
                   end;
                      writeln; // retour a la ligne pour faire la boucle des 10 lignes
                        end;
                          read;
                  begin
                       i[1]:=0; i[2]:=0; i[3]:=0; i[4]:=0;
                        i[5]:=0; i[6]:=0; i[7]:=0; i[8]:=0;      // chaque nombre commence à 0
                         i[k]:=n;
                          n:=n+1;
                    end;
     
                        for j:= 1 to 8 do
                          begin
                                f:=f+1;
                                 writeln('Il y a ',i[n],' nombre ',f);
     
                                   end;
                                      readln;
     
    end.
    Merci

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Salut,
    Pense à mettre la balise code pour la presentation et merci de bien identer 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
     
    program Tableau;
     
     type
          tab1=array [1..10, 1..10] of integer ;  
          tab2=array [1..8] of integer;  
     var
         b,c,d,e,f,g,h,j,k,n:integer;
         a:tab1;
         i:tab2;
    begin
     
    randomize;
     
    for d:=1 to 10 do
     begin
      for e:=1 to 10 do
       begin
        a[d,e]:=random(8)+1; 
        write(a[d,e],' ');
       end;
      writeln; // retour a la ligne pour faire la boucle des 10 lignes
     end;
     
     //on initialise le tableau i à 0
    for d:=1 to 8 do
     i[d]:=0;
     
    //on compte le nombre d'occurence des chiffres
    for d:=1 to 10 do
     for e:=1 to 10 do
      i[a[d,e]]:= i[a[d,e]]+1;
     
    //on affiche le resultat
    for j:= 1 to 8 do
     writeln('Il y a ',i[j],' nombre ',j);
     
    //---------------------------------------
    readln;
     
    end.
    L'algorithme que j'ai utilisé est :
    on sait que la matrice contient les nombre compris entre 1 et 8; et comme on utilise un vecteur indicé sur 1..8 pour compter le nombre d'occurence des chiffres contenus dans la matrice - la colonne i compte le nombre de i dans la matrice.
    Je parcours la matrice, et pour chaque case contenant la valeur i, j'augmente le nombre contenu dans le vecteur[i] servant à compter l'occurence de i de la matrice.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci pour l'information, je travaille là dessus, et pour la balise je viens de la trouvé maintenant grâce à toi.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/12/2014, 20h45
  2. Evolution de chiffre dans un tableau croisé
    Par titi84 dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 08/04/2008, 08h49
  3. Réponses: 7
    Dernier message: 18/01/2008, 14h36
  4. découper un nombre et placer ses chiffres dans un tableau
    Par NicoO_O dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/04/2007, 14h09
  5. Frequence d'apparition d'un motif dans un tableau
    Par Julian21 dans le forum C++
    Réponses: 31
    Dernier message: 16/06/2006, 10h44

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