CMD (un nouveau langage révolutionnaire ? :] )
+4
sandro
persalteas
linkakro
maxence
8 participants
Page 4 sur 4
Page 4 sur 4 • 1, 2, 3, 4
Re: CMD (un nouveau langage révolutionnaire ? :] )
@Noël: Bah je n'y peux rien, c'est le moyen que j'ai trouvé pour trouver le début des textes et leur taille pour les découper comme il faut. Au fait, somebody a t'il rendu son "writter" ? Ça m’intéresse de voir les différences entre nos deux programmes.
Il y a eu un bug pour la syntaxe de la création de commandes.
Par exemple, si on écrit ceci en haut du code:
.P/E=PAUSE:EFF // notez le points au début de la ligne
ou
.AFFGRAPH=//DispGraph // En CMD "//" veux dire "commandes externe" en quelque sorte
ou
.++ = <=<+1
explications, les "<" signifient "partie avant le '++' ", donc si cette ligne est mise, et qu'on fait "A++", cette dernière sera remplacée par "A=A+1"
De même, la ligne ". EXP = <^>" veux dire "partie avant le 'EXP' " + "^" + "partie après le 'EXP' "
Voila pour ces deux exemples.
Après j'ai prévu des ajouts tel que des améliorations de la commandes pause:
PAUSE → Pause
PAUSE+"BONJOUR" → Pause "BONJOUR"
PAUSE=750 → For([THETA], 1, 750):End // Fonction honteusement copiée sur l'axe, sur 84+, 750 boucle à vide ~= 1seconde.
J'hésite à simplifier le nom des commandes, souvent trop long, il arrive bien souvent que les personnes "pas douée en prog", galères à trouver les touches:
DEMANDER."A=".A → DMD "A=",A
DEMANDER.A,B,C → DMD A,B,C
AFF.A → AFF A // je précise pour la fonction suivante
PLACER.2.5."BONJOUR" → AFF(2,5) "BONJOUR"
Voila, j'attend vos réactions surtout sur ce dernier point.
Il y a eu un bug pour la syntaxe de la création de commandes.
Par exemple, si on écrit ceci en haut du code:
.P/E=PAUSE:EFF // notez le points au début de la ligne
ou
.AFFGRAPH=//DispGraph // En CMD "//" veux dire "commandes externe" en quelque sorte
ou
.++ = <=<+1
explications, les "<" signifient "partie avant le '++' ", donc si cette ligne est mise, et qu'on fait "A++", cette dernière sera remplacée par "A=A+1"
De même, la ligne ". EXP = <^>" veux dire "partie avant le 'EXP' " + "^" + "partie après le 'EXP' "
Voila pour ces deux exemples.
Après j'ai prévu des ajouts tel que des améliorations de la commandes pause:
PAUSE → Pause
PAUSE+"BONJOUR" → Pause "BONJOUR"
PAUSE=750 → For([THETA], 1, 750):End // Fonction honteusement copiée sur l'axe, sur 84+, 750 boucle à vide ~= 1seconde.
J'hésite à simplifier le nom des commandes, souvent trop long, il arrive bien souvent que les personnes "pas douée en prog", galères à trouver les touches:
DEMANDER."A=".A → DMD "A=",A
DEMANDER.A,B,C → DMD A,B,C
AFF.A → AFF A // je précise pour la fonction suivante
PLACER.2.5."BONJOUR" → AFF(2,5) "BONJOUR"
Voila, j'attend vos réactions surtout sur ce dernier point.
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
effecxtivement de gros changements, je ne vois pas d'ou viens le bug....
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: CMD (un nouveau langage révolutionnaire ? :] )
Le bug était que dans le premier post ou je présente les changements, j'ai écrit:
Il n'y a que des guillemets ouvert et fermés l'un a la suite, sans rien dedans. Cela vient du fait que j'avais utilisé des chevrons au lieux du point au départ, donc le BBCode à cru que c'était une balise.
D'ailleurs pour ce qui est de la syntaxe de création de commande, je ne pense pas finalement que les éléments seront séparés par un "=".
En effet, si on veux créer un fonction qui prend elle même un "=", ça pose problème: ex: ".+= = <=<+>".
Peut-être que je le remplacerais pas "//", ce qui donnerais:
.+=//<=<+>
je n'ai pas encore trop d'idées pour la syntaxe, mais ça pourrais donner quelque chose comme:
""
Il n'y a que des guillemets ouvert et fermés l'un a la suite, sans rien dedans. Cela vient du fait que j'avais utilisé des chevrons au lieux du point au départ, donc le BBCode à cru que c'était une balise.
D'ailleurs pour ce qui est de la syntaxe de création de commande, je ne pense pas finalement que les éléments seront séparés par un "=".
En effet, si on veux créer un fonction qui prend elle même un "=", ça pose problème: ex: ".+= = <=<+>".
Peut-être que je le remplacerais pas "//", ce qui donnerais:
.+=//<=<+>
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
maxence a écrit:Le bug était que dans le premier post ou je présente les changements, j'ai écrit:je n'ai pas encore trop d'idées pour la syntaxe, mais ça pourrais donner quelque chose comme:
""
Il n'y a que des guillemets ouvert et fermés l'un a la suite, sans rien dedans. Cela vient du fait que j'avais utilisé des chevrons au lieux du point au départ, donc le BBCode à cru que c'était une balise.
D'ailleurs pour ce qui est de la syntaxe de création de commande, je ne pense pas finalement que les éléments seront séparés par un "=".
En effet, si on veux créer un fonction qui prend elle même un "=", ça pose problème: ex: ".+= = <=<+>".
Peut-être que je le remplacerais pas "//", ce qui donnerais:
.+=//<=<+>
oui bonne idee mais comment tu gere les espace ? c'est pour toute les commandes ? sa rempace le ":" et le "," ?
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: CMD (un nouveau langage révolutionnaire ? :] )
Non, les ":" sont automatiquement mis à la fin des lignes, de manières transparente pour l'utilisateur. Et ça ne remplace pas non-plus les ",", il faut les ajoutés.
En fait, les espaces délimitent la partie "fonction" et la partie "arguments de la fonction", tiens, quelques exemples:
AFF "BONJOUR"
Ici il y a un espace entre "AFF" et "BONJOUR". Lors de la traduction du programme par CMD, la partie située avant le premier espace sera "stockée" dans Ans. Ensuite on test Ans à de multiples reprises pour savoir de quelle commande il s'agit.
La, le programme détecte que Ans = "AFF", il ajoute donc à la chaîne qui contient le résultat après traduction la phrase ":Disp" + la partie de la phrase qui se situe après le premier espace, ce qui donne en gros:
Traduction + ":Disp " + |"BONJOUR"|
Si traduction valait "ClrHome", elle vaudra désormais |ClrHome:Disp "BONJOUR"|, toutes les commandes sont mises à la suite, on a pas le choix.
Tu comprend donc mieux comment fonctionne |DMD "A=", A| → |Input "A=", A|, la encore, la partie argument n'a pas bougée d'un poil
En fait, les espaces délimitent la partie "fonction" et la partie "arguments de la fonction", tiens, quelques exemples:
AFF "BONJOUR"
Ici il y a un espace entre "AFF" et "BONJOUR". Lors de la traduction du programme par CMD, la partie située avant le premier espace sera "stockée" dans Ans. Ensuite on test Ans à de multiples reprises pour savoir de quelle commande il s'agit.
La, le programme détecte que Ans = "AFF", il ajoute donc à la chaîne qui contient le résultat après traduction la phrase ":Disp" + la partie de la phrase qui se situe après le premier espace, ce qui donne en gros:
Traduction + ":Disp " + |"BONJOUR"|
Si traduction valait "ClrHome", elle vaudra désormais |ClrHome:Disp "BONJOUR"|, toutes les commandes sont mises à la suite, on a pas le choix.
Tu comprend donc mieux comment fonctionne |DMD "A=", A| → |Input "A=", A|, la encore, la partie argument n'a pas bougée d'un poil
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
Désolé pour le double post.
Voici ou j'en suis dans l'avancement de ce projet:
Menu principal (Nouveau, Ouvrir, Désinstaller, Quitter): 100%
Partie création de programmes (Nouveau): 100%
Partie liste des programmes(Ouvrir): 100%
Partie désinstallation et quitter: 50% (je ne sais pas encore de quelles variables je vais me servir, donc lesquelles il va falloir effacer lors de ces opérations)
Partie Suppression des programmes de la liste: 100%
Partie traduction du programme: La, il y a du nouveau par rapport à l'ancienne version, en effet, maintenant il y a 3 étapes de traduction. (Inclusions, Création de commandes, traduction globale)
Inclusions: 100% (Cette partie donne le code final, en y ajoutant les éléments correspondant, lors de la lecture des lignes "{PROG}" qui ajoutent un programme CMD au programme actuel)
Création de commandes: 0 % (cette partie traduit les fameuses ligne de création de commande: Si la ligne ".++//<=<+1" est en haut du code, alors cette étape remplacera la ligne "A++" par "A=A+1").
Traduction globale: 0 % (La partie correspondant à l'ancienne traduction, qui traduit toutes le commandes)
J'ai déjà été confronté à des problèmes, qui m'ont parfois conduit à modifier CMD lors de l'étape d'inclusions.
Pour l'info, (histoire que vous sachiez un peu comment fonctionne CMD ), j'ai créer une "fonction échanger" (via la méthode du bug des End), qui échange la ligne qui est actuellement "lue" par Ans.
Donc si la phrase est "0:EFF:{AFF}:PAUSE:EFF:()", et que A vaut 7, soit le début de la commande "{AFF}" (7ème caractère), je met le contenu du programme CMD "AFF" dans Ans, et j'appel cette fonction
Avantage, je la réutiliserais pour l'étape de création de commandes, donc quand la ligne sera "A++", je mettrais "A=A+1" dans Ans et appellerais cette fonction
PS: la nouvelle commande pour mettre fin à l'écriture du programme est "()", car "STOP" sera traduit en "Stop".
Voici ou j'en suis dans l'avancement de ce projet:
Menu principal (Nouveau, Ouvrir, Désinstaller, Quitter): 100%
Partie création de programmes (Nouveau): 100%
Partie liste des programmes(Ouvrir): 100%
Partie désinstallation et quitter: 50% (je ne sais pas encore de quelles variables je vais me servir, donc lesquelles il va falloir effacer lors de ces opérations)
Partie Suppression des programmes de la liste: 100%
Partie traduction du programme: La, il y a du nouveau par rapport à l'ancienne version, en effet, maintenant il y a 3 étapes de traduction. (Inclusions, Création de commandes, traduction globale)
Inclusions: 100% (Cette partie donne le code final, en y ajoutant les éléments correspondant, lors de la lecture des lignes "{PROG}" qui ajoutent un programme CMD au programme actuel)
Création de commandes: 0 % (cette partie traduit les fameuses ligne de création de commande: Si la ligne ".++//<=<+1" est en haut du code, alors cette étape remplacera la ligne "A++" par "A=A+1").
Traduction globale: 0 % (La partie correspondant à l'ancienne traduction, qui traduit toutes le commandes)
J'ai déjà été confronté à des problèmes, qui m'ont parfois conduit à modifier CMD lors de l'étape d'inclusions.
Pour l'info, (histoire que vous sachiez un peu comment fonctionne CMD ), j'ai créer une "fonction échanger" (via la méthode du bug des End), qui échange la ligne qui est actuellement "lue" par Ans.
Donc si la phrase est "0:EFF:{AFF}:PAUSE:EFF:()", et que A vaut 7, soit le début de la commande "{AFF}" (7ème caractère), je met le contenu du programme CMD "AFF" dans Ans, et j'appel cette fonction
Avantage, je la réutiliserais pour l'étape de création de commandes, donc quand la ligne sera "A++", je mettrais "A=A+1" dans Ans et appellerais cette fonction
PS: la nouvelle commande pour mettre fin à l'écriture du programme est "()", car "STOP" sera traduit en "Stop".
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
:O bah dis donc tu as du travaille l’exécutable fais combien d'octets ?
edit : ah oui c'est vrai que en basic il y a pas code source/exécutable
edit : ah oui c'est vrai que en basic il y a pas code source/exécutable
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: CMD (un nouveau langage révolutionnaire ? :] )
Pour l'instant il prend 1K octets.
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
Quelques petites nouveautés:
Finalement je ne vais pas réutiliser le même système de stockage que TXT, mais l'améliorer un peu. En fait, les programmes seront classés pas dossiers, ce qui est très pratique quand on regroupe les programmes pas projet. Par exemple, un dossier "DIVISIONS", qui a l'interieur regroupe les programmes "DIV EUCLIDIENNE", qui lui même inclu le programme "ROUTINES".
Comme ça, les programmes qui en incluent d'autres sont regroupés dans les mêmes dossiers, c'est bien plus organisé
De plus, je pense créer une section qui permettra d'aider les débutants à créer facilement des menus et des affichages propres sans se prendre la tête avec des PLACER. ( = OutPut).
Le concept est simple, ce n'est plus des lignes de code qu'on entre, on décide par exemple d'ajouter une phrase: On entre alors la phrase a ajouter. Ensuite celle-ci apparait a l'écran, et on peux la déplacer avec les touches fléchées pour la placer au bon endroit, on valide, etc etc...
Biensur on pourras décider d'ajouter une phrase, mais j'ai aussi penser a quelque chose un menu avec un curseur et d'autres choses compliqués a réaliser.
Au final quand on valide le tout, un nouveau programme CMD qui affiche et gêre (comme les getkey pour les menus) est créer automatiquement !
On peux alors l'inclure dans un programle futur pour faire apparaitre ce que l'on vient de dessiner !!!
Finalement je ne vais pas réutiliser le même système de stockage que TXT, mais l'améliorer un peu. En fait, les programmes seront classés pas dossiers, ce qui est très pratique quand on regroupe les programmes pas projet. Par exemple, un dossier "DIVISIONS", qui a l'interieur regroupe les programmes "DIV EUCLIDIENNE", qui lui même inclu le programme "ROUTINES".
Comme ça, les programmes qui en incluent d'autres sont regroupés dans les mêmes dossiers, c'est bien plus organisé
De plus, je pense créer une section qui permettra d'aider les débutants à créer facilement des menus et des affichages propres sans se prendre la tête avec des PLACER. ( = OutPut).
Le concept est simple, ce n'est plus des lignes de code qu'on entre, on décide par exemple d'ajouter une phrase: On entre alors la phrase a ajouter. Ensuite celle-ci apparait a l'écran, et on peux la déplacer avec les touches fléchées pour la placer au bon endroit, on valide, etc etc...
Biensur on pourras décider d'ajouter une phrase, mais j'ai aussi penser a quelque chose un menu avec un curseur et d'autres choses compliqués a réaliser.
Au final quand on valide le tout, un nouveau programme CMD qui affiche et gêre (comme les getkey pour les menus) est créer automatiquement !
On peux alors l'inclure dans un programle futur pour faire apparaitre ce que l'on vient de dessiner !!!
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
hum bonne idée mais tu enregistre toujours dans des liste ?
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: CMD (un nouveau langage révolutionnaire ? :] )
Je n'ai jamais enregistré dans les listes, c'est dans les chaines de caractère que j'enregistre les programmes
Par contre pour savoir dans quel dossier se trouve les programmes, je vis utiliser un système avec une matrice, surrement la [ J ].
Par contre pour savoir dans quel dossier se trouve les programmes, je vis utiliser un système avec une matrice, surrement la [ J ].
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
cool la matrcie par contre il faudrait pas ue quelqu'un l'utilise archive la
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: CMD (un nouveau langage révolutionnaire ? :] )
Oui t'inquiete C'est pour ça que j'ai choisi la J aussi.
Pour les matrices ce sera biensur un dossier par ligne, et les programmes relatifs aux dossiers dans les colones.
Voici ce que je prévoit de faire comme types d'éléments à ajouter avec l'éditeur mentioné plus haut:
1 : Une phrase ou une variable.
2 : Un menu vertical, on l'on peux faire defiler un curseur
3 : Un menu horizontal, du même genre que celui de TXT. Avantage -> pas de limite d'index dans le menu.
Et c'est tout pour le moment, n'hésitez pas a me proposer d'autre idées utiles
Sachant que le numéro de l'élément sélectionné dans un menu est placé dans Ans, et que l résultat d'un seul menu peut être renvoyé.
Par exemple, on créer un menu vertical avec comme choix oui / non. un créer donc un programle CMD. quand celui-ci est inclu dans un autre programme, on peux faire a la suite "PRECEDENT.A", puis effectuer des actions seulement si A vaut 1, donc si l'utilisateur a choisis oui
Pour les matrices ce sera biensur un dossier par ligne, et les programmes relatifs aux dossiers dans les colones.
Voici ce que je prévoit de faire comme types d'éléments à ajouter avec l'éditeur mentioné plus haut:
1 : Une phrase ou une variable.
2 : Un menu vertical, on l'on peux faire defiler un curseur
3 : Un menu horizontal, du même genre que celui de TXT. Avantage -> pas de limite d'index dans le menu.
Et c'est tout pour le moment, n'hésitez pas a me proposer d'autre idées utiles
Sachant que le numéro de l'élément sélectionné dans un menu est placé dans Ans, et que l résultat d'un seul menu peut être renvoyé.
Par exemple, on créer un menu vertical avec comme choix oui / non. un créer donc un programle CMD. quand celui-ci est inclu dans un autre programme, on peux faire a la suite "PRECEDENT.A", puis effectuer des actions seulement si A vaut 1, donc si l'utilisateur a choisis oui
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
Au pire tu utilises XtraTokn (un nom du genre) pour avoir 256 matrices dont certaines jamais utilisees dans l'histoire de la programation basic
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD (un nouveau langage révolutionnaire ? :] )
Oui mais si je passe mon programme a quelqu'un pourras t'il l'utiliser ? Sinon ce n'est pas la peine. mais de toute façon je ne pense pas que je l'utiliserais quand même, les gens qui ont besoin de CMD pour programmer ignorent l'existence des matrices
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: CMD (un nouveau langage révolutionnaire ? :] )
oui c'est vrai que les gens qui programmeront avec CMD n'auront pas besoin des matrices
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Page 4 sur 4 • 1, 2, 3, 4
Page 4 sur 4
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum