Page 1 sur 1

Programme solveur 1er degrés.

Message non luPosté: 07 Mar 2017, 21:49
de Plenchez
Bonjour a tous,

J'essaye désespérément depuis un certains temps de programme ma calculette pour une formule, mais sans succès.

Voici donc la formule de base
D+C+F+G+B-P=0

Voici mon programme:
: Prompt D,C,F,G,B
: résoudre(D+C+F+G+B-P,P,0,{-10^99,10^99})⇒S
: Disp S

Et donc quand je rentre ceci comme valeur:
D=190051,55
C=20950
F=0,0103(D+C)
G=0,1936(P)
B=0,0433(D+C+F+G)

Il me sort n'importe quoi, ce que je comprend pas c'est pourquoi, et surtout est-il possible de mettre un coefficient a P quant on me demande G.
Voila si vous avez des idées?
le résultat est sensé être 278697,45
Sur Excel il me le sort très facilement.

Re: Programme solveur 1er degrés.

Message non luPosté: 07 Mar 2017, 21:56
de Hamza.S
salut,

tu ne peux pas rentrer G=0,1936(P)
P est remplacé par sa valeur, si P n'a pas de valeur alors il est remplacé par 0 et donc ce qui suit est complètement faux.
le mieux est de faire ton calcul directement avec la fonction résoudre(

Re: Programme solveur 1er degrés.

Message non luPosté: 08 Mar 2017, 19:57
de Plenchez
Bonjour,

Ce qui veux dire que je doit taper tout le calcul a chaque fois?
Si j'ai pas le choix, je ferais comme ça.

Merci pour cette réponse en tout cas.

Re: Programme solveur 1er degrés.

Message non luPosté: 08 Mar 2017, 21:23
de Hamza.S
malheureusement, elle n'a pas de CAS.
pour ton calcul, c'est faisable avec des chaînes de caractères.

voici le code, en utilisant tes données directement : (je n'ai pas cette machine pour tester si ça fonctionne)
Code: Tout sélectionner
"190051.55→Chn1
"20950→Chn2
"0.0103("+Chn1+"+"+Chn2+")"→Chn3
"0.1936P→Chn4
"0.0433("+Chn1+"+"+Chn3+"+"+Chn2+"+"+Chn4+")→Chn5
résoudre(expr(Chn1)+expr(Chn2)+expr(Chn3)+expr(Chn4)+expr(Chn5)-P,P,0


tu dois utiliser Input avec des variables spéciales, type chaînes de caractères.
un petit exemple : Input "D :",Chn1
(ça ne fonctionne pas avec Prompt c'est pourquoi je précise qu'il faut Input)

Re: Programme solveur 1er degrés.

Message non luPosté: 08 Avr 2017, 15:34
de Plenchez
Merci beaucoup pour cette réponse, mais j'avoue ne pas vraiment comprendre comment je peux programmer ça dans ma calculette?

Re: Programme solveur 1er degrés.

Message non luPosté: 08 Avr 2017, 15:49
de Hamza.S
sur ton code :
Code: Tout sélectionner
Prompt D,C,F,G,B
résoudre(D+C+F+G+B-P,P,0,{-10^99,10^99})⇒S
Disp S


au lieu que ça soit Prompt c'est Inuput avec des chaînes de caractères.
Code: Tout sélectionner
Input "D =",Chn1
Input "C =",Chn2
// etc

Re: Programme solveur 1er degrés.

Message non luPosté: 10 Avr 2017, 06:42
de Nicolas_1er
Salut, j'aimerais simplement savoir comment les chaînes de caractères résolvent son problème ?
Car on stock les variable sous forme de chaîne et on fait le calcul avec ça. qu'est ce que ça change exactement ?

Re: Programme solveur 1er degrés.

Message non luPosté: 10 Avr 2017, 07:10
de Hamza.S
les (e)z80 n'ont pas de moteur de calcul formel, donc toutes les variables d'une expression (excepté le i des complexes) sont automatiquement remplacées par une valeur, si la variable n'est pas définie, celle-ci prend 0.

avec les chaînes de caractères, ton expression ne change pas, aucune variable n'est remplacée, jusqu'à ce que tu lui demandes de calculer l'expression avec expr(, (et là on revient au premier paragraphe)

Re: Programme solveur 1er degrés.

Message non luPosté: 11 Avr 2017, 06:46
de Nicolas_1er
Ha d'accord je pense que j'ai compris ;)