Tu as été plus rapide que moi.
En lisant ton code, j'ai trouvé quelques moyens d'optimiser le mien. Il y de petites différences sur une TI-57lcd concernant surtout le registre de test t et sa remise à zéro C.t.cgh a écrit : ↑27 sept. 2020 11:10Code : Tout sélectionner
00 32 1 STO 1 10 -49 2nd INV Int 01 00 0 11 -34 1 INV SUM 1 02 32 0 STO 0 12 34 0 SUM 0 03 22 x<>t 13 34 0 SUM 0 04 86 0 2nd Lbl 0 14 51 0 GTO 0 05 02 2 06 -39 1 2nd inv Prd 1 15 86 9 2nd Lbl 9 07 33 1 RCL 1 16 33 0 RCL 0 08 66 2nd x=t? 17 81 R/S 09 51 9 GTO 9
Mais ton code contient une astuce à laquelle je n'avais pas pensée. Et pour contourner la difficulté, j'utilisais plus de 5 pas supplèmentaires. En répétant le STO+0 aux pas 07 et 08, la fin de mon programme est maintenant plus courte car je n'ai plus besoin de multiplier par deux .
Code : Tout sélectionner
-- St
76 00 2nd CM -26 10 2nd inv x≠t?
56 01 2nd C.t 22.00 11 GTO 0
23.00 02 LBL 0 71.00 12 RCL0
55 03 ÷ 13 13 R/S
02 04 2
75 05 -
59 06 2nd Frac
61.85.00 07 STO+1
61.85.00 08 STO+1
95 09 =
Sinon, que vous l'aurez remarqué concernant l'algorithme, j'ai repomper sans aucune vergogne celui donné par Gilles59.
Avec l'astuce de la répétition du STO+0, je peux corriger la version RPN pour HP-41C de ce dernier:
Code : Tout sélectionner
001*LBL "MPO96"
002 0 STO 00 RDN
005* LBL 00
006 2 / X=0? GTO 99
010 ENTER↑ FRC ST+ 00 ST+ 00 - GTO 00
016* LBL 99
017 RCL 00
018 END
@ Gilles59
Concernant les passages rapides entre RPN et RPL, ou entre les pockets BASIC et keystroke programmables, j'ai moi aussi toujours beaucoup de mal. Après avoir fait quelques heures de RPN sur mon HP-15C ou HP-41C, tu peux être sûr que mon premier code sur mon HP-28S est bancal et qu'il y manque toute une collection de DUP pour les boucles et les tests.
J'arrive encore facilement à passer des RPN/RPL au BASIC très diffèrent. Par contre, pas moyen de refaire le calcul que je viens de tapoter sur une de mes HP directement sur ma TI-57 ldc ou mon fx-602P. Je sais plus calculer en finissant par = !!
Intéressant cette commande IDIV2, comme elle manque à l'arsenal (très limité) de mon HP-28S, je m'empresse d'en construire pour tester ton code :
Code : Tout sélectionner
« MOD LAST / IP SWAP » 'IDIV2' STO
Et là, oh! surprise c'est exactement un bout de mon code pour ce MPO !
Il est peut-être temps que je poste ma version avant que tout le monde la trouve par soi-même.
Quoique j'ai le temps, personne n'a encore songé à utiliser la récursivité
En plus je l'ai maintenant en trois versions (normale comme bernouilli92, binary arithmetic comme Gege34 et entiers long comme Gilles59.
Faut que je me décide laquelle je publie...