π
<-

Programme GetKey

Re: Programme GetKey

Unread postby critor » 20 Dec 2010, 22:12

tama wrote:Au fait, je me suis toujours demandé pourquoi les livres "pour utilisaient les "Lbl... Goto" qui sont lourds et que n'importe quel programmeur un minimum initié évite au maximum, alors que les structures comme "for", "while" et autres seraient beaucoup plus logiques et plus utiles à apprendre .... enfin bon, c'est un autre sujet.



Si ça peut te consoler, Lbl et Goto ne font pas partie des instructions enseignées au lycée.
Ce qui est normal vu que ce ne sont pas des instructions, au sens algorithmique du terme.

D'ailleurs, les instructions d'entrée/sortie non plus. Elles n'ont pas à apparaître dans un algorithme.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 54.5%
 
Posts: 42500
Images: 17348
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Programme GetKey

Unread postby Loulou 54 » 21 Dec 2010, 00:06

tama wrote:
De plus, la vitesse d'un programme TI-Basic est directement lié à la taille qu'il prend sur la calculatrice, du fait qu'il est interprété.


C'est vrai en général, mais mes expériences ont prouvé que ce n'est pas toujours le cas : on peut très bien faire un calcul compliqué pour économiser de la place qui fera que le programme sera plus petit mais plus lent, même si c'est de l'ordre de quelques millisecondes. Pis des fois faire des "détours" en passant par exemple des étapes intermédiaires peut être très profitable, surtout si on doit enchainer plusieurs calculs à la suite.


Oui moi j'ai tendance à toujours vouloir "fonctionnaliser" au lieu de faire des conditions, mais je me rend compte aussi que parfois faire un calcul tordu et compliqué prend plus de temps qu'une série de 5 tests logiques.. :#roll#:

Il est vrai que pour faire des jeux en basic, il faut toujours penser à la légèreté si on veux avoir quelque chose d'un minimum fluide. :%): Et je viens de remarquer, en me mettant au C avec TIGCC, que c'est une difficulté que l'on a mille fois moins en C, paradoxalement ! :=):

[PUB]En effet, je sortirai bientôt mon premier jeu en C sur ..... TI BANK !! :#tritop#: [/PUB]
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.7%
 
Posts: 1988
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: Programme GetKey

Unread postby critor » 21 Dec 2010, 00:17

Loulou 54 wrote:
tama wrote:
[PUB]En effet, je sortirai bientôt mon premier jeu en C sur ..... TI BANK !! :#tritop#: [/PUB]

:8): :#top#:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 54.5%
 
Posts: 42500
Images: 17348
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Programme GetKey

Unread postby kindermoumoute » 21 Dec 2010, 01:46

[PUB]En effet, je sortirai bientôt mon premier jeu en C sur ..... TI BANK !! :#tritop#: [/PUB]

:#wahoo#:
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: Programme GetKey

Unread postby Kiligolo » 21 Dec 2010, 10:01

Loulou 54 wrote:[PUB]En effet, je sortirai bientôt mon premier jeu en C sur ..... TI BANK !! :#tritop#: [/PUB]

J'ai fait un calcul mental en C mais il est sur Omnimaga. :D:

Sinon pour revenir sur le sujet, j'ai fait un petit programme qui partait de ton idée (appuyer sur enter comme un fou! :#gni#: ). J'ai un peu baclé les Lbl et Goto. Donc ce programme enregistre les scores dans une liste en on pourra les voir avec le graph
Code: Select all
Output(1,1,"L6 MANQUANTE
L6
Lbl 0
ClrHome
dim(L6-X
Menu("ENTER","JEU",1,"SCORES",2,"EFFACER DONNEE",3,"QUITTER",A
Lbl 1
Input "TEMPS:",T
ClrHome
DelVar SDelVar K
Disp "*****ENTER******
Output(3,1,"SCORE:
Output(5,1,"TEMPS:
While T
T-1-T
getKey-K
If K=45:Stop
If T100:Output(5,9,"
If T10:Output(5,8,"
T+(K=105-T
S+(K=105-S
Output(5,7,T
Output(3,7,S
End
ClrHome
X+1-dim(L6
S-L6(X+1
Disp "SCORE:
Pause S
Goto A
Lbl 2
If not(L6(1
Then
Disp "NO DATA
Goto 0
End
{0-L5
X-dim(L5
For(A,1,X
A-L5(A
End
0-Xmin:X-Xmax:int(.1X-Xscl
0-Ymin:max(L6)+1-Ymax:int(.1Ymax-Yscl
AxesOn
Plot1(xyLine,L5,L6
DispGraph
Pause
Goto 0
Lbl 3
Menu("VRAIMENT?","OUI",30,"NON",31
Lbl 30
{0-L6
Lbl 31
Goto 0
Lbl A
Output(1,1,"

Explications:
  • Les 2 premières lignes: L6 est une Liste (d'où le L :#tritop#: ) qui peut contenir une suite de nombres.
    1ere:On affiche sur l'écran "L6 MANQUANTE"
    2eme:On regarde si l'utilisateur a bien L6
    -S'il l'a, on passe la 2e ligne sans problème et le message sera effacé plus tard
    -S'il ne l'a pas il verra ERR:UNDEFINED puis quand il ferra QUIT, le message L6 MANQUANTE donc il saura qu'il faut une L6.
  • dim(L6 est la longueur de L6 (si elle contient 3 nombres, dim(L6 vaudra 3)
    Donc là, on enregistre la valeur dim(L6 dans X pour éviter de mettre à chaque fois dim(L6, dim(L6,... X c'est plus court! :D:
  • La fonction Menu( est censée faire des ... menus :D: . Elle s'utilise comme ça: (16 caractère au max pour le titre, 14 pour les options, 7 options au max et minimum une option)
    Menu("Titre du menu","Option 1",Goto de l'option 1,"Option 2",Goto de l'option 2,...
    Pour les Lbl et les Goto c'est deux cractères max (chiffres et lettres comprises), c'est-à-dire tu peux faire ça:
    Lbl 0 ou Lbl J ou Lbl 99 ou Lbl 5B ou Lbl TI
  • Input "MON TEXTE",MAVARIABLE demande une variable en affichant du texte. Par exemple avec la commande
    Input "TEMPS:",T la calculatrice va afficher "TEMPS:" et attendre que l'utilisateur entre le temps qu'il aura pour appuyer sur enter (ce n'est pas des millisecondes ni des secondes c'est un chiffre qui descend avec la vitesse de la boucle).
  • While T est l'équivalent de While T=!0 dans ce cas ça serais While T0 mais puisque T est obligé de passer par 0 avec le code qui suit, pas besoin de se gêner.
    En gros c'est la même chose que Repeat T=0 ou Repeat not(T sauf que c'est plus cour. :#top#:
  • Stop arrête le programme et affiche "Done"
  • Les lignes
    If TIf Tpermettent d'éviter ce phénomène: (ci-dessous, le destin de la variable T dans le programme)
    TEMPS: 101
    ...
    TEMPS: 100
    ...
    TEMPS: 990
    Donc ces lignes affichent un espace pour effacer le 0 parasite. Puis même chose pour 10 , 90
  • X+1-dim(L6 on augmente la dimension de L6 de 1. Il y aura donc un 0 à la dernière place remplacé par la variable S (le score).
  • If not(L6(1
    Then
    Disp "NO DATA
    Goto 0
    End
    Si il n'y a pas de données = on affiche NO DATA (aucune donnée).
    L6(1 est le nombre qui se trouve à la première "case" de la liste.
    L6(5 est le nombre qui se trouve à la ... cinquième "case" de la liste.
    2-G
    L6(G est le nombre qui se trouve à la ... deuxième "case" de la liste. :):
  • {0-L5 permet de créer une liste L5.
    La ligne qui suit lui donne la même dimension que L6
  • For(A,1,X
    A-L5(A
    End
    For(VARIABLE,NOMBRE-DE-DEPART,NOMBRE-D'ARRIVEE(,PAS) est une boucle qui incrémente une variable d'un nombre de départ jusqu'a un nombre d'arrivée (facultatif: la boucle peut l'incrémenter de 2 en 2 dans ce cas, PAS vaudra 2 ou on peut le décrémenter de 1 dans ce cas PAS vaudra -1. Par défaut (si tu n'indique pas PAS) il vaut 1)
    Réfléchi bien à ce que cette boucle peut bien servir. Si tu as terminé, la réponse est en bas du message. :;):
  • Les variables qui suivent règle les dimensions de l'écran graphique.
    Les abscisses vont de Xmin à Xmax avec Xscl comme échelle et les ordonnées vont de Ymin jusqu'à Ymax avec Yscl comme échelle.
  • AxesOn permet d'afficher les axes
  • Plot1(TYPE-DE-COURBE,LISTE-DES-ABSCISSES,LISTE-DES-ORDONNEES) permet de créer une corbe sur l'écran graphique. Dans ce cas, TYPE-DE-COURBE est xyLine donc ça sera une ligne avec L5 comme liste d'abscisse et L6 comme liste d'ordonnées.
    Tu trouve toutes ces fonctions ici: :f21: :f11:
  • DispGraph affiche l'écran graphique
  • À la toute fin, Output(1,1," permet de ne pas afficher "Done" à la fin du programme.

Voilà. Si tu as des question, tu n'hésite pas à nous le dire

 
Show/Hide spoilerAfficher/Masquer le spoiler
C'est pour remplir L5 avec 1,2,3,4,5,... :#top#:



EDIT: :#fou#: Je vais célébrer ça: mon plus grand message de toute l'année sur ce forum!
User avatar
Kiligolo
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 84.3%
 
Posts: 1465
Joined: 17 May 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1reS

Re: Programme GetKey

Unread postby kindermoumoute » 21 Dec 2010, 10:16

Et utile en plus. :)
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: Programme GetKey

Unread postby Reuberts » 21 Dec 2010, 19:32

Enfin bref, ce genre de topic fait plaisir à voir, pour moi en tout cas, ça change des inombrables "arrive pas à connecter ma TI au PC", "comment lire des documents Word sur TI" et autres ;)


Content de voir que ca apporte de la joie et de la bonne humeur à ce forum :#gni#:

Sinon pour revenir sur le sujet, j'ai fait un petit programme qui partait de ton idée (appuyer sur enter comme un fou! ). J'ai un peu baclé les Lbl et Goto. Donc ce programme enregistre les scores dans une liste en on pourra les voir avec le graph

PLAGIIIIIIIIIIIIIIIIIIATTT !!! :#ouin#: :#ouin#:
Non je dek bien sur ^^

C'est super en tout cas, je pensais pas du tout au début que ce topic serait si ... long ^^"
Je continue doucement de mon coté a développer ce programme, je vous tiens au courant =)
Initié au TiBasic :#gni#:
... Et aime ca!! :#langue#: :#langue#:
User avatar
Reuberts
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 96%
 
Posts: 29
Joined: 19 Dec 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Programme GetKey

Unread postby tama » 21 Dec 2010, 20:45

Je m'amusais à faire des trucs du genre au lycée aussi, c'est parti de 100 fois sur [Enter] avec un pseudo-chronomètre (avec des fonctions sur TI84+), on faisait des concours en se passant la TI, pis c'est devenu 200, 400 et je me suis arrêté à 800 ou 1600, ça devenait trop hardcore xD

Pis en prépa j'ai fait un truc en link cette fois pour TI89 où chacun avait une calculatrice et devait appuyer 200 fois sur la touche [Enter] avant l'autre, avec un timer à 1/256ème près (grosso modo 3-4 ms), et mise à jour du score en temps quasi-réel, mais cette fois en C ^^
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40.9%
 
Posts: 10995
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile

Re: Programme GetKey

Unread postby jacques » 21 Dec 2010, 20:47

tama wrote:Pis en prépa j'ai fait un truc en link cette fois pour TI89 où chacun avait une calculatrice et devait appuyer 200 fois sur la touche [Enter] avant l'autre, avec un timer à 1/256ème près (grosso modo 3-4 ms), et mise à jour du score en temps quasi-réel, mais cette fois en C ^^


On s'amuse bien en prépa à ce que je vois. :D:
Sublime Chevalier Elu des TI

Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!

Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
User avatar
jacques
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 14.9%
 
Posts: 2057
Images: 0
Joined: 25 Aug 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: prépa PSI

Re: Programme GetKey

Unread postby Reuberts » 21 Dec 2010, 20:54

tama wrote:Pis en prépa j'ai fait un truc en link cette fois pour TI89 où chacun avait une calculatrice et devait appuyer 200 fois sur la touche [Enter] avant l'autre, avec un timer à 1/256ème près (grosso modo 3-4 ms), et mise à jour du score en temps quasi-réel, mais cette fois en C ^^


Ca c'est mon objectif dans 3 mois :#langue#:
Initié au TiBasic :#gni#:
... Et aime ca!! :#langue#: :#langue#:
User avatar
Reuberts
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 96%
 
Posts: 29
Joined: 19 Dec 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

PreviousNext

Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3716 utilisateurs:
>3691 invités
>16 membres
>9 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)