IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 2 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Gratuit pour usage non commercial
Mise en ligne le 1er février 2014
Plate-forme : Windows
Langue : Français
Référencé dans
Navigation

Jeux mathématiques en TP7

C'est un jeu mathématique qui est en fait une boucle Repeat Until qui génère des nombres aléatoires entre 1 et 10 et il vérifie si votre résultat donné est juste ou faux. S'il est faux, il vous laisse une seconde chance.
Avatar de Roland Chastain
Rédacteur/Modérateur https://www.developpez.com
Le 02/02/2014 à 9:33
Citation Envoyé par Leprogrammateur Voir le message
Merci pour le randomize j'ai réglé le problème.
Non, ce n'est pas réglé : tu as placé l'instruction Randomize après le tirage au sort. Apparemment tu n'as pas encore bien compris à quoi elle sert.

Autre observation : à quoi servent les mots begin et end dans cette partie de ton code ?

Code : Sélectionner tout
1
2
3
4
5
     Begin
          n1:=trunc(11*random);
          n2:=trunc(11*random);
          Writeln(n1,'*',n2,'=')
     End;
Réponse : ils ne servent à rien.

Sans vouloir t'offenser, tu pourrais peut-être étudier encore un peu avant de contribuer aux sources du forum.

Bonne continuation !
Avatar de Leprogrammateur
Membre du Club https://www.developpez.com
Le 01/02/2014 à 10:24
Bonjour,

Je vous propose un nouvel élément à utiliser : Jeux mathématiques en tp7

C'est un jeu mathématique qui est en fait une boucle Repeat Until qui génère des nombres aléatoires entre 1 et 10 et il vérifie si votre résultat donnée est juste ou faux. S'il est faux il vous laisse une seconde chance.

Voici le source :
Code : Sélectionner tout
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
Program MultiplicaHER_3_2;



Var

n1,n2,cal,rep,n_m: integer;

reponse: char;



BEGIN

     Repeat

     Writeln('Combien de multiplication veut-tu faire?');

     Readln(n_m);

     Randomize;

           For cal:=1 to n_m do

               Begin

                    n1:=trunc(11*random);

                    n2:=trunc(11*random);

                    Writeln(n1,'*',n2,'=');

                    Readln(rep);

                    If rep=n1*n2

                        Then

                            Writeln('la r‚ponse est juste.')

                        Else

                            Begin

                                 Writeln('la r‚ponse est fause.');

                                 Writeln('Recommence.');

                                 Begin

                                      Writeln(n1,'*',n2,'=');

                                      Readln(rep);

                                      If rep=n1*n2

                                         Then

                                             Writeln('la r‚ponse est juste.')

                                         Else

                                             Begin

                                                  Writeln('la r‚ponse est toujours fause.');

                                             End;

                                 Writeln(n1,'*',n2,'=',n1*n2);

                            End; End;

               End;

           Writeln('Une nouvelle s‚rie de 10 multiplication ? (O/N)');

           Readln(reponse);

     Until (reponse='N') or (reponse='n');

END.
Qu'en pensez-vous ?
Avatar de Leprogrammateur
Membre du Club https://www.developpez.com
Le 01/02/2014 à 16:45
Merci pour le randomize j'ai réglé le problème.
Pour la fonction/procédure j'ai essayer mai ça bloque quand j'exécute le programme il me demande combien de multiplications je veut faire (je met le nombre) et ensuite je fais entrée sauf que il n'exécute pas la suite du programme. (Je vous met le script à la fin du message.)
Pour la balise [code] je n'en n'ai jamais entendue parlé et je pense qu'il faut
"un module complémentaire" pour turbo pascal pour avoir cette fonction.
Cordialement leprogrammateur.

Code : Sélectionner tout
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
Program MultiplicaHER_3_5; 
 
Var 
n1,n2,cal,rep,n_m: integer; 
reponse: char; 
 
BEGIN 
     Begin 
          n1:=trunc(11*random); 
          n2:=trunc(11*random); 
          Writeln(n1,'*',n2,'=') 
     End; 
        Randomize; 
        Repeat; 
        Writeln('Combien de multiplication veut-tu faire?'); 
        Readln(n_m); 
        For cal:=1 to n_m do 
                    Begin 
                         Readln(rep); 
                         If rep=n1*n2 
                            Then 
                                Writeln('la r‚ponse est juste.') 
                            Else 
                                Begin 
                                     Writeln('la r‚ponse est fause.'); 
                                     Writeln('Recommence.'); 
                                     Begin 
                                          Writeln(n1,'*',n2,'='); 
                                          Readln(rep); 
                                          If rep=n1*n2 
                                             Then 
                                                 Writeln('la r‚ponse est juste.') 
                                             Else 
                                                 Begin 
                                                      Writeln('la r‚ponse est toujours fause.'); 
                                                 End; 
                                                 Writeln(n1,'*',n2,'=',n1*n2); 
                                     End;        End; 
                    End; 
           Writeln('Une nouvelle s‚rie de multiplication ? (O/N)'); 
           Readln(reponse); 
     Until (reponse='N') or (reponse='n'); 
