Tableau en pascal

Résolu/Fermé
lowpien Messages postés 41 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 22 janvier 2011 - 12 juin 2008 à 14:44
hamditch100 Messages postés 2 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 26 janvier 2015 - 30 avril 2012 à 17:48
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.

4 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
12 juin 2008 à 16:09
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
lowpien Messages postés 41 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 22 janvier 2011
13 juin 2008 à 01:37
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
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 juin 2008 à 13:27
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
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 juin 2008 à 13:53
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
hamditch100 Messages postés 2 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 26 janvier 2015
30 avril 2012 à 17:48
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