menu déroulant

Programmer en RPL

Modérateur: Modérateurs prog.

menu déroulant

Messagede mcdoil » 01/05/2002 13:57

qq'un sait comment on fait pour faire des menu deroulant dans ses prog ??
merci de votre aide
( hp 49 prog en rpl )
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede nico » 03/05/2002 13:07

Quel genre de menu déroulant? Le même que lorsqu'on l'appuie sur la touche apps?

Si oui: c'est la fonction CHOOSE
(un exemple: convertisseur franc/euro)
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Re: aide a la prog

Messagede administrateur » 03/05/2002 21:39

mcdoil a écrit:qq'un sait comment on fait pour faire des menu deroulant dans ses prog ??
merci de votre aide
( hp 49 prog en rpl )


Le titre "aide a la prog" n'est pas très parlant! (cette catégorie est faite pour de l'aide sur la programmation, il faut donc mettre un titre en rapport avec le problèmes)
Dernière édition par administrateur le 28/01/2004 0:30, édité 1 fois.
Mesurez vous aux autres sur les jeux hp: scores à battre
Faq sur les HP
administrateur
Administrateur en chef
 
Messages: 86
Inscription: 12/01/2002 19:07
Localisation: France
Gender: homme

Messagede mcdoil » 03/05/2002 22:52

Ok parfait merci mais j'ai encore du mal cela dit ca m'aide deja un peu.
aussi tu sais ou je peux trouver un bon tut de rpl ??
j'ai trouve pas mal de daube et puis des pgm pour les polynomes du second degre je sais les faire maintenant

merci :!:

mcdoil
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede nico » 04/05/2002 18:28

il y a quelques exemples ici: (la page devrait bientôt être mis à jour en tenant compte de ta question)
http://hp4849.free.fr/programmation/

pour la fonction CHOOSE: (en RPL, j'ai jamais essayé en basic)

valeurs avant l'appelle:
1: "Titre"
2: liste
3: choix_par_défaut

valeurs retournées:
si validé:
2: choix
1: 1
sinon:
1: 0

* la liste de choix:
une solution: (pas terrible)
{ "choix 1" " choix2" ... }

après l'appelle de CHOOSE, on récupère sur la pile 2: "choix 1" ou "choix 2" (suivant la sélection)

autre solution: (mieux)
{ { "texte choix 1" obj1 } { "texte choix 2" obj2} .... }
obj est soit:
- un programme << "choix n" CLLCD 1 DISP 3 FREEZE >>
- un nom de variable 'var'
- texte ...

on récupére sur le niveau 2 de la pile l'obj en fonction du choix
il ne reste plus qu'à l'évaluer (EVAL) (exemple IF THEN EVAL END)

choix par défaut: numéro du choix qui sera sélectionné par défaut



un exemple de programme utilisant CHOOSE


(pour changer le titre de ton sujet, édite le titre de ton premier post)
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Messagede mcdoil » 08/05/2002 3:20

salut
voila un pgm :rocket: que j'ai fait tout seul en suivant tes conseils


Code: Tout sélectionner
« "prod scalaire" { {"xv = " "Coord v1" 0}
{ "yv = " "Coord v1" 0 }
{"zv = " "coord v1" 0}
{ "xt = " "Coord v2" 0 }
{"yt = " "Coord v2" 0}
{ "zt = " "Coord v2" 0 } }
{ 3}
{ 0 0 0 0 0 0 } DUP
INFORM
  IF
  THEN 0 2 ROLL OBJ->
DROP-> s xv yv zv xt
yt zt
    « xv xt * yv yt *
+ zv zt * + R->I 's'
STO
      CASE s 0 ==
        THEN
"PERPENDICULAIRE" s +
        END s 0 ‹
        THEN
"u.v = xx'+yy'+zz':                      :rocket:
="
s + +
        END
      END
    » CLLCD 0 DISP 0
WAIT DROP
  END
»
:rocket:



mais je sais pas pkoi il ne fonctionne pas et c vraiment penible. Le principe est pas compliqué c produit scalaire avec les coordonnées mais au final au lieu de m'afficher les resultats il me met toute la 2eme partie ( second crochet )


a l'aide !!!!!!! :rocket:

merci
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede mcdoil » 08/05/2002 12:26

:idea: autre chose si tu veux changer le nom du forum vas-y lache toi tu as surement raison !


@+
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede nico » 08/05/2002 16:52

mcdoil a écrit::idea: autre chose si tu veux changer le nom du forum vas-y lache toi tu as surement raison !


@+


Pourquoi changer le nom ?? Je comprends pas?
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Messagede nico » 08/05/2002 19:34

« "prod scalaire" { {"xv = " "Coord v1" 0}
{ "yv = " "Coord v1" 0 }
{"zv = " "coord v1" 0}
{ "xt = " "Coord v2" 0 }
{"yt = " "Coord v2" 0}
{ "zt = " "Coord v2" 0 } }
{ 3}
{ 0 0 0 0 0 0 } DUP
INFORM
IF
THEN 0 2 ROLL OBJ->
DROP-> s xv yv zv xt
yt zt
« xv xt * yv yt *
+ zv zt * + R->I 's'
STO
CASE s 0 ==
THEN
"PERPENDICULAIRE" s +
END s 0 <
THEN
"u.v = xx'+yy'+zz':
="
s + +
END
END
» CLLCD 0 DISP 0
WAIT DROP
END
»

bon je recommence vu que le serveur multimania a fait des siennes!
erreur de code ou de recopiage(en rouge)?
- DROP-> n'existe pas c'est DROP [espace] ->
- s + + devrait provoquer: pas assez d'arguments (si la pile est vide)

Sinon je ne vois pas ton problème, tu es bien en rpl?

en bleu: tu drevrait remplacer par ' s 0 <> ' (<> = différent, le égale barré de la hp) pour tester s<0 et s>0

Si ca ne marche toujours pas, envoie le programme de ta hp à ton pc, puis mets un lien sur ce forum (si tu en compte chez un hebergeur) ou envoie à l'adresse de l'administrateur (hp4849@free.fr)
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Messagede administrateur » 08/05/2002 19:43

voila j'ai corrigé ton programme:
Fichiers joints
pscal.zip
produit scalaire
(473 Octets) Téléchargé 229 fois
Dernière édition par administrateur le 31/10/2002 12:04, édité 2 fois.
Mesurez vous aux autres sur les jeux hp: scores à battre
Faq sur les HP
administrateur
Administrateur en chef
 
Messages: 86
Inscription: 12/01/2002 19:07
Localisation: France
Gender: homme

Messagede mcdoil » 09/05/2002 0:50

bin voila on commence a voir clair un peu !!
existe t-il un bouquin pour la prog sur hp ? ou c plutot a la demerde qu'on s'en sort ?
que pense tu de voyage au coeur de la HP ?
ciao @++ :bounce:
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede administrateur » 09/05/2002 15:00

mcdoil a écrit:bin voila on commence a voir clair un peu !!
existe t-il un bouquin pour la prog sur hp ? ou c plutot a la demerde qu'on s'en sort ?
que pense tu de voyage au coeur de la HP ?
ciao @++ :bounce:


pour la hp49 c'est plus à la demerde. Avec la hp48, il y avait un gros bouquin (moins gros que les anciennes versions de hp, il parait), avec lequel on pouvait quand même se débrouillé.

c'est de Voyage au centre de la hp48g/gx que tu parles? oui il est pas mal, il parle surtout de l'assembeur et du matériel (il est disponible en version électronique pour la hp48, mais la 49 a juste quelques modifications)
sinon pour le rpl, il y a la bible de la hp (pour 48, mais le rpl n'a pas changé), il y a pas mal d'exemple (ce qui m'a aidé a utilisé la commande inform qui n'était pas documenté avec les bouquins livrés avec la hp48)
Mesurez vous aux autres sur les jeux hp: scores à battre
Faq sur les HP
administrateur
Administrateur en chef
 
Messages: 86
Inscription: 12/01/2002 19:07
Localisation: France
Gender: homme

Messagede mcdoil » 10/05/2002 14:50

voili voulou j'ai fini le pgm final que je voulait faire mais bien sur a marche pas :? alors je te l'envoie comme d'hab pour que tu puisse me dire ce qui foire.


« "Prod scalaire" { {
"p.s.coordonee"
« "prod scalaire" { {
"xv =" "Coord v1" 0
} { "yv ="
"Coord v1" 0 } {
"zv =" "coord v1" 0
} { "xt ="
"Coord v2" 0 } {
"yt =" "Coord v2" 0
} { "zt ="
"Coord v2" 0 } } { 3
} { 0 0 0 0 0 0 } DUP
INFORM
IF
THEN 0 2 ROLL OBJ->
DROP -> s xv yv zv xt
yt zt
« xv xt * yv yt *
+ zv zt * + R->I 's'
STO
CASE s 0 ==
THEN
"PERPENDICULAIRE
u.v ="
s +
END s 0 ‹
THEN
"u.v = xx'+yy'+zz':
="
s +
END
END
»
»}
{"p.s.norme + somme" « "prod scalaire"
{{ "u" "norme de u" 0}
{ "v" "norme de v" 0 }
{ "w" "u+v" 0 }
{1} {0 0 0} DUP
INFORM
IF
THEN 0 2 ROLL OBJ->
DROP -> e u v w
« w 2 ^ u 2 ^ v 2 ^ + - 2 / 'e' STO
CASE e 0 ==
THEN
"PERPENDICULAIRE
u.v ="
e +
END e 0 ‹
THEN
"u.v = 1/2 [||u+v||² - (||u||²+||v||²)] :
u.v ="
e +
END
END
»
» }
{ p.s.norme + COS
« prod scalaire
{ { "u" "norme de u" 0 }
{"v" "norme de v" 0 }
{ "w" "angle (u;v)" 0 }
{1} { 0 0 0 }
DUP
INFORM
IF
THEN 0 2 ROLL OBJ->
DROP -> e u v w
« u v w COS * * 'e' STO
CASE e 0 ==
THEN
"PERPENDICULAIRE
u.v ="
e +
END e 0 ‹
THEN
"u.v = ||u||*||v||*cos(w) :
u.v ="
e +
END
END
»
»
} } 1 CHOOSE
IF
THEN EVAL CLLCD 1
DISP 1 FREEZE
END
»




bon je sais que j'y vais un peu a l'arache mais autoditacte je suis donc j'essais et puis apres on voit.
:idea: BUT : un pgm avec un menu deroulant pour choisir le type de prod scal qu'on veut faire de la on atterie dans une fenetre genre inform pour saisie des donnée et ensuite a bin resultats...


merci de ton aide :!: :!:
mcdoil
Débutant
 
Messages: 36
Inscription: 15/03/2002 20:55
Localisation: haute savoie

Messagede nico » 10/05/2002 16:12

Tu pourrait dire quel message d'erreur tu as?


:arrow: Une fonction bien utile le debugage: (PRG (shift-gauche + CAT), NXT, NXT, C (pour le répertoire RUN) commande DBUG) mettre le nom du prog dans la pile (pour le RPN) 'prog' et lancer DBUG

autres commandes du réperoire: (pour le débugage)
NEXT: voir les instructions suivantes (2 par 2)
SST: exécute l'instruction suivante du programme en cours
SST\|/: ( si l'affichage est incorrect, \|/: flèche vers le bas) exécute l'instruction suivante du programme en cours et des sous programmes.
KILL: arrête le mode debug (le HALT disparaît de l'écran, le mode debug est désactivé dès que le programme se termine)

autres commandes: CONT (shift-gauche et touche ON) reprend le programme là où il était arreté.

:?: Tu as un cable pc-hp?
:arrow: si oui : Tu pourrais envoyé le programme ( c'est long de reprendre le code posté, même avec l'émulateur, il faut virer les "" retirer les \ remplacer les caractères -> par la flèche pour éviter les erreurs)
2 possibilités: en lien sur le forum (comme les programmes de conversion euro/fr), ou par email a hp4849@free.fr

:arrow: si tu n'as pas cable hp-pc, il va falloir que tu le fabriques (ca sert toujours :wink: )
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Messagede nico » 10/05/2002 16:16

une petite précision: au lieu de mettre 2 ROLL ou 2 ROLLD met SWAP (echange entre 2 objets de la pile)
ROLL et ROLLD echange n objets de la pile

dans la catégorie programmation, il y a une vague explication pour le debugage d'un programme:
http://hp4849.free.fr/programmation/rpl ... html#Prog0
nico
Modérateur
 
Messages: 37
Inscription: 05/02/2002 22:29
Gender: homme

Suivante

Retourner vers RPL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron