Poster un nouveau sujet Poster une réponse
Tous les programmes de Youngswatiska
Auteur Message
youngswatiska



Autorisation : Membre
Nb de messages : 1
Inscrit le : Mar 02 Déc 2014, 22:19
Posté le : Mer 03 Déc 2014, 1:23   Citer 

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 :


Code

:Effecr
:Menu(«“CALCULER… “, “HYPOTENUSE “,1, “OPPOSE/ADJ “,2, “RECTANGLE OU PAS“,3
:Lbl 1
:Effecr
:Input “COTE A: “,C
:Input “COTE B: “,D
:C^2+D^2 ->E
:Output(5,1,“HYPOTENUSE:
:Output(6,1,[RACINE CARRE](E)
:Pause
:Lbl 2
:Effecr
:Input “+ GRAND COTE: “,F
:Input “+ PETIT COTE: “,G
:If G>F ou G=F
:Goto 21
:F^2-G^2->H
:Output(5,1,“LONGUEUR COTE:
:Output(6,1[RACINE CARRE](H)
:Pause
:Goto 4
:Lbl 21
:Effecr
:Output(1,1,“ERREUR:
:Output(2,1,“VALEURS
:Output(3,1,“NON VALIDES
:Pause
:Goto 4
:Lbl 3
:Effecr
:Imput “+ PETIT COTE: “,I
:Imput “+ GRAND COTE: “,J
:Imput “DERNIER COTE: “K
:If I>J ou I>K ou K>J
:Goto 21
:If I^2+K^2=J^2
:Goto 10
:If I^2+K [DIFFERENT DE] J^2
:Goto 11
:If I^2+K^2=J^2 et I=J
:Goto 12
:Lbl 10
:Output(6,1,“RECTANGLE
:Pause
:Goto 4
:Lbl 11
:Output(6,1,“PAS RECTANGLE
:Pause
:Goto 4
:Lbl 12
:Output(6,1,“RECTANGLE ISOCELE
:Pause
:Goto 4
:Lbl 4
:Effecr
:DIsp “TERMINE



Si vous trouvez des moyens de le rétrécir, faites moi en part winkle.gif

Un générateur de codes aussi, avec un nombre de chiffres allant de 3 à 8 chiffres:


Code

:Effecr
:Menu(“UN CODE A…“,3,“3 CHIFFRES“,3,“4 CHIFFRES“,4,
“5 CHIFFRES“,5,“6 CHIFFRES“,6,“7 CHIFFRES“,7,
“8 CHIFFRES“,8
:Lbl 3
:Disp entAléat(100,999
:Pause
:Goto 9
:Lbl 4
:Disp entAléat(1000,9999
:Pause
:Goto 9
:Lbl 5
:Disp entAléat(10000,99999
:Pause
:Goto 9
:Lbl 6
:Disp entAléat(100000,999999
:Pause
:Goto 9
:Lbl 7
:Disp entAléat(1000000,9999999
:Pause
:Goto 9
:Lbl 8
:Disp entAléat(10000000,77777777
:Pause
:Goto 9
:Lbl 9



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


Code

:Effecr
:Menu(“CALCULER…“,“DISTANCE“,1,“MILIEU“,2,“SYMETRIQUE“,9
:Lbl 1
:Input “XA: “,A
:Input “YA: “,C
:Input “XB: “,B
:Input “YB: “,D
:[RACINE CARRE] ((A-B)^2+(C-D)^2->E
:Output(6,1,“DISTANCE:
:Output(7,1,E
:Pause
:Goto 3
:Lbl 9
:Output(1,1,“LE SYMETRIQUE
:Output(2,1,“DE A PAR RAPPORT
:Output(3,1,“A B
:Pause
:Effecr
:Input “XA: “,A
:Input “YA: “,B
:Input “XB: “,C
:Input “YB: “,D
:2C-A->X
:2D-B->Y
:Effecr
:Output(1,1,“COORDONNEES:
:Output(3,1,“X: “
:Output(4,1,X
:Output(5,1,“Y: “
:Pause
:Goto 3
:Lbl 2
:Input “XA: “,A
:Input “YA: “,C
:Input “XB: “,B
:Input “YB: “,D
:(A+B)/2->E
:(C+D)/2->F
:Disp “MILIEU:
:Disp “X: “,E Frac   ///  (Frac = écriture fractionnaire = [math] + [1] )
:Disp “Y: “,F Frac
:Pause
:Goto 3
:Lbl 3
:Effecr
:Stop





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


Code

:Effecr
:Input “ENTRE “,U
:Input “ET “,V
:0->S
:entAléat(U,V->J
:If U>V
:Then
:Disp "ERREUR:
:Disp "MIN > MAX
:Goto J
:Else
:While P [DIFFERENT DE] J
:Input “JUSTE PRIX: “,P
:If P > J
:Disp “MOINS
:If J > P
:Disp “PLUS
:If P=J
:Disp “GAGNE !","SCORE:",S
:S+1->S
:End
:Lbl 0
:Stop
:Lbl J



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

 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 : Mer 03 Déc 2014, 2:46   Citer 

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

Code
:EffEcr
:3  //Rép contient 3
:Menu(“UN CODE A…“,3,“3 CHIFFRES“,3,“4 CHIFFRES“,4,
“5 CHIFFRES“,5,“6 CHIFFRES“,6,“7 CHIFFRES“,7,
“8 CHIFFRES“,8
:Lbl 8
:Rép+1
:Lbl 7
:Rép+1
:Lbl 6
:Rép+1
:Lbl 5
:Rép+1
:Lbl 4
:Rép+1
:Lbl 3
:Rép // Rép contient le nombre de chiffres
:Pause entAléat(10^(Rép-1),10^Rép-1)    //10^2=100 et 10^3-1=1000-1=999
:Lbl 9


Code
// 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)

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