Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

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
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Schraf »

Voici un MPO 100 prétention mais qui 100 bon la difficulté.

En bras100 du vent près de votre calculatrice, votre ami Vin100 l'a faite tombée, cas100 en pas100 la touche "backspace".

"Bon 100 t'es aga100 !!", je 100sure les jurons mena100 et in100diaires. Mais 100 tarder, on vous retrouve bos100 et con100tré à la recherche d'une solution éblouis100te.

En voilà une idée 100sas ! Les inno100 "0" remplaceront l'évanes100 "backspace" ! Votre ami Vin100 en reste 100voix...

Je pré100 que vous voulez des exemples :
  • 120 donnera en sortie 1 (le 0 supprime le 2)
  • 15607008 donnera 18 (le 0 de gauche supprime le 6, les 2 autres 0 suppriment le 7 puis le 5)
  • 900000 donne 0 (On 100 l'agacement sur la touche)
  • 200330 donne 3
Du PB100 aux Graph100, en pass100 par les Tex100 et les pur100, bon MPO100 !

100 Backspace
100 Backspace
MPO100.jpg (54.93 Kio) Vu 6629 fois
Modifié en dernier par Schraf le 13 mai 2021 08:42, modifié 5 fois.
Avatar du membre
ledudu
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5646
Enregistré le : 26 mars 2009 13:07
Localisation : Ile de France
Contact :

Re: Misez p'tit Optimisez n°100 : La touche cassée

Message par ledudu »

Bel effort pour rendre hommage à notre 100ème MPO.

Sommaire des MPO
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Misez p'tit Optimisez n°100 : La touche cassée

Message par Danny »

Sympa.

Je suis en vacances et j’ai emmené un Sharp PC-1350 et une Casio Graph 90, que j’avais récupérés la semaine dernière, pour faire joujou avec… :geek:

C’est donc l’occasion de tester un peu Python sur la Casio, en quelques lignes :

Code : Tout sélectionner

s = input("chaîne:")
while len(s) > 1 and s.find("0") > -1 :
 p = s.find("0")
 if p == 0:
  s = s[p+1:]
 else:
  s = s[:p-1] + s[p+1:]
print("sortie:", s)
J’aurais aimé intégrer le p = s.find("0") dans le test du while pour éviter de le dupliquer, mais ça n’a pas l’air possible avec Python… :|
Dommage, avec d’autres langages c’est faisable.

D16708F9-0AEC-44B9-8E6E-ABA54F3C0D64.jpeg
D16708F9-0AEC-44B9-8E6E-ABA54F3C0D64.jpeg (116.99 Kio) Vu 6719 fois
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: Misez p'tit Optimisez n°100 : La touche cassée

Message par dprtl »

Voici une première version naïve en 4 lignes pour Casio PB-1000 et FX-850P :

Code : Tout sélectionner

10 INPUT A$:B$="":J=0:FOR I=1 TO LEN(A$)
20 C$=MID$(A$,I,1):IF C$<>"0" THEN B$=B$+C$:J=J+1:GOTO 40
30 IF J>0 THEN J=J-1:B$=LEFT$(B$,J)
40 NEXT: IF B$="" THEN PRINT"0" ELSE PRINT B$
On doit pouvoir améliorer sans trop forcer :)
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Schraf »

Bien vu de commencer par du Python ou du BASIC qui permettent de manipuler les chaines de caractères :wink:

Ci-dessous une autre proposition en Python pour les calculatrices récentes :

Code : Tout sélectionner

def mpo(n, z = 0):
  if n == 0: return 0
  q, r = n // 10, n % 10
  if r == 0: return mpo(q, z + 1)
  elif z > 0: return mpo(q, z - 1)
  else: return 10 * mpo(q) + r
Récursivité
Récursivité
Python.jpg (47.09 Kio) Vu 6675 fois
  • L'idée est de mettre en second paramètre "z" le nombre de zéros que l'on a en réserve.
  • "z" augmente de 1 si l'unité "r" est nulle
  • Sinon, si l'unité n'est pas nulle mais qu'il reste des zéros, "z" diminue de 1 et on supprime l'unité ( n // 10)
  • Et finalement, si on n'a pas de zéros en réserve et que l'unité n'est pas nulle, on garde l'unité et on continue avec n // 10
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Danny »

Pas mal la récursivité 8)
Comme t’as l’air bon en Python Éric, tu saurais si c’est possible de faire ce que je disais ci-dessus ? (Une affection de variable dans une expression de condition d’une boucle)

Maintenant il faudrait le faire sur des machines qui ne manipulent que des nombres :geek:
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Schraf »

En Python on ne peut pas faire d'affectation dans une expression...

Après, sur le principe, on pourrait utiliser un itérateur, ça ressemblerait par exemple à ça :

Code : Tout sélectionner

class suivant:
    def __next__(self):
      self.v = s.find("0")  
      return self.v

s = input("chaîne:")
p = suivant()
while len(s) > 1 and next(p) > -1 :
 if p.v == 0:
  s = s[p.v+1:]
 else:
  s = s[:p.v-1] + s[p.v+1:]
print("sortie:", s)
Ce qui revient à expliquer à Python ce que l'on entend par terme suivant et dans ce cas le "p" est bien modifié au niveau du "while".
Avatar du membre
Danny
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1248
Enregistré le : 28 déc. 2013 16:34

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Danny »

Mmh pas mal :geek:
? Apple, Atari, Canon, Casio, ????????????, HP, Psion, Sharp, Tandy... même TI.
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Schraf »

En BASIC (testé sur Canon X-07) en travaillant avec les chiffres :

Code : Tout sélectionner

10 INPUT N:S=0:Z=0:I=0
20 IF N=0 then 100
30 Q=INT(N/10):R=N-10*Q:N=Q
40 IF R=0 THEN Z=Z+1: GOTO 20
50 IF Z>0 THEN Z=Z-1: GOTO 20
60 S=S+R*10^I:I=I+1:GOTO 20
100 PRINT S
Basic
Basic
x07.jpg (48.96 Kio) Vu 6624 fois

Je me demande si une version comme ça (avec ajout (append) ou suppression (pop) du dernier élément de la liste) peut avoir un équivalent avec la pile des HP :

Code : Tout sélectionner

def mpo100(n):
  s = []
  for c in str(n):
    s.pop() if c == "0" and len(s) > 0 else s.append(c)
  return int("0" + "".join(s))
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: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par C.Ret »

Je sais pas si vous avez remarqué, mais dans le post initial, c'est une HP-41CV qui a perdu sa touche 'backspace'.

Bon, alors, voici de quoi corriger, mais attention en cas d'erreur de saisie du programme, sans la touche [ ← ], il faut utiliser [ XEQ ] [ alpha ] D E L [ alpha ] 0 0 1

Code : Tout sélectionner

001 * LBL "MPO100                               ***  L'air de rien ça en fait des MPO sur ce site !
002     1  STO 00  0  SF 00  RCL Z              ***  Initialisation de la pile
007 * LBL 00
008     10  FS?C 00  ST* T                      ***  F00: marque l'avancement reconstruction
011     /  ENTER^  FRC  -  R^  ST* L  X<> L     ***  Extraction du chiffre suivant 
018     X=0?  ISG 00  DSE 00  GTO 01            ***  R00: compteur de chiffre à supprimer 
022     ST+ Z  X>0?  SF 00                      ***  Ajout d'un chiffre dans le résultat
025     SIGN  STO 00                            ***  Remise à un du compteur d'omissions
027 * LBL 01
028     RDN  X≠0?  GTO 00  RDN                  ***  Test fin de décodage et mise en X du résultat 
032   END
Utilisation:
Saisir le nombre à concaténer et lancer le code, le résultat s'affiche.
par exemple
1203400506 [ XEQ ] [ ALPHA ] MPO100 [ ALPHA ] affiche 16.

Fonctionne pour tout nombre entier positif ou nul contenant jusqu'à dix chiffres.

(Eric tu noteras que j'ai bien écouté ta dernière vidéo sur YouTube et que j'enchaine les tests - c'est vrai que c'est bien pratique - ça ressemble tout de même un peu à du BrainFuck !)

Ressources:
Le code fait 57 octets (pour 32 instructions soit 44 octets si l'on ne compte pas le label global et le END final), utilise pleinement la pile (le contenu de celle-ci n'est pas conservé), le registre R00: et l'état du drapeau F00 et laisse le résultat final dans le registre X: afin de l'afficher.

Notons que les HP-28S ont la même touche backspace que les HP-41C, voici donc en RPL de quoi faire de même pour ces machines:

Code : Tout sélectionner

MPO100:
« →STR
  WHILE   DUP  "0"  POS  DUP
  REPEAT  1 SWAP 2 - SUB LAST + 2 + 99 SUB +  END
  DROP STR→ »
Fonctionne pour tout nombre entier ou non jusqu'à 12 chiffres, au-delà saisir les nombres plus long entre guillemets.

1203.4056 [ MPO100 ] donne 13.56
1402503.04605 [ MPO100 ] donne 12345
1002300.4503 [ MPO100 ] donne .43


Enfin, pour pocket SHARP récent (style PC-1360), même s'il n'y a pas de touche basckspace, l'effacement du dernier caractère saisi faisant intervenir deux ou trois touches (curseur vers la gauche puis touche d'effacement DEL):

Code : Tout sélectionner

10:" " AREAD IN$:RE$="": FOR I=1 TO LEN IN$:RE$=RE$+ MID$ (IN$,I,1)
20:IF RIGHT$ (RE$,1)="0" LET RE$= LEFT$ ("  "+RE$, LEN RE$)
30:NEXT I: PRINT VAL RE$: END
Fonctionne pour des nombres entier ou non, négatifs, positifs ou nuls jusqu'à 16 chiffres.
Le résultat est cependant arrondi sur 12 chiffres.

15607008 DEF SPC donne 18.
-12036.203025 DEF SPC donne -136.25
-01203.01203 DEF SPC donne 1313.
Modifié en dernier par C.Ret le 14 mai 2021 17:33, 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
babaorhum
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 454
Enregistré le : 13 janv. 2013 19:44
Localisation : Marseille-est

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par babaorhum »

Bonjour,
Joli sujet pour le MPO 100 - Je propose une solution pour HP-71B, qui manipule les chaînes comme des tableaux ; on ne le dira jamais assez , c'est super pratique !
le code suivant donne les mêmes résultats que le basic Sharp de C.Ret :

Code : Tout sélectionner

10 INPUT M$ @ I = 1
20 IF M$[I,I]="0" THEN M$[I-1,I]="" @ I=I-1 @ GOTO 20
30 I=I+1 @ IF M$[I,I]<>"" THEN 20 ELSE PRINT M$
Je me demande si la 41CX et ses fonctions ALPHA étendues (XMEMORY) ne serait pas pertinente aussi ... à réfléchir ...
BaBaoRhum
HP J728,200LX,1000CX,75C,71B,48GX,42s,41CX,32E,32Sii,28S,22s,21,16C,11C
Sharp PC- E500,1600,1500,1350,1261,1245
Casio FX-502P,602p,850P,3900P,4000P
TI-74,92,95 ; Canon X-07 ; TANDY EC-4026 ; Wp34S
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: Misez p'tit Optimisez n°100 : La touche cassée

Message par C.Ret »

Danny a écrit : 11 mai 2021 23:35 Sympa.
[...]
J’aurais aimé intégrer le p = s.find("0") dans le test du while pour éviter de le dupliquer, mais ça n’a pas l’air possible avec Python… :|
Dommage, avec d’autres langages c’est faisable.
[...]
Ce MPO est effectivement très sympa.

Dans d'autre langage, j'ai eu le même souci que toi en cherchant à intégrer le FIND dans la clause du WHILE ... en RPL.

Pour éviter de répéter le FIND (réalisé par l'instruction POS en RPL, j'ai dû subrepticement insérer un DUP avant le REPEAT afin de transmettre la position dans la boucle du WHILE.

Le corolaire, est qu'il ne faut pas oublier le DROP à l'issu de la structure WHILE ... REPEAT ... END afin de faire disparaitre cette valeur.
dprtl a écrit : 11 mai 2021 23:41[...]On doit pouvoir améliorer sans trop forcer :)
C'est ce que j'ai fait, j'ai sans trop me forcer à améliorer ton code BASIC. Pour éviter les tests, j'ai utilisé une vieille astuce qui consiste à ajouter des espaces en début de chaine de caractère; ainsi, on peut supprimer plus facilement un nombre déterminé de caractères d'une chaine sans avoir à vérifier qu'elle est assez longue.

