Exercice 4.1.3 Menu

Modérateurs : F. Barthélemy, eric.soutil

Verrouillé
Jambon14
Messages : 23
Inscription : 25 oct. 2016 21:26

Exercice 4.1.3 Menu

Message par Jambon14 » 19 nov. 2016 20:30

Bonjour

Je suis sur la correction de l'exercice sur le menu et je souhaite avoir un éclaircissement sur la syntaxe suivante (ligne 19 du programme)

mt[i % 3].executerMenu(); alors je suis peut-être passé à coté d'un truc mais je n'ai pas souvenir d'avoir vu de % dans les crochets d'un tableau j'imagine que cela doit être en rapport avec la taille du tableau mt ?

Cordialement

V.B.fod31
Messages : 83
Inscription : 10 févr. 2014 12:58

Re: Exercice 4.1.3 Menu

Message par V.B.fod31 » 20 nov. 2016 16:18

Bonjour Jambon ;) entre les crochets tu peux mettre ce que tu veux du moment que cela retourne in numero qui correspond à l'indice du tableau.
[i+1], [i*2],[i+6/2]...
[i % 3] donne un résultat numérique soit 0, soit 1, soit 2. C'est un peu tordu mais je suppose que c'est pour nous montrer que c'est possible ;)

Par contre, je ne comprend pas l’intérêt d'avoir ré-affiché le menu 1 et 2 :
for(int i=0; i<5; i++) // de 0 à 4 (5 fois)
{
do
{
try
{
saisieOk = true;
mt[i % 3].executerMenu(); // affiche le menu
}
......
Si je fais la trace de cette boucle :
1er passage la valeur de i est de 0
i<5 donne true
mt[i % 3].executerMenu() // mt[0].executerMenu()
affichage :
Quelle est votre couleur préférée ?
Rouge : tapez 1
Vert : tapez 2
Bleu : tapez 3
Jaune : tapez 4
Violet : tapez 5
Entrez votre choix:

2e passage la valeur de i est de 1
i<5 donne true
mt[i % 3].executerMenu() // mt[1].executerMenu()
affichage :
Quelle est votre couleur préférée ?
Rouge : tapez 1
Vert : tapez 2
Bleu : tapez 3
Jaune : tapez 4
Violet : tapez 5
Entrez votre choix:

3e passage la valeur de i est de 2
i<5 donne true
mt[i % 3].executerMenu() // mt[2].executerMenu()
affichage :
Trouvez l’intrus.
Canard : tapez 1
Poule : tapez 2
Pintade : tapez 3
Oie: tapez 4
Dinde : tapez 5
Pleiad : tapez 6
Entrez votre choix:

4e passage la valeur de i est de 3
i<5 donne true
mt[i % 3].executerMenu() // mt[0].executerMenu()
ré affiche le menu 1

5e passage la valeur de i est de 4
i<5 donne true
mt[i % 3].executerMenu() // mt[1].executerMenu()
affichage : ré affiche le menu 1
ré affiche le menu 2

6e passage la valeur de i est de 5
i<5 donne false

Jambon14
Messages : 23
Inscription : 25 oct. 2016 21:26

Re: Exercice 4.1.3 Menu

Message par Jambon14 » 20 nov. 2016 18:55

Salut!

Oui merci pour ta réponse donc tant que j'ai un nombre (int) je peux faire ce que je veux (c'est noté dans mon petit Bloc Note de chez Cora).
j'ai fait des tests (pour comprendre la fonction de ce petit % incongru) et effectivement je vois que cela permet de faire les 3 lignes du tableau tour à tour par passe et effectivement comme on a que 5 passes

on arrive à

5e passage la valeur de i est de 4
i<5 donne true
mt[i % 3].executerMenu() // mt[1].executerMenu()
affichage : ré affiche le menu 1
ré affiche le menu 2

et .. là ... c'est le drame... le petit menu 3 n'a pas le droit à son 2 eme tour fin du programme

En tout cas merci beaucoup pour cette précision

i'll be back

Jan

Jambon14
Messages : 23
Inscription : 25 oct. 2016 21:26

Re: Exercice 4.1.3 Menu

Message par Jambon14 » 07 déc. 2016 20:25

Bonsoir

J'ai profité de la semaine "à vide" pour refaire les exercices depuis le début et je vais répondre à ma question sur le
mt[i % 3].executerMenu() donc si j'ai bien compris c'est une moyen "élégant" de faire mt[0] puis mt[1] et mt[2]

ceci qui permet de toujours appeler 0, 1, 2 quand le i de la boucle est à 3, 4, 5. (3 modulo 3 = 0, 4 modulo = 1 ect...)

Verrouillé

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité