Bonsoir !
Je rencontre un problème quand je programme un algorithme dans le but de me factoriser tous polynômes du second degré (ayant un discriminant positif ou nul évidemment)
On sait que pour tous a,b,c réels avec a non nul : ax²+bx+c=a(x+(b/2a)-(sqrt(b²-4ac))/2a)(x+(b/2a)+(sqrt(b²-4ac))/2a)
Donc voici mon algo :
"A="?-->A
"B="?-->B
"C="?-->C
B²-4AC-->D
If D<0
Then "ERREUR"
Else A(X+(B/2A)-sqrt(D)/2A)x(X+(B/2A)+sqrt(D)/2A)-->X
Afficher X
IfEnd
(En comptant les SHIFT+EXE à la fin de chaque ligne évidemment)
Pourquoi j'obtiens un nombre ?
Où est mon erreur !?
bonsoir,
sans verifier l'écriture de la formule,
il me semble normal que tu obtiennes un nombre, puisque tu demandes d'afficher X dans lequel tu places le résultat d'une formule..
si le but de ton algo est d'afficher la factotisation, comment veux tu l'afficher ?
si, mais tu dois définir comment tu veux afficher ton résultat..
par exemple, tu pourrais dire : je vais afficher les valeurs de a, x1 et x2, qui sont les 3 valeurs
qui interviennent dans la factorisation a(x-x1)(x-x2)..
mais afficher juste une valeur de x, ça ne peut pas coller
tu vois ?
Avec x1 et x2 les racines du polynomes ?
C'est à dire qu'au final je me retrouverais avec cette ligne :
a(x-x1)(x-x2) -->x
Afficher x
??
non, quand tu écris
a(x-x1)(x-x2) -->x tu mets dans x UNE valeur résultat d'un calcul ..
ensuite
Afficher x affiche un nombre..
pour factoriser, il faut que tu trouves les racines, non ?
si j'écris (en lanage naturel):
entrer A
entrer B
entrer C
D prend la valeur B²-3AC
si D < 0 alors
afficher "delta negatif"
sinon
x1 prend la valeur -B-racine(B²-4AC)/2A
x2 prend la valeur -B+racine(B²-4AC)/2A
afficher "a= " a
afficher "x1 = " x1
afficher "x2 = " x2
afficher "factorisation possible sous la forme a(x-x1)(x-x2)"
fin
alors si tu donnes par exemple A=2 B=-16 C=30
l'algo affichera :
a = 2
x1 = 3
x2 = 5
factorisation possible sous la forme a(x-x1)(x-x2)
en effet, ca donne 2(x-3)(x-5)
c'est différent de ce que tu veux faire, n'est ce pas ?
Allez on va affiner
afficher a
afficher "(x - "
afficher x1
afficher ") (x - "
afficher x2
afficher ")
afficher a ...... va afficher la valeur de a
afficher "(x - " .....va afficher (x -
afficher x1 ....... va afficher la valeur de x1
afficher ") (x - " ...... va afficher ) (x -
afficher x2 ...... va afficher la valeur de x2
afficher ") ....... va afficher )
Donc si a vaut 2 , x1 vaut 3 et x2 vaut 4
On obtiendra 2 (x - 3) (x - 4)
A peaufiner pour les cas ou les racines sont négatives car cela écrirait (x - -3 .... pas très orthodoxe !!!!
Euh j'ai imité votre algo et pourtant je vois écris ERREUR !
"A="?-->A
"B="?-->B
"C="?-->C
B²-4AC-->D
If D<0
Then "DELTA NEGATIF"(afficher)
Else (-B-sqrt(D))/2A-->E
(-B+sqrt(D))/2A-->F
"A="-->A(afficher)
"E="-->E(afficher)
"F="-->F(afficher)
"A(X-E)(X-F)"(afficher)
IfEnd
Je suis très curieuse de voir où est mon erreur ...
je ne connais pas la syntaxe de ta calculatrice, mais
"A="-->A correspond à une affectation, pas à un affichage.
la flèche ne colle pas..
verifie la syntaxe pour afficher.
Avant de taper un programme sur sa calculatrice ou sur son ordi , il faut faire un algorithme ... ce qu'a fait Leile
Quand tu es certain(e) que ton algo tourne bien , après l'avoir testé "à la main = papier crayon" tu le traduis sur le support où tu veux le faire fonctionner dans le langage compris par ton support !
Bonjour !
Après avoir chercher mon erreur, je l'ai trouvée !
Voici mon algo !
"A="?-->A
"B="?-->B
"C="?-->C
B²-4xAxC-->D
If D<0
Then "DELTA NEGATIF"
Else (-B+sqrt(D))/2A-->E
(-B-sqrt(D))/ZA-->F
"A"(afficher)
A(afficher)
"E"(afficher)
E(afficher)
"F"(afficher)
F(afficher)
"A(X-E)(X-F)"(afficher)
IfEnd
Mais, y'a un problème :
Si je prend par exemple 2x²+6x+2 alors j'obtient des racines irrationnelles SOUS FORME DECIMALE !
Quelqu'un peut m'aider ?
NB : j'ai une Casio Graph 35+
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :