Il apparait aussi sous le nom de "Kibur" dans les OP.
Ce programme est interessant car il est simple, enrtierement numerique et il est implementable sur toutes les machines sans besoin d'avoir des instructions complexes ou evoluees.
Je l'ai pour plusieurs machines: TI-58/59, fx-502P/fx-702P, TI-95, HP-75C (et tous les BASIC), HP-67,... et meme sur une HP-20s (99 pas sur 100) et je dois meme encore avoir ma version pour la Graph100+. Par contre, je n'ai plus le programme pour les HP-48*. Je l'ai reecrit de tete sans utiliser les astuces fort amusantes du PC-1211 (c'est pour C.Ret ).
C'est le programme que j'utilise pour tester une nouvelle machine, surtout quand c'est une LMS. La re-ecriture du programme sur un autre pocket BASIC ne presente que peu d'interet.
Voici le programme pour fx-502P/fx-602P:
Code : Tout sélectionner
bash-4.2$ ./un502p inversi
001 01 1
002 02 2
003 03 3
004 04 4
005 05 5
006 06 6
007 07 7
008 08 8
009 09 9
010 00 0
011 C6-01 Min 1
012 C6-0F Min F
013 01 1
014 C6-05 Min 5
015 FF-EP INV RAN#
016 E1 *
017 02 2
018 00 0
019 E3 +
020 09 9
021 E5 =
022 FF-C0 INV INT
023 C6-04 Min 4
024 F0-07 LBL 7
025 C7-04 MR 4
026 FF-02 INV x=0
027 F1-06 GOTO 6
028 FF-EP INV RAN#
029 E1 *
030 09 9
031 E3 +
032 02 2
033 E5 =
034 FF-C0 INV INT
035 F1-09 GOTO 9
036 F0-01 LBL 1
037 01 1
038 C8-04 M- 4
039 F1-07 GOTO 7
040 F0-06 LBL 6
041 00 0
042 C6-04 Min 4
043 C6-05 Min 5
044 F0-05 LBL 5
045 C7-01 MR 1
046 FP HLT
047 F1-09 GOTO 9
048 F0-00 LBL 0
049 01 1
050 C9-04 M+ 4
051 C7-01 MR 1
052 FF-03 INV x=F
053 F1-04 GOTO 4
054 F1-05 GOTO 5
055 F0-09 LBL 9
056 C6-00 Min 0
057 C7-01 MR 1
058 E2 /
059 C7-00 MR 0
060 FF-F8 INV 10^x
061 E5 =
062 C6-01 Min 1
063 FF-C1 INV FRAC
064 C6-02 Min 2
065 C8-01 M- 1
066 E1 *
067 C7-00 MR 0
068 FF-F8 INV 10^x
069 E5 =
070 C6-02 Min 2
071 F0-08 LBL 8
072 C7-01 MR 1
073 E1 *
074 01 1
075 00 0
076 E5 =
077 C6-01 Min 1
078 C7-02 MR 2
079 E2 /
080 01 1
081 00 0
082 E5 =
083 C6-02 Min 2
084 FF-C1 INV FRAC
085 E1 *
086 01 1
087 00 0
088 E5 =
089 C9-01 M+ 1
090 C7-02 MR 2
091 FF-C0 INV INT
092 C6-02 Min 2
093 FF-01 INV DSZ
094 F1-08 GOTO 8
095 FF-F0 INV IND
096 F1-05 GOTO 5
097 F0-04 LBL 4
098 C7-04 MR 4
Au demarrage, la machine "melange" les chiffres 1234567890, et presente un nombre melange, puis attend l'entree d'un nombre N (1..10) donnant la position du chiffre a inverser, sachant que tous les chiffres entre 1 et N seront echanges. Puis quand le nombre est remis dans l'ordre 1234567890, le score est affiche. Plus le score est bas, mieux c'est.
Allez, un exemple:
machine => 1234097856
entree 2 [EXE] -> machine => 1234097865
entree 6 [EXE] -> machine => 1234568790
entree 4 [EXE] -> machine => 1234560978
entree 2 [EXE] -> machine => 1234560987
entree 4 [EXE] -> machine => 5 (nb essais).
Pour permutter le 1, utiliser le nombre 10.
Attention, quand le nombre commence par 0, il ne sera pas affiche.
A ce jour, seule la TI-57 (manque de place) n'a pas son programme. Il serait cependant peut-etre possible en supprimant le "melange aleatoire" (pas 1 a 39) par la machine et en entrant le nombre melange soi-meme.
Il est aussi possible de "complexifier" le programme en utilisant des rotations ou autres en plus des echanges.
A vos machines...
Edit : Titre du fil