MPO n°66 - Convertisseur en chiffres romains

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2934
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: MPO n°66 - Convertisseur en chiffres romains

Message par zpalm »

C.Ret a écrit :Surprenant cette différence de vitesse
En fait le deuxième programme est entièrement compilé alors que dans le premier programme l'expression en paramètre de EXECON est interprétée pour chaque élément de la liste r soit 13 fois.

Pas mal ta version pour la HP 41C!
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3421
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO n°66 - Convertisseur en chiffres romains

Message par C.Ret »

AH! Je comprends mieux. Effectivement c'est donc logique.

La version HP-41C est le résultat de l'étude des programmes de ce fil ainsi que du programme du HP Muséum. La démarche est de rationaliser l'appel des procèdures d'affichage des symboles dans le registre Alpha. L'idée de faire coincider l'indice avec d'une part les variables (registre) et d'autre part les sous-programmes d'affichage alpha, m'est venue des difficultés du SHARP PC-1211 qui ne gère pas les chaines de caractères, n'a pas de DATA, n'a pas de liste ...
En fait, le jeu des indices est bien également la méthode que j'ai publié en RPN

En fait, l'HP41C et le SHARP PC1211 ont pas mal de points délicats en commun. Certainement lié à leur grand age ?
Modifié en dernier par C.Ret le 21 août 2015 10:20, modifié 1 fois.
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8409
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: MPO n°66 - Convertisseur en chiffres romains

Message par badaze »

Image
Photo prise à Amsterdam.
On en a parlé dans ce fil.

Je n'avais jamais vu 1000 écrit comme cela auparavant (et pourtant j'ai beaucoup bourlingué en Italie où les chiffres romains sont légions ;) )
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: MPO n°66 - Convertisseur en chiffres romains

Message par Schraf »

Par hasard je suis tombé sur un post Facebook où il était question de chiffres romains, ça m'a rappelé que j'avais vu un MPO par ici (qui date on est d'accord !!). En relisant vos propositions, j'ai trouvé amusante la version de @bernouilli92 pour initialiser la liste { 1000 900 500 400 100 90 50 40 10 9 5 4 1 } :

Code : Tout sélectionner

{10 9 5 4} DUP 100 * OVER 10 * + SWAP + 1 +
Voici ma proposition en Python (pour les calculatrices actuelles comme la NUMWORKS) basée sur le même principe :

Code : Tout sélectionner

arabe = [j * i for j in [100,10,1] for i in [10,9,5,4]] + [1]
romain = 'M,CM,D,CD,C,XC,L,XL,X,IX,V,IV,I'.split(',')
 
def convertir(nb, s = ''):
 for i, a in enumerate(arabe):
  (res, nb) = divmod(nb, a)
  s += romain[i] * res
 return s
Voilà, je referme ce MPO vieux de 7 ans 8O
Répondre

Retourner vers « Tous les Pockets »