Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
Aujourd'hui à 11:52 par Clément.7

» Lancement du TI-Concours 2017 !
Sam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
Ven 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
Ven 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
Dim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
Mer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
Jeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
Jeu 15 Déc 2016 - 10:24 par Ti64CLi++

» flappy bird
Jeu 15 Déc 2016 - 10:23 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Wistaro
 
Clément.7
 


[TUTO] Les tableaux en TI-Basic z80

Voir le sujet précédent Voir le sujet suivant Aller en bas

[TUTO] Les tableaux en TI-Basic z80

Message par Mingerton le Mar 10 Mar 2015 - 21:55

Bonjour à tous !


Tous les programmeurs Basic ont déjà été confrontés à ce problème : tracer un tableau de valeurs en Basic. C'est une fonction très utile de la plupart des Basic, et même de tous les langages. On réalise un tableau de valeurs, une matrice grossièrement, que l'on peut facilement afficher sous la forme d'un tableau. Or en Basic, si vous avez déjà essayé d'afficher une matrice, vous devez savoir que ça ne donne pas un tableau propre avec ses lignes et ses colonnes mais plutôt ceci :


Pour une matrice identité de rang 4. Bon, on voit bien que pour des belles colonnes, avec des titres et tout, c'est pas encore ça... Certains tenteront de tracer des lignes sur l'écran graphiques et avec des habiles et plus lourds calculs de positions arriveront à afficher dans des beaux tableaux des matrices et des listes (voir III).

Eh bien je vous propose dans ce tuto d'apprendre à exploiter les deux tableaux intégrés de votre TI z80 ! Je le complèterait peut-être plus tard si je découvre des super astuces ou si des nuances doivent être apportées. Sur ce, je vous souhaite une bonne lecture ! study




I) Le plus intuitif : le tableau des listes


Commençons par le commencement : qu'est-ce qu'une liste précisément ? Une liste est une suite de nombre stockés dans une seule variable. Les calculs et tests se font sur chacun des membres de cette liste. Les calculs entre listes ne sont par contre possible qu'entre listes de même dimension. Pour ceux qui ont fait une Terminale S spé mathématiques, une liste de rang N est en fait ni plus ni moins une matrice de dimensions 1*N, ou un vecteur à N dimensions. Pour des utilisations plus avancées de leurs fonctions, je vous redirige sur cette page qui vous l'expliquera mieux que moi, et m'évite le hors-sujet ! Wink

Les listes systèmes sont au nombre de 6 (en fait 7 mais je garde ça pour plus loin tongue ), numérotées de L1 à L6. Elles sont accessibles directement sur le clavier, avec 2nd suivi du numéro de la liste. Elles sont affichées par défaut dans un tableau système, c'est ça qui nous intéresse.

Stat+Enter et vous y êtes :


Voilà un tableau tout trouvé ! Un fois le programme quitté, il suffira d'aller jeter un oeil ici pour admirer le super tableau qu'on se sera constitué grâce aux calculs sur les listes. Bien Joué

Après, il est vrai que dans un tableau, c'est quand même mieux d'avoir des vrais noms de colonnes. Ne vous inquiétez pas, c'est tout à fait possible, et l'astuce est simple : on va créer nos propres listes ! Pour ce faire, on va écrire une ligne comme ça :

Code:
{1,2,3->ʟABC

Ce petit L que j'ai utilisé, vous le trouverez dans 2nd+Stat+^+>+Enter
Le ABC est maintenant le nom de la colonne. On a droit à 5 lettres majuscules dans les noms de ces listes, ce qui laisse quand même quelques noms de colonnes possibles.  Bien Joué

Pour afficher ces listes dans le tableau de valeurs, allez dans celui ci. Effacez toutes les listes systèmes du tableau en mettant votre curseur sur leur nom et en appuyant Del. La colonne est vide et n'attend qu'à être remplie ! Maintenant, tapez le nom de la colonne, c'est à dire les lettres suivant le petit L : la colonne s'affiche ! Un aperçu de ce que ça peut donner sur un programme simple Wink :





II) Le mieux : le tableau de valeurs


Voilà LA technique pour afficher des tableaux dans un programme, et elle est bonne à connaître ! En effet, on a vu que la méthode précédente ne permettait pas d'afficher un tableau dans un programme, on est obligé de stopper celui ci pour afficher notre tableau. Eh bien, grâce aux commandes de Basic dédiées à ce tableau de valeur, on va pouvoir afficher un tableau de valeurs dans un programme, profiter d'une pause et continuer notre programme !

