Coincé sur variable TI 83+

Fermé
Link1993 - 10 sept. 2011 à 17:38
 Link1993 - 14 sept. 2011 à 20:33
Bonjour a tous !

Je ne sais pas si je suis bien placé, prdon si c'est le cas, je vous laisse le deplacer en tout cas ^^

Alors voila, j'ai essayé de tout faire pour trouver mon probleme, mais rien...

Ce que je cherche a faire est tout simplement un programme pour faire comme les boitiers au code. J'ai deja tout prevu, sauf une chose !...

comment enregistré une variable(disont 1204, ce qui correspondrai a ABD pour les reponses), tout en pouvant en rajouter derriere ? Je pensai tout simplement au lists, mais apparement il réécrit par dessus ou alors il faut tout mettre d'un coup. Meme la technique du {L1,1204}->L1
ne marche pas...
Quand au matrix, je ne sais pas m'en servir, peut-etre que ca pourrai resoudre mon probleme ?
et comment peut on ensuite les reutiliser ?

merci de vos reponses ^^

ps : si vous savez carrement comment enregistré des characteres comme avec les strings mais plus pour des listes (ou autre) ca pourrai etre en fait carrement plus simple ! ^^

6 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
12 sept. 2011 à 09:45
bonjour un peu tardif

Q1. 1204 sto L1(dim(L1)+1) permet d'ajouter 1204 en fin de L1
Q2. Str1+"-AD" sto Str1 permet d'ajouter "-AD" en fin de Str1

bon courage
0
Merci beaucoup ! j'ai jamais reussi a utiliser cette fonction ^^

Du coup, comment puis-je récuperer une valeur dans les liste a un endroit precis ?

Disont L1, je veux recupérer la valeur 23.
0
Jepense en effet qu'en utilisant un string, j'aurai du mal a récupérer une valeur a un endroit precis donc, j'oublie cette methode.

