Texte dans une matrice, Ti 83+ Texas

Fermé
Guillaume20 - 2 juin 2015 à 18:40
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 9 juin 2015 à 21:05
Salut! Je cherche a faire une base de données des personnes de ma classe. Je programme en Basic directement sur ma Ti83+ Texas. J'ai réussi a stocker leur age, leur sexe, leur classe, etc... Mais je bloque sur un truc : comment stocker leurs noms? Est-il possible de stocker du texte dans une matrice? Ou alors y a t-il un moyen de convertir un nombre en texte, et vice-versa? Sinon, si vous avez une alternative (avec des listes par exemple?).
Merci d'avance!

8 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 3/06/2015 à 11:26
Bonjour

Je crois que tu vas devoir stocker tes noms dans une variable chaine de caractères str1, str2, ... Ma vielle TI83+ n'en dispose que de 10
Tu as ensuite les fonctions chaines
Accès par VARS/Strings
"TOTO" STO str1 pour stocker TOTO dans str1
length(str1) = nb de caractères de str1
InString(str1,str2) = rang du premier caractère de str2 dans str1
str1+str2 pour concaténer str1 et str2
sub(str1,d,n) = sous chaine de str1 commnençant au rang d et de longueur n
etc ...

Bonne programmation
0
Utilisateur anonyme
3 juin 2015 à 18:35
Jeu peux mettre les str dans les matrix?
en tout cas merci!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
5 juin 2015 à 09:26
Non, ni dans les matrices, ni dans les listes
Il va te falloir jouer avec des chaines de noms du type
TOTO;TITI;TUTU;TATA
Et en prenant le même nombre de caractères pour chaque nom, ça te facilitera l'accès à un nom

Bon courage
0
Utilisateur anonyme
5 juin 2015 à 15:46
Je peut créer des str avec des noms du genre "titi"?
Si oui, est-ce que je peut les nommer avec un numéro (ex : "A1")?
Merci d'avance!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
5 juin 2015 à 17:06
Oui, tu les nommes comme tu veux, mais je te conseille de leur donner à tous le même nombre de caractères
ex1 avec avec un séparateur éventuel "*" entre les noms
"*A01*A02*A03*A04" sto str1
et si tu veux avoir accès au N=2ième nom de str1
sub(str1,2+4*(N-1),3) sto str2
ex2 sans séparateur éventuel "*"
"A01A02A03A04" sto str1
et si tu veux avoir accès au N=2ième nom de str1
sub(str1,1+3*(N-1),3) sto str2

Bonne programmation
0
Utilisateur anonyme
5 juin 2015 à 17:53
Je ne suis pas très doué, je pourrais avoir plus d'explication?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
5 juin 2015 à 18:31
Je crois que j'ai mal compris ta question
1. Je peut créer des str avec des noms du genre "titi"?
Oui en majuscules
2. Si oui, est-ce que je peut les nommer avec un numéro (ex : "A1")?
non, les 10 variables chaines sont nommées "en dur" str1, str2, ..., str0, tu ne peux pas changer leur nom
3. je pourrais avoir plus d'explication
l'idée (message 5) est de mettre la liste des noms à la queue leu leu, dans une variable chaine, éventuellement séparés par un séparateur (j'ai mis une *) et s'ils ont le même nombre de caractères (les noms) il est assez simple de récupérer un nom avec son rang dans la chaine (mon exemple avec les noms A01, A02, etc ...), sinon c'est plus laboreiux
0
Utilisateur anonyme
5 juin 2015 à 20:48
D'accord, merci, j'avais pas compris. Et comment je fais pour les séparer à la lecture et choisir le bon?
Merci!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 5/06/2015 à 21:46
Un exemple

- Ecran du haut, le programme CHOIXNOM
tire un numéro N au hasard (de 1 à 5), on affiche ce numéro, puis on extrait le nom numéro N dans str1 qu'on met dans str2, et qu'on affiche
- Ecran du milieu, on met la liste des 5 noms dans str1 avec * comme séparateur mais tous les noms ont 3 caractères
- Ecran du bas. Une exécution du programme
Le nombre 2 a été tiré
le 2ième nom ALB est extrait dans str1 et mis dans str2

Bonne suite
0
Utilisateur anonyme
6 juin 2015 à 12:56
D'accord. Bonne idée. Mais je voudrais avoir des noms de 5 lettres minimum, et je voudrais en stocker 25, ce qui fait 25*6 caractères (avec les *) Une str peut-elle stocker tout ça?
Merci!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 6/06/2015 à 15:17
Sans problème, j'ai quelques souvenirs avec plus de 500 caractères, mais attention à ne pas saturer la mémoire
Au passage tu peux écrire un bout de programme pour entrer les noms et les mettre un à un dans str1, ce sera plus fiable que de les entrer en un seul coup
0
Utilisateur anonyme
6 juin 2015 à 16:40
Et je met quoi derrière sub si je change le nombre de caractères?
En tout cas merci pour les réponses!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
6 juin 2015 à 17:29
je t'explique
str1 commence par une étoile (séparateur)
les noms sont tous séparés par une étoile
2 = rang du premier caractère du premier nom de la liste
3 = nombre de caractères d'un nom
4 = idem+1 pour tenir compte du séparateur "*"
pour obtenir le nom de rang N dans str1
sub(str1,2+(N-1)*4+2,3)

En bref, pour N=1, on commence au caractère de rang 2, puis pour passer au nom suivant, on décale de 4 rangs
0
Utilisateur anonyme
7 juin 2015 à 14:07
Merci! Je mets résolu.
0
Utilisateur anonyme
9 juin 2015 à 18:48
Ah non, je met pas résolu, j'ai encore une question! Comment je modifie une partie précise de ce texte? Par exemple, je choisis le prénom 4, et je veux le modifier?
A+!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 9/06/2015 à 21:28
Joli problème de programmation et d'arithmétique
à l'aide de la fonction sub(str,debut,longueur)
N étant le n° du prénom P à modifier dans la liste str1
1. il te faut définir en fonction de N
- la partie gauche PG, de str1 jusqu'à l'étoile qui précède P
- la partie droite PD, de str1 qui commence à l'étoile qui suit P et qui finit à la fin de str1
tout ceci étant à tester très sérieusement avant de passer au 2

2. PR étant le prénom de remplacement
remplacer str1 par PG + PR + PD

RQ. Il faudra peut être ajouter une * au bout de str1, TI83 n'aime pas les variables str vides

Bon courage
0