C'est que les boucle FOR To/NEXT sur PC-1211 c'est pas rapide et ça consomment des octets.babaorhum a écrit :Sauf pour le "BASICRET" sur PC-1211, auquel on ne comprend rien !!!!!
Donc, je retire la boucle (qui est pourtant une bonne idée) et j'affecte directement les trois variables.
Ensuite j'essaie de tirer partie de la spécificité du PC-1211, à savoir la multiplication implicite.
Pour économiser les octet, j'utilise la variable E que j'initialise à 100 en utilisant 1Exp2 qui s'abrège en |E2.
Après, l'idée est de multplier par 100 autan de fois que nécesssaire pour extraire la partie entière.
Pour A c'est direct A=INT(H)
Pour B il faut extraire deux chiffres et donc multiplier par 100 d'où B=INT(100*H-100*INT(H)).
Mais on vient de calculer INT(H), on a donc B=INT(100*H-100*A).
Bon factoriser par 100 n'apporte rien car il faut écrire les parenthèses. On peut remplacer 100 par E (c'est plus court) et profiter de la multiplication implicite : B=INT (E*H-E*A) que je code B=INT (EH-EA sans fermer la parenthèse car fermer les parenthèses ou terminer les expression st facultatif sur le PC-1211, il termine et ferme les expressions pour vous.
Même raisonnement pour C, pour extraire 4 chiffre on multiplie par 10000 c'est à dire 100*100.
On utilise A et B pour ne pas avoir à recalculer les parties entière.
Et en fin de compte, on a pas besoin de INT, car le nombre H initial n'a que 4 décimales. Et s'il en avait plus de toute façon cela s'afficherait en tant que secondes fractionaires : C=EEH-EEA-EB
C=10000*22.3345 - 10000*22 - 100*33 = 223345 - 220000 - 3300 = 45
Premier avantage de mon code, il ne fais que 37 octets et ne nécessite que 3 variables:
Code : Tout sélectionner
10 INPUT C : A=INT C , B=INT (|E2C-|E2A , C=|E4C-|E4A-|E2B
Dernier avantage , 11.204375 h fait bien 11h12'15.75" ( 11.121575 en H.MMSSsss ) produit bien
A=11 (heures/degrés) B=12 (minutes) C=15.75 (secondes).
Je ne suis pas sûr que vos algorithmes soient capablent d'indiquer un nombre de seconde frationaires !?!
Bon, il se fait tard, je vais coucher mes Pockets et me ranger dans le tiroir du bureau pour la nuit !