Bonsoir, j'ai fais un algorithme sur Algobox et je voudrais savoir si sa la configuration est bonne ou non.
1 VARIABLES
2 N EST_DU_TYPE NOMBRE
3 C EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 LIRE N
6 LIRE C
7 N PREND_LA_VALEUR ALGOBOX_ALEA_ENT(10,20)
8 C PREND_LA_VALEUR 0
9 TANT_QUE (N!=C) FAIRE
10 DEBUT_TANT_QUE
11 AFFICHERCALCUL ALGOBOX_ALEA_ENT(10,20)
12 LIRE C
13 SI (N==C) ALORS
14 DEBUT_SI
15 AFFICHER "Vous avez gagné!"
16 SI (N!=C) ALORS
17 DEBUT_SI
18 AFFICHER "Vous avez perdu!"
19 FIN_SI
20 FIN_SI
21 FIN_TANT_QUE
22 FIN_ALGORITHME
Variables
N,C
Début de l'algorithme
N reçoit un nombre entier au hasard entre 10 et 20
C reçoit 0
Tant que N
C faire
Afficher << entrez un nombre entier entre 10 et 20 >>
Saisir C
Si N = C
Alors afficher << Vous avez gagné! >>
Sinon afficher << Vous avez perdu! >>
FinSi
FinTant
Bonsoir,
pourquoi demander à l'utilisateur d'entrer une valeur
pour n et c ? ces 2 variables reçoivent une autre valeur juste après !
perte de temps et frein au programme
oui
sans compter les anormalités :
comment veux tu qu'une variable entre 10 et 20 soit égale à 0 ? par quel miracle ?
comment veux tu sortir d'une boucle infinie avec de telles conditions ?
Dans ce que vous venez de dire, je garde tout ce que j'ai fais, mais j'enlève les lignes 2,3,5 et 6?
Bonjour ,
la traduction Algobox de ton algo est archi fausse
Bonjour,
1 VARIABLES
2 N EST_DU_TYPE NOMBRE
3 C EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 LIRE N rien à faire là, virer
6 LIRE C rien à faire là, virer
7 N PREND_LA_VALEUR ALGOBOX_ALEA_ENT(10,20) OK
8 C PREND_LA_VALEUR 0 OK
9 TANT_QUE (N!=C) FAIRE OK
10 DEBUT_TANT_QUE
11 AFFICHERCALCUL ALGOBOX_ALEA_ENT(10,20) rien à faire là
remplacer par affichage d'un message,
du texte "entrez un nombre entier entre 10 et 20"
12 LIRE C OK
13 SI (N==C) ALORS OK
14 DEBUT_SI
15 AFFICHER "Vous avez gagné!" OK
16 SI (N!=C) ALORS
N ne peut pas être à la fois = à C
(on est dans dans ce cas là depuis le 1er SI)
et
C (ce nouveau SI)
virer ce truc compliqué pour remplacer par la construction
SI ... SINON de Algobox prévue pour.
18 AFFICHER "Vous avez perdu!" dans le SINON du seul et 1er SI
Comme ça?
1 VARIABLES
2 N EST_DU_TYPE NOMBRE
3 C EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 N PREND_LA_VALEUR ALGOBOX_ALEA_ENT(10,20)
6 C PREND_LA_VALEUR 0
7 TANT_QUE (N!=C) FAIRE
8 DEBUT_TANT_QUE
9 AFFICHER "Entrez un nombre entier entre 10 et 20"
10 LIRE C
11 SI (N==C) ALORS
12 DEBUT_SI
13 AFFICHER "Vous avez gagné!"
14 FIN_SI
15 SI (N!=C) ALORS
16 DEBUT_SI
17 AFFICHER "Vous avez perdu!"
18 FIN_SI
19 FIN_TANT_QUE
20 FIN_ALGORITHME
si tu veux, mais il y un un "SINON" directement dans Algobox. voir la doc
si tu utilises le mode graphique (clicodrome) de Algobox tu as une case à cocher pour générer le SINON lorsque tu définis le SI
c'est un peu lourdingue de mettre
si condition
finsi
si condition_opposéé
finsi
même si ça fonctionne
cet algorithme sert à jouer à un jeu bête :
l'ordinateur choisit un nombre entre 10 et 20 et te demande de le deviner.
Merci! Et donc pour le sinon je clique sur (dernier algo) la ligne 15? J'appuie sur "Ajouter SINON" et je met "ajouter message" dans la partie SINON?
non.
c'est le SI de la ligne 11 qui est à munir d'un SINON :
le SI de la ligne 15 n'a pas lieu d'être. (c'est le "SINON" du SI de la ligne 11)
mais ceci (non usage de SINON) n'empêche pas ton algo de fonctionner tel qu'il est.
c'est juste pas très beau et inefficace d'être obligé de remettre explicitement la condition opposée
d'autant que l'algorithme "en langage naturel" utilise bien un "sinon" dans son expression !
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :