début bien difficile sur HP 50G !

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 de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: début bien difficile sur HP 50G !

Message par C.Ret » 17 déc. 2013 23:02

patt a écrit :[...] je cherche à créer une liste contenant chacun des caractères d’une chaine.
Il y encore une façon de faire:

Code : Tout sélectionner

« DUP SIZE -> P s
   « 1 s FOR i
            P i i SUB
         NEXT
     s ->LIST
   »
»
On entre la chaine en ligne 1: et ce code la transforme en une liste des caractères la constituant.


La question que je me pose, quel est l'intérêt. Pourquoi ne pas directement travailler à partir de la chaine de caractères qui est une forme particulière de liste ?

LST i GET permet d'obtenir le i-ième élément de la liste LST
PRO i i SUB permet d'obtenir le i-ième caractère de la chaine de caractères PRO

LST SIZE done le nombre d'élément d'ue liste
PRO SIZE donne le nombre de caractères

Dans les deux cas + sert d'opérateur de concaténation,
etc...

Il doit bien être possible d'utiliser la chaine de caractère directement non ?
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..

patt
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 47
Inscription : 17 juil. 2012 10:58
Localisation : 86

Re: début bien difficile sur HP 50G !

Message par patt » 18 déc. 2013 00:17

Merci pour ces deux exemples.

Pourquoi utiliser une liste ? Car ma connaissance du RPL étant très limitée, cela me paraissait plus simple… Mais ma maitrise du maniement des chaînes de caractères progressant, je n’en suis plus très sûr.

Dans tous les cas, j’apprends…
sharp el512, sharp el 9300,"hp 30b,*Mo5*,hp 50g bleue, sharp 1360,casio graph 65", hp 39gII

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

Re: début bien difficile sur HP 50G !

Message par tyann » 18 déc. 2013 07:54

Bonjour à tous
Voici ma petite contribution, pour ma part j'ai utilisé SEQ qui permet de créer une liste depuis une expression.

Code : Tout sélectionner

<< -> s
  <<
    << s n n SUB
    >> 'n' 1 s SIZE 1 SEQ
  >>
>>
Pourquoi utiliser une liste ?
Pour trier une chaine de caractères par ordre alphabétique par exemple:
on la convertit en Liste puis on utilise SORT, et enfin on la remet sous forme de chaine avec ∑LIST .
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
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2483
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: début bien difficile sur HP 50G !

Message par C.Ret » 18 déc. 2013 18:46

AH, oui ! Bien !

J'avais pas pensé aux fonctions de TRI. Bien vu ! J'imaginais un truc plus compliqué avec des listes servant d'indexages indirects ou de références croisées, etc.

Moi aussi j'apprends ...


C'est sûr les listes c'est bien utile, surtout qu'une liste peut contenir des éléments de types diffèrents voir même d'autres listes. Ce qui revient à faire de arbres ou une forme d'hiérarchisation...
Choses bien compliquées à faire à l'aide de chaines de caractère (ou de vecteurs).
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..

patt
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 47
Inscription : 17 juil. 2012 10:58
Localisation : 86

Re: début bien difficile sur HP 50G !

Message par patt » 19 déc. 2013 00:07

Belle utilisation des listes, en effet !

Sinon, Concernant les chaînes de caractères, existe-t-il une fonction pour rechercher la position d’un caractère à partir d’une position donnée ?

Actuellement, je m’en sors avec le code suivant, sachant que :

CAR contient le caractère à rechercher
PRO la chaîne
PC le numéro où commence la recherche.

Code : Tout sélectionner

<<PRO PC 
DO PRO PC DUP SUB ‘PC’ INCR DROP
UNTIL CAR ==
END
PC 2 – SUB>>
Avec PRO=”ABC123:”
CAR=”:”
PC=4
J’obtiens sur la pile “123”.
sharp el512, sharp el 9300,"hp 30b,*Mo5*,hp 50g bleue, sharp 1360,casio graph 65", hp 39gII

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

