Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

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

Répondre
Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2411
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par C.Ret » 26 sept. 2020 20:57

Voilà un p'tit MPO qui va ravir tous les surdoués du numérique et de l'électronique ...

C'est une question toute bête, mais parfois les idées les plus simples ne sont pas les plus faciles à réaliser !

D'ailleurs, je n'ai pas la moindre idée de comment faire ce calcul. Peut-être y a-t-il sur l'une de vos machines une instruction pour le faire facilement en quelques touches ? Je ne sais pas ?

Voilà, par exemple le nombre 5 s'écrit 0101 en binaire, il contient donc deux bits mis à la valeur une.
Par contre, 1968 s'écrit 0111 1011 0000 en binaire, il en contient donc six, soit trois fois plus que 5, mais autant que 1370.
Et 1279 contient neuf bits à un, c'est à dire trois de plus que 1968 ou 1370 qui sont pourtant plus grands que lui, mais autant que son carré qui fait 1635841.
J'y perds mon arithmétique !

Mais, il doit bien y avoir un moyen de calculer, pour un entier positif donné, le nombre de bits à un que contient sa représentation binaire.

Je compte sur vous et sur vos codes bien organisés pour trouver un moyen efficace, simple et court.
Quelques pas de code ou quelques touches préfixées pour me dire Combien de bits à un il y a dans cet entier !
Dernière édition par C.Ret le 26 sept. 2020 21:12, édité 1 fois.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4584
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par bernouilli92 » 26 sept. 2020 21:07

Ma proposition en RPL :

Code : Tout sélectionner

« 0 → N
  «
    WHILE DUP
    REPEAT 
      2 / DUP IP SWAP FP 2 * 
      'N' STO+
    END 
    DROP N
  »
»
HP, Casio, Sharp, Psion, quelques TI et divers autres

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 » 26 sept. 2020 21:34

Version RPL HP50g, mais c'est un peu de la gruge ;D

Code : Tout sélectionner

« BIN R->B ->STR "1" DUP SREPL  »
31,5 octets

en NewRPL c'est un peu différent :

Code : Tout sélectionner

« #0b SWAP + ->STR "1" DUP SREPL »
40 octets

Une version 603P sera plus amusante ;D
Dernière édition par Gilles59 le 26 sept. 2020 22:17, édité 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+

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4584
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par bernouilli92 » 26 sept. 2020 22:15

Il manque un SWAP DROP à la fin. Ou je crois qu’il une autre commande qui fait la même chose sur hp50.
HP, Casio, Sharp, Psion, quelques TI et divers autres

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 » 26 sept. 2020 22:18

bernouilli92 a écrit :
26 sept. 2020 22:15
Il manque un SWAP DROP à la fin. Ou je crois qu’il une autre commande qui fait la même chose sur hp50.
Oui, c'est NIP ;D Mais j'aimais bien laisser l'affichage en binaire en plus du calcul
Dernière édition par Gilles59 le 26 sept. 2020 22:19, édité 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+

Avatar de l’utilisateur
Gege34
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1422
Inscription : 03 oct. 2014 11:19
Localisation : 31

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gege34 » 26 sept. 2020 22:19

Le bon vieux test que l'on fait passer au petit jeune avant de les embaucher pour savoir s'ils savent aligner 3 lignes de code.
Bon c'est pas le plus optimiser et ça fait un bon moment que j'ai pas codé en RPL, j'ai voulu n'utiliser que la stack et de la logique binaire :

Code : Tout sélectionner

« # 0d SWAP R->B
WHILE
    DUP # 0d ≠
REPEAT
    DUP # 1d AND
    ROT + SWAP
    SR
END
DROP B->R »
Dernière édition par Gege34 le 26 sept. 2020 22:24, édité 1 fois.
Du Commodore (64/128/Amiga), De la HP (28/41/48/50/71/75/200/Prime) et quelques autres trucs (Ti, Canon X07, Psion, Casio, Palm, Thomson, Exl)

pcscote
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 71
Inscription : 11 juil. 2018 01:06

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par pcscote » 26 sept. 2020 22:21

Solution RPN pour HP-41: (30 octets, aucune variable)

Code : Tout sélectionner

LBL "BC"
0
X<>Y
ABS
LBL 00
INT
X=0?
GTO 01
ENTER
ENTER
2
MOD
ST+ Z
RDN
LASTX
/
GTO 00
LBL 01
RDN
END

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 » 26 sept. 2020 23:09

Une version pour Casio FX-602P en 16 pas en comptant l'entête (15 sinon)

Code : Tout sélectionner

[P0]
 MAC
 LBL0
  = / 2 - x=0 GOTO9
  FRAC x=0 GOTO0 ISZ GOTO0
 LBL9
  MR00 
Ca doit s'adapter facilement en RPN ;D

EDIT : je cafouille complétement en RPN avec ma 41L... Faudra que je lise la doc de HP41 lol ! L'idée c'est :

Code : Tout sélectionner

 0 
 STO 00
 RDN
*LBL 00 
 2
 /
 X=0? 
 GTO 99
 ENTER
 FRC
 X<>0? 
 1 
 ST+ 00
 RDN
 -
 GTO 00
*LBL 99
 RCL 00
Je ne sais même pas comment on entre x<>0? En plus ca ne doit probablement pas marcher et c'est plus long que mon prog 602P ;D
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+

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2411
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par C.Ret » 27 sept. 2020 09:45

1- En RPL
bernouilli92 a écrit :
26 sept. 2020 21:07

Code : Tout sélectionner

« 0 → N « WHILE DUP
          REPEAT 2 / DUP IP SWAP FP 2 * 'N' STO+ END 
          DROP N » »
Merci bernouilli92 pour ta réponse très rapide, comme souvent les utilisateurs de RPL sont les plus prompts à générer un code, toujours son système sous la main ! :)
J'aime bien quelques astuces que tu utilises;
  • utiliser une division par deux pour détecter la valeur des bits,
  • utiliser une variable locale comme compteur c'est plus lisible qu'une version utilisant la pile et qui contiendra donc un certain nombre de SWAP, ROLL ou ROT ROT supplémentaires,
  • enfin effectuer FP 2 * 'N' STO+ afin d'ajouter 0 ou 1 au compteur selon la résultat de la division
Malheureusement, utiliser la pile ou d'autre fonction pour extraire la valeur bit par bit peut être plus court pour cet MPO.
Par ailleurs, FP 2 * c'est un 2 MOD en un plus long.
Et je découvre que STO+ ne fonctionne pas sur HP-28S avec les variables locales :(
Gilles59 a écrit :
26 sept. 2020 21:34
(UserRPL)

Code : Tout sélectionner

« BIN R->B ->STR "1" DUP SREPL  »
(newRPL)

Code : Tout sélectionner

« #0b SWAP + ->STR "1" DUP SREPL »
N'ayant pas d'HP-50g sous la main, je n'ai pas pu tester, mais j'ai un doute, je ne vois pas où le comptage des bits est effectuer ? D'ailleurs, je ne vois pas à quoi sert de remplacer les "1" par des "1" ?

Sur mon HP-28S (après avoir écrit un code pour palier à l'absence de la commande SREPL), en essayant 1968 j'obtiens "# 11110110000b" mais pas le nombre des bits à un :(

Il doit y avoir une astuce non documentée qui fait que SREPL compte les occurrences des "1" ? Je n'en ai pas trouvé trace dans la documentation fournie par HP :
MPO96 - HP50g advanced user manual.gif
HP50g / 49g+ / 48gII graphing calculator advanced user's manual
MPO96 - HP50g advanced user manual.gif (26.32 Kio) Consulté 2432 fois

Gege34 a écrit :
26 sept. 2020 22:19

Code : Tout sélectionner

« #0d SWAP R→B WHILE DUP #0d ≠
               REPEAT DUP #1d AND 
                      ROT + SWAP SR END
  DROP B→R »
Ah! Bien voilà une bonne idée transformer l'entier en entier binaire pour traiter le problème avec les instructions AND (logic AND) et SR (Shift Right) spécifiques et adaptées à ce type. Gros avantage, on peu alors aller compter jusqu'à des entiers de 64 bits; on pourrait alors vérifier que # 2305843009213693952d n'a que deux bits à un !
Génial !

Sans la dernière instruction B→R , on aurait le résultat exprimé en binaire, décimal, octal ou hexadécimal selon le mode en cours. Je me rend compte qu'il n'est donc pas nécessaire de spécifier un mode (DEC BIN HEX OCT ) pour que ton code fonctionne :)

Effectivement #1b AND est une alternative à FP 2 * quelque soit le mode sélectionné. Par contre, n 1 AND ne fonctionne pas en mode normal car n'effectue pas d'arithmétique binaire et renvoi toujours 1 sauf si l'argument n est nul.

Vos codes m'ont obligés à revoir mon propre code RPL en profondeur qui comme celui de Gilles59 ne contient pas d'instruction WHILLE ... REPEAT ... END, mais qui comme ceux de Gege34 et bernouilli92 effectue une boucle WHILE/REPEAT.

Je vais attendre encore un peu avant de poster, je sens que de nouvelles idées vont surgir :)



2- En RPN
pcscote a écrit :
26 sept. 2020 22:21

Code : Tout sélectionner

001 LBL "BC"
002   0  X<>Y  ABS
005   LBL 00
006     INT  X=0?  GTO 01
009     ENTER↑  ENTER↑  2  MOD  ST+ Z  RDN  LASTX  /  GTO 00
018   LBL 01
019     RDN
020 END
Voilà, une bonne idée utilisant 2 MOD et en effectuant le comptage directement dans un registre de la pile; J'ai eut la même idée.
L'instruction ABS m'intrigue, elle permet effectivement de traiter le cas où l'utilisateur aurait saisie un nombre négatif.
Elle est donc facultative. Il y a peut-être moyen de gagner quelques pas en organisant différemment la sortie de boucle principale :)
Gilles59 a écrit :
26 sept. 2020 23:09

Code : Tout sélectionner

002 0  STO 00  RDN
005*LBL 00 
006   2  /  X=0?  GTO 99
010   ENTER↑  FRC  X≠0?  1 
014   ST+ 00  RDN  -  GTO 00
018*LBL 99
019   RCL 00
J'ai renuméroté de 002 à 019 car pour tester sur mon HP-41C, j'ai dû insérer un label LBL de début et un END de fin pour séparer ce code des autres codes en mémoire. Sur les HP il n'y a pas les zone de programme comme font les CASIO.
Il est donc de la même taille que le code proposé par pcscote voir plus long si on économise l'instruction ABS et heureusement encore bien plus long que ma version.

Pour saisir X≠0? il faut utiliser la séquence de touches [XEQ] [ALPHA] [6] [_] [SIN] [_] [0] [3] [ALPHA], la touche [6] porte le caractère X, la touche [SIN] le H et le ≠ quand elle est préfixée et la touche [3] le ? final.

Ca ne marche pas car, contrairement au RPL, l'instruction de test X≠0? ne consomme pas son argument, ce qui fait que lorsque le 1 n'est pas inséré, le RDN drope le résultat du FRC et la soustraction ne se fait pas avec les bons arguments. :(

Pas facile de passer d'une machine à l'autre, les paradigmes de fonctionnement sont très différentes ou très proches mais piégés :)

Heureusement, bernouilli92 nous a donné une solution pour corriger ce code, utilisons FRC 2 * :

Code : Tout sélectionner

001*LBL "b.G.C." 
002   0  STO 00  RDN
005*  LBL 00 
006     2  /  X=0?  GTO 99
010     ENTER↑  FRC  RCL X  2  *  ST+ 00  RDN  -  GTO 00
020*  LBL 99
021     RCL 00
022 END
C'est malheureusement plus long

J'ai plus court pour HP-41C, mais j'attends encore un peu pour voir si les idées et code à venir ne vont pas là aussi m'obliger à réformer mon code.
J'attends aussi quelque exemple sur HP Classic ou Voyager dont l'usage de la pile sera certainement diffèrent.


3- En CASIO keystroke
Gilles59 a écrit :
26 sept. 2020 23:09

Code : Tout sélectionner

[P0]
 MAC                          001
 LBL0                         002
  = / 2 - x=0 GOTO9           008
  FRAC x=0 GOTO0              010
  ISZ GOTO0                   013
 LBL9                         014
  MR00                        015
Utiliser la division par deux est une bonne idée. Je ne savais pas comment faire sur mon fx-602P, je vais suivre cette voie.
Retirer la partie fractionnaire au résultat de la division est excellente, cela évite d'utiliser INT et simplifie énormément la boucle principale.
Mais tous ces GOTO, cela fait un peu spaghetti, je vais voir si un plat de nouilles ne serait pas moins copieux :D


4- En pocket BASIC

Tiens, bizarre encore rien


5- En AOS et autre keystroke TI

L'absence des TI-57/58/59 à chaque MPO devient inquiétante. Il y a-t-il encore de ces modèles en fonctionnement. C'est dommage, ce sont des machines qui avaient marquées par leurs performances l'histoire du calcul de poches.

Je vais préparer quelque chose sur ma TI-57 lcd.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | HP-28S + HP82240A | TI-74 BasiCalc | HP-41C + (2 memory + stat + IR) | HP-15C | HP Prime Color Touchscreen Graphing Calculator| TI-92 II | CASIO fx-602p + FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader . Sommaire des M.P.O..

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2235
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh » 27 sept. 2020 11:10

C.Ret a écrit :
27 sept. 2020 09:45
L'absence des TI-57/58/59 à chaque MPO devient inquiétante. Il y a-t-il encore de ces modèles en fonctionnement. C'est dommage, ce sont des machines qui avaient marquées par leurs performances l'histoire du calcul de poches.
Tout a fait d'accord ! Les veberables TI sont absentes et c'est fort dommage, surtout la TI57, veritable merveille sur laquelle nombre d'entre-nous firent leurs premiers pas de programmation :geek:
Du coup, sur ma TI57 LED rouges:

Code : Tout sélectionner