A la ligne 20: de mon code, j'utilise LEFT$( " "+RE$, LEN RE$ ) qui ne crée pas de souci (même si RE$ est trop court) et donne le même résultat que LEFT$( RE$, LEN RE$ - 2 ) qui plante lorsque RE$ fait moins de deux caractères.

Le corolaire de cette astuce est qu'il faut utiliser VAL RE$ pour afficher la valeur zéro lorsque RE$ ne contient plus de chiffre.
Schraf a écrit : 12 mai 2021 15:44
  • L'idée est de mettre en second paramètre "z" le nombre de zéros que l'on a en réserve.
  • "z" augmente de 1 si l'unité "r" est nulle
  • Sinon, si l'unité n'est pas nulle mais qu'il reste des zéros, "z" diminue de 1 et on supprime l'unité ( n // 10)
  • Et finalement, si on n'a pas de zéros en réserve et que l'unité n'est pas nulle, on garde l'unité et on continue avec n // 10
L'idée du paramètre "z" est celle que j'ai utilisée dans le code pour HP-41C, le registre R00: contient le nombre de "zéro en réserve" c'est à dire le nombre de délétions qu'il reste encore à réaliser. Sur cette machine, je n'ai pas cherché à utiliser la récurrence, par contre, R00: contient en réalité la valeur "1+z" de façon à utiliser les propriété de l'instruction DSE plus judicieusement.

L'enchainement des instructions de test et d'incrémentation ou décrémentation de la séquence ... X<>L x=0? ISG 00 DSE 00 GTO 01 ST+ Z ... est un exemple assez typique d'une astuce pour MPO. Ce code n'est compréhensible que par les autistes qui métrisent parfaitement les règles des sauts de pas de programme des instructions de tests du RPN !! On comprend alors pourquoi R00: est initialisé à 1 et pas à zéro.

Une bonne explication de l'enchainement des instructions conditionnelles est donnée dans ta dernière vidéo sur l'HP-41C !
Bon, il avec mon code, vous avez une idée de ce qui se passe en enchaînant plus detrois tests ! 8O 8O 8O
Danny a écrit : 12 mai 2021 16:36Maintenant il faudrait le faire sur des machines qui ne manipulent que des nombres :geek:
J'attends avec impatience les versions pour HP-15C, HP-19C et autre HP-65, HP-97 !!

Je prépare une version BASIC pour SHARP PC-1211 qui ressemble fortement à celle de Schraf pour CANON X-07, mais en Misant Plus Optimisé !

Code : Tout sélectionner

1:CLEAR :INPUT N:P=1
2:Q=.1N,N=INT Q,Z=Z+2*(Q=N:IF Z=0 LET P=10P,R=R+P*(Q-N
3:Z=Z-SGN Z:IF NGOTO 2 
4:PRINT R
(Et oui, je suis 100 gênes)

babaorhum a écrit : 13 mai 2021 20:33Je propose une solution pour HP-71B, qui manipule les chaînes comme des tableaux ; on ne le dira jamais assez , c'est super pratique !
J'étais justement en train de préparer une version pour HP-71B, mais avec le module ROM JPC, j'utilise une boucle LOOP @ ... @ END LOOP :

Code : Tout sélectionner

10 INPUT N$ @ LOOP @ P=POS(N$,"0") @ IF P THEN N$[P-1,P]="" ELSE LEAVE
12 END LOOP @ DISP VAL(N$&".0") @ END
Le VAL et l'ajout ".0" est une astuce pour que 90000 affiche effectivement 0 et non pas une ligne vide !

Si on a pas de module JPC ROM, on peut facilement adapter :

Code : Tout sélectionner

1 INPUT N$ 
5 P=POS(N$,"0") @ IF P THEN N$[P-1,P]="" @ GOTO 5 ELSE DISP VAL(N$&".0")
C'est presque plus court, mais il y a un GOTO ! Beurk !!
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.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Gilles59 »

Un petit coup de NewRPL sur HP50g

Code : Tout sélectionner

«
 UTF8➔
   « DUP IF 48  == THEN DROP2 END IF DEPTH NOT THEN 48 END » MAP
 ➔UTF8
»
La séquence

Code : Tout sélectionner

 IF DEPTH NOT THEN 48 END
permet de gérer les cas genre "900000". '48' est le code UTF8 de "0" (comme en ASCII je pense). Ca complique le source .. dommage. J'aimais bien juste

Code : Tout sélectionner

« UTF8➔ « DUP IF 48  == THEN DROP2 » MAP ➔UTF8 »
A noter que contrairement au 'vieux' RPL, le DEPTH du NewRPL prend en compte la pile 'locale' donc pas besoin de 'vider' la pile pour utiliser ce pgm.

En savoir plus sur le NewRPL : https://www.hpmuseum.org/forum/thread-14562.html
Modifié en dernier par Gilles59 le 13 mai 2021 23:20, modifié 1 fois.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5268
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par bernouilli92 »

Schraf a écrit : 12 mai 2021 17:12 En Python on ne peut pas faire d'affectation dans une expression...
C’est possible depuis python 3.8 avec l’opérateur :=

https://python.developpez.com/actu/2809 ... niquement/

https://www.python.org/dev/peps/pep-0572/

Mais je suppose que le micropython des calculatrices n’ont pas (encore) cette possibilité.
HP, Casio, Sharp, Psion, quelques TI et divers autres
Avatar du membre
Schraf
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 499
Enregistré le : 05 mars 2020 20:45
Contact :

Re: Misez p'tit Optimisez n°100 : Quand le 0 devient backspace

Message par Schraf »

C.Ret, sympa d'avoir regardé ma vidéo, c'est comme si Philippe Etchebest m'observait cuisiner :D

Merci bernouilli92 pour le coup du ":=" avec Python, je vais creuser la question.

Version Ti-57 : Pour le moment je n'arrive pas à enchainer un équivalent du "X=0? ISG 00 DSE 00" en utilisant Dsz...

Vidéo d'exécution avec une vraie Ti-57 : https://uabox.univ-angers.fr/index.php/ ... wtLyNYRzpK

Exécution avec une vraie Ti-57 (15607008 --&gt; 18)
Exécution avec une vraie Ti-57 (15607008 --> 18)
ti57mpo100.jpg (133.98 Kio) Vu 6460 fois

Simulateur par ici : https://www.pcjs.org/machines/ti/ti57/rev0/

Code : Tout sélectionner

00 32 0		STO 0		; N
01 00		0
02 32 1		STO 1		; Z=0
03 32 2		STO 2		; Résultat final
04 32 4		STO 4		; M4 = puissance de 10
05 86 1		2nd Lbl 1
06 33 0		RCL 0
07 19		2nd C.t
08 66		x = t
09 51 2		GTO 2		; N == 0 ? --> FIN
10 01		1
11 00		0
12 -39 0	INV 2nd Prd 0	; N/10 --> STO 0
13 33 0		RCL 0
14 -49		INV 2nd Int		
15 -34 0	INV SUM 0	; [N/10] --> STO 0
16 32 3		STO 3		
17 66		x = t
18 51 3		GTO 3		;  Frac(N/10) == 0 ? 
19 33 1		RCL 1
20 22		x ≷ t
21 -76		INV 2nd x>=t	; Z > 0 ?
22 51 4		GTO 4
23 86 5		2nd Lbl 5
24 01		1		;  augmentation puissance M4
25 34 4		SUM 4
26 33 3		RCL 3
27 55		×
28 33 4		RCL 4
29 -18		INV 2nd log
30 85		=		;  unité * 10 ^M4
31 34 2		SUM 2		; ajout au résultat final
32 51 1		GTO 1
33 86 2		2nd Lbl 2
34 33 2		RCL 2
35 81		R/S
36 86 3		2nd Lbl 3
37 01		1
38 34 1		SUM 1	; Z = Z + 1
39 51 1		GTO 1
40 86 4		2nd Lbl 4
41 01		1
42 -34 1	INV SUM 1	; Z = Z - 1
43 51 1		GTO 1
Je me demandais si une variation en binaire serait amusante, par exemple entrer 123 et la machine sort 3 car :

123 = 10011001110 b --> MPO100 --> 11 b = 3
Modifié en dernier par Schraf le 15 mai 2021 16:41, modifié 1 fois.
Répondre

Retourner vers « Tous les Pockets »