Tout d'abord, le tableau de valeur est celui des fonctions, accessible avec 2nd+Graph. Il affiche dans la première colonne les X, et dans les suivantes Y(X) pour toutes les fonctions entrées dans Y=.

Voilà maintenant les fonctions à maîtriser pour tirer le meilleur parti de ce tableau :


  • IndpntAsk : On demande au programme de demander les valeurs indépendantes dans X. A vrai dire totalement inutile placé seul, puisque la pause placées lors de l'affichage du tableau ne permettra pas d'entrer des valeurs indépendantes. Par contre, couplé avec un TblInput il peut se révéler utile ;

  • IndpntAuto : A mettre par défaut si l'on exploite pas le TblInput. Les valeurs de X sont placées automatiquement, selon TblStart et ΔTbl ;

  • TblStart : La valeur à laquelle on commence la liste de valeurs de X. Utile selon le contexte, par exemple pour un tableau de suite numériques commençant au rang 1 ou 2 ;

  • ΔTbl : L'écart entre chaque valeur de la liste de valeurs de X. Utile selon le contexte, par exemple pour un tableau défini différemment selon la parité du X ;

  • TblInput : La 7e liste système ! Elle contient au maximum 7 valeurs et contient la liste de valeurs de X. Très utile pour un tableau à valeurs spécifiques !

  • DispTable : On affiche notre tableau. le programme se met en pause et ne propose un défilement qu'en mode IndpntAuto ;


Voilà, vous pouvez faire un tableau  Cool ! Toutefois, il faut faire quelques remarques :


  1. TblStart est toujours la première valeur de TblInput, pour les optimisations et les tests ;

  2. TblInput doit toujours contenir au moins une valeur et au maximum 7. Le cas échéant, vous aurez une erreur de dimension ! pensez toujours à lui allouer au moins une valeur avant de l'utiliser donc !

  3. Ce sont des variables système, c'est à dire q'elles peuvent être modifiés sans demande au préalable par le système lors de l'utilisation normale de la calculatrice. Il faudrait donc toujours vérifier que leur valeur ne posera pas problème dans l'utilisation du tableau immédiatement après l'utilisation du programme ;

  4. Si vous êtes en mode IndpntAsk, prévoyer toujours un défilement à base de DispTable enchaînés, car il ne pourra pas être proposé !

Pour obtenir les colonnes suivant X, il vous faut créer des fonctions. Cela se fait de la sorte par exemple :

Code:
"X^2->Y1       // ne pas oublier le guillemet, c'est une chaîne !
DispTable

Sachez qu'avec un peu de doigté, la plupart des fonctions de la calculatrice peuvent être tracées et le cas échéant au moins être calculées avec le tableau de valeurs.

Par exemple, voici comment utiliser les listes dans le tableau de valeurs comme dans le tableau des listes. Ici, on associe dans Y1 le Xème terme d'une liste L1 prédéfinie, permettant ainsi d'afficher des données ne pouvant pas être calculées directement à partir de X selon une formule prédéfinie :

