Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
PROG MDP
progti94 le 12/05/2013 à 18:25
Bonjour !
j'ai un petit soucis pour creer un mot de passe, ca me dit que j'ai un soucis au niveau de la syntaxe, pourtant ca a l'air juste ...
Code
:Lbl X
:ClrHome
:Input "CODE :",C
:If C=411
:Then
:Goto A
:Else
:Goto X
:End
:ClrHome
:Lbl A
Il est dans le ':Then' mais il me sort en bleue que les ':'
linkakro le 12/05/2013 à 19:16
Je ne suis pas sûr de comprendre l'emplacement de l'erreur. La préposition "dans" ne convient pas. Parler de bleu n'est pas pratique, parler du curseur est préférable.
Il semble que tu ais saisis les ":" manuellement alors que ce sont les débuts de lignes affichés automatiquement, cela expliquerait pourquoi ton curseur se place sur ces ":".
En effet le Then doit obligatoirement être juxtaposé au If.
Placer des Goto dans l'alternative If/Then/Else/End est de toute façon cause de ralentissement et de bugs.
https://tout82.pages-perso.fre[...].php?sujet=2757
Tu peux consulter mon article sur les sécurités.
https://tout82.pages-perso.fre[...].php?sujet=2759
Je modifie ton programme pour tout résoudre.
Code
:Repeat C=411
:ClrHome
:Input "CODE :",C
:End
:DelVar C // je nettoie C
Cytropus le 13/05/2013 à 18:02
Re-up:
Au passage j'ai aussi trouvé un truc sympa et vachement plus simple que vibra
(seul ceux qui connaissent déjà peuvent comprendre l'astuce)
Code
:Prompt A
:NbrAléat -> NbrAléat
:If A=/=entAléat(1,1000
:Stop
:EffVar A
Le bon code est 944
Si tu veux un autre code (ou une question à poser), pas de problème, n'hésite pas
Ps: même si linka répondra avant moi

linkakro le 13/05/2013 à 18:28
Tu dérives du sujet qui est une aide, pas un exposé de nouveauté
Vibra a utilisé l'initialisation de l'aléatoire, pas de quoi en faire une pendule.
C'est le bourrinage mathématique postérieur et son prétendu nombre de solutions qui me perturbe.
NbrAléat->NbrAléat revient à 0->NbrAléat donc génère toujours la même chose.
Pour résoudre ce code, en supposant le connaître mais pas le trafiquer, j'execute bêtement la ligne
0->NbrAléat:entAléat(1,1000)
https://espace-ti.forumactif.c[...]t-elle-vraiment
D'après le lien ci-dessus, l'initialisation ne suit pas la règle de récurrence et qui-plus-est fonctionne par palier
"par linkakro le 16.04.12 21:44" a écrit :
sur ]-1;1[, rand = 0.94359740249213
sur ]-2;-1]U[1;2[ , rand = 0.74556077277122
Puis il faut soustraire 0.25443922769332 modulo 1 chaque fois qu'on décale l'intervalle.
Ainsi sur ]-k-1;-k]U[k;k+1[ avec k entier naturel non nul,
rand = modulo(.74556077277122-(k-1)*0.25443922769332,1) = .74556077277122-(k-1)*0.25443922769332-int(.74556077277122-(k-1)*0.25443922769332)
Cytropus le 14/05/2013 à 17:43
"linkakro" a écrit :
NbrAléat->NbrAléat revient à 0->NbrAléat donc génère toujours la même chose.
Pour résoudre ce code, en supposant le connaître mais pas le trafiquer, j’exécute bêtement la ligne
0->NbrAléat:entAléat(1,1000)
c'est pour ça que j'ai précisé:
Cytropus" a écrit :
(seul ceux qui connaissent déjà peuvent comprendre l'astuce)
par "astuce", je disais "comprendre l'opération effectué"
Quand à l'aléatoire, j'ai effectivement remarquer que le signe ne changeait rien

.
linkakro le 14/05/2013 à 19:02
J'ai mentionné la formule afin de justifier pourquoi NbrAléat->NbrAléat n'est pas du tout imprévisible contrairement à ce qu'on attendrait si l'affectation était cohérente à la récurrence.
Le manuel ou l'exemple de Vibra ou ma réponse à Vibra suffisent effectivement à comprendre le principe de l'initialisation. Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.