0
0
Jeux mathématiques en TP7
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; |
Sans vouloir t'offenser, tu pourrais peut-être étudier encore un peu avant de contribuer aux sources du forum.
Bonne continuation !
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. |
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 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.
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.
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. |
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. |
