C'est un peu compliqué, il faudrait que tu analyses caractère par caractère ta chaine. En basic en plus ça peut être lent.
Demande plutôt dans différents Requests les valeurs des coefficients, ce sera nettement plus simple.
c pas super lent non plus, y a qu'a voir Xtab.
Mais franchement, ça peut être très compliqué si tu veux un truc bien souple, genre quelque chose qui analyse ça : 2x + 3x² - 4x + 5 + (3*2)x*4 + 12 - 4
ouais, mais bon, part ne différencie pas l'ordre des expressions quand il s'agit d'adition ou de soustraction, ça peut être génant.

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
kran Le 21/02/2003 à 12:36 Et kan t'as plus de deux éléments tu fé comment?
kran Le 21/02/2003 à 12:40 ca marche pas avec ",3" il met dimension error ?!
J'ai l'impression qu'on ne peut pas mettre un nombre > 2 comme deuxième argument de la fonction part.
Il faut mettre 1 puis reprendre cette expression et l'analyser
c pasque quand tu fait part(...,1) il te renvois ce qui entoure le premier +/-, càd 8x² et 24x, avec 2, comme y a pus de +/-, il te renvois le dernier élément, càd 35. Et c là que c dangeureux, pasque c pas toi qui décide dans quel ordre les éléments sont pris.

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
kran Le 21/02/2003 à 14:03 Oui mais alors pourkoi quand tu as 8x²-24x+35-2x^3
et que tu fait part(....,1) ca t'affiche 8x²-2x^3-24x
et part(...,2) ca te met 35
BiHi Le 21/02/2003 à 14:16 C'est normal. Il met dans l'ordre décroissant des puissances de x, et ensuite part(...,0) c'est l'opérateur, part(...,1) c'est avant l'opérateur donc les puissances les plus hautes, et finallement part(...,2) c'est après donc un seul truc (par exemple 35 ou bien 3x²).
Mais c'est vrai que le part(...,1) est pas remis dans l'ordre des puissances alors que le part(...,2) prend le plus petit...

;)
aze Le 21/02/2003 à 17:26 bwoarf, je suis sur que pour determiner les coefs d'un polynome, c plus simple de travailler sur une chaine.. (avec instring())
pasque utiliser part() pour faire de l'identification, c pas facile (separer les termes, separer le coef, verifier la var, verifier la puissance...)
Kevin Kofler Le 21/02/2003 à 17:52Edité par Kevin Kofler le 21/02/2003 à 17:53 C'est quand-même un hack, même si c'est plus facile dans certains cas particuliers. (Si tu veux gérer tous les cas, je doûte que ce soit aussi facile.)
Et il y a un autre moyen de récupérer les coefficients des polynômes: dériver n fois, mettre x à 0, et diviser par n!. Mais pour que ça marche correctement, il faut que tu saches que la fonction est un polynôme. Sinon, tu travailles avec une approximation de la fonction (approximation de Taylor par développements limités), pas avec la fonction elle-même, en faisant ça. Et l'approximation est mauvaise plus tu t'éloignes du point 0. Au-delà de ±1, elle est dans la plupart des cas inutilisable.
kran Le 21/02/2003 à 18:52 G essyé de faire un truc avec la fonction part() pour séparer les différents termes :
Prgm
ClrIO
Local a,c,d,e,f,b
Request "",a
expr(a)»a
part(a)»b
If b=2 Then
part(a)»b
part(a,1)»e
part(a,2)»f
Disp e,"",f
ElseIf b=3 Then
part(a)»b
part(a,1)»e
part(e,1)»g
part(e,2)»d
part(a,2)»f
Disp g,"",d,"",f
EndIf
Pause
EndPrgm
Le problème c'est que avec, par exemple 3x²-5x+3, il me sépare les temres comme ça :
->3x²-5x
->et 3