END.
Avatar de Leprogrammateur
Membre du Club https://www.developpez.com
Le 06/02/2014 à 17:03
C'est bon pour le randomize cette fois j'ai compris et ainsi que pour la fonction.
J'ai une autre idée pour mon programme maintenant, je vais à la fin faire un message qui va affiché le nombre de multiplications juste et le nombre de fausse et j'ai l'idée de faire 2 nouvelle variable de type integer et à chaque fois qu'une réponse est juste j'attibue à la variable plus un et pareil quand c'est faux.
A et pour le "Leprogrammateur" c'est parce que il n'y avais pas "Le programmeur"
Voilà le script:
Code : Sélectionner tout
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
Program MultiplicaHER_3_5;

Var
n1,n2,cal,rep,n_m: integer;
reponse: char;

function Alea(n:integer) : integer;

Begin
     Alea:=trunc(n*random);
End;

BEGIN
     Randomize;
     Repeat
     Writeln('Combien de multiplication veut-tu faire?');
     Readln(n_m);
           For cal:=1 to n_m do
               Begin
                    n1:=Alea(11);
                    n2:=Alea(11);
                    Writeln(n1,'*',n2,'=');
                    Readln(rep);
                    If rep=n1*n2
                        Then
                            Writeln('la r‚ponse est juste.')
                        Else
                            Begin
                                 Writeln('la r‚ponse est fause.');
                                 Writeln('Recommence.');
                                 Begin
                                      Writeln(n1,'*',n2,'=');
                                      Readln(rep);
                                      If rep=n1*n2
                                         Then
                                             Writeln('la r‚ponse est juste.')
                                         Else
                                             Begin
                                                  Writeln('la r‚ponse est toujours fause.');
                                             End;
                                 Writeln(n1,'*',n2,'=',n1*n2);
                            End; End;
               End;
           Writeln('Une nouvelle s‚rie de multiplication ? (O/N)');
           Readln(reponse);
     Until (reponse='N') or (reponse='n');
END.
Avatar de Leprogrammateur
Membre du Club https://www.developpez.com
Le 15/02/2014 à 13:07
Voilà, j'ai crée une nouvelle version de mon programme.
Le problème c'est que je n'arrive pas à le compiler en .exe.
Voilà le code:
Code : Sélectionner tout
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 MultiplicaHER_4_3;

Var
n1,n2,cal,rep,n_m,nm_j,nm_f,nmf_p: integer;
reponse: char;

function Alea(n:integer) : integer;

Begin
     Alea:=trunc(n*random);
End;

BEGIN
     Randomize;
     Repeat
     Writeln('Combien de multiplication veut-tu faire?');
     Readln(n_m);
           For cal:=1 to n_m do
               Begin
                    n1:=Alea(11);
                    n2:=Alea(11);
                    Writeln(n1,'*',n2,'=');
                    Readln(rep);
                    Begin
                    If rep=n1*n2
                        Then
                            Writeln('la r‚ponse est juste.')
                        Else
                            Begin
                                 Writeln('la r‚ponse est fause.');
                                 Writeln('Recommence.');
                                 nmf_p:=nmf_p+1;
                                 Begin
                                      Writeln(n1,'*',n2,'=');
                                      Readln(rep);
                                      If rep=n1*n2
                                         Then
                                             Writeln('la r‚ponse est juste.')
                                         Else
                                             Begin
                                                  Writeln('la r‚ponse est toujours fause.');
                                                  nm_f:=nm_f+1;
                                             End;
                                 Writeln(n1,'*',n2,'=',n1*n2);
                            End; End;
                    End;
               End;
           nm_j:=nm_j+1;
           Write('Tu as ');
           Write(nm_j);
           Write(' multiplications justes et ');
           Write(nm_f);
           Writeln(' de multiplications fausses.');
           Write('Tu as fais aussi ');
           Write(nmf_p);
           Writeln(' de premiŠre(s) erreur(s).');
           Writeln('Une nouvelle s‚rie de multiplication ? (O/N)');
           Readln(reponse);
     Until (reponse='N') or (reponse='n');
END.
Avatar de droggo
Expert confirmé https://www.developpez.com
Le 02/02/2014 à 12:31
Koa,
Citation Envoyé par Roland Chastain Voir le message
Sans vouloir t'offenser, tu pourrais peut-être étudier encore un peu avant de contribuer aux sources du forum.

Bonne continuation !
Même moi, je n'ai pas osé le dire.

Au passage : on dit "programmeur", pas "programmateur", qui est utilisé pour des automatismes (par exemple : ce qui assure le fonctionnement d'une machine à laver ! ).
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.