Tableau en pascal

Résolu
lowpien Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
hamditch100 Messages postés 4 Statut Membre -
Bonjour,
j'ai besoin d'aide, pouvez vous m'envoyer des exemples de creation de tableau en pascal,

j'essaye de creer un tableau 5 par 5, comprenant seulement les chiffres de 1 a 3 qui sont donner alleatoirement par le system, en plus le program doit afficher combien de fois chaque chiffres apparait dans le tableau.

Merci pour les exemples et une petite explication pour que je comprenne mieux.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    program lowpien;
    
    type tableau=array[1..5,1..5] of integer;
         suivi=array[1..3] of integer;
    
    procedure remplir(var t:tableau; var s:suivi);
    var i,j,n:integer;
    begin
    s[1]:=0; s[2]:=0; s[3]:=0;
    for i:=1 to 5 do
    for j:=1 to 5 do
        begin
        n:=random(3)+1; // random(3) renvoie un nombre entre 0 et 2 d'où le +1
        t[i,j]:=n;
        inc(s[n]);
        end;
    end;
    
    var s:suivi; t:tableau; n:integer;
    begin
    randomize; // réinitialise le générateur de nombre aléatoire
    remplir(t,s);
    for n:=1 to 3 do
        writeln('occurence des ',n,' dans le tableau = ',s[n]);
    readln;
    end.

    9
    1. lowpien Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour merci bien pour les informations, j'ai essayer l'exemple, il donne le nombre de fois que chaque chiffre apparait, mais il n'affiche pas le tableau...je travaille la dessus ....et puis c'est quoi le : inc(s[n]); je connais pas cette fonction.
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      var s:suivi; t:tableau; i,j,n:integer;
      begin
      randomize; // réinitialise le générateur de nombre aléatoire
      remplir(t,s);
      for i:=1 to 5 do
          begin
          for j:=1 to 5 do
              write(t[i,j],' ');
          writeln;
          end;
      for n:=1 to 3 do
          writeln('occurence des ',n,' dans le tableau = ',s[n]);
      readln;
      end.
      inc(n) est équivalent à n:=n+1 (de même dec(n) à n:=n-1)
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      Remarque : il est possible d'améliorer l'aléatoire et éviter les "effets de bords".

      En effet on a :
      n:=random(3)+1; // random(3) renvoie un nombre entre 0 et 2 d'où le +1
      Et on pourrait améliorer avec
      n:=random(6561) mod 3+1; // mod 3 renvoie un nombre entre 0 et 2 d'où le +1
      0
    4. hamditch100 Messages postés 4 Statut Membre
       
      c'est la meilleur solution 100 % :))))))

      program aff_inverse ;
      uses wincrt;
      type
      tab=array[1..100]of integer;
      var
      i,j,n,pas:integer ;
      t:tab;
      begin
      writeln('saisir la taille du tableau');
      readln(n);
      for j:=1 to n do
      begin
      writeln('saisir l element n ',j );
      readln(t[j]);
      end;

      for i:=n downto 1 do
      begin
      write(t[i],'/');
      end;
      end.

      merci beaucoup de mettre vos opinions ^^
      0