Logiciel Xcas
Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
par Edlihtamajav » 05 Nov 2016, 15:01
Bonjour à tous,
Je tiens à présenter mon problème de façon claire :
A l'aide du logiciel Xcas, j'ai écrit un programme de second degré mais je dois faire en sorte que mes signes soient correctement écris.
Par exemple lors d'une formule et d'un nombre négatif il y a marqué "x--2", et bien je dois programmer mon logiciel pour que mes deux - se transforment en +. Un autre exemple "x+-6" mon +- doit alors être un -.
J'ai déjà fait plusieurs tentatives avec des "si" et également des valeurs absolues mais rien ne fonctionnent.
J'espère que mon message a bien été compris, et vous remercie d'avance pour votre engagement à me répondre de façon positive.
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 15:05
salut
il faut travailler avec des chaines de caractères et des variables alpha numériques ... éventuellement ...
sinon l'exposé de ton pb est incomplet et imprécis !!!
je suppose que tu fais afficher une réponse : quelle est-elle ?
est-ce un truc du style :
afficher "x - "; A
où A est une variable contenant une valeur numérique ...
si c'est le cas alors oublie le début de mon msg car un petit test sur le signe de A résout immédiatement le pb ....
mais est-ce le pb ?
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
par Edlihtamajav » 05 Nov 2016, 15:07
delta:=b^2-4*a*c;
alpha:=-b/(2*a);
beta:=delta/(4*a);
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
Avez-vous assez d'informations maintenant ?
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 15:16
ben oui tu as un texte fixe "x -" et c'est là que ça ne va pas
admettons qu'on veuille afficher "x -" + c où c est une variable
alors si c = 2 on veut afficher x - 2
et si c = -2 on veut afficher x + 2
il est donc facile de créer une routine qui fait afficher "x -" ou "x +" suivant que c est positif ou négatif ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
par Edlihtamajav » 05 Nov 2016, 15:19
Je ne comprend pas vraiment ce que j'ai à changer puisque ces modifications ont déjà été faites et non pas eu de résultat. Les deux signes restent je ne vois pas en quoi x - ou x + va en enlever un
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 15:37
1/ sans espace ton texte est illisible (le programme)
2/ ce que tu fais écrire comme formule après "la forme canonique" n'est pas la forme canonique
3/ donc comment puis-je te faire confiance à ta dernière réponse ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
par Edlihtamajav » 05 Nov 2016, 18:36
delta:=b^2-4*a*c;
alpha:=-b/(2*a);
beta:=delta/(4*a);
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
Ce que j'affiche est la forme développée, la forme que je cite ensuite est pour la suite de mon programme donc ni faites pas attention, si vous préférez :
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
ifsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
fsi;
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 19:21
il n'y a aucune forme canonique dans
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
n'est pas la forme canoniqueet je ne comprends pas pourquoi faire afficher 'la forme canonique est" juste avant le fin si et après l'expression à afficher ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
-
Ben314
- Le Ben
- Messages: 21709
- Enregistré le: 11 Nov 2009, 21:53
-
par Ben314 » 05 Nov 2016, 19:35
Salut,
Perso, ce que je comprend pas, c'est ce qui déconne dans ton programme :
Edlihtamajav a écrit:delta:=b^2-4*a*c;
alpha:=-b/(2*a);
beta:=delta/(4*a);
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
Dans ce morceau là, c'est dans quel cas qu'il affiche un truc qui ne te va pas ? (et il affiche quoi ?)
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius
par Edlihtamajav » 05 Nov 2016, 19:38
Merci de vos réponses,
donc la phrase avec la forme canonique comme je l'ai dit on l'oublie c'est pour ma suite.
Le résultat qu'il m'affiche pour la forme développée est *
La forme développée du trinôme est
1x^2+-6x+11
pour a = 1 b = -6 et c = 11
Je souhaite que mon programme ne me mette non pas "+-6" mais "-6" dans ce cas précis qui est un exemple
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 19:40
je te le fais pour la forme développée ... à toi de traduire ... et de le faire pour la forme canonique ...
les _ désignent des espaces
- Code: Tout sélectionner
Read a, b, c
d = b^2 - 4ac
u = -b/(2a)
v = d/(4a)
Write ("la forme développée du trinôme est :" + a + "x^2_")
If b <> 0
If b > 0 Write ("+_" + b)
If b < 0 Write ("-_" + -b)
Write ("x_")
If c <> 0
If c > 0 Write ("+_" + c)
If c < 0 Write ("-_" + -c)
Write ("la forme canonique du trinôme est : " + a + "(x_" )
...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 05 Nov 2016, 19:43
hello,
petite parenthèse au passage.
au lieu de faire 4 if...
tu peux:
- faire une fonction toString(x), qui retourne '+'+x si x positif, '-'+abs(x) si x est négatif.
note: compte tenu que '-'+x donne '--'... cela signifie que la conversion de x en string donne '-'... donc tu pourrais directement écrire
toString(x)-> (x>0? '+':'')+x
- alternative si tu n'as pas les fonction:
- Code: Tout sélectionner
if b > 0
bSign = '+'
else
bSign = '';
if c > 0
cSign = '+'
else
cSign = '';
afficher(...+bSign+b+'x'+cSign+c)
à la syntaxe prêt...
la vie est une fête

-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 19:46
ha ouiais c'est encore plus mieux mieux meilleurrement efficace que moi ...

Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
-
Ben314
- Le Ben
- Messages: 21709
- Enregistré le: 11 Nov 2009, 21:53
-
par Ben314 » 05 Nov 2016, 19:58
Il n'empêche que, bien qu'il soit tout sauf optimal, je ne comprend pas pourquoi le bout de code de Edlihtamajav que j'ai recopié dans le précédent post. ne fonctionne pas...
Il doit assez clairement y avoir un problème de syntaxe quelque part, mais où ?
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius
-
Ben314
- Le Ben
- Messages: 21709
- Enregistré le: 11 Nov 2009, 21:53
-
par Ben314 » 05 Nov 2016, 20:01
Et pour remettre les choses "à plat", que ça:
Edlihtamajav a écrit:delta:=b^2-4*a*c;
alpha:=-b/(2*a);
beta:=delta/(4*a);
afficher ("La forme développée du trinôme est");
si b<0 et c>0 alors
afficher (+a+"x^2-"+abs(b)+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
si b<0 et c<0 alors
afficher (+a+"x^2-"+abs(b)+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c<0 alors
afficher (+a+"x^2+"+b+"x-"+abs(c));
afficher ("La forme canonique du trinôme est");fsi;
si b>0 et c>0 alors
afficher (+a+"x^2+"+b+"x+"+c);
afficher ("La forme canonique du trinôme est");fsi;
ça donne ça :
Edlihtamajav a écrit:La forme développée du trinôme est
1x^2+-6x+11
pour a = 1 b = -6 et c = 11
ben je comprend pas.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius
-
zygomatique
- Habitué(e)
- Messages: 6928
- Enregistré le: 20 Mar 2014, 12:31
-
par zygomatique » 05 Nov 2016, 21:02
je suis bien d'accord avec toi ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE
-
fatal_error
- Membre Légendaire
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 05 Nov 2016, 21:49
en testant ici
http://www.xcasenligne.fr/giac_online/demoGiacPhp.phpil n'y a pas de problème d'affichage.
Apparemment, le programme ne supporte pas les simple quotes, mais on s'en sort ainsi:
- Code: Tout sélectionner
str(a):={
si a < 0 alors
retourne ""+a;
fsi;
retourne "+"+a;
};
show():= {
a := 1;
b := -6;
c := 11;
afficher(a+"x^2"+str(b)+"x"+str(c));
}
la vie est une fête

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