Soyez le premier à donner votre avis sur cette source.
Snippet vu 24 377 fois - Téléchargée 31 fois
derive { if * !isin $$1 && / !isin $$1 && $chr(40) !isin $$1 && $chr(41) !isin $$1 { tokenize 32 $replace($replace($$1, -, +-, ¹, ^1, ², ^2, ³, ^3), ^+-, ^-) if ($left($$1, 1) == +) tokenize 32 $right($$1, $calc($len($$1) -1)) if ($$1 isnum) return 0 var %¥ = $numtok($$1, 43) var %? = 0 while %? < %¥ { inc %? var %¤ = $gettok($$1, %?, 43) %¤ = $iif($left(%¤, 1) == x, 1) $+ %¤ $+ $iif($right(%¤, 1) == x, ^1) if %¤ !isnum { var %¢ = $remove($gettok(%¤, $numtok(%¤, 120), 120), ^) var %£ = $+(%£, +, $remove($calc(%¢ * $iif($gettok(%¤, 1, 120) != x, $v1, 1)) $+ x^ $+ $calc(%¢ -1), x^0, ^1)) } } return $replace($right(%£, $calc($len(%£) -1)), +-, -, 1x, x) } }
13 janv. 2006 à 21:05
mais c'est complètement algorithmique la dérivation, c'est pas difficile, c'est surtout très fastidieux.
A l'occase, matte ma source (moche) sur le calcul complexe, ici ou sur sdb, ou mieux la génération d'arbre de sax sur sdb.org.
En combinant ca avec un peu de truc comme tu as fait, on peut dériver bcp de choses je pense.. Juste que y'a du boulot ^^
13 janv. 2006 à 19:53
8 janv. 2006 à 12:11
Bon en gros ca marche, mais attention à ton $remove(...,^1) ca renvoie certains résultats faux :
$derive(x^150) > 150x49 au lieu de 150x^149
(le mm pb a planté un quart des scripteurs lors d'un défi y'a deux ans sur sdb héhé...)
Bonne continuation, ca va ptet me remotiver a faire un parser d'expressions littérales en mIRC qui sait ;)
7 janv. 2006 à 23:57
7 janv. 2006 à 22:47
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.