Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Entraînement cérébrale 1.0
Toto le 12/10/2011 à 16:26
Alors, voici un programme de mémoire de 688 octets... Et à un niveau très élevé.
Code
Prgm: MEMOIRE
:entaléat(1,100)->A
:entaléat(1,100)->B
:entaléat(1,100)->C
:entaléat(1,100)->D
:entaléat(1,100)->E
:entaléat(100,1000)->F
:entaléat(100,1000)->G
:entaléat(1000000000,9999999999)->H
:entaléat(1000000000,9999999999)->I
:entaléat(1,5)->J
:entaléat(1,5)->K
:entaléat(1000,10000)->L
:entaléat(1000,10000)->M
:Disp A,B,C,D,E, "ENREGISTRE BIEN"
:Pause :EffEcr
:Disp "Le",J,"ET LE",K
:Input N
:Input 0
:If J=1
:A->J
:If J=2
:B->J
:If J=3
:C->J
:If J=4
:D->J
:If J=5
:E->J
:If K=1
:A->K
:If K=2
:B->K
:If K=3
:C->K
:If K=4
:D->K
:If K=5
:E->K
:If N=J et 0=K
:Then
:Disp "CONTINU"
:Else
:Stop
:End
:EffEcr
:Disp F,G,"ENREGISTRE..."
:Pause :EffEcr
:Disp "RECOPIE","CA",H
:Input R
:If R[différent de]H
:Stop
:Disp "ET CA",I
:Input S
:If S[différent de]I
:Stop
:EffEcr
:Disp "LES 2 NBS","APPARUENT","ENTRE 100","ET 1000"
:Pause
:Input P
:Input Q
:If P[différent de]F ou Q[différent de]G
:Stop
:EffEcr
:Disp L,M,""
:Pause "ENCORE 1 FOIS...
:EffEcr
:Disp "LES 5 PREMIERS","NOMBRES"
:Input V
:Input W
:Input X
:Input Y
:Input Z
:If V[différent de]A ou W[différent de]B ou X[différent de]C ou Y[différent de]D ou Z[différent de]E
:Stop
:EffEcr
:Disp "LES 4 NBS>100"
:Input A
:Input B
:Input C
:Input D
:If A=F et B=G et C=L et D=M
:Then
:Disp "BRAVO"
:Else
:Disp "DOMMAGE"
:End
Alors, si vous voulez simplifier, faite ceci:
Code
:entaléat(1,10)*10->A
Même chose pour B,C,D,E,F,G,M,L
Voilà. Si vous voyez comment simplifier...
sandro le 12/10/2011 à 18:32
ça à l'air pas mal pour ceux qu aiment ce genre de jeux, par contre, on peu grandement optimiser :
Code
Prgm: MEMOIRE
:entaléat(1,e2->A
:entaléat(1,e2->B
:entaléat(1,e2->C
:entaléat(1,e2->D
:entaléat(1,e2->E
:entaléat(e2,e3->F
:entaléat(e2,e3->G
:entaléat(e9,e10-1->H
:entaléat(e9,e10-1->I
:entaléat(1,5->J
:entaléat(1,5->K
:entaléat(e3,e4->L
:entaléat(e3,e4->M
:Disp A,B,C,D,E, "ENREGISTRE BIEN
:Pause :EffEcr
:Disp "Le",J,"ET LE",K
:Input N
:Input 0
:If J=1
:A->J
:If J=2
:B->J
:If J=3
:C->J
:If J=4
:D->J
:If J=5
:E->J
:If K=1
:A->K
:If K=2
:B->K
:If K=3
:C->K
:If K=4
:D->K
:If K=5
:E->K
:If N=J et 0=K
:Then
:Disp "CONTINU
:Else
:Stop
:End
:EffEcr
:Disp F,G,"ENREGISTRE...
:Pause :EffEcr
:Disp "RECOPIE","CA",H
:Input R
:If R-H
:Stop
:Disp "ET CA",I
:Input S
:If S-I
:Stop
:EffEcr
:Disp "LES 2 NBS","APPARUENT","ENTRE 100","ET 1000
:Pause
:Input P
:Input Q
:If P-F ou Q-G
:Stop
:EffEcr
:Disp L,M,""
:Pause "ENCORE 1 FOIS...
:EffEcr
:Disp "LES 5 PREMIERS","NOMBRES
:Input V
:Input W
:Input X
:Input Y
:Input Z
:If V-A ou W-B ou X-C ou Y-D ou Z-E
:Stop
:EffEcr
:Disp "LES 4 NBS>100
:Input A
:Input B
:Input C
:Input D
:If A=F et B=G et C=L et D=M
:Then
:Disp "BRAVO
:Else
:Disp "DOMMAGE
Sandro
Toto1 le 19/10/2011 à 14:24
Maintenant que je suis enregistré...
Merci pour les suggestions, sandroSangohan38 le 19/10/2011 à 17:46
Je pense qu'on peux encore optimiser en utilisant une liste au lieu de variables.
A l'inverse, au lieu de mettre des e2 à chaque fois, on stock la valeur dans une variable puis on l'utilise ce qui fait un gain de 10 octets. Idem pour e3 et e10.
Et tu utilises des variables qui ensuite ne sont plus utilisées alors réutilises-les. Par exemple, tu utilise P et Q pour rentrer les 2 nombres entre 100 et 1000 mais tu peut aussi les utiliser pour rentrer les 5 premiers nombres au lieu de V,W,X,Y et Z.
Sangohan38linkakro le 24/10/2011 à 20:41
Quitte à envisager des listes, on peut même écrire
entAléat(1,e2,5)
au lieu d'écrire 5 fois entAléat(1,e2).
Et idem pour chaque catégorie avec 2 comme dernier argument.
Voire même "chaîne(".
Il y a du pour et du contre aux listes. Cela réduit souvent le poids mais complique le code.
Par exemple on peut utiliser des listes pour des tests mais il faut d'abord stocker les données dans une liste, ce qui n'est pas forcément rentable.
Et une dernière chose :
Code
:If N=J et O=K
:Then
:Disp "CONTINU
:Else
:Stop
:End
A REMPLACER PAR
:If N-J ou O-K
:Stop
:Disp "CONTINU
ps: les entaléat à trois arguments, je ne les ai pas trouvé tout seul. Quelqu'un me l'a montré mais j'ai oublié qui.
Persalteas le 25/10/2011 à 19:34
Waa tiens je connnaissais pas le entaléat( avec trois arguments ! merci pour l'astuce !sandro le 25/10/2011 à 21:19
C'est sur que c'est pratique : surtout en statistiques, ça évite de faire un programme quand on a besoin de 500 nombres aléatoires (la même chose marche aussi pour BinAléa(.
SandroQue ti reg le 20/11/2011 à 12:16
Comment faites vous le "different de"? est ce une touche?The K le 20/11/2011 à 14:18
C'est dans le menu "test", que tu obtient en faisant les touches [seconde] + [math]. La, c'est le deuxième symbole. Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.