Posté le 24/10/2016 20:10
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 138 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 24/10/2016 20:45 | #
La fonction Menu ne tolère pas plus de 9 choix.
Citer : Posté le 24/10/2016 21:24 | #
Oui je sais, mais je parle des labbels qu'on associe à ces choix, par exemple si je rentre met un label > 9, ça me fait une erreur
Citer : Posté le 24/10/2016 21:38 | #
De mémoire tu as le droit aux labels 0 à 9, A à Z, θ et r, et peut-être quelques autres. Mais ça tourne autour de 40 grand max, on peut pas en mettre à l'infini.
Il n'y a pas de solution triviale à implémenter et jolie en même temps, mais tu peux toujours combiner des Lbl auxquels tu saute manuellement en ajoutant un paramètre. Par exemple, en stockant une valeur additionnelle disons, dans la variable A :
If A=1
Then // du code 1....
Else If A=2
Then // du code 2...
IfEnd
IfEnd
Et ensuite, pour sauter au code que tu veux, tu modifies le paramètre A avant le saut :
Goto 1 // saute vers le code 1
2→A
Goto 1 // saute vers le code 2
C'est loin d'être excellent cependant. Si ton programme est suffisamment gros pour que tu aies besoin de tant de points de saut, je te conseillerais plutôt d'écrire des sous-programmes.
Citer : Posté le 24/10/2016 21:59 | #
M'ouais, je trouve pas ça hyper propre. Quand tu parles de sous programme tu veux dire que dans un programme, il y a possibilité de créer des " sous-programmes " ? Comment on fais ?
Citer : Posté le 24/10/2016 22:19 | #
En fait c'est un autre programme... la fonction Prog permet de lancer un autre programme ; lorsque le sous-programme s'arrête, l'exécution reprend après l'instruction Prog (chose rare ; c'est quelque chose qui manque cruellement au Basic Casio, à savoir les fonctions).
Tu peux regarder la doc, mais la description qu'on y trouve est assez décevante é_é
Citer : Posté le 24/10/2016 22:46 | #
Après si je fais des programmes un peu partout ma liste de programme va rapidement devenir un fouilli... :/ Je vais voir ce que je peux faire...
Citer : Posté le 24/10/2016 22:51 | #
C'est le problème des sous-programmes... c'est toujours un peu compliqué pour s'organiser. Ils auraient pu ajouter des fonctions quand même...
Citer : Posté le 25/10/2016 10:53 | #
Ma solution est d'imbriquer plusieurs Menus les uns à la suite des autres en affichant page suivante à la fin de chaque Menu et un Retour à la fin du dernier pour revenir au début du programme. C'est la méthode que je viens d'employer dans mon programme Surfaces-Volumes qui n'est pas encore terminé. Un maximum de Lbl !!!
Citer : Posté le 25/10/2016 13:45 | #
Cette solution permet en effet de pallier la limite d'entrées de la fonction Menu, mais elle ne résout pas la limitation en nombre de labels... ^^'
Citer : Posté le 25/10/2016 14:22 | #
Oui, puis le nombre de choix dans mes menus ne dépasse pas 9 (le maximum est justement 9 et c'est uniquement dans le tout premier menu). Donc je vais m'organiser comme ça je pense :
S.TRIANG
Lbl 0
Accueil◢
Goto Z
Lbl Z
Menu
1 Pythagore -> Prog " ~~~~01~A "
2 Thalès -> Prog " ~~~~01~B "
3 Trigonométrie -> Prog " ~~~~01~C "
4 ... -> Prog " ~~~~01~D "
5 ... -> Prog " ~~~~01~E "
6 ... -> Prog " ~~~~01~F "
7 ... -> Prog " ~~~~01~G "
8 Mode d'emploi -> Goto 1
9 Retour -> Goto 0
Lbl 1
Menu
1 Mode d'emploi Comment bien utiliser le programme, comprendre les différentes parties, etc -> Goto 2
2 Vocabulaire Traductions de certaines abréviations, certaines évidentes comme " pts " = " points ", mais d'autres qu'on peut chercher (il y aura des abréviations car des fois je n'ai pas tout le temps la place pour faire tenir un texte) -> Goto 3
3 Retour -> Goto Z
Lbl 2
Contenu du mode d'emploi◢
Goto Z
Lbl 3
Contenu du vocabulaire◢
Goto Z
~~~~01~A 01 = Premier programme qui utilise ce système de sous-programmes, A = 1ère partie du programme, à savoir Pythagore. Les vaguelettes ne veulent rien dire, c'est juste pour reconnaitre les programmes et qu'ils sois classés dernier par ordre alphabétique dans ma liste, pour pas les voir et pas faire brouillon.
Lbl 1
Contenu du Lbl 1, puis après j'utiliserais les Lbl de A à Z, et si il faut, r, et θ.
Ajouté le 25/10/2016 à 14:42 :
D'ailleurs est ce que vous savez si, quand je met " Prog... " c'est possible, d'en plus de rediriger vers le programme, de le rediriger vers un label précis de ce programme. Si oui comment on fait ?
Citer : Posté le 25/10/2016 17:46 | #
Le premier Goto Z est inutile, l'exécution lit linéairement le programme. Tu ne peux pas utiliser Prog comme point de saut pour la fonction menu, seul un label est acceptable. Il faut donc à chaque fois, ajouter un label qui donne sur une instruction Prog, suivie d'un Goto Z.
Voilà une combinaison qui se vaut ; c'est un peu lourd, mais il n'y a pas vraiment moyen de faire autrement. Non, tu ne peux pas indiquer à Prog de sauter à un label connu à ma connaissance. Encore une fois, tu ne peux qu'utiliser une variable pour passer un paramètre, mais le Goto se comporte mal...
Citer : Posté le 25/10/2016 18:02 | #
Ah oui, je me suis trompé dans le code que j'ai écris, à chaque fois je redirige vers un Lbl qui contient uniquement la fonction Prog. Sinon dommage, je vais devoir faire avec :/
Citer : Posté le 25/10/2016 18:14 | #
Quand je regarde ton plan, je pense qu'on peut faire mieux ; il faudrait profiter du fait que les sous-programmes offrent de nouveau une quarantaine de labels et les laisser gérer leurs propres menus. L'idée serait plutôt d'associer à chaque sous-programme un menu, et les entrées « simples » (c'est-à-dire, qui ne contiennent pas elle-mêmes de sous-menu), comme ceci :
Programme S.TRIANG
Menu
1 Pythagore v1 → Label local A (juste une description)
2 Pythagore v2 → Sous-programme 1 (contient un menu)
Label A
"AC² = AB² + BC²"
Sous-programme 1
Menu
1 Énoncé du théorème → Label local A (juste une description)
2 Conséquences géométriques → Label local B (juste une description)
3 Preuves du théorème → Sous-programme 1.1 (contient un menu avec plusieurs preuves)
Label A
"AC² = AB² + BC²"
Label B
"Trigonométrie (etc etc)"
Sous-programme 1.1
Menu
(etc etc)
Est-ce que c'est clair ?
Citer : Posté le 25/10/2016 19:02 | #
C'est plus dur après pour s'y retrouver, je compte coder chaque " grande partie " sur un sous-programme, et après créer un programme (S.TRIANG) qui possède un menu où sont regroupés chaque grande partie, et pour du coup y acceder. D'ailleurs le contenu de Pythagore ne sera pas des explications mais déjà 4 parties (Théorème, Réciproque, Théorème dans un repère, Réciproque dans un repère) et après on choisis le côté qu'on souhaite calculer, on rentre les valeurs et on obtient le résultat. (pareil pour Thalès, etc) De plus, chaque grande partie ne dépassera à priori pas les 26 labels (A à Z), Pythagore devrais en contenir une quinzaine, etc.
Citer : Posté le 25/10/2016 19:08 | #
Voici un lien qui parle des goto/lbl. Si les labels posent trop de problèmes, tente d'en remplacer par des solution alternatives plus propre/rapide à l’exécution. Je te laisse lire le spoiler "éviter goto/lbl", tu pourrais peut-être avoir des pistes intéressantes.
Citer : Posté le 26/10/2016 08:46 | #
Autant de Menus pour un simple prog sur Pythagore ? Je t'invite à jeter un œil sur mon programme trigonométrie. ça te donnera peut être des idées qui sait ?