J'ai fais une version plus facile à taper du juste prix
Je tien à remercier un grand ami gaetan qui, sans lui j'aurais la flemme
de m'intéresser à coder sur cette saloperie
Code
Programm:jUSTEPRI // Juste le titre quoi ^^
Disp "PRIX ENTRE 0 ET" //Option pas obligé, V2 sans ça en bas ;)
Input M
arrondi(NbrAléatM,0)->O // M,Zéro)O comme oh jammy o aldi ^^
1->B
EffEcr
Lbl X
Disp "JUSTE PRIX"
Input J
If J>O //Ici encore O comme oh jammy ...
Then
B+1->B
Disp "PLUS PETIT"
Goto X
End
If J<O //Oh jammy
Then
B+1->B
Disp "PLUS GRAND"
Goto X
End
If J=O //Oh jammy
Then
Disp "JUSTE PRIX",O //Oh jammy
Disp "COUPS",B
End
Ceci était la 1ère solution
Maintenant la 2ème
Code
Programm:jUSTEPRI // Juste le titre quoi ^^
// La il y a rien à rentrer la valeur est entre 0 et 100
arrondi(NbrAléat100,0)->O // 100,Zéro)O comme oh jammy o aldi ^^
1->B
EffEcr
Lbl X
Disp "JUSTE PRIX"
Input J
If J>O //Ici encore O comme oh jammy ...
Then
B+1->B
Disp "PLUS PETIT"
Goto X
End
If J<O //Oh jammy
Then
B+1->B
Disp "PLUS GRAND"
Goto X
End
If J=O //Oh jammy
Then
Disp "JUSTE PRIX",O //Oh jammy
Disp "COUPS",B
End
Laisse un commentaire pour me donner des liens porn ^^ :3
ou des menaces de mort
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 28 Sep 2014, 12:52
Citer : thedragonfury
Coucou à tous <3
C'est mon premier topic ici
J'ai fais une version plus facile à taper du juste prix
....
Laisse un commentaire pour me donner des liens porn ^^ :3
ou des menaces de mort
Il faut bien commencer par quelque chose. Pas de honte à avoir.
J'ai ri en en lisant la fin. Puis j'étais perplexe en pensant que cela devait refléter des milieux que tu as fréquenté. Le rire l'a emporté.
Il n'y a pas que des programmes excessivement lourds comme celui que tu voulais alléger. (Je crois pouvoir deviner lequel des plus-ou-moins et juste-prix tu désignes). Les programmes optimisés sont comparables au tien. J'en ai écrit un d'ailleurs.
J'ai pris l'habitude de ne plus utiliser la lettre O pour ne pas avoir besoin de l'expliquer dans les commentaires du code.
La fonction entière ou la troncature (int,iPart,ent,partEnt selon le modèle de ti et le besoin) plutôt que la fonction arrondi évite de mentionner zéro. De plus l'aléatoire sera équilibré, pourvu qu'on s'occupe de donner M+1 pour un entier qui peut atteindra M.
ent((M+1)NbrAléat->O
Je favorise plutôt la fonction entAléat ou randInt pour générer des aléatoires entiers. Cela évite aussi la surprise de faire Nbraléat(2) qui donne une liste de deux aléas.
entAléat(0,M-1
Saches que les Goto font mauvais ménage avec les If:Then:Goto:End. La calculatrice ralentit légèrement à chaque fois que le Goto fonctionne et ça se cumule. Les autres méthodes utilisent les boucles ou mettent le Goto tout seul dans un If:Goto. (tout est expliqué dans un article du forum)
En TI-Basic on peut ne pas fermer les ponctuations juste avant les [sto->] et les fins de lignes. Mauvaise habitude mais on le fait quand même pour économiser de la mémoire.
Ci-dessous je cumule divers de mes conseils et je me débrouille pour me débarrasser des Then/End (qui sont facultatifs pour une seule ligne dedans) en déplaçant le B+1->B. Mais maintenant B est modifié à chaque tentative alors que tu ne le faisais pas au dernier coup.
Code
ent(NbrAléat100->P
0->B
EffEcr
Repeat J=P
Disp "JUSTE PRIX
Input J
If J>P
Disp "PLUS PETIT
If J<P
Disp "PLUS GRAND
B+1->B // exécuté à chaque fois
End
// la fin n'est lue que si J=P, d'après la boucle Repeat
Disp "JUSTE PRIX",P
Disp "COUPS",B
---------------------- 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)
Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mar 30 Sep 2014, 1:45
112 octets
Citer : "linkakro"
Code
ent(NbrAléat100->P
0->B
EffEcr
Repeat J=P
Disp "JUSTE PRIX
Input J
If J>P
Disp "PLUS PETIT
If J<P
Disp "PLUS GRAND
B+1->B // exécuté à chaque fois
End
// la fin n'est lue que si J=P, d'après la boucle Repeat
Disp "JUSTE PRIX",P
Disp "COUPS",B
107 octets
Code
ent(NbrAléat100->P
0->B
EffEcr
While 1
B+1->B
Disp "JUSTE PRIX
Input J
If J=P
Then:Dips P,"COUPS",B:Stop:End
If J>P
Disp "PLUS PETIT
If J<P
Disp "PLUS GRAND
End
Il fait exactement la même chose.
J'ai laisse le "JUSTE PRIX" à chaque :Input J.
Disp "JUSTE PRIX",P
Disp "COUPS",B
est identique à :
Disp "JUSTE PRIX",P,"COUPS",B
Et pour la menace de mort sachez que si vous essayez de faire mieux que moi je n'hésiterai pas vous achever avec une agrafeuse ou un post-it.
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 30 Sep 2014, 21:53
Tu gaspilles 8 octets en ajoutant If J=P:Then:Stop:End et remplaçant la boucle. La structure avec un while infini, un stop et le placement du cas final dans la boucle me paraissent ineptes.
Tout cela pour éliminer le "JUSTE PRIX" de la fin. Je préfère simplement me passer de cet affichage plutôt que m'embêter à préserver l'exécution d'affichage au prix de code en plus qui bouffe une partie de l'économie.
Au mieux j'arrive à 105 octets (mesuré sur la TI, donc je ne vois pas le lien avec tes mesures) en gardant le mien et supprimant simplement le dernier "JUSTE PRIX", je pense que l'économie ne vaut pas autant d'efforts.
Je suis bien caché, tu ne m'atteindras pas avec tes agrafes
---------------------- 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)