Je pensais sinon au matrices, mais pareille pour ce cas, je ne sais ni comment en creer avec une config de 4*40 dans un programme et comment recuperer les valeurs (en plus de l'ajouter un)
Merci pour tout en tout cas ! :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
12 sept. 2011 à 21:18
re

je suppose que tu veux dire que tu veux récupérer le rang dans L1 de la valeur 23

dim(L1) sto N
Disp "Valeur cherchée "
Prompt V
1 sto K
While L1(K) =/ V and K < N (=/ pour différent)
K+1 sto K
End
If L1(K)=V
Then:Disp K
Else:Disp 0
End

avec des string, c'est encore plus simple
si Str1 = "02301204010412301200"

Disp "Valeur cherchée"
Input Str2
inString(Str1,Str2) sto K
Disp K

donne le rang du 1° caractère de Str2 dans Str1 (ou 0 si pas trouvé)
RQ. Str2 doit être entrée sans "

bonne suite
0
a ouais !! c'est stupide pour les strings !!
mais du coup, je vais faire une recherche de 4 caractere par 4, pas par nombre precis en fait...

En plus, je suppose qu'il doit y avoir une limite au strings non ?

m'etonnerai qu'il y ai la place pour 4*40 caracteres :s

Pour les listes, j'ai pas pigé grand choses... en effet, comme dit avant, imaginons que dans L1, a
la ligne 23, il y est ma reponse, au hasard 1230 (qui m'est inconnu on va dire) comment obtenir cette inconnu ? Tu me donne actuellement tout pour un nombre connu :s

Merci encors tres franchement, je decouvre des fonctions en meme temps ! vais pouvoir voire ca
demain :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 13/09/2011 à 14:19
re

RQ1. les chaines de caractères,
- une longueur de 160 ne pose pas de problème
- effectivement une réponse comportera 4 caractères 0230 au lieu de 23 en numérique
- TI n'aime pas les chaines vides

RQ2. les listes
je ne comprends pas bien ce que tu veux faire. Avec ce que j'ai compris, tu as une liste L1 de réponses du joueur et il faut une liste L2 des réponses exactes, chacune des listes comportant 40 nombres
il te suffit alors de comparer les deux listes terme à terme avec un totalisateur de bonnes réponses

RQ3. les matrices
- pas de problème pour une matrice 40x4, et il t'en faut 2, comme dans RQ2.

RQ4. à toi de choisir la structure de données que tu veux utiliser, réfléchit bien avant aux avantages/inconvénients de chacune avant de te lancer

bonne suite
0
jecherche a faire un programme, style boitier pour le code.
Comme ca, pas besoin de prendre des feuilles ! ^^
Tu mets reponse A B C ou D, puis une fois les 40 questions fini, ba tu peux voire tes reponses pour les corriger. C'est ca ce que je veux faire...
Du coup il faut que je puisse enregistrer 40 valeurs (en liste, en fait j'ai changé l'organisation, j'utilise un booleen, 0= non, et 1= oui. ensuite je le décortique en fonction de ">0". En gros, si j'ai 1001, ca donne A et D. J'ai deja mon idée, j'ai juste besoin d'insérer plusieurs serie de nombre, puis de les ressortir un a 1. Evidement, il doit aussi detecter le 0 du debut s'il y a par exemple 0001 (qui correspondrai a D)

voila mon plan. Mais l'idée ensuite de ressortir juste le nombre de fautes est pas mal non plus en inserant ensuite juste les bonnes valeurs. Mais je souhaite rester malgré tout sur ma premiere idée.

au fait, j'ai détécter une erreur sur ta commande L1(dim(L1+1)). Il me l'ajoute seulement sur des caractere deja entrée manuellement... Bizarrement quand je réutilise cette formule il réécrit par dessus le caractere precedement insérer par cette methode... (peut etre parce que je ne l'utilisai pas dans un programme, mais juste dehors pour le tester ?)

Merci encors pour ton aide :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
13 sept. 2011 à 20:27
re

juste en passant : j'ai écrit dans mon post 1, L1(dim(L1)+1) pour ajouter à L1 au rang dim(L1)+1 (après le dernier élément de la liste)

bon courage ....
0

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

Posez votre question
a ok, il faut donc que je mette dim(L1)+1 pour ajouter une ligne, puis de l'enregistrer dessus avec 1001 -> L1 et c'est bon ? il me semblai qu'il falait utiliser {1001}->L1 ? (qui du coup ecrit par dessus tout.)

Ce n'est pas possible donc d'obtenir une valeur de L1 a la rangé 18 par exemple ? etonnant :o
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
14 sept. 2011 à 07:55
re

1. il faut donc que je mette dim(L1)+1 pour ajouter une ligne, puis de l'enregistrer dessus avec 1001 -> L1 et c'est bon ?
Non, pour ajouter 1001 en fin de liste c'est 1001 sto L1(dim(L1)+1)

2. Ce n'est pas possible donc d'obtenir une valeur de L1 a la rangé 18 par exemple
Si mais
une liste est .... une liste de valeurs rangées. tu ne pourras mettre une valeur dans L1 au rang 18 que si L1 contient déjà au moins 17 valeurs.
Pour avoir un "accès direct" en écriture à un rang quelconque dès le début de ton processus tu dois
1. faire un clearlist de L1 au cas où
2. dimensionner L1 avec 40 sto dim(L1) par exemple,qui initialise (tous les termes de) L1 à 0, ce qui te permettra d'accéder à n'importe quel rang dès le départ, et ne t'empeche pas d'allonger ta liste plus tard.

bonne suite
0
oublie tout ! j'ai reussi a finir mon programme ! :D
J'ai utilisé les matrices (qu'un prof m'a montrer comment faire). J'en ai fais une matrice dynamique en quelque sorte, redimentionnable grace a des coordonées de type variables. En plus je peux choisir où l'inserer, en utilisant 1001->[A](23,1) (ca donne : W->[A](Z,1) sachant que a hcaque fois il fait Z+1->Z)

et mieux encors ! je peux tout récuperer l'un apres l'autre par la meme methode et le stocker sur une variable ! pour simplifier mon analyse, j'ai du coup fait une matrice en 40*4 (ou 40 est en fait une variable, comme ca ca peut me donner soit 20 ligne, ou 23 ou autre) . Chaque colonne correspond a une lettre. Et hop ! c'est dans la poche :D
Du coup, quand je choisi A et D, il inscrit 1 dans la matrice a la ligne correspondant a la question ainsi que dans la colonne corespondant a la lettre, ici, ca donne 1->[A](23,1) (pour A) et 1->[A](23,4) (pour D)


Merci pour tout en tout cas ^^ tu m'as aider a decouvrir quelques commandes du coup ^^
0