Page 1 of 1

Utilisation de chaînes dans un For

Unread postPosted: 18 Jan 2012, 23:03
by Uunderfire
Bonjour à tous !

Étant sur TI-89 et apprenant à utiliser les For, je voudrais essayer de faire un "dégradé" , en affichant les lettres de "Hello World" successivement.

Dnc mon code ressemble à ça :

Code: Select all
Prgm
For x,0,50
Output 25,30,"H"
EndFor
For x,0,50
Output 25,35,"E"
EndFor

...//etc pour chaque lettre
EndPrgm



Donc ça marche , mais c'est plutôt lourd à utiliser. Je voudrais donc savoir si il n'y avait pas un moyen de stocker mon "Hello World" dans une variable qui serait "décomposée" dans le For , de façon à afficher chaque caractère un à un, peut-être en utilisant des string.

Donc si vous auriez une solution plus simple, je suis preneur , merci ! :D:

Re: Utilisation de chaînes dans un For

Unread postPosted: 19 Jan 2012, 00:35
by Bisam
Tout d'abord, je ne comprends pas à quoi servent tes boucles "For". Quelle est l'utilité de faire afficher 51 fois le même caractère au même endroit ?

Ensuite pour répondre à ta question, il est bien entendu possible de faire afficher séparément les caractères d'une chaîne.
Voici comment s'y prendre :
Code: Select all
Prgm
Local i,j,str,ch,n
"Hello world"->str
dim(str)->n
For i,1,n
  mid(str,i,1)->ch
  Output 25,30+6*i,ch   // la largeur des caractères est de 6 pixels
  For j,1,500           // boucle vide pour la temporisation
  EndFor
EndFor
EndPrgm

Re: Utilisation de chaînes dans un For

Unread postPosted: 19 Jan 2012, 17:43
by Loulou 54
Petit conseil pratique : évite d'utiliser la variable x en global dans des programmes car si après tu veux l'utiliser dans un calcul formel, tu risques d'être surpris.. En effet, elle prendra alors la valeur que lui a donné ton programme. D'où l'intérêt de la fonction "Local ..." de Bisam pour que toutes les variables qu'il utilise dans le programme soient effacées à la fin du programme ! :)

Re: Utilisation de chaînes dans un For

Unread postPosted: 19 Jan 2012, 17:46
by Uunderfire
Merci beaucoup, ça marche parfaitement ! Et j'utilisais les For pour pouvoir gérer le temps d'affichage entre les lettres, mais sa marche bien mieux avec ces nouvelles lignes de code !

Et Loulou54, c'est déjà ce que je fais dans chacun de mes programmes, ici c'était pour aller plus vite ! :):