Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 21 Jui 2012, 17:24
Bonjour,
Vous qui venez ici, vous êtes peut-être un membre habitué qui avez remarqué tout au long de l'année des gens demander de traduire un algorithme étudié en cours de maths en "langage calculette", ou alors vous êtes peut-être un visiteur venu demander une telle traduction.
CMD est fait pour vous !!
Ce programme élaboré par maxence sur Espace-TI (topic officiel) est en fait un IDE de TI-Basic...en TI-Basic.
Il est censé traduire le langage "algorithme" qu'on apprend en cours en TI-Basic.
voici un exemple (quoiqu'assez mauvais et un peu trop simple) du programme en action:
Le code fait assez mal aux yeux. Attention aux erreurs de recopiage. Si vous préférez, téléchargez le 83p ici.
Dans le code ci-dessous, "->" correspond a la flèche de la touche [sto->] et "=/=" au symbole "différent de" [2nde][maths][2]
Code
:ClrHome
:Lbl MN
:Menu(" (CMD... ) ","(CREER)",CR,"(QUITTER)",QT
:Lbl QT
:Output(1,1,"
:Stop
:Lbl CR
:" ->Str8
:Repeat Str0="STOP
:Input ":",Str0
:If Str0="ANNUL":Then
:ClrHome
:" ->Str8
:Else
:Str8+Str0+"[carré]->Str8 // le [carré] se trouve en faisant [2nde][0] et plusieurs fois fleche du haut
:End:End
:sub(Str8,2,length(Str8)-1->Str8
:ClrHome
:Output(1,1,"(TRADUCTION... )
:Output(2,6,"( I%)
:Output(2,9,"
:length(Str8->[theta] //la lettre [theta] se trouve avec [alpha][3]
:0->Z
:"0:->Str1
:Repeat Str0="STOP
:inString(Str8,"[carré]->A
:sub(Str8,1,A-1->Str0
:If Str0=/="STOP":sub(Str8,A+1,length(Str8)-A->Str8
:inString(Str0,".->A
:If A and "="=/=sub(Str0,2,1:Then
:sub(Str0,1,A-1
:If Ans="AFF":Str1+"Disp "+sub(Str0,A+1,length(Str0)-A)+":->Str1
:If Ans="DEMANDER" and inString(Str0,".",10:Str1+"Input "+sub(Str0,10,length(Str0)-11)+","+sub(Str0,length(Str0),1)+":->Str1
:If Ans="DEMANDER":Str1+"Prompt "+sub(Str0,10,length(Str0)-9)+":->Str1
:If Ans="SI":Str1+"If "+sub(Str0,4,length(Str0)-3)+":->Str1
:If Ans="TANT QUE":Str1+"While "+sub(Str0,10,length(Str0)-9)+":->Str1
:If Ans="PLACER POINT":Then
:Str1+"Pt-On(->Str1
:sub(Str0,14,length(Str0)-13->Str0
:inString(Str0,".->B
:Str1+sub(Str0,1,B-1)+","+sub(Str0,B+1,length(Str0)-B)+",3:->Str1
:End
:If Ans="DEMANDER FONCTION":Then
:Str1+"Input Str0:->Str1
:"FONCTION.Str0."+sub(Str0,19,length(Str0)-18->Str0
:"FONCTION
:End
:If Ans="FONCTION":Then
:Str1+"String>Equ(->Str1
:sub(Str0,10,length(Str0)-9->Str0
:inString(Str0,".->B
:Str1+sub(Str0,1,B-1)+","+sub("Y1Y2Y3Y4Y5Y6Y7Y8Y9Y0",expr(sub(Str0,B+1,length(Str0)-B)),1)+":->Str1
//Y1 etc, il s'agit bien des variables. [vars][>][1]
la première ligne du programme en "langage CMD" ou langage "algo" est une description du prog.
Ensuite, il on peut entrer une suite d'instructions.
entrez l'instruction qui correspond a votre souhait, puis les "arguments" en les séparant avec des points comme sur l'exemple animé ci-dessus.
Liste de commandes:
AFF.cequ'ilfautafficher
PLACER.numérodeligne.numérodecolonne.cequ'ilfautafficher pour afficher quelque chose a un endroit précis de l'écran.
DEMANDER.variableademander1.variableademander2.variableademander3.etc... pour stocker des valeurs dans des variables
DEMANDER.textedelaquestion.variableademander pour écrire une question personnalisée en demandant la valeur de la variable
PAUSE (pour que le programme attende que l'utilisateur appuie sur [entrer])
variable=valeur pour assigner une valeur à une variable
SI.condition
ALORS
...
SINON
...
FIN
TANT QUE.condition
...
FIN
EFF pour effacer l'écran et les fonctions tracées
POSITIF.variable pour donner la valeur absolue d'une variable
NEGATIF.variable donne l'opposé de cette valeur absolue
// sert à éxécuter une instruction TI-Basic qui n'est pas en langage algo mais déjà traduite. sert aussi a faire un calcul, si elle est suivie de PRECEDENT.
PRECEDENT.variable assigne à la variable la dernière valeur calculée
PLACER POINT.X.Y où X et Y sont les coordonées du point
GRAPH STANDART initialise les axes standart (X et Y allant de -10 à 10) et trace les fonctions
GRAPH AJUSTE ajuste le graphe aux fonctions en cours et les trace
FONCTION."fonction".numérode0à9 pour enregistrer une fonction dans Y1 a Y9 (qui se traceront automatiquement dès l'affichage du graphique)
AFF GRAPH trace les fonctions sans changer les axes
DEMANDER FONCTION.numérode0à9 demande une fonction a l'utilisateur et l'enregistre dans Y0 à Y9
ANNUL effacer tout ce qu'on a écrit et recommencer.
STOP termine l'écriture du programme et le traduit en TI-basic
Une fois que c'est fait, créez un nouveau programme avec [prgm][<][entrer] et entrez-lui un nom en majuscules.
Dans ce programme, sur la première ligne, tapez [2nde][sto->][2nde][( - )][entrer].
Puis positionnez vous sur le guillemet qui commence le code qui s'affiche et appuyez sur [suppr].
Quittez l'éditeur avec [2nde][mode], puis vous pouvez éxécuter le programme créé.
Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 21 Jui 2012, 17:32
Mais c'est super ingénieux comme programme ça !
Je sais pas si ça sera plus rapide de marquer DEMANDER à chaque fois ou de marquer traduire directement le programme mais en tout cas l'idée est super pour ceux qui n'aurait pas envie de se casser la tête à traduire leurs algorithmes.
---------------------- Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
Autorisation : Membre
Nb de messages : 661
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Jeu 21 Jui 2012, 18:21
De toute façon il vaut mieux apprendre le TI BASIC. C'est quand même au programme, donc ça peut tomber au bac! Et puis ce n'est quand même pas très compliqué. On se fait des idées fausses sur la programmation.
Maxence Invité
Posté le : Jeu 21 Jui 2012, 18:23
Bonjour, désoler je ne suis pas inscrit sur ce forum, mais je suis en fait le "maxence" en question ^^
F-BVXT: L'erreur ne vient pas de cette ligne, car elle n’effectue qu'une seule action je t'assure, regarde bien
En fait, comme je l'ai dit à persaeltas sur espace-ti, je pense que le problème vient du fait qu'il s'est tromper en la testant, car il faut ecrire:
DEMANDER.A,B,C // avec des virgules pour séparer les variables et non pas:
DEMANDER.A.B.C // avec des points entre les variables.
Juste 2 commandes qui n'ont pas été évoquées:
PART ENT.variable // La variable devient égale à sa partie entière
exemple (A est egal à 5.3): PART ENT.A // A vaut désormais 5
PART DEC.variable // le même chose mais avec la partie décimale
Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 21 Jui 2012, 18:35
Oui, effectivement je viens de vérifier sur émulateur et ça fonctionne parfaitement.
Le Grec : ce sont les algorithmes et la programmation qui sont au programme mais pas le TI-BASIC (dans mon lycée ils ont tous des Casio alors...). Et ce qu'on peut te demander au bac c'est d'écrire un algorithme ou de faire fonctionner un programme mais je pense pas qu'on puisse te demander d'écrire un programme parce que ça serait vraiment trop dur à corriger.
---------------------- Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
Autorisation : Membre
Nb de messages : 661
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Jeu 21 Jui 2012, 18:52
Ah bon. Au temps pour moi. Je pensais qu'on était obligés de comprendre et de savoir faire des programmes simples sur Casio ou TI. Dommage, car ça aurait été pas mal de tomber là-dessus au bac. Ça nous aurait fait des points pour pas cher.
Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 21 Jui 2012, 19:00
Citer
Je pensais qu'on était obligés de comprendre et de savoir faire des programmes simples sur Casio ou TI.
Ma prof nous a jamais parlé de ça en tout cas, mais je pense pas parce que vu qu'on a le droit d'avoir un peu près n'importe quel calculette, il faudrait qu'ils mettent pleins de langages différents. Par contre, il faut savoir faire un programme mais vu que tu ne va pas rendre ta calculette pour qu'on te la corrige (si on me demande ça je la rend pas ), on ne peut que soit te demander d'écrire un algorithme ou alors de faire un programme et ils vérifieraient qu'ils fonctionne en te demandant des résultats. (Source : ma prof de maths)
---------------------- Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
Autorisation : Membre
Nb de messages : 661
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Jeu 21 Jui 2012, 19:03
Ainsi on te demanderait un algorithme avec des "demander", des "si", etc.? Si c'est le cas, j'aimerais bien que l'on fasse un programme inverse de celui de Maxence! Je trouve ça beaucoup plus compliqué.
Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 21 Jui 2012, 19:10
Non, c'est pas franchement très difficile, surtout pas au niveau auquel on te le demandera. Normalement, comme tu sais programmer, tu ne devrais pas avoir de problème pour les algorithmes. En fait, c'est quasi la même chose tu verras sauf que pour faire un algorithme, tu n'as pas besoin de connaitre les fonctions de ta calculette. En plus, quand les autres essaieront de comprendre le programme, tu n'auras qu'à te concentrer sur l'algorithme
---------------------- Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 21 Jui 2012, 22:23
Mais je rejoins le Grec sur le fait que les "vieux" comme linkakro ou moi, qui n'ont pas appris l'algorithmique en cours de maths, pensent en TI-Basic quand il s'agit de réfléchir a un programme.
Même quand je programme dans d'autres langages, je raisonne en TI-Basic (et c'est pour ça que je suis nul en Axe :p )
Autorisation : Membre
Nb de messages : 178
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 21 Jui 2012, 22:42
Oui c'est sûr qu'il doit y avoir un petit temps d'adaptation mais c'est presque comme apprendre un autre langage (beaucoup plus facile qu'un langage complet quand même), donc il y a pas de quoi s'inquiéter, surtout avec l'objectif de l'Etat d'avoir plus de 80% de réussite au Bac, je pense que la plupart des membres de ce forum sont largement capable de faire les algorithmes demandés.
---------------------- Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.