| [AIDE] Programation liste |
| Auteur |
Message |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 19:16
|
|
|
Bonjours,
Je suis vraiment novice en programmation TI et j'aurais besoin d'aide sur un projet que j'ais commencer.
Enfaîte je souhaite faire une sorte de vérification de version pour utiliser mes prgm, je m’explique : Le truck et que j'ais un programme qui me permet de créé/modifier une liste appeler lVERS, j'y met la version actuel et a coté je voudrais que mes programme quand on les exécute aille vérifier que le valeur écrite dans le prgm par exemple : 1.50 soit la même que celle écrite dans la liste, si la version et la même alors le prgm fonctionne et si les valeurs ne coresponde pas, ca met un message d'erreur, ( type : Output(1.1"Version Obselete" )
Donc comme je le disais, j'ais réussi a créé le prgm qui craie et modifie la liste, mais je n'arrive pas a faire pour que mes programmes vérifient la liste avant de démarrer voici le prgm de création/modif de liste :
"l" = petit l de Liste
"r" = Symbole de pi
/= = le égale barré
PS : le PRGM ZVERS83 et un prgm qui permet de demander un mdp pour la modif de la version ( ne pas y prêté attention )
| Code |
:4->dim("l"VERS
:0->P
:For(I,1,4
: If "l"VERS(I)=0:Goto 11
:End
:
:cos(12)*"r"->P
:prgmZVERS83
:If P/=cos(12)-1:Stop
:Lbl 11
:4->dim("l"VERS
:ClrHome
:Output(2,1,"**ENTRE LE MDP**
:Output(1,1," **NOUVEAU**
:Output(5,6,"[ ]
:Output(4,6,"+----+
:Output(6,6,"+----+
:For(I,1,4
: 0->K
: While K=0
: getKey->K
: End
: K->'l'VERS(5-I)
: Output(5,6+I,"*
:End
:ClrHome
:Disp "VER CHANGE/CREE!"
|
Donc je voudrais si possible le code a mètre en débus des prgm pour qu'il vérifie les listes.
PS : Si je veut faire ce système c'est pour pouvoir contrôler les échanges de mes prgm, pour être sur que les gens passent par moi pour prendre les prgm, ( pas envie de me faire tuer par les profs )
|
 |
|
| |
Cytropus
Autorisation : Membre
Nb de messages : 407
Inscrit le : Lun 07 Nov 2011, 12:09
|
Posté le : Sam 15 Sep 2012, 19:38
|
|
|
j'ai pas très bien comprit ce que tu veux mais je pense que c'est ça que tu veux :
| Code | :1->dim(lVERS
:If lVERS(1)=/= [ton code]
:Stop
:[suite du programme] |
---------------------- Le nouveau site de tout82 |
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 15 Sep 2012, 20:13
|
|
|
Tu dois avoir un problème de End avec ta boucle for qui ne se finit pas.
Evite le Goto dans la boucle (et dans les conditions avec End).
| Code |
:For(I,1,4
: If "l"VERS(I)=0:Goto 11
:End
|
à remplacer par
| Code |
If non(prod(l VERS
Goto 11
|
Le programme ZVERS83 modifie-t-il la valeur de P?
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 20:25
|
|
|
Voici le prgm ZVERS83 :
| Code |
:If P/=cos(12)*"r":Then:Disp "NE PEUT PAS ","ETRE EXECUTE SEU","L":Stop:End
:
:4->dim("l"PASS
:4->dim("l"ZPASS
:ClrHome
:Output(2,1,"**ENTRE LE MDP**
:Output(5,6,"[----]
:Output(4,6,"+----+
:Output(6,6,"+----+
:For(I,1,4
: 0->K
: While K=0
: getKey->K
: End
: K->"l"ZPASS(I)
: Output(5,6+I,"*
:End
:
:For(I,1,4
: If "l"PASS(5-I)/="l"ZPASS(I:Then:ClrHome:Disp "**ERREUR: CODE**"," **ERRONE** ":Stop:End
:End
:cos(12)-1->P
:DelVar "l"ZPASS
:Return
:
|
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 15 Sep 2012, 20:42
|
|
|
Il fonctionne avec le code que je t'ai donné?
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 15 Sep 2012, 22:37
|
|
|
Et ton histoire de code elle sert à quoi?
Désolé du temps que je met à répondre mais il y avait des invités.
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 22:51
|
|
|
En gros vue que dans ma classe je suis le seul a coder des prgm et jeux je les distribue gratuitement mais je voudrais mètre un système qui vérifierais que c'est bien moi qui l'est envoyer pour pas que les gens le distribue a tout le monde donc j'inclue dans les liste une liste VERS avec un code dedans et le programme doit vérifie que le code et bon et si la liste et manquante ou le code pas le bon, le prgm ne démarre pas, ce qui obligerais les gens a passer par moi pour avoir les prgm
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Sam 15 Sep 2012, 23:21
|
|
|
pour le sous-programme
| Code | 4 -> dim(l VERS
if somme(lVERS={Pi,e,racine(2),10/3})=4 // exemple de code entre les crochets
Then
5 -> (une variable economique)
Return
Else
Disp "VOUS AVEZ LA","MAUVAISE VERSION
Stop
End
|
Le code entre crochets peut être remplacé par une liste que tu enverras pour faire des sortes "de mises à jour"
Dans le programme que tu leur a envoyé
ce n'est pas obligatoire mais si ils s'amusent à supprimer le contenu du sous-programme, il y aura toujours cette sécurité. les variables economiques se trouvent dans le menu Finance + >.
| Code |
If (variable economique)=5
Then
EffVar (variable economique)
Else
Stop
End
|
Tu peux aussi tout mettre en une seule ligne histoire d'embrouiller les audacieux 
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 23:28
|
|
|
Merci beaucoup, et ne t’inquiète pas je protège tout mes prgm avant de les envoyer je vais tester de suite.
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 23:31
|
|
|
par contre si ça ne te dérange pas j'aimerais bien que tu m’explique le code, je suis débutant et je ne comprend pas encore toutes les bizarrerie de la ti si tu peut merci beaucoup =)
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Sam 15 Sep 2012, 23:58
|
|
|
enfaite j'ais un soucis, je peut metre n'importe coi comme code dans la liste VERS il me met le message d'erreur ( MAUVAISE VERSION etc ...)
Voici le code que j'ais entré :
| Code |
4 -> dim(l VERS
if somme(lVERS=1050)=4
Then
5 -> N
Return
Else
Disp "VOUS AVEZ LA","MAUVAISE VERSION
Stop
End
|
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Dim 16 Sep 2012, 2:42
|
|
|
C'est au niveau de la somme que ça coince. En effet, le programme vérifie d'abord si lVERS=1050. Ce à quoi il répond par 0 ou 1. Ensuite il fait la somme (de 0 ou de 1 ça donne le même résultat) et enfin il teste sir 0 (ou 1)=4 donc forcément répond par faux.
La solution si ta somme fait 1050 est:
Sangohan38
|
 |
|
| |
FatalDead
Invité
|
Posté le : Dim 16 Sep 2012, 3:07
|
|
|
Ok merci beaucoup je test ça de suite 
|
| |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 3:26
|
|
|
Ne fonctionne pas, déjà une journée et une partie de nuit passer sur une dizaine de ligne X) je vous poste les 2 prgm qui sont utiliser, svp dite moi ce que je doit modifier sur chacun des prgm pour qu'il fonctionne merci d'avance :
Lègende :
"l" = petit l des liste
-> = touche STO
Version ( me permet de changer les valeurs de la liste VERS
| Code |
:4->dim("l"VERS
:0->P
:For(I,1,4
: If "l"VERS(I)=0:Goto 11
:End
:
:Lbl 11
:4->dim("l"VERS
:ClrHome
:Output(2,1,"**ENTRE LE MDP**
:Output(1,1," **NOUVEAU**
:Output(5,6,"[ ]
:Output(4,6,"+----+
:Output(6,6,"+----+
:For(I,1,4
:0->K
:While K=0
:getKey->K
:End
:K->"l"VERS(5-I)
:Output(5,6+I,"*
:End
:ClrHome
:Disp "VER CHANGE/CREE!"
|
ZVOK ( sous prgm qui doit vérifié la liste )
| Code |
:4->dim("l"VERS
:If 1050=somme("l"VERS
:Then
:5->N
:Return
:Stop
:Else
:Disp "VOUS AVER LA","MAUVAISE VERSION
:Stop
:End
|
Merci d'avance et bonne fin de nuit 
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Dim 16 Sep 2012, 9:36
|
|
|
Rhalala
Tu peux oublier le Goto dans une boucle deja
et pour modifier la valeur de la liste pourquoi pas pas directement modifier le code source et envoyer la nouvelle liste?
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Dim 16 Sep 2012, 9:41
|
|
|
Donc en gros tu demande 4 fois la valeur d'une touche par son codetouche.
Imaginons que le code soit 7412.
Cela fait un 7 puis un 4 puis un 1 puis un 12.
Soit en valeurs codetouche : 72 + 82 + 92 + 93 = 339 ... ce qui n'est pas égal à 1050. Tu ne pourras jamais arriver à une somme de 1050 uniquement avec 4 chiffres.
Voila pourquoi ça ne marche pas.
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Dim 16 Sep 2012, 9:58
|
|
|
| Code |
4 -> dim(lVERS
0 -> P
If non(prod(lVERS //// la commande prod( va multiplier chaque terme de lVERS entre eux. si l'un d'entre eux est egal à 0 le resultat sera égal à 0. non( signifie la négation d'une expression. Si cette expression vaut 1, alors elle vaudra 0 et si elle vaut 0 elle vaudra 1. Dans ton cas si un seul terme vaut 0 le programme t'enverra au Lbl 11. ////
Goto 11
Lbl 11 // pourquoi le mettre juste en dessous? même si la condition est fausse ton programme se retrouvera ici.
:4->dim("l"VERS
:ClrHome
:Output(2,1,"**ENTRE LE MDP**
:Output(1,1," **NOUVEAU**
:Output(5,6,"[ ]
:Output(4,6,"+----+
:Output(6,6,"+----+
For(I,1,4
Repeat lVERS(I // la boucle va se repeter jusqu'à ce que lVERS(I vaut quelque chose. Avec Repeat même si la condition est deja atteinte, elle s'exécutera au moins une fois. comme getkey réinitialise lVERS(I à 0, il n'y a pas de problème.//
Getkey -> lVERS(I
End
:Output(5,6+I,"*
End
somme(lVERS -> N
Clrhome
Disp "CHANGEMENT REUSSI
|
| Code |
4 -> dim(lVERS
If N=somme(lVERS
Return
Disp "VOUS AVEZ LA MAUVAISE VERSION
Stop
|
Il devrait fonctionner... Biensur tu devras retirer le programme qui change la liste VERS de leur calculatrices.
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Dim 16 Sep 2012, 12:35
|
|
|
Elle est ou la vérif du code Samsam ? 
Ça marchera mais pas de vérification !
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 12:51
|
|
|
Merci pour ton code Samsam, je vais le tester de suite et je, vous tiendrais au courant, et pour la vérification j'ais ma petite idée si elle fonctionne je vous la posterais pour ceux qui voudrais utiliser ce genre de prgm 
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Dim 16 Sep 2012, 13:05
|
|
|
c'est toujours **** de rentrer un code, plutôt décider de qui aura accès au programme non? 
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 13:26
|
|
|
Ne fonctionne toujours, je pense que maintenant mon problème et sur le débuts de du prgm que je veut utiliser,
Voici le début du prgm :
| Code |
:1050->N
:prgmZVOK
:stop
...
|
Et donc pour l'histoire du code oui c'a fait **** tous ceux qui utilise les prgm c'est pour ça que je voulais faire un genre de vérification d'un valeur dans les liste pour pas que tout le monde s’envoie mes prgm et qu'en même temps il n'est pas besoin de passer par plein de mdp.
|
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Dim 16 Sep 2012, 13:31
|
|
|
enleve le 1050 -> N
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 13:31
|
|
|
Mais alors il vérifie comment que c'est la bonne version ?
|
 |
|
| |
The K
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Dim 16 Sep 2012, 14:40
|
|
|
Bon.
Personellement je n'aime pas ton idée de protéger les programmes, donc je vais m'arrêter ici.
Va regarder ça et voila 
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind
Mes nouveaux programmes de calcul formel : FCarré FPrime
Projet base de données : ici mais abandonné. Trop de travail ... |
 |
|
| |
Samos
Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
|
Posté le : Dim 16 Sep 2012, 15:22
|
|
|
Met juste mon programme pour la version, tu pourra la modifier à ton grès sur leur calculatrices...
Il vérifie comme ça que c'est la bonne version.
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 16:38
|
|
|
Oui mais il vérifie rien enfaîte vue que j'ais peut être mis la valeur dans la liste mais le prgm en lui même n'a pas de valeurs a comparer, ce que je voudrais c'est que par exemple le prgm a la valeur 1232 a vérifié dans la liste, si il y a pas la même valeur alors le prgm se stop si oui il continue, et jusqu'ici le prgm malgré tout ce que je fait me met a chaque foie que la valeur et pas bonne ..., je vais désespérer ...
On peut totalement protéger un prgm sauf du transfère et en faisant ce système c'est ce que je veut protéger.
|
 |
|
| |
FatalDead
Autorisation : Membre
Nb de messages : 12
Inscrit le : Sam 15 Sep 2012, 18:55
|
Posté le : Dim 16 Sep 2012, 16:46
|
|
|
AHH je croit que j'ais a peut près compris le fonctionnement du prgm, genre le fichier quand tu l'envoie ne démarre pas, ensuite quand je vais créé la liste avec n'importe quel code, le prgm enregistre ce fameux code et fonctionne avec, et techniquement si il l'envoie a quelqu'un d'autre, ça ne fonctionnera pas, mais et ce que si quelqu'un lui envoie une version plus récente du prgm, le prgm ne se lancera pas ?
Ce qui et mon bute, je configure un prgm sur sa ti avec une liste = a ce prgm et si quelqu'un lui envoie le sien, ça ne fonctionne pas ...
|
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 17 Sep 2012, 1:22
|
|
|
Je vois que The K a posté un lien vers mon article et j'en suis flatté ! 
Précisons cependant que la version actuelle de mon article ne prévoie pas de protection contre le partage.
Je n'ai pas bien compris le but des mots-de-passe inclus dans ce projet, et je n'ai pas suivi atentivement la fin de la discussion. :S
----
Il me semble que le programme compliqué demandant un mot de passe serve seulement à éviter que quelqu'un d'autre que toi débloque un programme de sa calculatrice en utilisant le programme VERS.
>> Il est plus simple de le supprimmer de la calculatrice après l'initialisation de la liste.
>> OU BIEN d'initialiser la liste par une ligne de commande dans l'écran principal (donc sans programme) (et éventuellement de supprimmer les "entrées précédentes" via le menu mémoire)
J'ai pensé à dimensionner la liste depuis chaque programme afin d'éviter un plantage si la liste n'existe pas, ce n'est pas indispensable mais préférable si cela permet d'assurer un message "mauvaise version" plutôt qu'une ERR:UNDEFINED
(mais cela entre en conflit avec la première options du paragraphe ci-dessous)
Le choix suivant reste à faire :
-soit chaque programme regarde une case de lVERS (problèmes possibles d'incompatibilités si tes programmes croissent en nombre au fil du temps (un programme ancien peut supprimmer des codes d'un programme récent en réduisant la longueur de la liste.))
-soit il faut une liste du même style que lVERS pour chaque programme (cela complique les idées d'un unique programme VERS)
Voici ce que je préconise :
-un programme VERS (à associer à une liste rigoureuse de tes programmes, sans quoi ma solution simple à venir ne conviendra pas)
-transférer le programme VERS depuis ta calculatrice en même temps que les programmes, puis l'executer, puis le supprimmer
-j'ai laissé tomber le dimensionnement de lVERS par chaque programme, trop d'inconvénients devant le faible bénéfice
-j'ai écrit le programme VERS en conséquence des deux points précédents : le VERS de ta calculatrice doit être le plus à jour en contenant le numéro du dernier programme, et en l'utilisant pour dimensionner lVERS avant toute autre chose
| Code | // programme VERS
50->dim(lVERS // la plus grande longueur utilisée jusqu'à présent
Input "N°PROG:",A // par exemple 3
Input "VERSION:",B // par exemple 42
B->lVERS(A
//****************************
// progamme numéro 3
If 42=/=lVERS(3 // remplacer 3 et 42 par les valeurs adéquates
Then
Pause "MAUVAISE VERSION"
Stop
End
... // suite |
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |
FatalDead
Invité
|
Posté le : Jeu 20 Sep 2012, 22:54
|
|
|
Bonsoir, d'abords dsl du retard pour la réponse, et Grand merci pour ton explication avec les codes, je les ferrais demains soirs et posterais le résulta en tout cas le fonctionnement a l'aire simple donc ça me va, c'est vrais que j'ais déjà appliquer tout les protection possible au niveau des modification des prgm mais j'ais jamais réussi a contrôler leurs partage, avec ceci je pourrais le faire 
Bonne soirée a tous, FatalDead
|
| |
|
| |
Zzortell
Invité
|
Posté le : Sam 06 Oct 2012, 20:45
|
|
|
C est quoi une variable économique ?
|
| |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Sam 06 Oct 2012, 21:45
|
|
|
Une variable du menu finance. Elles peuvent être modifiées à souhait, elles ne peuvent pas être supprimmées, et donc les utiliser n'occupe pas de mémoire supplémentaire.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
 |
|
| |