Code:
IndpndAsk
DependAuto
{7,1,2,3,4,5,6->TblInput
{11,22,33,44,55,66,77->L1
"L1(X->Y1
DispTable

Voilà maintenant un aperçu du rendu avec un code simple Wink :




III) Une alternative graphique : le tableau dynamique


Dans certains cas, un tableau créé soi même peut être nécessaire, les tableaux système ne sufficant plus. Il s'agit d'utiliser les fonctions graphiques de votre calculatrice pour afficher un tableau personnalisé. Cela demande de la pratique pour le faire correctement, mais voici pour vous un code proposé par Wistaro qui permet un affichage dynamique et beaucoup plus grand du tableau :

Code:
Lbl 1
1->ΔX:1->ΔY
0->Xmin:0->Ymin
Xmax->W:Ymax->H
ClrHome
Output(4,1,"ʟʟʟComparatorʟʟʟ"
For(A,1,16
Output(3,A,"ʟ
Output(5,A,"ʟ
End
Output(7,1,"MAX: 6 lists
Output(8,1,"Inf: L1 to L6
Input "Nb list?",N
If (N≦0)+(N>6:Goto 1
DelVar E
Lbl 2
"L1L2L3L4L5L6->Str1
ClrHome:ClrDraw
DelVar Cround(W/N,0->T
For(A,0,W,T
E->D:C+1->C
For(B,6,H-7,7
D+1->D:Horizontal B
expr(sub(Str1,C,1->ʟP
E+8->dim(Ans
Text(B+2,A,"  ",ʟP(D
End
Text(0,A,"   ʟ",C
Vertical A:End
Horizontal H-8
StorePic1
Pause
E+8->E:Goto 2


Wistaro a écrit:Il permet de comparer au maximum 6 listes systèmes en même temps, et il affiche jusqu'à 8 valeurs en simultané. Dans un version future, je pourrais éventuellement ajouter la possibilité d'inclure ses propres listes personnalisée.
Le tableau est sauvegardé dans la Pic1, vous pourrez donc le réutiliser dans un autre contexte.
Une fois les listes affichées, vous pouvez appuyez sur ENTER pour afficher les valeurs suivantes.


——————————————————————————————————————————————————————————————————————————

J'espère que ce tuto vous aura aidé et qu'il vous aura plu ! N'hésitez pas à proposer des correctifs ou des ajouts s'ils vous semblent nécessaires. Smile


Dernière édition par Mingerton le Sam 14 Mar 2015 - 14:06, édité 3 fois (Raison : Ajout d'une partie)
avatar
Mingerton
----------------------
----------------------

Messages : 251
Points Concours : 103
Productivité : 5
Date d'inscription : 10/10/2013
Localisation : Comté de Kerry, Irlande

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Wistaro le Mer 11 Mar 2015 - 14:03

Les affichages des matrices sur écran graphique sont pas des algo hyper lourd! C'est optmisable.
Il suffit de stocker les coordonnées (dynamique → fonction du nombre d'éléments de ta matrice ou statiques) dans 2 listes, une pour les x, une pour les y.

Puis il faut 2 boucle imbriquées pour afficher les éléments de la matrice au bon endroit. Après pour les éléments graphiques du tableau (traits), c'est plus compliqué.

Prenons un tableau au hasard. En colone, les matières, et en ligne les éleves.

Connaissant la largeur totale de l'écran (94px pour TI83/84), la taille d'un caractère (5px), le nombre de caractères de tes matieres, le nombre de tes matières (dynamique, si par exemple une matière se rajoute.).
Avec ça tu peux créer une fonction dynamique qui te trace les séparations du tableau dynamiquement. Et pas en beaucoup de lignes. Razz

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 906
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Mingerton le Mer 11 Mar 2015 - 15:08

Ba franchement j'ai l'habitude de tracer des tableaux comme ça grâce à des tracés de listes, mais c'est jamais aussi léger que les méthodes que j'ai données. Après libre à toi de nous donner ton super morceau de code, je serai ravi d'ajouter une troisième partie si c'est justifié Wink

Après c'est vrai que ce tuto visait plus les tableaux système, mais on peut l'élargir si on veut.

Sinon, merci pour le Plus Smile
avatar
Mingerton
----------------------
----------------------

Messages : 251
Points Concours : 103
Productivité : 5
Date d'inscription : 10/10/2013
Localisation : Comté de Kerry, Irlande

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Wistaro le Mer 11 Mar 2015 - 19:50

"Mon super morceau de code"

XD!

Non, mais si tu vise la rapidité, simplicité et la légèreté, ta méthode est parfaite.

Si tu veux une utilisation poussée, la technique dont je parle peux être utile.
Par exemple, dans le concours d'algorithmes et de programmation pour les molécules (tiplanet.org), j'utilise, entreautre, un tableau dynamique Smile Mais je donne pas trop de détails pour le moment Smile
Je détaillerais cela plus tard.

Pour le code pour un tableau simple dynamique, je te prépare ça Razz

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 906
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Linkakro le Mer 11 Mar 2015 - 22:42

Ton histoire de tableau dynamique m'évoque le dessin vectoriel. Je ne sais pas si j'ai compris ce que tu veux dire. Moi j'ai utilisé ça dans un prototype de sauvegarde d'image il y a longtemps (cf Imgstok sur Espace-TI).

Tu n'as pas mentionné DependAuto/DependAsk/CalculsAuto/CalculsDem.

Quitte à parler du contrôle du tableur de graphe et TblInput/EntréeTable, montrer l'affichage des listes dans le tableur serait utile. Je réalise que je l'ai mentionné quelque part mais ne l'ai jamais synthétisé en article. (honte à moi)
Voici un exemple.
Code:
IndpndAsk
DependAuto
{7,1,2,3,4,5,6}->TblInput
{11,22,33,44,55,66,77}->L1
"L1(X->Y1
DispTable
Avec DependAsk ou IndpntAsk on peut contourner les limitations de taille 7 de TblInput et de la liste L1 l'une par rapport à l'autre.

__________________________________________________________________________
Vétéran du TI-Basic Zilog80. Ti82statfr sur Tout82 depuis 2009 et ti84pocketfr depuis noël 2012. Ti83plusfrUSB (été 2014, concours tiplanet suite du geek). Bidouille un peu d'assembleur Z80.
Incappable de gérer le temps et manque de tact, plutôt serviable.
Je prend les commandes de programme. Je suis motivé par les maths et la physique tant que ce n'est pas une simple copie d'antisèche.
Vous pouvez trouver une grande partie de mes données hébergées dans mon mediafire. Le ZIP et la liste sont périmées depuis longtemps.
coucou Invité What a Face
avatar
Linkakro
----------------------
----------------------

Messages : 533
Points Concours : 55
Productivité : 31
Date d'inscription : 30/07/2013
Localisation : origine région centre, puis perpignan
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Mingerton le Jeu 12 Mar 2015 - 17:40

Ba comme l'instruction DispTable met en pause je n'ai pas cru nécessaire de mentionner ces deux fonctions dans les commandes à conaître pour faire le tableau comme je l'ai décrit. Comme DependAuto est le mode par défaut je ne pense pas qu'un programme y touchera. Si tu penses que je dois le préciser je le ferai.

J'attends le code de Wistaro pour pouvoir faire une grosse édition d'un coup, avec ta technique et la sienne. En tout cas, merci beaucoup pour vos participations, le tuto y gagne grandement ! Smile
avatar
Mingerton
----------------------
----------------------

Messages : 251
Points Concours : 103
Productivité : 5
Date d'inscription : 10/10/2013
Localisation : Comté de Kerry, Irlande

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Wistaro le Jeu 12 Mar 2015 - 18:29

En gros mon programme tu lui rentre x listes de valeurs et sa te les sort sous formes de tableaux mais plus sympa que celui de base. En plus je le stock dans un pic donc réutilisable et pas besoin de pause.

Je te l'envoi dès que j'ai accès à un pc

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 906
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Wistaro le Ven 13 Mar 2015 - 19:46

Voilà de retour!

Voici le programme:



Code:

Lbl 1
1->DeltaX:1->DeltaY
0->Xmin:0->Ymin
Xmax->W:Ymax->H
ClrHome
Output(4,1,"|L|L|LComparator|L|L|L"
For(A,1,16
Output(3,A,"|L
Output(5,A,"|L
End
Output(7,1,"MAX: 6 lists
Output(8,1,"Inf: L1 to L6
Input "Nb list?",N
If (N<=0)+(N>6:Goto 1
DelVar E
Lbl 2
"L1L2L3L4L5L6->Str1
ClrHome:ClrDraw
DelVar Cround(W/N,0->T
For(A,0,W,T
E->D:C+1->C
For(B,6,H-7,7
D+1->D:Horizontal B
expr(sub(Str1,C,1->|LP
E+8->dim(|LP
Text(B+2,A,"  ",|LP(D
End
Text(0,A,"   |L",C
Vertical A:End
Horizontal H-8
StorePic1
Pause
E+8->E:Goto 2

Il permet de comparer au maximum 6 listes systèmes en même temps, et il affiche jusqu'à 8 valeurs en simultané. Dans un version future, je pourrais éventuellement ajouter la possibilité d'inclure ses propres listes personnalisée.
Le tableau est sauvegardé dans la Pic1, vous pourrez donc le réutiliser dans un autre contexte Razz
Une fois les listes affichées, vous pouvez appuyez sur ENTER pour afficher les valeurs suivantes.

Le code peut paraître un peu lourd comme ceci, mais avec un peu d'optimisation...Smile

__________________________________________________________________________
Clique ici pour retrouver tout mes programmes en TIbasic

Tu es curieux, Invité? Alors clique ici:


Coucou Invité !Ta dernière visite sur ce forum date de . Tu as posté un total de 78 message(s) sur Tout 82 et enfin, tu as 0 ans.
Si nous sommes le 0, je te souhaite un joyeux anniversaire ;-)

avatar
Wistaro
Passioné
Passioné

Messages : 906
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Voir le profil de l'utilisateur http://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Mingerton le Sam 14 Mar 2015 - 14:08

Linkakro a écrit:Avec DependAsk ou IndpntAsk on peut contourner les limitations de taille 7 de TblInput et de la liste L1 l'une par rapport à l'autre.

Je ne comprends pas comment tu fais, j'ai beau essayer de tirer parti de ces commande je ne vois pas comment le faire. Tu aurais une petite explication s'il te plaît ? Razz
avatar
Mingerton
----------------------
----------------------

Messages : 251
Points Concours : 103
Productivité : 5
Date d'inscription : 10/10/2013
Localisation : Comté de Kerry, Irlande

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTO] Les tableaux en TI-Basic z80

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum