Un article pour la gazette n°9

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
caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Un article pour la gazette n°9

Message par caloubugs » 12 nov. 2016 20:47

Hello à tous !

Je suis dans la rédaction d'un article pour la prochaine gazette (pas le futur HS :wink: ), et il propose l'implémentation de différents algo pour réaliser des tris (de l'immonde tri à bulle au tri Shell, en passant par le tri insertion et le tri sélection).
Je me limite à ces 4 tris qui sont des tris sur place adaptés aux limites techniques de nos machines.

Cependant, j'aimerais quelques avis sur leur optimisation (en respectant les algos) et surtout, avoir des benchs sur différentes machines (j'en fait, mais je n'ai pas tout...) que vous pourriez aussi réaliser si vous en avez l'envie.

Tout d'abord le tri à bulle (beurk, mais on n'y a droit dans n'importe quel tuto internet sur le tri, mais ça donne un point de repère).

Code : Tout sélectionner

10 CLS:CLEAR:RANDOMIZE TIMER
20 DIM B(2000)
30 M1=0:V1=0:L=0:MA1=0:MI1=0
40 INPUT"nb de val=";V
50 INPUT"nb de cycles=";L0
60 L=L+1:T0=TIMER:FOR I=0 TO V-1:B(I)=INT(RND*10000):NEXT I:T1=TIMER
70 P=0:FOR I=0 TO V-2
80 IF B(I)<B(I+1) THEN T=B(I):B(I)=B(I+1):B(I+1)=T:P=1
90 NEXT I
100 IF P=1 THEN 70
110 T2=TIMER:H1=T2-T1
120 IF H1>MA1 THEN MA1=H1
130 IF H1<MI1 OR MI1=0 THEN MI1=H1
140 M1=M1+H1:V1=V1+H1*H1
150 PRINT L;" tps tri = ";:PRINT USING"#.##";H1
160 IF L<L0 THEN 60
170 PRINT"min : ";:PRINT USING"#.##";MI1;:PRINT" max : ";:PRINT USING"#.##";MA1
180 PRINT"Tps : ";:PRINT USING"#.##";M1/L0;:PRINT" EcTyp : ";:PRINT USING"#.##";SQR(V1/L0-(M1/L0)^2)
A adapter, ici certaines lignes gèrent le timer pour chronométrer les réalisations. J'ai également ajouté une boucle qui permet de faire plusieurs fois les tris, histoire d'en tirer une moyenne et un écart type (car certains sont plus variables que d'autres).
Ce sont les lignes 70 à 100 qui réalisent vraiment ce tri, avec la ligne 40 et une partie de la 60 pour la création du tableau à trier.

Ce qui serait intéressant : avoir des temps moyens pour 10, 20, 30, 50, 70, 100 éléments. Sans pour autant dépasser 1 minute pour un tri (pas la peine non plus de perdre trop de temps)
Un exemple sur PC1600 :
- 10 éléments : 2 secondes et écart type de 0,63
- 20 élements : 9,2 secondes et ec de 0,98
- 30 éléments : 21 secondes et ec de 2,05
- 50 éléments : 58,7 secondes et ec de 4,54
On remarque d'ailleurs que le ratio (nb éléments)^2/temps est quasi constant.

Je vais ajouter les autres algos dans d'autres messages dans ce fil.

N'hésitez pas à proposer des codes pour d'autres systèmes (en LMS par exemple, je l'ai fait sur ma HP15C et 35S, je vous les proposerai aussi).

Bon amusement (ou pas :mrgreen: )
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 12 nov. 2016 21:56

Voici le tri selection, plus performant à la base mais également en progression en n^2.

Code : Tout sélectionner

10 CLS:CLEAR:RANDOMIZE TIMER
20 DIM B(2000)
30 M1=0:V1=0:L=0:MA1=0:MI1=0
40 INPUT"nb de val=";V
50 INPUT"nb de cycles=";L0
60 L=L+1:T0=TIMER:FOR I=0 TO V-1:B(I)=INT(RND*10000):NEXT I:T1=TIMER
70 FOR J=0 TO V-2:IM=J:FOR K=J+1 TO V-1
80 IF B(IM)<B(K) THEN IM=K
100 NEXT K:C=B(J):B(J)=B(IM):B(IM)=C:NEXT J
110 T2=TIMER:H1=T2-T1
120 IF H1>MA1 THEN MA1=H1
130 IF H1<MI1 OR MI1=0 THEN MI1=H1
140 M1=M1+H1:V1=V1+H1*H1
150 PRINT L;" tps tri = ";:PRINT USING"#.##";H1
160 IF L<L0 THEN 60
170 PRINT"min : ";:PRINT USING"#.##";MI1;:PRINT" max : ";:PRINT USING"#.##";MA1
180 PRINT"Tps : ";:PRINT USING"#.##";M1/L0;:PRINT" EcTyp : ";:PRINT USING"#.##";SQR(V1/L0-(M1/L0)^2)
L'algorithme de tri est spécifiquement placé dans les lignes 70 à 100.
Dernière édition par caloubugs le 14 nov. 2016 00:22, édité 1 fois.
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 12 nov. 2016 21:58

Le tri insertion, très répandu pour sa simplicité de réalisation. Il limite le nombre de comparaisons mais reste en n^2.

Code : Tout sélectionner

10 CLS:CLEAR:RANDOMIZE TIMER
20 DIM B(5000)
30 M1=0:V1=0:L=0:MA1=0:MI1=0
40 INPUT"nb de val=";V
50 INPUT"nb de cycles=";L0
60 L=L+1:T0=TIMER:FOR I=0 TO V-1:B(I)=INT(RND*10000):NEXT I:T1=TIMER
70 FOR J=1 TO V-1:C=B(J):I=J-1
80 IF I=-1 THEN 100
90 IF B(I)<C THEN B(I+1)=B(I):I=I-1:GOTO 80
100 B(I+1)=C:NEXT J
110 T2=TIMER:H1=T2-T1
120 IF H1>MA1 THEN MA1=H1
130 IF H1<MI1 OR MI1=0 THEN MI1=H1
140 M1=M1+H1:V1=V1+H1*H1
150 PRINT L;" tps tri = ";:PRINT USING"#.##";H1
160 IF L<L0 THEN 60
170 PRINT"min : ";:PRINT USING"#.##";MI1;:PRINT" max : ";:PRINT USING"#.##";MA1
180 PRINT"Tps : ";:PRINT USING"#.##";M1/L0;:PRINT" EcTyp : ";:PRINT USING"#.##";SQR(V1/L0-(M1/L0)^2)
Algo toujours entre les lignes 70 à 100.
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 12 nov. 2016 22:05

Enfin le tri Shell, plus complexe qui réalise une optimisation du tri insertion.

Code : Tout sélectionner

10 CLS:CLEAR:RANDOMIZE TIMER
20 DIM B(2000),G(8)
30 G(0)=1:G(1)=4:G(2)=10:G(3)=23:G(4)=57:G(5)=132:G(6)=301:G(7)=701
40 M1=0:V1=0:L=0:MA1=0:MI1=0
50 INPUT"nb de val=";V
60 INPUT"nb de cycles=";L0
70 L=L+1:FOR I=0 TO V-1:B(I)=INT(RND*10000):NEXT I:T1=TIMER
80 G0=7
90 IF G(G0)>=V THEN G0=G0-1:GOTO 90
100 FOR J=G0 TO 0 STEP -1:FOR I=G(J) TO V-1
110 J0=B(I):K=I-G(J)
120 IF K<0 THEN 140
130 IF B(K)<J0 THEN B(K+G(J))=B(K):K=K-G(J):GOTO 120
140 B(K+G(J))=J0:NEXT I:NEXT J
150 T2=TIMER:H1=T2-T1
160 IF H1>MA1 THEN MA1=H1
170 IF H1<MI1 OR MI1=0 THEN MI1=H1
180 M1=M1+H1:V1=V1+H1*H1
190 PRINT L;" tps tri = ";:PRINT USING"#.##";H1
200 IF L<L0 THEN 70
210 PRINT"min : ";:PRINT USING"#.##";MI1;:PRINT" max : ";:PRINT USING"#.##";MA1
220 PRINT"Tps : ";:PRINT USING"#.##";M1/L0;:PRINT" EcTyp : ";:PRINT USING"#.##";SQR(V1/L0-(M1/L0)^2)
L'algo est plus long et va des lignes 80 à 140.
Il fait également appel à un tableau de valeurs (ligne 30) qui optimise des comparaisons à des valeurs dont les indices sont distants. Ces valeurs ont été établies empiriquement, il n'existe pas de démonstration mathématique...
Cet algo est normalement plus performant puisque en rapport avec une progression en n*log(n), ce qui peut s'avérer extrêmement plus intéressant pour des tableaux importants (il est par contre moins intéressant que le tri insertion de base pour les petits tableaux, vous le constaterez...)

Je mettrais aussi d'autres codes (dont en LMS) pour en parler au besoin.

Je verrais peut être aussi pour réaliser une implémentation du tri fusion en version itérative (c'est normalement un algorithme récursif). Le souci est qu'il nécessite deux tableaux, avec recopie progressive. Ce qui peut poser des limites en terme de mémoires disponibles.

Bon tests !
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

Avatar de l’utilisateur
steste
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 567
Inscription : 18 sept. 2015 18:59

Re: Un article pour la gazette n°9

Message par steste » 12 nov. 2016 23:30

Hello caloubugs, bien mais tu
trie quoi ?
...
C'est pas une extension de l'idée
de Remy concernant le no hors-série HS?
...
Ca m'avait l'air d'une blague, bon...
...
a++

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 13 nov. 2016 00:10

steste a écrit :Hello caloubugs, bien mais tu
trie quoi ?
...
C'est pas une extension de l'idée
de Remy concernant le no hors-série HS?
...
Ca m'avait l'air d'une blague, bon...
...
a++
Ben des nombres (inférieurs à 10000 pour l'exemple), mais ça aurait pu être n'importe quoi d'autre, tant qu'on peut comparer.

Pas une blague, mais je voulais tenter (bien en avance, on a le temps) un article avec participation (mais pas pour le HS, on revient sur du soft). Rien ne presse cependant, le topic est lancé, voilà...
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

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

Re: Un article pour la gazette n°9

Message par C.Ret » 13 nov. 2016 10:32

L'idée est excellente, comparer l'implémentation et les performances des différents tris sur nos petites machines.

Maintenant pour les bench de comparaison, faire des stats sur des tirages aléatoires permet effectivement de vérifier la complexité en temps de l'algorithme.
Mais cela ne permettra pas d'expliquer toutes les subtilités des différents algorithmes ceux-ci et surtout leur évolutions au fur et à mesure du développement des techniques numériques.

Il va falloir également prévoir de comparer l'évolution des temps d'exécution lors de série spécifique de nombres. par exemple lors que tous les nombres sont dans un ordre donné, croissant, décroissant ou d'une certaines période. S'il y a beaucoup ou pas de nombres proches,... etc

Le tri à bulle implémenté dans le code est déjà une version "sophistiquée" qui anticipe l'arrêt lorsque la boucle est parcourue sans échanger de donnée. c'est un perfectionnement notable de l'algorithme originel dont l'effet est visible en cas de liste de donnée d'entrée partiellement pré-ordonnées.

Ensuite, il peut être très instructif, de pouvoir comparer les différents algorithmes, voir de comparer différentes implémentations d'un même algrithme lors des tri d'un même ensemble composé des mêmes séries de nombres plus ou moins bien pré-ordonnés !
En effet certains préarrangement des données boostent ou au contraire handicapent tel ou tel algorithme, d'autres sont au contraire plus insensibles... c'est d'ailleurs tout l'art de bien choisir sa méthodologie en fonction des propriétés connues des données à trier :) As illustrated here


Peut-être faut-il donc dissocier les programmes de tri d'un programme commun de génération de l'ensembles des même série de nombres à trier, quitte à les enregistrer sur cassette et n'avoir qu'à les recharger ?
Ce qui permettra de compare chaque programme avec le même jeu de données à trier.

De même, le temps exprime effectivement la complexité globale, mais il ne faudra pas oublier de compter les opérations, les comparaisons et d'autres manipulations qui selon les algorithmes de tri sont très différentes et expliquent bien mieux l'évolution des techniques de tri.


Article fort prometteur...
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 13 nov. 2016 12:24

Merci pour ton impression C.Ret !

Je me suis posé ces questions (qualité des tirages, situations favorables, défavorables) et j'étais parti sur du comparatif basé sur des tirages aléatoires histoire de ne pas pondre un article qui fasse 30 pages (l'objectif étant l'implémentation sur nos machines).

Cependant, et tu as raison, comparer entre machines nécessite tout de même des tirages identiques. Pour cela, il faut absolument utiliser un générateur aléatoire commun et faire fi du RANDOM fourni. Dans la gazette n°6, j'avais fait un article sur les tirages aléatoires avec description d'un algorithme basé sur les générateurs congruentiels linéaires avec le plus utile :

Code : Tout sélectionner

Un+1=FRAC(9821 Un + 0,211327)
Il ne coûte pas cher en ressources et en place pour être généré.
A partir d'une graine spécifique, il est donc possible de générer exactement les mêmes suites de nombres. Je vais partir sur cette idée.
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

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

Re: Un article pour la gazette n°9

Message par C.Ret » 13 nov. 2016 16:45

Bien vu d'utiliser les nombre speudo-aléatoire pour produire des séquences identiques ! Je n'y avait aps pensé.

J'envisager soit d'utiliser une mémoire de masse (par exemple l'interface cassette pour enregistrer quelques séries de nombres à trier et les charger à chaque test.

La forme des séries peut aussi être générée à l'aide d'une fonction sinusoïdale couplé ou non à une fonction pseudo aléatoire, en paramétrant convenablement l'échantillonnage, on obtiendra des données à trier croissantes ou décroissante, avec beaucoup ou peu de répétitions, ...
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4320
Inscription : 09 août 2008 17:46
Localisation : 03

Re: Un article pour la gazette n°9

Message par Ythunder » 13 nov. 2016 17:33

Je ne veux pas faire de hors sujet, mais quelqu'un peut il reépliquer pourquoi un RANDOM boucle au bout d'un moment sur la série de chiffre qui génère ? (toujours les mêmes). J'avais lu truc il y a fort longtemps sur le sujet, à l'époque ou je programmais en BASIC Thomson
Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1542
Inscription : 21 août 2016 19:04

Re: Un article pour la gazette n°9

Message par Ben » 13 nov. 2016 18:27

Le but final, c'est d'avoir les 4 algorithmes sur différentes machines pour comparer les temps de traitement?

On se réparti les machines suivant les possibilités de chacun? Les ordinateurs comme le C-128/C-64, TI-99 et autres sont aussi admit? :-)

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 13 nov. 2016 18:54

Ben a écrit :Le but final, c'est d'avoir les 4 algorithmes sur différentes machines pour comparer les temps de traitement?

On se réparti les machines suivant les possibilités de chacun? Les ordinateurs comme le C-128/C-64, TI-99 et autres sont aussi admit? :-)
Voui !
Et pourquoi pas associer quelques machines non pocket, j'y ajouterai le psion 5mx.

Pour moi, je peux prendre les machines suivantes :
HP 15C, 41C, 35S (en gros les mêmes programmes, l'avantage du 41, c'est l'horloge interne).
HP 71B et 75C (avec timer, chouette).
TI 74 et TI95 et CC40.
SHARP PC1403, 850GV et E220, PC1600 et PC1500 (timer pour les 2 derniers)
Canon X07 (timer ok)
Casio PB700, PB1000, Z1GR et FX880P.

Pour les amateurs de RPL, je leur laisse la 48G et consorts pour le moment... 8O

Ca devrait nous faire un chouette tableau...

La génération de nombres aléatoires sera alors la suivante (à remplacer dans les codes précédents), sans oublier la graine pour démarrer la génération. Attention à ce que votre machine ait au moins 10 chiffres significatifs pour ce calcul.

Code : Tout sélectionner

40 INPUT"Graine=";R
80 L=L+1:FOR I=0 TO V-1:R=9821*R+.211327:R=R-INT(R):B(I)=INT(R*10000):NEXT I:T1=TIMER
Pour mes calculs, je prends une graine à 0, pas la peine de se prendre la tête.
Par contre, histoire de faire 10 tris complets (pour obtenir une moyenne représentative), il faut bien garder la dernière valeur de la graine du tri précédent pour générer le premier nombre du tri suivant.

Pour le PC 1600 j'arrive aux résultats suivants pour le tri à bulle :

Code : Tout sélectionner

         10      20      30      50
moy      1,9     7,8    19,8    58,3
ec       0,54    1,66    2,04    4,58
min      1       5      16      47
max      3      10      23      63
rapp    52,63   51,28   45,45   42,88
Le rapport (dernière ligne) est le carré du nombre d'éléments à trier divisé par le temps moyen (on voit ici, que le tri se dégrade progressivement par rapport à cette référence). Ca peut nous donner une note...
Dernière édition par caloubugs le 14 nov. 2016 00:27, édité 2 fois.
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 13 nov. 2016 18:59

Une question d'ailleurs, j'obtiens environ les mêmes résultats entre les pc1500 et 1600...
Est-ce normal ???
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1542
Inscription : 21 août 2016 19:04

Re: Un article pour la gazette n°9

Message par Ben » 13 nov. 2016 19:20

Ok, pourquoi pas

Je peux essayer sur:

- C-128
- TI-99/4A avec le BASIC de base et l'extended
- FX-850P (est-ce utile si tu utilises une FX-880P?)
- PC-E500
- TRS-80 modèle 100

Pour le PB-100 ou le PC-1211, ça risque d'être vraiment du sport pour faire rentrer le tableau en mémoire ;-)

caloubugs
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Inscription : 05 juin 2014 22:23
Localisation : Dans le Gâtinais avec les abeilles, près de Fontainebleau

Re: Un article pour la gazette n°9

Message par caloubugs » 13 nov. 2016 19:22

Je te laisse la 850P, ça me va !
Le PC 1211, vu sa vitesse, tu risques de te limiter à un petit tableau ! (si on ne veut pas dépasser la minute de traitement...)

Le code de base sur HP35S pour le tri à bulle

Code : Tout sélectionner

001  LBL B  INPUT R  INPUT V  1000  /  1  +  STO I  RCL R  9821
011  *  0.211327  +  FP  STO R  1E4  *  IP  STO(I)  ISG I
021  GTO B009  STOP  CF 0  RCL V  1  -  STO I  RCL(I)  1  STO+ I
031  x<>y  RCL(I)  x<=y?  GTO B044  x<>y  STO(I)  x<>y  1  STO- I  x<>y
041  STO(I)  SF 0  GTO B046  1  STO- I  DSE I  GTO B028  FS? 0  GTO B023  RTN
 
J'obtiens les résultats suivants :

Code : Tout sélectionner

         10      20  
moy     10,75   45   
ec       1,72    4,61   
min      8      38   
max     13,5    54    
rapp     9,30    8,69 
RetroGeek, mais pas que...
HP : 15C, 41CV, 48GX, 71B, 75C Canon X-07 Sharp PC 1403H, PC1500A, PC1600, PC-G850V Texas : CC40, 66, 74, 95, 92 Casio : PB-700, PB-1000, Z-1GR Psion 5mx, mais pas que...

Répondre

Revenir vers « Tous les Pockets »