Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Afficher ses cours
metallica le 12/01/2011 à 15:35
Voilà un programme réutilisable pour écrire ses cours:
PRGM A
Code
:prgmAA
:Ans-)Str1
:length(Str1)-)D
:D-16int(D/16)-)E
:If E
:Str1+sub("_16 espaces_ ",1,16-E)-)Str1
:Delvar P
:Lbl A
:For(A,1,8
:Output(A,1,sub(Str1,16(P+A)-15,16
:End
:Repeat K=45
:getkey-)K
:If max(K={25,34
:Then
:length(Str1)/16-8-)A
:P-(K=25 and P)+(K=34 and P#A-)P
:ClrHome
:Goto A
:End
:End
:ClrHome
:Output(1,1,"
PRGM AA (le cours !)
Code
"LE COURS QUE L'ON VEUT AFFICHER A L'ECRAN "
Important: Le texte tapé devra possédé un multiple de 16 de nombre de caractères. Pour ce faire, vous devrez si nécessaire écrire des espaces après le dernier caractères du texte écrit.
# correspond à: différent de
-) correspond à: la flèche se trouvant en appuyant sur [sto->]
Les fonctions sont écrites en Anglaises, voici leurs traductions:
Ans = Rép
Str1 = Chaîne 1
Delvar = EffVar
sub( = sous-chaîne(
getkey = codetouche
length( = longueur(
ClrHome = EffEcr
linkakro le 12/01/2011 à 17:20
Code
:length(Str1)-)D
:D-16int(D/16)-)E
:If E
:Str1+sub("_16 espaces_ ",1,16-E)-)Str1
En ajoûtant ceci juste après Ans->Str1, l'utilisateur n'a plus à se préoccuper de la longueur de la chaîne multtiple de 16.
metallica le 12/01/2011 à 17:48
Cool! Merci bien du conseilperimgui le 15/01/2011 à 15:32
sub, en français, c'est quelle fonction ?metallica le 15/01/2011 à 17:42
C'est écrit dans le premier post:
sub( = sous-chaîne(
Tu le trouves uniquement dans le catalogue.perimgui le 15/01/2011 à 17:48
Ok je te remerci grandement !
Au fait, je ne savais pas que l'on pouvait mettre une variable pour le Lbl. Ca sert venir à ce label en fonction de la valeur de la variable, c'est ça ?metallica le 15/01/2011 à 18:02
Non, c'est juste la lettre.
PS: Si t'as une TI-82 basique(c'est à dire non stats), le programme ne marchera pas (car les fonctions "chaînes" et "sous-chaîne" n'existent pas sur ces modèles.)perim le 15/01/2011 à 18:09
Non, c'est bon, merci quand même

metallica le 15/01/2011 à 18:11
De rien.
PS: Une petite précision, écrit au moins 8 lignes de texteperimgui le 15/01/2011 à 18:17
Pourquoi ? Il bug sinon ?metallica le 15/01/2011 à 18:28
Oui, il t'affiche: erreur dim.perimgui le 15/01/2011 à 19:04
Mais comment faudrait-il faire pour régler ce problème?
Et mettre des espaces pour des lignes vides, ça compte aussi ? Parce que sinon, ça ne pose pas trop de problème...En plus, je crois que l'espace est considéré comme un caractère.perimgui le 15/01/2011 à 19:30
Et donc ce qui retient en mémoire notre "cours", c'est la chaine 1 ?metallica le 15/01/2011 à 20:02
Oui c'est ça

Pour répondre à ta question, bien sûr que tu peux remplir avec des espaces.
linkakro le 16/01/2011 à 19:08
perimgui a écrit :
Et donc ce qui retient en mémoire notre "cours", c'est la chaine 1 ?
NON : la chaîne ne sert qu'à l'affichage. On risque de perdre la chaîne.
Le texte est conservé dans un programme. C'est plus pratique et il n'y a que 10 chaînes. Toutefois "A" n'appelle que "AA".
D'ailleurs on a pas besoin du programme "A" car on peut lire ses cours sans.
MAIS la prouesse d'affichage de ce prog est intéresante.
=================
Pour la contrainte de longueur suppérieure à 8 lignesVoici une solution.
Je publie directemnt la totalité du prog car deux modifs sont faîtes.
Code
:prgmAA
:Ans-)Str1
:length(Str1)-)D
:D-16int(D/16)-)E
:If E
:Str1+sub("_16 espaces_ ",1,16-E)-)Str1
:length(Str1)->D // ajoûté
:min(8,D/16)->F //
:Delvar P
:Lbl A
:For(A,1,F // J'ai remplacé 8 par F
:Output(A,1,sub(Str1,16(P+A)-15,16
:End
:Repeat K=45
:getkey-)K
:If max(K={25,34
:Then
:length(Str1)/16-8-)A
:P-(K=25 and P)+(K=34 and P#A-)P
:ClrHome
:Goto A
:End
:End
:ClrHome
:Output(1,1,"
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.