Poster un nouveau sujet Poster une réponse
Entraînement cérébrale 1.0
Auteur Message
Toto
Invité
Posté le : Mer 12 Oct 2011, 16:26   Citer 

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...

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 12 Oct 2011, 18:32   Citer 

ç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

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Toto1



Autorisation : Membre
Nb de messages : 8
Inscrit le : Mer 19 Oct 2011, 13:54
Posté le : Mer 19 Oct 2011, 14:24   Citer 

Maintenant que je suis enregistré...

Merci pour les suggestions, sandro

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 19 Oct 2011, 17:46   Citer 

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.

Sangohan38

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 24 Oct 2011, 20:41   Citer 

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.

----------------------
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
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 25 Oct 2011, 19:34   Citer 

Waa tiens je connnaissais pas le entaléat( avec trois arguments ! merci pour l'astuce !

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 25 Oct 2011, 21:19   Citer 

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(.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Que ti reg
Invité
Posté le : Dim 20 Nov 2011, 12:16   Citer 

Comment faites vous le "different de"? est ce une touche?

  Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Dim 20 Nov 2011, 14:18   Citer 

C'est dans le menu "test", que tu obtient en faisant les touches [seconde] + [math]. La, c'est le deuxième symbole.

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
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 ...
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink