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

Aide pour un DM

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.



Avatar de l’utilisateur
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..

Avatar de l’utilisateur
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 à l’exté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 :)

Avatar de l’utilisateur
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

Avatar de l’utilisateur
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

Avatar de l’utilisateur
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 ?

Avatar de l’utilisateur
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 ?

Avatar de l’utilisateur
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" ..

Avatar de l’utilisateur
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

Avatar de l’utilisateur
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 :)

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 62 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite