MPO n° 97 Spécial 10e Anniversaire : Précision arithmétique

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
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2038
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par remy » 17 oct. 2020 13:46

J'ai un peu optimisé sur le JR-800 et je passe de 123 à 60octets

Code : Tout sélectionner

10 DEFDBLX:X=1:J=0
20 X=X*2:IFX=X+1THENPRINTJ,J*LOG(2):END
30 J=J+1:GOTO20
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store

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

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 17 oct. 2020 14:06

Sympa ce mpo d’anniversaire qui s’adapte à toutes les machines !
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+

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

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 17 oct. 2020 14:22

Marge a écrit :
16 oct. 2020 02:05
Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Dernière édition par Gilles59 le 17 oct. 2020 14:26, é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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2411
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret » 17 oct. 2020 14:26

Gilles59 a écrit :
17 oct. 2020 11:54
EDIT : j'ai une version 23 pas (sans compter le pas du programme P0 ou autre), mais je vous laisse chercher ;D
Il va falloir chercher encore un peu, j'ai une première version en 21 pas:

Code : Tout sélectionner

P0                              (491)
     MAC 1                       002
LBL0 M+F MRF + 1 = x=F? GOTO9    010    
     MRF ISZ GOTO0               013              
LBL9 MR00 HLT * 2 log =          020           
PO affiche 37. EXE 11.1381
Dernière édition par C.Ret le 17 oct. 2020 14:31, é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..

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

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 17 oct. 2020 14:29

Bravo c.ret! Le MAC est un peu violent mais gagne 2 pas. Je suis quasi sûr qu’on est au mini là. Mais Je n’y mettrai pas ma main à couper car avec les mpo on ne sait jamais! Mais même sans ça mon prg est un peu plus long car je n’avais pas ton astuce pour supprimer le *2 ;D
Dernière édition par Gilles59 le 17 oct. 2020 14:34, é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
Danny
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 553
Inscription : 28 déc. 2013 17:34

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Danny » 17 oct. 2020 14:32

Sur HP-65: 33 / 9.934

Il lui faut environ 50 secondes.

IMG_8056.jpg
IMG_8056.jpg (89.25 Kio) Consulté 1502 fois
IMG_8057.jpg
IMG_8057.jpg (87.36 Kio) Consulté 1502 fois

En fait on peut remplacer ça :

Code : Tout sélectionner

IF (X+1) <> X THEN GOTO 2
GOTO 3
LBL 2
Par simplement :

Code : Tout sélectionner

IF (X+1) = X THEN GOTO 3

Mon code :

Code : Tout sélectionner

23
11		LBL A
21
83
08		DSP .8
01		1
33 01		STO 1
00		0
33 02		STO 2
23
01		LBL 1
34 01		RCL 1
02		2
71		x
33 01		STO 1
34 01		RCL 1
41		ENTER
01		1
61		+
35 23		X=Y?
22
03		GTO 3
34 02		RCL 2
01		1
61		+
33 02		STO 2
22
01		GTO 1
23
03		LBL 3
34 02		RCL 2
34 02		RCL 2
02		2
31
08		LOG
71		x
24		RTN
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

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 17 oct. 2020 15:19

Gilles59 a écrit :
17 oct. 2020 14:22
Marge a écrit :
16 oct. 2020 02:05
Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Je suis complètement novice en pascal, mais en effet la 5.5 gère la double-précision (voir mon deuxième programme, ou plutôt ma dernière tambouille).
En revanche je ne sais pas mesurer le code 8086 compilé en mémoire vive, si tu as une idée...
Le 200LX possède 2 méga-octets de mémoire vive.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

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: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret » 17 oct. 2020 15:23

Pour SHARP PC-1211 :

Code : Tout sélectionner

 1:CLEAR :X=1                      ( 8)
 2:X=2X:IF X<>X+1 LET J=J+1:GOTO 2 (23)
 3:PRINT J,J*LOG 2                 (10)
                                    41 octets 
Il lui faut alors 19"41 pour réaliser que sa précision est 39. soit 11.7402 chiffres significatifs !

Je comprends pas pourquoi marge met les Commodore au début de la liste des machines qui ont du mal avec ce test !

Sur un Commodore C128D à 2 MHz

Code : Tout sélectionner

list

1 x=2:do:j=j+1:x=2*x:loop while x+1<>x:print j,j*log(2)/log(10)

ready.
run
 32        9.63295986

ready.
REM   Program size 47 bytes   Variables and run cost 14 bytes
Il ne lui faut qu'un quart de seconde pour se rendre compte qu'il ne sait calculer que sur ses 9 doigts ! C'est bien pour un 8 bits !


Je suis inquiet, j'ai donné le même programme à ma TI-92 II et je n'ai toujours pas de résultat.

Code : Tout sélectionner

:mpo()                    Code: 84 bytes     
:Prgm
:Local x,j
:1▸x
:-1▸j
:While x+1>x
:  x+x▸x
:  1+j▸j
:EndWhile
:Disp j,approx(j*log(2))
:EndPrgm
EDIT:
Il lui a fallu le temps de poster tout cela, mais le résultat est arrivé 2039 soit 613.8 chiffres significatifs. Bien. Pas surprenant la TI-92 II et forte en calcul sur les entiers très longs.
En mode approché, je trouve 46 soit 13.8473 chiffres significatifs.

C'est exactement ce que je trouve sur la TI-74 BASICALC

Code : Tout sélectionner

10 X=1
20 X=2*X: IF X+1<>X THEN J=J+1: GOTO 20
30 PRINT J;J*LOG(10): PAUSE

FRE(1) donne 84 bytes
Dernière édition par C.Ret le 25 oct. 2020 09:02, édité 7 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..

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

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 17 oct. 2020 15:25

J’ai bien fait de ne pas mettre ma main à couper :lol:

Code : Tout sélectionner

MAC 1 
LBL0
 XD 1 MinF MR08 M+F x=f GOTO9
ISZ GOTO0
LBL9
 MR00 HLT x 2 log = 
Édit : 19 pas.
L’astuce est d’utiliser les fonctions statistiques. On pourrait presque gagner 1 pas encore car MR09 est égal à MR00+1 à la fin.

Par contre c’est moins précis car les mémoires n’ont que 10 chiffres significatifs...

34 - 10,23

Édit : il y a peut être un bug ici. Ou pas. Je verrai ce soir :/
Dernière édition par Gilles59 le 18 oct. 2020 10:52, édité 6 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 : 4588
Inscription : 21 nov. 2012 14:03
Localisation : Ile de France

Re: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par bernouilli92 » 17 oct. 2020 15:32

C.Ret a écrit :
17 oct. 2020 15:23
Il ne lui faut qu'un quart de seconde pour se rendre compte qu'il ne sait calculer que sur ses 9 doigts ! C'est bien pour un 8 bits !
Un 8 bits qui calcule sur 9 doigts ! C’est effectivement bien :-)
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: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par Gilles59 » 17 oct. 2020 15:37

Marge a écrit :
17 oct. 2020 15:19
Gilles59 a écrit :
17 oct. 2020 14:22
Marge a écrit :
16 oct. 2020 02:05
Bon, pour montrer l'exemple, voici mon premier programme pour Turbo Pascal 5.5 sur le HP 200-LX. On ne rit pas !
Cool le TP5.5. De mémoire il a les surcouches objet etc! Il a combien de ram le 500lx?
Je me demande si la 5.5 ne gérerait pas les réels double précision (remplacer ‘Real ´ par ´double ‘)
Je suis complètement novice en pascal, mais en effet la 5.5 gère la double-précision (voir mon deuxième programme, ou plutôt ma dernière tambouille).
En revanche je ne sais pas mesurer le code 8086 compilé en mémoire vive, si tu as une idée...
Le 200LX possède 2 méga-octets de mémoire vive.
Tu peux compiler en .com ou .exe et voir la taille sur disque. Mais pas d’illusion ce sera un bonne dizaine de ko minimum puisque le programme doit embarquer les bibliothèques de calcul et autres (pas de rom).
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: MPO 96 Spécial 10e Anniversaire : Précision arithmétique

Message par C.Ret » 17 oct. 2020 17:33

bernouilli92 a écrit :
17 oct. 2020 08:22
Hp48 :

Code : Tout sélectionner

« -1 1
  DO 
    2 * SWAP 1 + SWAP
  UNTIL 
    DUP DUP 1 + ==
  END 
  DROP DUP 2 LOG *
»
Taille : 62,5 octets

Résultat : 39 - 11,74017
Dans un style très semblable, sur HP-28S en utilisant la rémanence de la pile de taille infinie afin de gagner quelques octets :

Code : Tout sélectionner

« CLEAR 1
  WHILE DUP + DUP 1 + OVER ≠
     REPEAT DUP END 
  DROP DEPTH 2 LOG OVER * »
Taille 60,5 octets.

Je trouve aussi 39 et donc 11.74017 chiffres significatifs
Dernière édition par C.Ret le 25 oct. 2020 08:24, é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
Hobiecat
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3359
Inscription : 06 sept. 2011 14:57
Localisation : Normandie

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Hobiecat » 17 oct. 2020 18:34

Sur HP-41, en version pas très optimisée. :wink:

Code : Tout sélectionner

LBL PREC
0
STO 00
1
LBL 00
2
*
ENTER
ENTER
1
+
X=Y?
GTO 01
1
ST+ 00
RDN
RDN
GTO 00
LBL 01
RCL 00
2
LOG
*
RCL 00
RTN
Le résultat : 33 - 9.933989858

tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 746
Inscription : 06 oct. 2012 14:37

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par tyann » 17 oct. 2020 18:46

Bonsoir

Voici une version pour Ti 95 :

Code : Tout sélectionner

000 1 STO X +/- STOJ 
006 LBL 00 INC J 2 ST* X RCL X +1= IF> X GTL 00
024 COL 03 MRG J 2 LOG ST* J OLD COL 15 MRG J HLT
038
RUN
43. 12.94428981
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, El 5120, 9200, 9600

Canon X-07

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5426
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: MPO 97 Spécial 10e Anniversaire : Précision arithmétique

Message par Marge » 17 oct. 2020 18:47

Bravo pour tous vos programmes !

On compte bien sur gege pour nous donner un résultat sur sa Canola, sur TiPoucet avec une Bowmar et sur badaze pour une ch'tite TI !

Désolé tyann, mais merci, nos messages se sont croisés...
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Répondre

Revenir vers « Tous les Pockets »