Bonjour!
J'ai un DM de maths à rendre pour vendredi 13. Il s'agit d'écrire un algorithme sur algobox qui lit les nombres a,b et c et qui affiche Alpha et Beta de la fonction polynome du second degrès ax²+bx+c. J'ai fais cet algorithme mais il ne fonctionne pas..

Bonjour,
Normal qu'il ne fonctionne pas car il commence par Tant que a
0 faire ....
Or a n'a pas encore été saisi donc comme tu as réservé sa place en le déclarant, a vaut peut-être 0 donc ton programme n'effectue pas la boucle .....
Il faut mettre ton test sur a
0 après avoir saisi a ....
Bonjour,
comme dit "jeveuxbientaider" ou presque,
d'abord parce que "a pas encore saisi" n'a pas vraiment de raison de valoir 0, il vaut "n'importe quoi" et le test est incapable de savoir s'il faut ou non faire la boucle.
a n'est plus inconnu quand tu utilises ton algo, puisque tu as mis
Lire a .....
Donc il faut commencer par
Lire a
puis faire
Tant que a
0
bla
bla
bla...
Si tu tapes 0 pour a , alors tu n'as plus un polynôme du second degré donc ton algo ne sert à rien puisqu'il t'aide à trouver la forme canonique d'un polynôme du second degré donc un polynôme dont le coefficient pour le terme de second degré est non nul !
Il y a des langages qui lors de la déclaration de variables, les initialisent à 0 pour les nombres et à "" pour le texte ! Donc a peut valoir 0 et la boucle Tant que a de fortes chances de ne pas être effectuée !
Tout est dans le "peut" valoir 0
à moins que ce ne soit explicitement dit dans la spécification du langage il vaut mieux ne pas compter dessus !!
et TOUJOURS initialiser explicitement toutes ses variables, quel que soit le langage, ce doit être un réflexe automatique.
(et après on se demande comment les virus trouvent des failles : facile avec des tas de variables non initialisées, ou initialisées "automatiquement", et hop on appelle le programme avec un paramètre qui lui bidouille ses "initialisations automatiques" et ça y est, on est rentré)
ceci n'empêche que la boucle TANT_QUE ici telle qu'elle est utilisée va planter, même (et surtout) si on met le LIRE avant le TANT_QUE tel qu'il est.
un "TANT_QUE" qui est utilisé à la place d'un "SI" en fait
sauf que le SI il s'exécuterait une seule fois alors que le TANT_QUE il va s'exécuter éternellement sur le même calcul.
Désolé pour le double-post, je n'ai pas trouvé la fonction editer. Je voulais juste vous remercier, jai enfin réussis en remplaçant le "tant que" par "si alors", merci beaucoup!
bonne soirée
ça dépend de ce que tu veux faire.
LIRE a
SI a!= 0 ALORS
... les autres LIRE et calcul et affichage
FINSI
est OK, et va faire : il te demande la valeur de a, si tu réponds une valeur nulle il te jette en disant "algorithme terminé"
si tu réponds une valeur non nulle il va te demander b et c puis faire le calcul et afficher le résultat
tu peux améliorer avec un :
SINON raler "ce n'est pas un trinome du second degré, a est nul"
tu peux encore améliorer d'avantage en mettant :
LIRE a
TANT_QUE a == 0
AFFICHER "ce n'est pas un trinome, a est nul"
LIRE a
FIN TANTQUE
// ici on est sûr que a est !=0
LIRE b
calculs et afficher
il redemande a tant que tu n'as pas saisi une valeur valable (c'est à dire non nulle)
ne mettre aucun test de a du tout marchera aussi mais c'est dégueu :
le jour où tu entres une valeur nulle il se plante en disant "division par 0"
sinon tu ne verras jamais la différence.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :