Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La référence Basic Casio

Nom : Menu

Localisation :

[ PRGM ] [ JUMP ]
[ SHIFT ] + [ VARS ] + [ F3 ]

Syntaxe de la fonction :

Menu "TITRE","TEXTE 1",Lbl,"TEXTE 2",Lbl,...


[b]Exemple :[/b]
Menu "MENU CASIO","TEST",1,"SALUT",2,"QUITTER",3

Description de la fonction :

Permet de créer un menu dans un programme.



N'oubliez pas de mettre les labels (Lbl) correspondants.Vous pouvez utiliser comme les Goto, les chiffres de 0 à 9 et les lettres de A à Z

Attention : La fonction Menu ne gère pas plus de 9 entrées !

Compatibilité :

  • Graph 20/25(+)
  • Graph 35/65/80(+)
  • Graph 100(+)
  • Graph 25+ PRO
  • Graph 85 (SD) OS 1.xx
  • Graph 85 (SD) OS 2.xx
  • Graph 35+ USB/75/95 SD
  • Graph OS 2.04
  • Fx-CG 10/20 OS 1.xx
  • Fx-CG 10/20 OS 2.xx


<<< Retourner à la liste des fonctions

Pages: Précédente | 1, 2, 3, 4, 5, 6 | Suivante

The prog8Hors ligneMembrePoints: 82 Défis: 4 Message
Posté le 03-06-2013 à 11:27 | #
Ah ouais ok merci bien !
MarmottiHors ligneYoutuberPoints: 3610 Défis: 6 Message
Posté le 14-06-2013 à 21:19 | #
J'suis vraiment le seul à bien aimer les Lbl ? bah oui quoi j'ai un programme avec....20 lbl et il ne bug pas ! :o (si on les utilises correctement, et j'ai compris comment bien les utiliser ) Je peux même faire une explication si quelqu'un le désire
ShykedHors ligneMembrePoints: 272 Défis: 20 Message
Posté le 15-06-2013 à 14:45 | #
Les Lbl cey le bien quand on sait les utiliser.
Je peux comprendre que si certains font du méli-mélo, ça peut-être chiant.

En tous cas, pour mes programmes de cours, j'me vois pas faire un :
[b][blue]If[/blue][/b] A=[maroon]1[/maroon]
[b][blue]Then[/blue][/b] *
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] A=[maroon]2[/maroon]
[b][blue]Then[/blue][/b] *
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] A=[maroon]3[/maroon]
[...]
[b][blue]IfEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[...]
ZiqumuHors ligneMembre d'honneurPoints: 3055 Défis: 9 Message
Posté le 15-06-2013 à 15:42 | #
C'est juste que les labels sont la facilité et (selon moi) tuent le principe de l'algorithme. Toutes les directives comme while, if, else, .. ont un sens réel. Le goto, dit juste au script d'aller là-bas, mais si un autre programmeur passe, il ne sera pas pourquoi, quel est l’intérêt, ça déstructure ton code en gros.

Après sur du basic, langage interprété sans indentation ni colorisation syntaxique, qui en plus apparait sur calculatrice (donc un écran petit). C'est vrai qu'utiliser des tonnes de boucles et de conditions imbriqué ne sera pas forcément plus claire qu'un goto. Dans des langages plus évolués, comme le C++, pour n'en citer qu'un, il existe aussi mais il est très peu utilisé car c'est assez rare que ton code soit plus compréhensible avec des goto qu'avec d'autres structures. Par exemple pour le code que propose Shyked, il suffit d'utiliser un switch.
int a=2;
switch(a)
{
    case 1:
        *
        break;
    case 2:
        *
        break;
    case 3
        *
        break;
}

Et même un imbriquement de conditions, c'est beaucoup plus claire car on a de la place sur l'écran, on peut indenter le texte et on a pas 40 ifEnd à la fin.
int a=3;
if(a==1)
{
    *
}
else if(a==2)
{
    *
}
else if(a==3)
{
    *
}

C'est pour ça que je trouve que le basic n'est pas un super bon language pour apprendre, mais bon ce n'est qu'un avis perso. En plus du fait que je préfère les accolade que les "IfEnd", mais encore une fois, question de goût
Après là ou je pense par contre que tout dev sera d'accord (même ceux qui sont pour l'utilisation non-abusive du goto), c'est que par exemple :

Lbl 1
*
Getkey=31⇒Goto 2
*
Goto 1
Lbl 2

Ce genre de cas (programmation spaghetti) ne devraient jamais arriver. Et c'est aussi pour ça qu'on aime pas les Goto, car les débutants les utilisent ainsi. Il vaut mieux qu'au début ils apprennent avec pleins de boucle imbriqués mais sans Goto plutôt que de faire ça.
Faire ceci est beaucoup plus simple et logique

While 1
*
Getkey=31⇒Break
*
WhileEnd

Ou encore mieux, mais la ça dépend aussi du reste du code votre code

While Getkey≠31
*
WhileEnd

Bon et puis en plus sur Casio ils peuvent provoquer des bugs, mais bon ça c'est propre à casio.
ShykedHors ligneMembrePoints: 272 Défis: 20 Message
Posté le 15-06-2013 à 17:38 | #
Surtout que, concrètement, le ElseIf n'existe pas en Basic. En réalité, c'est des If imbriqués, d'où l'obligation de mettre pleins de IfEnd à la fin.
Mais sur les points que tu as énoncé, je ne peux qu'être d'accord, ne connaissant pas que le Basic.

Et c'est sûr que les programmes spaghetti, même pour sois-même ça doit pas être facile à comprendre xD
DodormeurHors ligneAncien rédacteurPoints: 3964 Défis: 82 Message
Posté le 15-06-2013 à 21:36 | #
mais pourquoi vous utilisez pas des sous-programmes plutot que des label serieux??

A=1=>Prog"chimie"
A=2=>Prog"phys 1"
A=3=>Prog"phys 2"
A=4=>Prog"bio"


comme ca il n'y a pas de label, pas de ifend imbriqué, et c'est facile a comprendre et a modifier...
Dark stormHors ligneLabélisateurPoints: 11542 Défis: 176 Message
Posté le 15-06-2013 à 21:43 | #
Tu es vite surencombré de sous-progs…
Mais rien ne t'empêche d'allier les deux:

Dans le programme principal:

A=1=>Prog "chimie"
A=2=>Prog "phys"
A=3=>Prog "phys"
A=4=>Prog "bio"


Et dans le programme chimie

B=1=>*
B=2=>*
B=3=>*
Etc.
ZiqumuHors ligneMembre d'honneurPoints: 3055 Défis: 9 Message
Posté le 15-06-2013 à 22:26 | #
Dark, tu peux mettre qu'une seule instruction par ligne dans ton programme chimie aussi.

@Dodormeur, je suis d'accord, mais selon moi, en fait, c'est un default du language. Pour moi un sous-programme, c'est un programme que tu vas réutiliser plusieurs fois dans ton code, et le but est de ne pas le répéter. La ton sous-programme sera destiné a être appelé une seule fois, ce qui, d'un point de vue algorithmique, n'est pas si génial que ça.

Le language Basic casio n'est pas fait pour être utilisé avec beaucoup de conditions imbriqués. Pour contrer ce problème ils ont pris les goto (d’ailleurs au tout début le basic original était principalement programmé en goto). Toi tu veux pas utiliser les goto, tu utilises les sous-programmes, mais ce n'est qu'un détournement de leurs fonctions première.

Bref pour dire qu'il n'y a pas de solution magique. Selon moi en basic casio, les labels ne sont pas à bannir à 100%, car le langage est fait pour les utiliser. Après libre à chacun d'utiliser la technique qu'il veux, puisque les deux on des inconvénients :
- goto: nuis à la structure du code, car ils n'ont pas de fonction définie (contrairement à une boucle par exemple)
- sous-programme: détournement de la fonction première, encombrement de la liste des programmes.

(PS: la j'ignore les bugs de labels car pour Marmotti, ils ne buggaient pas : je partait de ses constatations. Et donc mon débat du "goto or not goto" par de son point de vue et la tu peux voir qu'utiliser ou non les Goto est discutable.
Du point de vue de quelqu'un qui aurait constaté des bugs aléatoire incessant , alors là c'est indiscutable on peut bannir les goto à 100% )

Bref un débat sans fin se profile-t-il à l’horizon ?
ShykedHors ligneMembrePoints: 272 Défis: 20 Message
Posté le 16-06-2013 à 12:54 | #
iPhone Android
Microsoft Apple (ou Windows Linux)
Sony Nintendo Microsoft

Les débats qui n'ont pas plus de réponse que ce qu'il y avait avant le Big Bang.
MarmottiHors ligneYoutuberPoints: 3610 Défis: 6 Message
Posté le 16-06-2013 à 14:10 | #
Disons que quand je me lance sur une question, il faut que je trouve la réponse sinon ça va m'énerver, alors depuis un mois environ j'fais mon enquête sur le sujet.
Pour l'instant ce que j'ai pu conclure, c'est que tu ne peut déjà pas mêler les lbl

Lbl 1
Locate 1,1,"Bravo"
Lbl 2
....
if A=3
then
goto 1
Else
goto 3
Lbl 3
A+1→A
goto 2

En règle général, si les Lbl foire, c'est qu'il y'a une manière plus simple pour présenter ce code :

For 1→A to 3
....
Next
Locate 1,1,"Bravo"

Donc il ne faut pas bannir les Lbl,, il ne faut juste pas les utiliser de manière inutile ou d'une mauvaise manière. (l'exemple est un peu nul, mais bon j'ai pas trouvé mieux)

De plus ce n'est pas le nombre de Lbl/Goto qui va faire buguer le programme, juste l'utilisation.

Il faut aussi savoir varier entre les sous-programmes et les Lbl. Mon menu des programme ressemble à çeci :

Guitar
-1 tab
-1-1C
-1-2D
-2 hist
-2-1dbt
...

De cette manière les sous Programmes ne deviennent pas encombrants et mélangés. Mais il ne faut pas abuser sur le nombre de sous-programmes ! Le mieux c'est de faire des sous programmes par tache : un pour donner les bonnes valeurs dans chaque cas (chaque cas sera égal à un lbl), un autre pour les graphs , un autre pour calculer, un autre pour les getkey,....Ne surtout pas faire un programme avec que des lbl mélangeant des instructions de calcule, de graph, ...
Mais aussi ne pas faire uniquement que des sous programme à la moindre instruction, certes celà peut paraître simple au début mais ça devient très vite gênant aussi bien pour le programmeur que pour l'utilisateur !

Je sais que j'ai toujours du mal à exprimer mon ce que je veux dire, alors j’espère que vous aurez compris

Pages: Précédente | 1, 2, 3, 4, 5, 6 | Suivante

Retour liste des commandes

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 42 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