Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Problème d'algobox à faire pour le 13/09/13

Posté par
wellio
07-09-13 à 14:00

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..

Problème d\'algobox à faire pour le 13/09/13

Posté par
jeveuxbientaider
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:09

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 a0 après avoir saisi a ....

Posté par
wellio
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:17

Mais a est inconnu alors comment faire?

Posté par
mathafou Moderateur
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:23

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.

Citation :
Mais a est inconnu alors comment faire
tu te débrouilles
relis le post de jeveuxbientaider
règle absolue à respecter TOUJOURS partout :
l'utilisation d'une variable (test ou calcul à partir de sa valeur) ne doit être écrit que après qu'on ait mis une valeur dedans
soit par "LIRE" soit par "Prend_la_valeur"
c'est obligatoire.

Mais même en corrigeant le "LIRE a" avant le TANT_QUE, du coup la boucle TANT_QUE ne se terminera jamais puisque en fin de boucle, a est toujours à cette même valeur qui disait "il faut faire"
c'est tout le principe même de cette boucle TANT_QUE qui est à revoir.
que veux tu faire avec ce "tant que" ?


de plus tu es sûr que alpha c'est \small b^{\red 2}/(2a) ??

enfin il n'y a pas de multiplications implicites dans Algobox
2a c'est explicitement 2*a etc
et pareil pour les carrés : b² ça n'existe pas, c'est b*b

Posté par
jeveuxbientaider
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:25

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 !  

Posté par
jeveuxbientaider
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:28

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 !

Posté par
mathafou Moderateur
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 14:39

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.

Posté par
wellio
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 20:10

Donc, je mettrais "si.. alors" ?

Posté par
wellio
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 20:21

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

Posté par
mathafou Moderateur
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 20:27

ç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.

Posté par
wellio
re : Problème d'algobox à faire pour le 13/09/13 07-09-13 à 21:15

Oui, merci beaucoup! Pour la deuxième question, il faut coder mon algorithme dans le language de ma calculatrice. Hors j'ai un ti-82 et n'ai jamais appris à m'en servir. Comment faut-il faire s'il vous plait ?



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1768 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !