Autorisation : Membre
Nb de messages : 1
Inscrit le : Mar 02 Déc 2014, 22:19
Posté le : Mer 03 Déc 2014, 1:23
Bonjour, peu après l'acquisition de ma premiere calculatrice ti 82 stat.f, j'ai forcement eu envie de créer des programmes pour me donner l'impression d'avoir du génie artistique.
J'ai d'abord eu l'idée de créer un Programme de Pythagore, eh oui, un éniéme Pythagore, mais il a une particularité en plus des autre programmes de Pythagore que j'ai pu voir :
En plus de pouvoir trouver la longueur de l'hypoténuse et d'un coté adjascent/opposé, on peut aussi, en donnant 3 mesures, savoir si un triangle est rectangle ou pas.
Le programme contient aussi un systeme qui affiche un message d'erreur quand certaines valeurs sont mal rentrées, enfin bon, lisez le programme si tout cela vous interesse :
des programmes utiles en SES aussi, un calculateur de taux de variation:
Code
:Effecr
:Input “VALEUR DE DEPART“,P
:Input “VALEUR D ARRIVEE“,T
:(T-P)/P->W
:W*100->R
:Disp “TAUX DE VARIATION
:R
Pour calculer une remise aussi, en indiquant le prix de depart et le prix d'arrivée, ça nous donne le pourcentage de remise et le prix à payer après remise :
Code
:Effecr
:Input “PRIX DE BASE: “,P
:Output(2,1,“POURCENTAGE DE
:Input “REMISE: “,T
:P*T/100->R
:P-R->M
:Disp “LA REMISE EST DE“,R
:Disp “PRIX A PAYER: “,M
Un programme multifonctions, pour calculer la distance entre deux points, les coordonnées du milieu de deux points, mais également le symétrique d'un point par rapport à un autre
Et évidemment, comme tout le monde, j'ai aussi commencé par programmer des "plus ou moins", ou des "juste prix" si vous préférez, le petit plus de ce jeu qui, je pense n'a jamais été fait, c'est que l'on peut définir entre quel nombre et quel nombre se situera le juste nombre (j'avais deja vu avec seulement la valeur maximale, mais pas minimale) on peut donc par exemple avoir à trouver un nombre se situant entre 300 et 2000 par exemple, pas forcément une valeur partant de 0 (ou 1).
puis un programme plus qu'inutile, pour mettre un nombre en factoriel :
Code
:Effecr
:Output(1,1,« PROGRAMME POUR
:Output(2,1,« METTRE UN NOMBRE
:Output(3,1,« EN FACTORIEL
:Output(5,1 « APPUYEZ SUR ENTRER
:Pause
:Effecr
:Imput « NOMBRE: »,A
:A!->B
:B
J'ai aussi essayé de faire le programme de calcul le plus court possible, le programme, en comptant le nom fait 13 octets, il s'agit d'un programme pour multiplier un nombre par 2 :
Code
nom: X
:Input E
:2E
si quelqu'un a mieux, je suis très intéressé, c'est une sorte de défi personnel
voila, si certains ont des astuces pour ameliorer l'un de ces programmes, je suis ouvert
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 03 Déc 2014, 2:46
Après toutes les optimisations de programmes similaires je n'ai pas vraiment la motivation de tous les optimiser.
Je constate que le plus-ou-moins est assez compact, ça change agréablement comparé à la majorité qui utilise bien trop de texte et de test.
Dans ton Pythagore tu as des Goto 21 mais aucun Lbl 21.
Je te recommande d'utiliser des Then/Else/End pour réaliser des alternatives via tes conditions, plutôt que d'abuser des Goto. En plus les Goto c'est vraiment pas élégant dans les langages supportant l'algorithmie. Dans certains langages ils sont même à proscrire.
Cependant n'utilise pas de Goto à l'intérieur de If:Then:Else:End. Mais pas de problème avec If:goto. Pareil pour les boucles. Un article de ma signature explique tout.
Ton programme de calcul léger ne peut être plus léger tant que tu effectueras une saisie.
En revanche tu peux utiliser la variable dernière réponse comme entrée.
Code
// code d'appel avec l'argument 3, pour calculer 2*3
3:prgmX
Code
// programme X
2Rép // 2*Rép=2*3=6
Ton programme de nombre aléatoire à un certain nombre de chiffre peut être optimisé par calcul ou bien en changeant de type de sortie.
Tu peux afficher quelque chose avec la Pause
// La même chose sans menu
:Input "COMBIEN CHIFFRES",N
:Pause entAléat(10^(N-1),10^N-1) //10^2=100 et 10^3-1=1000-1=999
Code
EffEcr
Input "COMBIEN CHIFFRES:",N // N doit être strictement supérieur à 1
// entAléat(0,9,N // génère une liste de N chiffres
// chaîne({0},{1,2}) concatène la liste {0} et la liste {1,2} : {0,1,2}
//ci-dessous génère un chiffre non-nul puis les autres peuvent être nuls
:chaîne(entAléat(1,9,1),entAléat(0,9,N-1))
---------------------- 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)