1

bonjour j'éssai de créer un programme de code pour sécuriser ma ti-84+ SE.

Pour cela j'ai deja fixé la base mais je débute et je voudrais savoir comment faire une fin propre c'est a dire une fois que le code est bon le programme se termine et tout disparait a l'écrant ( et si possible afficher a l'écran une image mise au pré allable dans la mémoire.)

Enssuite je voudré savoir si c'est possible, et si oui comment faire pour que si le code est faux que la personne ne puisse pas acceder a la calculatrice car pour le moment il suffit d'arreter le programme donc j'ai pensser a bloquer le programme ou étaindre la calculatrice il y a peut etre dautre sollutions mais je ne sais pas si celles la sont possible et si oui j'aimerais savoir comment faire.

merci de me répondre si vous avez les réponce.
(P.S: mon adresse mail: jeremybrunel@aol.com)

2

C'est en Basic ou en Assembleur ton programme ? Parce qu'en Basic pour faire ça (éteindre la TI ou proteger la touche ON) il faut utiliser du basic étendu.

3

Sinon en basic, pour une fin propre : tu entres comme derniere ligne du prgm une commande en Output (ex : Output(1,1,"espace" ), ainsi aucun 'done' ne s'affiche a la fin de l'execution.
<-- et à votre gauche une superbe peinture pointilliste du XVIe siècle #sisi# représentant - vous l'aurez deviné - une banane ...
http://www.ti83plus.online.fr/home.php...

4

sinon, ece ke c possible de faire en sorte que les caractere saffice en codé a lécran (exemple: 2528 donne ****)?

5

Et ece ke c possible de faire en sorte que si on appui sur "ON" le programme se relance a la base ou un truc ds le jore?

6

Evite le SMS (et tu peut éditer tes posts)... En Basic la touche "ON" sert éxclusivement à sortir d'un programme, tu ne peut pas lui donner une fouction (mais en asm, oui). Sinon pour les caractère en codé c'est simple : tu prend la valeur des touches sur lesquels l'utilisateur à appuyer puis tu affiche "*" à l'écran. Ensuite avec les valeurs des touches accumulé t'en débuit quel touche à était préssé.

7

ok mais ma question était est ce que dan mo programme je peux faire en sorte que les touches s'affiche ainssi (en codé car mon programme je le rappelle est sencé etre une protection)?

8

Commence par nous dire quel langage tu utilise (et sur quel TI tu compte le faire)...

9

Ba c'est du basic et c'est sur une ti-84+ SE

10

Bon bah essai de faire les bases du programme et là ou tu bloque dit le nous, on pourra surement t'aider.

11

Alors mon programme pour l'instant il donne ça:

grinisp "ENTRER CODE"
:Lbl 1
:In put X
:While X(différent de) 2528
grinisp « ERREUR »
:Goto 1
:End
:Lbl2
grinisp “ bienvenu”
tongueause
:goto2
:lbl2
:ClrHome
:Output (1,1," ")

12

Et la je sais pas du tout comment faire, mais j'aimerais faire en sorte que quand je tape mon code ce ne soit pas 2528 qui s'afiche mais ****.

13

C'est faisable, mais tres complexe pour l'apport que ca représente (tout devrait etre basé sur la reconnaissance des touches pressées, il faudrait donc séparer la valeur obtenue pour chaque touche pressée, et non sur un seul nombre comme 2528...)
<-- et à votre gauche une superbe peinture pointilliste du XVIe siècle #sisi# représentant - vous l'aurez deviné - une banane ...
http://www.ti83plus.online.fr/home.php...

14

Bon alors, tu fait :
ClrHome
Disp "ENTRER CODE"
0->A:0->B:0->C:4->dim(L1
Lbl 1
While 1
C+1->C
If C=4:Then:Goto 2:End
getKey->K
If Kø0:Then:A+1->A:Output(2,A,"*":End
B+1->B:K->L1(B)
End
Lbl 2
If L1(1)=93 and L1(2)=83 and L1(3)=93 and L1(4)=73:Then:ClrHome:Goto 3:End
If L1(1)ø93:Then: Disp "ERREUR":Goto 1:End
Lbl 3
Disp "bienvenu"
Pause
ClrHome Output (1,1," "


Voilà, j'ai pas tester mais ça devrai (en principe) marcher. Je t'éxplique comment on fait :

-On stocke la valeur de la touche préssé dans la liste 1 dans quatre cases différentes.
-Ensuite on vérifie que les valeurs des touches sont égales au touche 2,5,2 et 8
-Si oui, c'est finit.
-Sinon, on recommence.

J'éspère que tu as compris, sinon n'hésite pas à poser des questions sur le code.

15

merci beaucoup!

16

mais je ne comprend pas a quoi correspond:L(qu'est ce que je dois entrer?) et pareil pour :0üA:0üB:0üC:4üdim(L
dsl mais je saisi pas.

17

"ü" signifie "->" (c'est un erreur qu'on a lorsqu'on copie directement le code source de TI-Graph Link). Et L1 c'est la première liste (2nd+1). Mais bon, je suis pas sur à 100% que mon code est correct, car je l'ai pas tester, mais à première vu ça à l'air bon.

18

ok merci

19

il y a un probleme dans le programme, il y a pas de probleme dans le lancement le premiermessage s'affiche et il y a un * à l'écrant cepandant la calculatrice ne répond pas quand j'appui sur les touches quel quel soit sauf biensur ON.
voila donc il y a :

ENTRER CODE
*

et c'est tout...

20

Là je vois pas pourquoi ça te fait ça... Attend que d'autre personne vienne donner son avis sur le code du programme et tu verra ce qui ne va pas.

21

sinon, est-il posible de mettre une minuterie a un programme car j'aimerais mettre un score a un jeu qui augmenterait de 10par seconde et l'afficher a la fin

22

A ce que j'ai compris tu as la TI 84+ SE ? Normalement sur ce modèle il y a une fonction chrono, mais je l'ai jamais essayer... Ou alors tu peut le faire avec des "For(" ou en incrémentant une variable dans une boucle (ce qui reviens à utiliser "For(").

23

daccors mais comment on utilise la fonction chrono?

24

Regarde ton manuel, moi j'en sais rien (même si je te conseil les "For(", si tu veux rendre ton programme compatible avec d'autre versions des TI).

25

KOF> tu sais sur le site de TI il y a le manuel qui documente toutes les fonctions smile.

Sinon, j'aurais une préférence pour:


4->dim(L1
0->K

ClrHome
Disp "ENTRER CODE..."

For(I,1,4
  Repeat K
    getKey->K
  End
  K->L1(I)
  Output(2,12+I,"*"
End

L1={93,83,93,73}->L1
If not(sum(L1)=4):Goto E
...
...   |
...   | Lignes de code du programme si ça marche
...   |
...


Lbl E
ClrHome
Stop



Les espace et les lignes passés ne servent que pour la lisibilité du code sur le forum.
On peut évidement remplacer le not( par un 'différent de'...
L'avantage de faire comme ça, c'est que le code est assez général. (on peut très façielment mettre 8 valeurs, ou même n, avec n non-connu à l'avance, il suffira de remplacer le 4 par dim(L1))
Pour se passer complétement de label ( oui ), on doit pouvoir metre un Stop à la place du goto E. Ou alors on peut mettre un If then ..programme... else ..quiter le program.. End mais je trouve ça carrément lourd pour tout un programme.
Evidemment tu peut te dispenser d'afficher des '*', les afficher dans l'autre sens (smile ), etc.

Enifn, si le code est consultable sur calculette, ça sert vraiment à décorer cheeky. (sinon, faut cocher la case sur Ti graph Link..)
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

26

Lol, c'est vachement mieu que mon programme, ça grin Juste une question en passant, ça sert à quoi la fonction "sum(" ?

27

A faire une somme ? smile y'a des paramètres optienels pour préciser pleins de trucs (je crois: debut, fin, et pas ), mais par défaut ça fait la somme de tous les éléments de la liste.

KOF> demande-nous si tu ne comprends pas coment fonctionent certains points du code wink

Deep> sinon il me semble y avoir un pb de logique dans ton code du ./14:
Si la première touche est bonne mais que une des autres est fausse il va quand même passer les deux if sans 'rien faire' et arriver au programme.

sinon doit y avoir moyen de faire mieux mais j'avais un peu la flemme de ma fatiguer pour ça là.
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

28

Ah ok, si j'ai bien compris à la ligne :
If not(sum(L1)=4):Goto E


On verifie que la liste 1 a bien quatres cases, sinon on retourne au label E.

29

( j'ai édité le ./27 )

Non en fait on vérifie que les 4 testes sont bon. (donc que les 4 touches tapées sont bonnes)
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.

30

Lorsque je fais
L1={93,83,93,73}->L1

L1 devient alors une liste de 4 élements à valeurs booléenne (des 1 –true– ou des 0 –false– ) , si tu veut ça revient à faire ton if L1(1)= and L1(2)= and ....
Donc si les 4 teste sont vérifiés, les 4 valeurs valent toutes '1'. donc la somme vaut précisément 4. ( et réciproquement, on montre trivialement que si la somme vaut 4 c'est que les 4 conditions sont vraies)

Si tu veut, lorsque je fais 'L1={93,83,93,73}', ça renvoie la liste des {L1(1)=93,L1(2)=83,..,..}. = , ou chaque égalité vaut 1 si elle est vraie et 0 si elle est fausse

«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard

La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.