Aide pour un DM
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 13:50
Bonjour,
Je n'arrive pas à faire un des exercices de mon DM, j'espère que vous pourrez m'éclaircir un peu.
Voici lénoncé :
Ecrire un algorithme (langage algobox) solution de l'exercice :
l'utilisateur donne les valeurs de a=/0, b et c et obtient l'expression de |f(x)| sans la valeur absolue, selon les valeurs de x.
Je sais qu'on inverse les signes quand f(x) est négatif mais je ne sais pas comment formuler sans dans un algorithme ..
Je vous remercie d'avance pour votre aide.
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 14:12
Bonjour,
et bien tu fais un test :
Si f(x)<0 alors f(x)=-f(x)
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 14:33
Oui mais l'utilisateur ne donne pas x donc l'algo ne peut pas calculer f(x) c'est pour ça que j'y arrive pas..
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 14:43
Ha OK, on a pas x. Mais on sait au moins quelque chose sur f(x) ? f(x)=ax²+bx+c ?
Donc là il faut étudier le signe de f(x)
(un polynôme du second degré est du signe de a à lextérieur de ses racines quand il en a et du signe de a sinon)
Donc il faut tester :
d'abord le discriminant pour voir s'il y a des racines,
si oui il faut les calculer puis écrire les différentes formes de f(x) suivant les intervalles.
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 15:53
Merci beaucoup je crois avoir réussi :)
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 15:57
Mouais. tu devrais nous montrer ton algorithme algobox alors.
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 16:37
D'accord c'est qu'un brouillon pour l'instant mais c'est à peu près ça, si j'ai fait une erreur n'hésitez pas à me corriger s'il vous plaît :
Lire A, B, C
B²-4AC = D
Si D<=0 Alors
Fin
Si A<0 Alors
Afficher "-Ax²-Bx-C"
Fin
Si A>0 Alors
Afficher "Ax²+Bx+C"
Fin
Si D>0 Alors
(-B+racine(D))/(2a) = Y
(-B-racine(D))/(2a) = Z
Fin
Si A<0 Alors
Afficher "Quand x entre Y et Z : Ax²+Bx+C sinon : -Ax²-Bx-C"
Fin
Si A>0 Alors
Afficher "Quand x entre Y et Z : -Ax²-Bx-C sinon : Ax²+Bx+C"
Fin
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 16:47
Oui c'est bien, la logique est correcte.
Si tu as des problèmes de syntaxe algobox, n'hésite pas.
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 17:04
J'ai testé mon algorithme algobox et il est dit que "l'algorithme contient une erreur : impossible de le lancer, vérifiez la syntaxe des affectations et des conditions" ..
Je n'ai fait que le début :
Lire A
Lire B
Lire C
D prend la valeur B²-4AC
Si (D<=0) Alors
Debut_si
Si (A<0) Alors
Debut_si
Afficher "-"
Afficher A
Afficher "x²-"
Afficher B
Afficher "x-"
Afficher C
Fin_si
Si (A>0) Alors
Debut_si
Afficher A
Afficher "x²+"
Afficher B
Afficher "x+"
Afficher C
Fin_si
Fin_si
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 17:26
B² algobox n'aime pas, utilise B*B ou pow(B,2)
Et puis il n'est pas complet là, il manque toute la partie avec les racines.
Astuce : utilise des variables de type chaine pour écrire par exemple
T="-"+A+"x²-"+B+"x"-C
Afficher T
Ça a le même effet que toutes les instructions d'affichage que tu as mis
Cela dit ça n'est pas parfait car si A est négatif ça va te créer des -- et ça ne sera pas joli
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 17:36
Merci beaucoup ça fonctionne maintenant :we:
Ah et comment ne pas afficher le "- -" alors ?
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 17:45
Si, finalement ça devrait marcher. Par exemple le code :
VARIABLES
A EST_DU_TYPE NOMBRE
T EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
LIRE A
T PREND_LA_VALEUR -A+"x²"
AFFICHER T
FIN_ALGORITHME
va afficher correctement l'opposé de Ax² que A soit positif ou négatif
ne met pas des "-"A dans la syntaxe, laisse algobox résoudre les règles des signes.
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 17:55
Ah merci et donc en entier ça serait -A+"x²"-B+"x"-C ?
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 18:06
oui c'est bien ça
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 18:25
ça marche pas pourtant ..
ça affiche "NaN" ..
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 18:30
kev13011 a écrit:ça marche pas pourtant ..
ça affiche "NaN" ..
NaN je ne veux pas travailler :ptdr:
je ne peux te dépanner que si je vois la syntaxe.
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 18:34
T PREND_LA_VALEUR -A+"x²"-B+"x"-C
AFFICHER T
-
Ericovitchi
- Habitué(e)
- Messages: 7853
- Enregistré le: 18 Avr 2009, 13:24
-
par Ericovitchi » 03 Jan 2013, 18:54
Alors met :
T PREND_LA_VALEUR -A+"x²"+(-B)+"x"+(-C)
ça ne fait plus NaN mais ça n'affiche pas bien les + donc on ne va pas couper à faire des tests :
désolé mais comme algobox n'affiche pas + quand un nombre est positif et affiche un - quand il est négatif, on est obligé de faire tout ce micmac :
VARIABLES
A EST_DU_TYPE NOMBRE
B EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
T EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
LIRE A
LIRE B
LIRE C
T PREND_LA_VALEUR -A+"x²"
SI (B<0) ALORS
DEBUT_SI
T PREND_LA_VALEUR T+"+"+(-B)+"x"
FIN_SI
SINON
DEBUT_SINON
T PREND_LA_VALEUR T+(-B)+"x"
FIN_SINON
SI (C<0) ALORS
DEBUT_SI
T PREND_LA_VALEUR T+"+"+(-C)
FIN_SI
SINON
DEBUT_SINON
T PREND_LA_VALEUR T+(-C)
FIN_SINON
AFFICHER T
FIN_ALGORITHME
(en mode éditeur de texte, tu peux copier/coller tout ça)
-
kev13011
- Membre Naturel
- Messages: 10
- Enregistré le: 03 Jan 2013, 13:44
-
par kev13011 » 03 Jan 2013, 20:45
Merci.
J'ai fini tout fonctionne correctement :)
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 62 invités