CMD version 2 !
+2
nikitouzz
maxence
6 participants
Page 2 sur 2
Page 2 sur 2 • 1, 2
Re: CMD version 2 !
Les abréviations en soit ça me gêne pas, c'était juste pour faire gagner du temps à ceux qui galèrent à écrire vite
Le truc pour écrire ça me fait un peu peur quand même, ça veux dire qu'il fait qu'il ajoute des espaces pour aller à la ligne suivante, et qu'il doit ajouter lui même un caractère qui montre qu'il écrit une autre ligne de code, addmetons ":", le problème c'est que pour la traduction si il affiche le caractère ":" avec AFFICHER on ne pouras pas faire la différence avec la nouvelle ligne :/
C'est LE problème majeur pour moi...
Le truc pour écrire ça me fait un peu peur quand même, ça veux dire qu'il fait qu'il ajoute des espaces pour aller à la ligne suivante, et qu'il doit ajouter lui même un caractère qui montre qu'il écrit une autre ligne de code, addmetons ":", le problème c'est que pour la traduction si il affiche le caractère ":" avec AFFICHER on ne pouras pas faire la différence avec la nouvelle ligne :/
C'est LE problème majeur pour moi...
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 version 2 !
Alors faut faire un système de "Input Str0,Str1" ou le Str0 correspond au haut de l'écran par rapport a la ligne en cours d'édition. Ainsi, on peut changer de ligne par [enter], mais on ne pourra pas éditer la ligne précédente.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Ou alors on fait comme ma méthode pour la verion 1, c'est à dire s'en fichez ().
Plus précisement, on met un input dans une boucle, et on met a disposition la commande "ANNUL" qui relance l'écriture du programme depuis le début ?
Du coup si on fait cette méthode, je créerais un éditeur et tu me diras ce que tu en pense, la commande "ALORS" deviendrais " { " et la commande "FIN" deviendrais " } ", tu verras pourquoi. L'avantage c'est que ça évite de se prendre la tête, et vu que les algos crées risquent de pas être très longs, c'est pas si grâve, et en plus on peu rajouter des automatismes, à toi de me dire si ça te convient
Plus précisement, on met un input dans une boucle, et on met a disposition la commande "ANNUL" qui relance l'écriture du programme depuis le début ?
Du coup si on fait cette méthode, je créerais un éditeur et tu me diras ce que tu en pense, la commande "ALORS" deviendrais " { " et la commande "FIN" deviendrais " } ", tu verras pourquoi. L'avantage c'est que ça évite de se prendre la tête, et vu que les algos crées risquent de pas être très longs, c'est pas si grâve, et en plus on peu rajouter des automatismes, à toi de me dire si ça te convient
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 version 2 !
Pourquoi pas:
J'aimerais bien participer au projet si c'est possible
J'avais fait ma version de CMD, il y a quelque mois, si tu veux que je la poste
- Code:
Delvar X Delvar L1
While Str0 != "ARRET
x+1 -> X
Input Str0 // commande de la ligne
If X != 1 and Str0 = "ANNUL
Then
sub(Str9,1,length(Str9-L1(X-1->Str9
// pas vérifié au caractère près ce que ça donne
X-2 -> X
else
Length(Str0 -> L1(X
Str9 + Str0 -> Str9 //Str9 est le programme
End
End
J'aimerais bien participer au projet si c'est possible
J'avais fait ma version de CMD, il y a quelque mois, si tu veux que je la poste
samsam- Argent 4
- Sexe :
Age : 29
Messages : 83
Date d'inscription : 21/06/2012
Etudes : TS spé math (pas enc
Points Forum : 4
Points Concours : 2
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-Collège
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
- - TI-Nspire CAS
- - TI-Nspire CX
Re: CMD version 2 !
Oui tu peu participer bien évidement et poster ta version personelle d'un éditeur de programme de peut que enrichissant pour le programme
Personellement, ma version de l'éditeur était:
Du coup la lisibilité au niveau des boucles est meilleurs, et c'est plus rapide d'écrire ALORS et FIN ( remplacés par { et } ).
Personellement, ma version de l'éditeur était:
- Code:
" ->Str1:"->Str0:1->A
repeat Str0="STOP // ou ARRET peu importe
sub(": ", 1, min(5, max(1, A
input Ans, Str0
if "TANTQUE ou POUR" est présent // la fleme d'écrire cette commande
then
Disp Ans+"{
A+1->A
End
A+(Str0="{")-(Str0="}->A
if Str0 =/= "STOP // ou ARRET
Str1+"caractèreParcticulierDifDe ':' " +Str0->Str1
End
Du coup la lisibilité au niveau des boucles est meilleurs, et c'est plus rapide d'écrire ALORS et FIN ( remplacés par { et } ).
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 version 2 !
Double post -_- ...
Avant de commencer, dernière étape, choisir les variables à utiliser et se répartir les tâches
Je propose la liste lCMD et la chaine Str8 comme variables permanentes, le reste des variables importe peu, et pourquoi pas Str0 et Str1 commes chaines temporaires, a vous de voir
Avant de commencer, dernière étape, choisir les variables à utiliser et se répartir les tâches
Je propose la liste lCMD et la chaine Str8 comme variables permanentes, le reste des variables importe peu, et pourquoi pas Str0 et Str1 commes chaines temporaires, a vous de voir
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 version 2 !
Désolé pour le triple post, mais j'avais pas le choix si je voulis que ça se voit :/
Du coup j'attaque les menus, pour l'écriture des progs on verra sur le tas...
Du coup j'attaque les menus, pour l'écriture des progs on verra sur le tas...
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 version 2 !
Bon, j'ai eu le temps de griffonner un bout de code
J'ai refait l'éditeur (a partir de ton code a toi, avec une correction de bug), j'ai collé une interface graphique au menu de base (c'est celle de mathpowa mais on pourra changer au pire [Vous devez être inscrit et connecté pour voir cette image] ).
Chaque action du menu est contenue dans un grand "If B=..."
Donc entre le "If B=1" et son End juste avant "If B=2" c'est le code pour "nouveau", entre "If B=2" et son End c'est "ouvrir" (bon pour l'instant y'a pas grand chose [Vous devez être inscrit et connecté pour voir cette image] , etc...
J'utilise le token spécial "trois points" "..." pour séparer les instructions dans la chaine finale.
Pour l'instant on peut enregistrer donc des programmes en français avec un nom de 8 lettres max, tout est sauvegardé dans Str8, les longueurs dans lCMD.
Le programme récupère aussi le code brut depuis CMD à l'ouverture d'un fichier mais ne le convertit pas encore en Basic, je fais ça dans la semaine je pense...
(Si t'as envie de t'éclater a faire un menu à partir des noms de fichiers présents, fais :P Moi j'ai la flemme, j'ai fait un Input "NOM:" ça va plus vite :P )
Un ptit screen.. Avec une belle erreur à la fin que je vais m'empresser de corriger
[Vous devez être inscrit et connecté pour voir cette image]
Choses encore à faire (toi ou moi, selon ce que tu as déjà fait):
-Programmer un truc pour renommer un fichier (B=5)
-Programmer l'éditeur "visuel" automatique (Menus, etc...) (B=6)
-Compléter le parser TI-Basic (B=3)
-Compléter le truc pour supprimer un fichier (B=4)
-Inventer un moyen d'éditer le code (B=2)
Voilà, si jamais tu rajoutes des B=... a n'en plus finir et des fonctions dans le menu, n'oublie pas d'incrémenter le nombre de B possibles qui est stocké dans O a la première ligne du programme.
Ah, et aussi, les titres dans le menu graphique doivent faire 16 caractères de long (rajoute des espaces), et la chaine qui les contient doit finir par 48 espaces (attention on les voit mal sur le code)...
J'ai refait l'éditeur (a partir de ton code a toi, avec une correction de bug), j'ai collé une interface graphique au menu de base (c'est celle de mathpowa mais on pourra changer au pire [Vous devez être inscrit et connecté pour voir cette image] ).
- Code:
4->O
SetUpEditor CMD
dim(|LCMD->D
If not(D:" ->Str8
FnOff :AxesOff:ClrDraw
0->Xmin:1->DeltaX
0->Ymin:1->DeltaY
1->B
For(A,56,62
Horizontal A:End
For(A,1,11
For(I,0,1
Text(~1,3,6A+I,sub(" Algob0x ",A,1
End:End
Horizontal 0
Vertical 94
Horizontal 49
Vertical 0
{2,2,2,28,92,28,92,2,2,2
For(A,3,9,2
Line(Ans(A-2),Ans(A-1),Ans(A),Ans(A+1
End
Line(88,2,88,28
Text(35,68,"<<
Text(10,10," TI-Basic IDE
Text(20,10,"Choisissez une tache:
{5,56,6,59,0,62,72,59,73,56
For(A,1,9,2
Pt-Change(Ans(A),Ans(A+1
End
StorePic 7
Lbl theta:FnOff
"Nouveau Ouvrir ComPiler Supprimer
ClrDraw:RecallPic 7
For(A,0,3
Text(35+6A,5,sub(Ans,16(B+A)-15,16
End
Pt-On(90,28-24B/O,2
Repeat K
getKey->K
End
If K=25 and B>1:B-1->B
If K=34 and BB
B->|LM(1
If K=45 or K=22:Goto Z
If K!=105:Goto theta
ClrHome
If B=1:Then
Input "NOM(8max): ",Str1
1+dim(|LCMD->dim(|LCMD
1+D->D
Str8+sub(Str1+" ",1,8->Str8
8->|LCMD(D
" ->Str1
"->Str0
1->A
ClrHome
Repeat Str0="QUIT
sub(": ",1,min(5,max(1,A
Input Ans,Str0
If inString(Str0,"TANT-QUE") or inString(Str0,"ALORS
Then
Disp Ans+"{
A+1->A
End
If A>1 and inString(Str0,"FIN
Then
Disp Ans+"}
A-1->A
End
If not(inString(Str0,"QUIT
Str1+"..."+Str0->Str1
End
Str8+Str1->Str8
8+length(Str1->|LCMD(D
Pause "ENREGISTRE !
End
If B=2:Then
Pause "DISPONIBLE PROCHAINEMENT !
End
If B=3:Then
0->D:1->A
Lbl RT
Input "NOM ?:",Str1
sub(Str1+" ",1,8->Str1
For(A,1,dim(|LCMD),|LCMD(A
sub(Str8,A+1,8->Str0
If Str1=Str0:Then
A->D
sub(Str8,A+8,|LCMD(A)-8->Str1
End
End
If D=0:Disp "NON TROUVE !
If D=0:Goto RT
"CONVERTIR ICI Str1 en TI-Basic
End
If B=4:Then
Pause "DISPONIBLE PROCHAINEMENT !
End
Goto theta
Lbl Z
ClrDraw:ZStandard
DelVar Pic7
AxesOn
ClrHome
Output(4,1,"
Chaque action du menu est contenue dans un grand "If B=..."
Donc entre le "If B=1" et son End juste avant "If B=2" c'est le code pour "nouveau", entre "If B=2" et son End c'est "ouvrir" (bon pour l'instant y'a pas grand chose [Vous devez être inscrit et connecté pour voir cette image] , etc...
J'utilise le token spécial "trois points" "..." pour séparer les instructions dans la chaine finale.
Pour l'instant on peut enregistrer donc des programmes en français avec un nom de 8 lettres max, tout est sauvegardé dans Str8, les longueurs dans lCMD.
Le programme récupère aussi le code brut depuis CMD à l'ouverture d'un fichier mais ne le convertit pas encore en Basic, je fais ça dans la semaine je pense...
(Si t'as envie de t'éclater a faire un menu à partir des noms de fichiers présents, fais :P Moi j'ai la flemme, j'ai fait un Input "NOM:" ça va plus vite :P )
Un ptit screen.. Avec une belle erreur à la fin que je vais m'empresser de corriger
[Vous devez être inscrit et connecté pour voir cette image]
Choses encore à faire (toi ou moi, selon ce que tu as déjà fait):
-Programmer un truc pour renommer un fichier (B=5)
-Programmer l'éditeur "visuel" automatique (Menus, etc...) (B=6)
-Compléter le parser TI-Basic (B=3)
-Compléter le truc pour supprimer un fichier (B=4)
-Inventer un moyen d'éditer le code (B=2)
Voilà, si jamais tu rajoutes des B=... a n'en plus finir et des fonctions dans le menu, n'oublie pas d'incrémenter le nombre de B possibles qui est stocké dans O a la première ligne du programme.
Ah, et aussi, les titres dans le menu graphique doivent faire 16 caractères de long (rajoute des espaces), et la chaine qui les contient doit finir par 48 espaces (attention on les voit mal sur le code)...
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Je peux pas encore me servir de ton code j'ai besoin d'un PC pour le récupérer, mais d'ici vendredi ça devrait être bon.
Sinon je sais pas si t'as vu mon MP, c'est plus trop rapport vu que j'avais pas encore vu ce post quand je te l'ai envoyé... faudras que tu me dise comment ça se passe du coup... Je sais que les porpositions que je t'ai données sont en désaccord avec ce que tu me propose la et que d'une certaine manière c'est un peu égoïste, mais ça pourais aussi être plus simple et rapide à faire et beacoup plus léger :/
Enfin bref, j'essaye de compléter ton code quand je peux, avec TXT je sais presque par coeur comment faire pour renommer, supprimer des fichiers de texte donc ça ira vite...
Sinon je sais pas si t'as vu mon MP, c'est plus trop rapport vu que j'avais pas encore vu ce post quand je te l'ai envoyé... faudras que tu me dise comment ça se passe du coup... Je sais que les porpositions que je t'ai données sont en désaccord avec ce que tu me propose la et que d'une certaine manière c'est un peu égoïste, mais ça pourais aussi être plus simple et rapide à faire et beacoup plus léger :/
Enfin bref, j'essaye de compléter ton code quand je peux, avec TXT je sais presque par coeur comment faire pour renommer, supprimer des fichiers de texte donc ça ira vite...
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 version 2 !
J'avais bien vu ton MP (d'ailleurs sinon j'aurais pas appelé le programme Algobox EDIT: ah, zut, tu avais dit LOGICBOX... autant pour moi )
L'un n'empêche pas l'autre, en fait, là j'ai fait un truc ou TXT est presque intégré, mais si tu veux faire un plugin pour le TXT originel c'est simple, suffit de garder que la partie "compiler" en rajoutant une détection de "LABEL DEBUT" dans le texte...
ça me dérange pas du tout, comme ça, ma version Celtic du truc paraitra moins redondante
Ton MP m'a également fait retenir l'idée de pouvoir mettre des commentaires et les skipper à la compilation.
PS: De manière générale, tu as tendance à abréger le français... C'est dommage je trouve puisque c'était l'intérêt principal de CMD...
Par exemple là tu as mis "LBL DEBUT" au lieu de "LABEL DEBUT"...
L'un n'empêche pas l'autre, en fait, là j'ai fait un truc ou TXT est presque intégré, mais si tu veux faire un plugin pour le TXT originel c'est simple, suffit de garder que la partie "compiler" en rajoutant une détection de "LABEL DEBUT" dans le texte...
ça me dérange pas du tout, comme ça, ma version Celtic du truc paraitra moins redondante
Ton MP m'a également fait retenir l'idée de pouvoir mettre des commentaires et les skipper à la compilation.
PS: De manière générale, tu as tendance à abréger le français... C'est dommage je trouve puisque c'était l'intérêt principal de CMD...
Par exemple là tu as mis "LBL DEBUT" au lieu de "LABEL DEBUT"...
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Pour le nom peut importe ça ne change rien.
Quand je mettais "LB DEBUT" et "LB FIN" LB représentais LogicBox, en fait c'etait juste pout que le programme puisse détecter le début du programme, et surtout pour qu'il y ai une différance entre la fin du programme et le "FIN" de la fin d'une condition, mais finalement j'ai trouvé plus simple:
Je te proposr une syntaxe, c'est tout simplement celle utilisée en cours (je met les deux points du début de ligne à chaque fois):
:(DEBUT) // Marque le début du programme
:(FIN) // Marque la fin du programme
:AFFICHER variableOuTexteAAfficher // = Disp
:EFFACER // ClrHome
:LIRE variablesSepareesParUneVirgule // Prompt, plus court et simple que DEMANDER
:SI condition // If
:FAIRE // Then, plus aproprié que ALORS qui est plus pour les théorème que pour la programmation
:SINON // Else
:FIN // End
:TANT QUE condition // While, il y auras peut-être des problèmes si les utilisateurs croient qu'il faut mettre FAIRE après une boucle :/
:[nomDeTexte] // Permet d'inclure un autre programme déjà présent, pas sur de l'utilité...
:PAUSE // Pause
:variable=valeur // Sto->
:/commentaire // pas d'équivalent à proprement dit !
Pour le moment ça devrait sufir, j'ai pas vraiment verrifier, à toi de voir.
Si ça ne te dérange pas de faire un "plugin" de TXT je préfère autant, comme ça toutes les fonctions d'écriture, renommage etc etc sont déjà prêtes, en plus ça prend moins de place donc ça nous laisse le champ libre à des commandes nombreuses et bien faite, et ça ne gêne pas ton projet tout en favorisant le miens
Quand je mettais "LB DEBUT" et "LB FIN" LB représentais LogicBox, en fait c'etait juste pout que le programme puisse détecter le début du programme, et surtout pour qu'il y ai une différance entre la fin du programme et le "FIN" de la fin d'une condition, mais finalement j'ai trouvé plus simple:
Je te proposr une syntaxe, c'est tout simplement celle utilisée en cours (je met les deux points du début de ligne à chaque fois):
:(DEBUT) // Marque le début du programme
:(FIN) // Marque la fin du programme
:AFFICHER variableOuTexteAAfficher // = Disp
:EFFACER // ClrHome
:LIRE variablesSepareesParUneVirgule // Prompt, plus court et simple que DEMANDER
:SI condition // If
:FAIRE // Then, plus aproprié que ALORS qui est plus pour les théorème que pour la programmation
:SINON // Else
:FIN // End
:TANT QUE condition // While, il y auras peut-être des problèmes si les utilisateurs croient qu'il faut mettre FAIRE après une boucle :/
:[nomDeTexte] // Permet d'inclure un autre programme déjà présent, pas sur de l'utilité...
:PAUSE // Pause
:variable=valeur // Sto->
:/commentaire // pas d'équivalent à proprement dit !
Pour le moment ça devrait sufir, j'ai pas vraiment verrifier, à toi de voir.
Si ça ne te dérange pas de faire un "plugin" de TXT je préfère autant, comme ça toutes les fonctions d'écriture, renommage etc etc sont déjà prêtes, en plus ça prend moins de place donc ça nous laisse le champ libre à des commandes nombreuses et bien faite, et ça ne gêne pas ton projet tout en favorisant le miens
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 version 2 !
Parfait pour la syntaxe. Je me penche dessus ce soir.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Moi de même. Je fait la partie menu plus découpage du texte à traiter, vu que je connais le fonctionnement de TXT. Je stocke la partie "programme" du texte à partir des premiers ":" (pas ceux de "(DEBUT)") jusqu'au caractère juste avant les ":" devant "(FIN)", j'espère que tu m'as compris, le tout dans Str1.
En gros je te donne les entrées, tu n'auras plus qu'à les utiliser pour créer l'algotithme traduit en sortie
En gros je te donne les entrées, tu n'auras plus qu'à les utiliser pour créer l'algotithme traduit en sortie
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 version 2 !
Bon, alors j'ai des problèmes incompréhensibles avec la traduction
Je commence peut être a me faire vieux...
Pour des raisons inconnues, mes conditions inString ne sont pas détectées.
Par exemple, j'ai une Str1="LIRE A,B".
Je pose comme condition:
Je ne comprends pas pourquoi ça ne passe pas, d'autant plus que 1=inString(Str1,"LIRE " est bien égal à 1 (testé en dehors).
La chaine 1 ne veut pas se modifier. J'ai du rater un détail quelque part, ça va prendre un peu plus de temps.
Je commence peut être a me faire vieux...
Pour des raisons inconnues, mes conditions inString ne sont pas détectées.
Par exemple, j'ai une Str1="LIRE A,B".
Je pose comme condition:
- Code:
If 1=inString(Str1,"LIRE "
"Prompt "+sub(Str1,5,M-5->Str1
Je ne comprends pas pourquoi ça ne passe pas, d'autant plus que 1=inString(Str1,"LIRE " est bien égal à 1 (testé en dehors).
La chaine 1 ne veut pas se modifier. J'ai du rater un détail quelque part, ça va prendre un peu plus de temps.
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Je pense avoir trouvé:
Je suppose que la variable M contient la longueur de Str1 ?
Déjà il faut couper à partir du 6ème caractère et non le 5ème, sinon tu prend l'espace avec et ça ne marchera pas. Ensuite pour ton problème, j'ai rencontré le même avec TXT à ses début :
Pour la simple et bonne raison qu'il faut que tu soustraie le nombre de caractères se trouvant AVANT le caractère auquel commence la nouvelle chaîne
Si tu obtient une erreur alors la c'est vraiment bizarre car normalement avec ton ancien code tu aurais du obtenir "Prompt A,"
De mon côté j'ai créer un menu qui ressemble à celui de TXT, pour rester dans l'esprit même si il n'est pas très beau. Il indique si le texte actuellement sélectionné est compatible ou non, et on peut le traduire seulement si c'est le cas.
Il stocke ensuite comme promis le chaîne dans Str1
EDIT:
En relisant ton post je me suis aperçu que je ne répondais pas à ta question, du coup je ne sais pas :/
J'aurais au moins évité une erreur future
Je suppose que la variable M contient la longueur de Str1 ?
Déjà il faut couper à partir du 6ème caractère et non le 5ème, sinon tu prend l'espace avec et ça ne marchera pas. Ensuite pour ton problème, j'ai rencontré le même avec TXT à ses début :
- Code:
il faut que tu mette:
"Prompt"+sub(Str1, 6, M-5 ->Str1
et non pas:
"Prompt"+sub(Str1, 6, M-6 -> Str1
Pour la simple et bonne raison qu'il faut que tu soustraie le nombre de caractères se trouvant AVANT le caractère auquel commence la nouvelle chaîne
Si tu obtient une erreur alors la c'est vraiment bizarre car normalement avec ton ancien code tu aurais du obtenir "Prompt A,"
De mon côté j'ai créer un menu qui ressemble à celui de TXT, pour rester dans l'esprit même si il n'est pas très beau. Il indique si le texte actuellement sélectionné est compatible ou non, et on peut le traduire seulement si c'est le cas.
Il stocke ensuite comme promis le chaîne dans Str1
EDIT:
En relisant ton post je me suis aperçu que je ne répondais pas à ta question, du coup je ne sais pas :/
J'aurais au moins évité une erreur future
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 version 2 !
Exact, merci
Décidément, je me fais vieux
j'ai pas encore eu le temps d'y réfléchir, je suis en vacances ce WE je regarderai.
J'attends donc également ton code pour adapter mon traducteur au format de chaine de TXT qui est un peu différent du format de mon Algobox (tu utilises quoi, comme token de séparation de lignes ?)
Décidément, je me fais vieux
j'ai pas encore eu le temps d'y réfléchir, je suis en vacances ce WE je regarderai.
J'attends donc également ton code pour adapter mon traducteur au format de chaine de TXT qui est un peu différent du format de mon Algobox (tu utilises quoi, comme token de séparation de lignes ?)
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Pour l'instant mon code pése 340 octets, j'essaierais de le poster samedi vu que je serais en vacance
Je ne comprend pas pourquoi tu veu le format de texte ? La partie que j'ai créer découpe une chaîne de caractère à l'interieur d'une texte de TXT qui ne contient que le code à traduire, une simple phrase en quelque sorte:
par exemple Str1 peut être:
|:LIRE A,B :SI A>B:AFFICHER "A" :SI A
Je ne comprend pas pourquoi tu veu le format de texte ? La partie que j'ai créer découpe une chaîne de caractère à l'interieur d'une texte de TXT qui ne contient que le code à traduire, une simple phrase en quelque sorte:
par exemple Str1 peut être:
|:LIRE A,B :SI A>B:AFFICHER "A" :SI A
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 version 2 !
La réponse a ma question était donc: "le symbole deux points ':' "par exemple Str1 peut être:
|:LIRE A,B :SI A>B:AFFICHER "A" :SI A
Merci !
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
Désolé du retard, voilà ma version de CMD
Je l'ai faite il y a longtemps donc la structure est plutôt mauvaise, il compile directement et si on veut visionner, on doit décompiler
Pour l'éditeur visuel, j'ai pensé à travailler dessus en axe même si avec le Input ça devient un peu galère
Je l'ai faite il y a longtemps donc la structure est plutôt mauvaise, il compile directement et si on veut visionner, on doit décompiler
- Code:
:While 1
: Menu("ALGO>BASIC","CREER PRGM",1,"AIDE",Θ,"REPRENDRE",H,"QUITT",K
: Lbl H
: Menu("PROGRAM","Str4",C4,"Str5",C5,"Str6",C6,"Str8",C8,"ARRET",A
: Lbl C4
: Str4+":→Str0
: Goto A
: Lbl C5
: Str5+":→Str0
: Goto A
: Lbl C6
: Str6+":→Str0
: Goto A
: Lbl C8
: Str8+":→Str0
: Goto A
: Lbl 1
: " →Str0
: Lbl A
: If not(length(Str0
: " →Str0
: ":→Str7
: ClrHome
: Repeat Str1="STOP
: " →Str2
: Asm(prgmALPHLOCK
: Input Str7,Str1
: If Str1="O.
: Input "OPERATION:",Str2
: If Str1="EFFACE
: "ClrHome→Str2
: If Str1="ASK
: Then
: Input "VARS:",Str1
: "Prompt "+Str1→Str2
: End
: If Str1="STO
: Then
: Input "VALEUR:",Str1
: Input "VARIABLE:",Str2
: Str1+":For("+Str2+",Ans,Ans-1:End→Str2
: End
: If Str1="ARRET
: "Stop→Str2
: If Str1="DEMANDER
: Then
: Input "VARIABLE:",Str1
: "Input "+Str1→Str2
: End
: If Str1="AFFICHER
: Then
: Input "TXT:",Str1
: "Disp "+Str1→Str2
: End
: If Str1="TANT QUE
: Then
: Input "CONDITION:",Str1
: "While "+Str1→Str2
: "FAIT:→Str7
: End
: If Str1="SI
: Then
: Input "CONDITION:",Str1
: "If "+Str1+":Then→Str2
: "ALORS:→Str7
: End
: If Str1="POUR
: Then
: Input "VARIABLE:",Str1
: Input "VALEUR MIN:",Str2
: "For("+Str1+","+Str2+",
: Input "VALEUR MAX:",Str1
: Ans+Str1→Str2
: "FAIT:→Str7
: End
: If Str1="PAUSE
: "Pause →Str2
: If Str1="SINON
: Then
: "Else→Str2
: Str1+":→Str7
: End
: If Str1="SEE
: Goto Z
: If Str1="FIN
: Then
: "End→Str2
: ":→Str7
: End
: If Str1="BACK
: Then
: sub(Str0,1,length(Str0)-1-length(Str3→Str0
: DelVar Str3
: End
: If Str1≠"BACK" and Str1≠"STOP" and Str2="
: Disp "COMMANDE NON","RECONNUE
: If Str2≠"
: Str0+Str2+":→Str0
: Str2→Str3
: End
: If length(Str0)>3 and Str0≠"
: Then
: sub(Str0,2,length(Str0)-2→Str0
: Disp Ans
: Menu("SAUVER?","Str4",S4,"Str5",S5,"Str6",S6,"Str8",S8,"NON",SO
: Lbl S4
: Str0→Str4
: Stop
: Lbl S5
: Str0→Str5
: Stop
: Lbl S6
: Str0→Str6
: Stop
: Lbl S8
: Str0→Str8
: End
: Lbl SO
: Stop
: Lbl Θ
: "?BACK (EFFACE LA DERNIERE INSTRUCTION)?SEE (AFFICHE LE CODE)?{ANNUL}(TOUCHE) (ARRETE SEE)?ASK + [VAR1] + [,VAR2] + [,VAR3] ECT...?EFFACE (EFFACE L'ECRAN)?DEMANDER + (''TEXTE'',) + [VARIABLE]?SI + [CONDITION] + (ALORS) + {INSTRUCIONS} + SINON + {INSTRUCTIONS} + FIN?POUR + [VARIABLE] + [VALEUR MIN] + [VALEUR MAX] + {INSTRUCTIONS} + FIN?PAUSE?STO + [VALEUR] + [VARIABLE]?O. + [OPERATION]?AFFICHER + [''TEXTE'' or VARIABLE]?TANT QUE + [CONDITION] + {INSTRUCTIONS} + END?ARRET (ARRETE LE PROGRAMME)?STOP (TERMINE L'EDITION)?→Str3
: ClrHome
: 1→X
: Repeat X=length(Str3
: inString(Str3,"?",X→X
: inString(Str3,"?",X+1→B
: Pause sub(Str3,X+1,B-X-1
: B→X
: End
: Goto 89
: Lbl Z
: DelVar AStr0→Str9
: " →Str9
: ClrHome
: Repeat A=length(Str0
: A+1→A
: Output(1,1,iPart(Aᴱ2/length(Str0
: " →Str2
: sub(Str0,A,1
: If Ans="If
: "SI→Str2
: If Ans="Then
: "ALORS→Str2
: If Ans="Else
: "SINON→Str2
: If Ans="End
: "FIN→Str2
: If Ans="Pause
: "PAUSE→Str2
: If A+9≤length(Str0
: Then
: If sub(Str0,A,10)="For("+sub(Str0,A+1,1)+",Ans,Ans-1:End
: Then
: A+10→A
: sub(Str9,1,length(Str9)-1→Str9
: "="+sub(Str0,A-9,1→Str2
: End
: End
: If Ans="Prompt
: "ASK→Str2
: If Ans="For(
: "POUR→Str2
: If Ans="While
: "TANT QUE→Str2
: If Ans="Disp
: "AFFICHER→Str2
: If Ans="Input
: "DEMANDER→Str2
: If Ans="ClrHome
: "EFFACE→Str2
: If Str2≠"
: Then
: Str9+Str2+":→Str9
: Else
: Str9+Ans→Str9
: End
:
: Output(2,1,sub(Str9,A,15(A+15≤length(Str9))+(length(Str9)-A)(length(Str9)<A+15
: Output(3,1,"
:
: getKey→G
: If G=45
: length(Str0→A
: End
:
: If length(Str9)>3
: Pause sub(Str9,2,length(Str9)-2
: Disp "
:End
:Lbl K
- Code:
FDCB12E6
FDCB12F6
C9
Pour l'éditeur visuel, j'ai pensé à travailler dessus en axe même si avec le Input ça devient un peu galère
samsam- Argent 4
- Sexe :
Age : 29
Messages : 83
Date d'inscription : 21/06/2012
Etudes : TS spé math (pas enc
Points Forum : 4
Points Concours : 2
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-Collège
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
- - TI-Nspire CAS
- - TI-Nspire CX
Re: CMD version 2 !
Moui c'est pas mal, mais tu gaspilles des variables :P
On pourrait faire avec moins.
Apprends le Grammer
On pourrait faire avec moins.
Pour l'éditeur visuel, j'ai pensé à travailler dessus en axe même si avec le Input ça devient un peu galère
Apprends le Grammer
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: CMD version 2 !
As tu réussis à régler ton programme persateas ?
A partir de maintenant, je pense qu'on se met tous sur le système de traduction du texte en programme.
Ça serait pas mal de créer un système qui remplace des mot par un autre (comme une traduction mot par mot finalement).
Par exemple, il remplace tous les ":LIRE" par des ":Prompt". La différence, c'est qu'au lieu de créer une nouvelle chaîne qui est elle traduite, on garde l'originale mais en changeant juste les mots. J'ai remarqué que ça marchais presque pour toutes les commandes du Basic.
Et on pourrais même créer un système qui permet aux utilisateurs de créer leur propre commandes, je m'explique:
Admettons que notre programme comporte une liste de mots avec leur équivalent, comme ":LIRE=:Prompt", on pourrais mettre une commande "CREER", qui permetrais à l'utilisateur de rajouter une mot et son équivalent dans la liste avant la traduction, où la syntaxe serait quelque chose comme:
La par exemple, si on met ces lignes, on indique au traducteur que désormais, quand on écriras "GRAPHIQUE", il faudra le remplacer par "DispGraph", on a en quelque sorte créer la commende DispGraph en CMD.
Qu'est-ce que vous en pensez ?
A partir de maintenant, je pense qu'on se met tous sur le système de traduction du texte en programme.
Ça serait pas mal de créer un système qui remplace des mot par un autre (comme une traduction mot par mot finalement).
Par exemple, il remplace tous les ":LIRE" par des ":Prompt". La différence, c'est qu'au lieu de créer une nouvelle chaîne qui est elle traduite, on garde l'originale mais en changeant juste les mots. J'ai remarqué que ça marchais presque pour toutes les commandes du Basic.
Et on pourrais même créer un système qui permet aux utilisateurs de créer leur propre commandes, je m'explique:
Admettons que notre programme comporte une liste de mots avec leur équivalent, comme ":LIRE=:Prompt", on pourrais mettre une commande "CREER", qui permetrais à l'utilisateur de rajouter une mot et son équivalent dans la liste avant la traduction, où la syntaxe serait quelque chose comme:
- Code:
:CREER GRAPHIQUE=DispGraph // Le vrai token
:CREER TABLE=DispTable
:CREER POINT(=PtOn(
La par exemple, si on met ces lignes, on indique au traducteur que désormais, quand on écriras "GRAPHIQUE", il faudra le remplacer par "DispGraph", on a en quelque sorte créer la commende DispGraph en CMD.
Qu'est-ce que vous en pensez ?
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+
Page 2 sur 2 • 1, 2
Sujets similaires
» [82] HERSSAHE 3.2 , rpg graphique
» La version 0.8 approche !
» 2048 final version !
» [83] programme calendrier Version 1
» [83]Easy f'(x), version finale de DERIVE
» La version 0.8 approche !
» 2048 final version !
» [83] programme calendrier Version 1
» [83]Easy f'(x), version finale de DERIVE
Page 2 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum