Nom | Description |
---|---|
Polonaise Inverse
Demo.exe | Composant non-visuel qui calcule en Polonaise Inverse.
- Compilation : L'expression est compilé et les coefficients sont convertis en extended. Les erreurs de piles y sont détectées ; - Encemensement Les variables peuvent être introduites sous forme Numérique ou ASCII ; - Résultats : String ou Extended; - Sommet de la pile données : Le sommet est libéré à l'appel de la fonction evalue(...) ; - Une erreur de calcul entraîne l'arrêt jusqu'à l'intervention du programme maître ; - Le sommet de la pile subit l'opération ; - Fonctions implémentées : ==Arithmétiques : +, -, *, / ; ==Trigonométriques (angle en radians) : Sin, Cos, Tan, ASin, ACos, ATan ; ==Hyperboliques : HSin, HCos, HTan, AHSin, AHCos, AHTan ; ==Comparaisons (vrai=1, faux=0) : < , =, >, >=, =>, <=, =<, <>, >< ; ==Probabilités (min=0, max=1) : et, ou, exo, sans, net, nou, nexo, nsans, non ; ==Linéaires : Exp, Ln, ^, /^, ! : Exemples: Résultats Explications Remarque 5 3 + 8 3 + 5 = 8 9 1 - -8 1 - 9 = - 8 1 est le sommet de la pile 3 3 * 9 2 8 / 4 8 / 2 = 4 8 est le sommet de la pile 2 3 ^ 9 3 ^ 2 = 9 3 est le sommet de la pile 7 3 > 0 3 > 7 = 0 (faux) 3 est le sommet de la pile 3.1 3.1 => 1 3.1 => 3.1 = 1(vrai) 1 1 et 1 1 * 1 = 1 0 1 et 0 1 * 0 = 0 0.3 0.6 et 0.18 0.6 * 0.3 Pour 0 < x < 1 0.3 0.6 ou 0.72 0.6 + 0.3 - 0.6 * 0.3 Pour 0 < x < 1 1.5 0.4 ou 1 min(1.5 + 0.4 - 1.5*0.4 = 1.3 , 1) = 1; -3.2 0.2 ou 0 max(-3.2 + 0.2 - -3.2*0.2 = 2.36, 0) = 0 1.3 -8 ^ 16 -8^(4/3) = (-8 ^1/3 = -2)^4 = 16 (Peut être long!) 2.3 -8 ^ -128 -8^(7/3) = (-8 ^1/3 = -2)^7 = -128 (Peut être long!) 5 ! 120 5.5 ! 287.885277815044 Les factoriels réels sont approximés 6 ! 720 Comparatif d'une expression compilée avec Polonaise_inverse(D6) vs Delphi6 : for i:=0 to 1e8 do ... Test Polonaise(s) Delphi6(s) Polonaise/Delphi 5 * 32 32.9 1.7 19.4 5 * 32 * 41 48.9 2.4 20.3 sin(1) 41.7 10.4 4.0 cos(sin(5)) 72.4 35.1 2.1 tan(cos(sin(1)) 101.7 46.7 2.2 Conclusion : Dans les expressions de base, Delphi ira 20 fois plus vite que Polonaise_inverse. La ratio tombe a 2 fois dès que les expressions sont préprogrammées. |