HP48: variables locales en User-RPL

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
Danny
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 739
Inscription : 28 déc. 2013 17:34

HP48: variables locales en User-RPL

Message par Danny » 03 janv. 2014 22:13

Hi amis HP-istes (et bonne année :)),

J'essaie de me remettre à la programmation basique sur ma HP 48 GX, mais je bloque déjà sur les variables locales :|

Quand je fais ce test simple, avec une variable globale, ça fonctionne :

Code : Tout sélectionner

<< 3 'n' STO
IF 'n > 0'
THEN "positif"
END >>
Mais si j'utilise une variable locale :

Code : Tout sélectionner

<< 3 -> n
IF 'n > 0'
THEN "positif"
END >>
j'ai une erreur de syntaxe au niveau du THEN ! :?

J'ai essayé aussi avec la forme

Code : Tout sélectionner

IF n 0 >
mais ça donne la même chose.

Si qu'un peut m'expliquer où j'ai merdé... :geek:
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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

Re: HP48: variables locales en User-RPL

Message par cgh » 03 janv. 2014 22:34

J'ai tres peu programme en RPL (j'en ai horreur), mais de memoire, ce ne serait pas un truc du genre:

Code : Tout sélectionner

<< 3 << -> n
IF n 0 >
THEN "positif"
END >> >>
Je crois que les variables locales doivent etre declarees dans un bloc.

Il te faudrait la BIBLE de la HP48G/GX (ce n'etait pas un des manuels vendus avec la HP48*). Les exemples de programmation, a defaut d'etre didactiques et exhaustifs, ont le merite d'exister et de couvrir ce genre de problemes. Ce livre te serait d'un grand secours...
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

jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2368
Inscription : 17 févr. 2008 00:34
Localisation : Paris 20ème

Re: HP48: variables locales en User-RPL

Message par jxano » 03 janv. 2014 22:41

Code : Tout sélectionner

<< 3 -> n <<
IF 'n > 0'
THEN "positif"
END >>
>>
Programmeur abscons.

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

Re: HP48: variables locales en User-RPL

Message par cgh » 03 janv. 2014 22:41

cgh a écrit :Il te faudrait la BIBLE de la HP48G/GX (ce n'etait pas un des manuels vendus avec la HP48*). Les exemples de programmation, a defaut d'etre didactiques et exhaustifs, ont le merite d'exister et de couvrir ce genre de problemes. Ce livre te serait d'un grand secours...
Tu l'as de dispo en anglais ici, si cela peut t'aider.
En anglais, c'est l'Advanced reference manual.
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 : 739
Inscription : 28 déc. 2013 17:34

Re: HP48: variables locales en User-RPL

Message par Danny » 03 janv. 2014 22:55

cgh a écrit :J'ai tres peu programme en RPL (j'en ai horreur), mais de memoire, ce ne serait pas un truc du genre:

Code : Tout sélectionner

<< 3 << -> n
IF n 0 >
THEN "positif"
END >> >>
Je crois que les variables locales doivent etre declarees dans un bloc.
Merci pour ta réponse, ça m'a mis sur la piste ! :)

En fait il faut que la variable locale soit utilisée dans une expression algébrique ou un programme, après sa déclaration ! (chapitre 29-16 du manuel utilisateur)
Et mon IF seul n'était aucun des 2. Il fallait donc écrire ce qu'à répondu ensuite jxano, en effet :geek:

Je vais récupérer le AUR, aussi :tongue:

Thanks guys :)
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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: HP48: variables locales en User-RPL

Message par C.Ret » 04 janv. 2014 00:00

L'utilisation des variables locales suit deux syntaxes très précises :

La première utilisant une expression algébrique :

Code : Tout sélectionner

« -> x 'x^2-2*x+2' »
La fonction ainsi définie calcule f(x)=x²-2x+2. Une telle fonction est appelée 'fonction algébrique utilisateur', elle peut être évaluée numériquement et symboliquement, dérivée et intégrée.

La seconde concerne les structures de programme. Les varaibles locales sont prélevées à l'extérieur de la structure où elle s'appliquent :

Code : Tout sélectionner

« -> x « x SQ 2 x * - 2 + » »
Le programme ainsi défini est un programme structuré. Son évaluation est en fait son exécution. Il ne peut permettre d'évaluation symbolique que si les instructionqui le composent authorise une évaluation symbolique. Il ne peut être dérivé ou intégré, ce n'est pas une 'fonction utilisateur'.


L'erreur de syntaxe dont il est question ci-dessus provient de l'absence de la structure 'interne' obligatoirement délimitée par les guillemets.

Code : Tout sélectionner

                            3                                      @ donnée externe au programme
« 3 -> n                    « -> n                                 @ début du programme - définition d'une varaible locale
   IF n 0 >                     «  IF n 0 > THEN "positif" END »   @    struture interne où s'applique la ou les définitions locales 
   THEN "positif"           »                                      @ fin du programme
   END
»
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
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: HP48: variables locales en User-RPL

Message par gege » 04 janv. 2014 04:06

Moralité : le Ridiculement Pas Logique est Réellement Pénible à Lire ! ;-)
G.E.

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

Re: HP48: variables locales en User-RPL

Message par Danny » 04 janv. 2014 12:39

Mais non :mrgreen:

Bon je vais essayer de trouver une copie papier du Advanced User Reference, pour aller avec le manuel d'origine de ma 48... Vous savez s'il existe en français aussi ?
Juste pour être raccord au niveau de la langue, sinon je me "contenterai" de la version anglaise :)
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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

Re: HP48: variables locales en User-RPL

Message par cgh » 04 janv. 2014 12:47

Danny a écrit :Mais non :mrgreen:

Bon je vais essayer de trouver une copie papier du Advanced User Reference, pour aller avec le manuel d'origine de ma 48... Vous savez s'il existe en français aussi ?
Juste pour être raccord au niveau de la langue, sinon je me "contenterai" de la version anglaise :)
Il existe en francais aussi. C'est La Bible de la HP48G/GX. A une epoque, il etait fourni "en cadeau" ou "en pack" avec les HP-48GX. On en voit de temps en temps sur le coincoin.

Bon, cote archives HP-48*, je n'ai plus rien, mais on en trouve ici ou la, par exemple.
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 : 739
Inscription : 28 déc. 2013 17:34

Re: HP48: variables locales en User-RPL

Message par Danny » 04 janv. 2014 13:55

Ah okay, bien vu la Bible, thanks :geek:
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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

Re: HP48: variables locales en User-RPL

Message par Danny » 12 janv. 2014 13:32

Merci cgh, au final j'ai acheté la Bible du vendeur eBay dont tu as posté le lien :D

J'ai une autre question en RPL: après avoir demandé l'affichage de la fenêtre graphique avec PVIEW, est-ce qu'il y a une instruction qui permet de cacher les menus ?
Je n'ai rien trouvé dans les docs ni sur internet :|
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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

Re: HP48: variables locales en User-RPL

Message par bernouilli92 » 12 janv. 2014 15:02

Les menus ne sont pas affichés avec PVIEW.
Exemple:
<< {#0 #0} PVIEW 10 WAIT >>
HP, Casio, Sharp, Psion, quelques TI et divers autres

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

Re: HP48: variables locales en User-RPL

Message par Danny » 12 janv. 2014 15:58

Ah oui exact, c'est parce que j'avais mis une MSGBOX après, qui affiche les menus pour son action OK... Du coup je dois rappeler PVIEW pour les virer ! Thanks 8)
Casio fx-702P, 750P, 880p, 3900p, 7000G, 6000G, 6500G, 6800G, 8500G, 4500P, 9900GC, 9950GB +, Graph 100+ USB, Graph 90+E, fx-CP400
HP 35, 45, 65, 21, 25, 67, 33E, 41C, 41CV, 41CX, 15C, 20S, 42S, 28S, 32S, 32SII, 48SX, 48S, 48G, 48GX, 48G+, 50g, 35s, 39gII, Prime
Sharp PC-1245, 1500A, 1430, 1350, 1360, 1403, 1403H, 1262, EL-9000, PC-E500S | Psion Organiser II XP, Organiser II LZ 64 | Tandy PC-7

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: HP48: variables locales en User-RPL

Message par Paul Tergeist » 13 janv. 2014 10:42

Merci Bernouilli, je ne connaissais pas cette astuce. Est-ce qu'il y a un équivalent sur les Texas et les Casio ? C'est vrai c'est embêtant ces menus quand on veut profiter de tout l'affichage.

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

Re: HP48: variables locales en User-RPL

Message par bernouilli92 » 13 janv. 2014 11:42

Danny a écrit :Merci cgh, au final j'ai acheté la Bible du vendeur eBay dont tu as posté le lien :D
La version PDF en anglais peut se télécharger ici :
http://www.hpcalc.org/details.php?id=6036
Paul Tergeist a écrit :Merci Bernouilli, je ne connaissais pas cette astuce. Est-ce qu'il y a un équivalent sur les Texas et les Casio ? C'est vrai c'est embêtant ces menus quand on veut profiter de tout l'affichage.
PVIEW n'est pas la bonne méthode pour cacher les menus car elle affiche le graphique stocké dans PICT, une fois ce graphique affiché, on est en mode graphique or l'instruction DISP affiche les données dans le mode texte, il faut repasser en mode TEXT pour voir le résultat.
Il me semblait qu'il y avait une astuce pour cache le menu et utiliser la dernière ligne de caractère mais je n'ai rien trouvé. Cela doit se faire avec des outils spéciaux (system rpl).
HP, Casio, Sharp, Psion, quelques TI et divers autres

Répondre

Revenir vers « Tous les Pockets »