00   32 1	STO 1
01   00   	0
02   32 0	STO 0
03   22   	x<>t
04   86 0	Lbl 0
05   02   	2
06  -39 1	INV Prd 1
07   33 1	RCL 1
08   66   	x=t
09   51 9	GTO 9
10  -49   	INV Int
11  -34 1	INV SUM 1
12   34 0	SUM 0
13   34 0	SUM 0
14   51 0	GTO 0
15   86 9	Lbl 9
16   33 0	RCL 0
17   81   	R/S
Dernière édition par cgh le 27 sept. 2020 11:49, édité 2 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1396
Inscription : 27 oct. 2010 20:46

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Gilles59 » 27 sept. 2020 11:44

Intéressant ce MPO ;D Oui C.ret je pense que j'ai le même problème pour passer du RPL->RPN que ceux qui sont passé du RPN->RPL ;D Le RPL est plus logique (d'autres diront le contraire), en tout cas plus radical dans sa logique polonaise inverse. Il hérite plus du Forth que du RPN en fait. Dès que j'ai un peu de temps je vais lire le manuel dH41 et faire quelques tests, car là je souffre trop lol!

Voici une nouvelle version RPL et NewRPL :

Code : Tout sélectionner

«
 0 SWAP
 DO 2 IDIV2 ROT + SWAP UNTIL DUP NOT END
 DROP
»
Pour une mystérieuse raison, la 50g ne veut exécuter IDIV2 qu'en mode Radian (?). Le NewRPL s'en moque à juste titre
A propos d'IDIV2 :
IDIV2
Type: Command
Description: For two integers, a and b, returns the integer part of a/b, and the remainder, r.

Input: Level 2 : a
Level 1 : b
Output: Level 2 : The integer part of a/b
Level 1 : The remainder
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+

Avatar de l’utilisateur
bernouilli92
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4584
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par bernouilli92 » 27 sept. 2020 12:02

@Gilles59 pourquoi pas un while au lieu d’un do? Cela permet d’éviter le not.

@C.Ret : j’ai utilisé FP 2 * car j’avais déjà divisé par 2 et je voulais réutiliser le résultat mais tu as raison, on peut économiser une opération en faisant le DUP avant la division par 2 et faire un 2 MOD ensuite :

Code : Tout sélectionner


« 0 → N
  «
    WHILE DUP
    REPEAT 
      DUP 2 / IP 
      SWAP 2 MOD 'N' STO+
    END DROP N
  »
»
HP, Casio, Sharp, Psion, quelques TI et divers autres

Avatar de l’utilisateur
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 399
Inscription : 27 janv. 2013 01:26
Localisation : Strasbourg
Contact :

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par dprtl » 27 sept. 2020 12:08

Voici ma méthode en Basic Casio (PB-1000, FX-850P, etc.), avec un nombre d'itérations réduit :

Code : Tout sélectionner

10 INPUT N:N$=HEX$(N):N=0
20 FOR I=1 TO 4:C$=MID$(N$,I,1)
30 IF C$="0" THEN 80
40 IF C$="F" THEN N=N+4:GOTO 80
50 IF C$="1" OR C$="4" OR C$="8" THEN N=N+1:GOTO 80
60 IF C$="7" OR C$="B" OR C$="D" OR C$="E" THEN N=N+3:GOTO 80
70 N=N+2
80 NEXT I:PRINT N
L'inconvénient, c'est que l'argument de la fonction embarquée HEX$() est limité à 65535. On pourrait en écrire une autre en assembleur :-)

EDIT : un bug s'est glissé à la ligne 50, voir les réponses ci-après...
Dernière édition par dprtl le 27 sept. 2020 20:26, édité 2 fois.

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2235
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par cgh » 27 sept. 2020 12:11

Sur HP41C:

Code : Tout sélectionner

00 LBL "MPO96"
01 INT
02 CLST
03 LBL 00
04 X<> L
05 X=Y?
06 GTO 01
07 2
08 /
09 FRC
10 ST+ Z
11 ST+ Z
12 ST- L
13 GTO 00
14 LBL 01
15 X<> Z
16 END
Le programme fait 36 octets avec le label; 27 sans le label "MPO96" :)
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
Danny
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 553
Inscription : 28 déc. 2013 17:34

Re: Misez p'tit Optimisez n°96 : Combien de bits à un dans cet entier ?

Message par Danny » 27 sept. 2020 12:53

En ce moment je suis sur Casio, donc une version en LMS (ça s'appelle bien comme ça, le langage des fx-7000G et famille ?) :

Code : Tout sélectionner

? -> N
0 -> B
Lbl 0
N / 2 -> D
Int D -> N
Frac D != 0 => Isz B
N > 0 => Goto 0
B
Casio fx-702P, fx-880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 9900GC, 9950GB +, Graph 100+ USB
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CX, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, Prime
Sharp PC-1262, EL-9000

Répondre

Revenir vers « Tous les Pockets »