Re: début bien difficile sur HP 50G !

Message par bernouilli92 » 19 déc. 2013 00:53

Ton exemple n'est pas clair par rapport à ce que tu demandes.
Ton programme renvoie une chaîne de caractères et non une position.

La fonction POS renvoie la position d'une chaîne dans une autre.
Voici un exemple de fonction POSN qui renvoie la position d'une chaîne dans une autre mais en commençant la recherche à partir d'une certaine position.

Code : Tout sélectionner

<<
  1 MAX
  ROT OVER 1E9 SUB ROT POS
  IF DUP THEN 1 - + ELSE DROP2 0 END
Exemples :
"ABC123DEF123" "1" 5 -> 10
"ABC123DEF123" "B" 4 -> 0
"ABCDEF" "4" 2 -> 0


Par ailleurs, la manière "naturelle" de passer des arguments à un programme en RPL est d'utiliser la pile et non des variables.
Dernière édition par bernouilli92 le 19 déc. 2013 14:05, édité 1 fois.
HP, Casio, Sharp, Psion, quelques TI et divers autres

patt
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 47
Inscription : 17 juil. 2012 10:58
Localisation : 86

Re: début bien difficile sur HP 50G !

Message par patt » 19 déc. 2013 13:14

Un peu fatigué, hier soir (désolé).

J’emploie des variables car j’ai encore du mal à n’utiliser que la pile, même si j’aime bien le principe…

Merci pour ton aide et ton indulgence.
sharp el512, sharp el 9300,"hp 30b,*Mo5*,hp 50g bleue, sharp 1360,casio graph 65", hp 39gII

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: début bien difficile sur HP 50G !

Message par Paul Tergeist » 27 déc. 2013 01:53

Moi aussi les listes c'est pas mon fort. Pourtant elles deviennent de plus en plus pratiques sur pockets.

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

Re: début bien difficile sur HP 50G !

Message par tyann » 27 déc. 2013 06:20

Salut Paul
Moi aussi les listes c'est pas mon fort.
Si c'est pas Monfort, c'est Labeyrieux :wink:
En ces moments de fêtes :arrow:
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
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: début bien difficile sur HP 50G !

Message par Paul Tergeist » 27 déc. 2013 17:36

Je crois que j'ai vraiment une très mauvaise influence sur les membres de ce forum.
:mrgreen:

Avatar de l’utilisateur
doum-doum
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 973
Inscription : 08 déc. 2012 17:24

Re: début bien difficile sur HP 50G !

Message par doum-doum » 27 déc. 2013 18:50

Et cela depuis 1664 :mrgreen:

patt
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 47
Inscription : 17 juil. 2012 10:58
Localisation : 86

Re: début bien difficile sur HP 50G !

Message par patt » 30 déc. 2013 23:46

Trèves de plaisanteries, revenons à un peu plus sérieux…
Comment éteindre l’indicateur « HLT » suite à l’utilisation de l’instruction HALT ?
sharp el512, sharp el 9300,"hp 30b,*Mo5*,hp 50g bleue, sharp 1360,casio graph 65", hp 39gII

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: début bien difficile sur HP 50G !

Message par gege » 31 déc. 2013 00:08

KILL
G.E.

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

Re: début bien difficile sur HP 50G !

Message par bernouilli92 » 31 déc. 2013 01:03

Ou CONT pour continuer le programme.
HP, Casio, Sharp, Psion, quelques TI et divers autres

patt
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 47
Inscription : 17 juil. 2012 10:58
Localisation : 86

Re: début bien difficile sur HP 50G !

Message par patt » 14 janv. 2014 12:10

Bien merci, sinon à partir du code touche renvoyé par KEY comment obtenir le nom de la touche pressée ? (à la façon de CHR pour les codes ascii)
sharp el512, sharp el 9300,"hp 30b,*Mo5*,hp 50g bleue, sharp 1360,casio graph 65", hp 39gII

Répondre

Revenir vers « Tous les Pockets »