Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 2252
Réponses : 7
Type : discussion
Etat : réponses autorisées

Le Programme des Pourcentages

ashtrail le 12/09/2012 à 22:30
Bonjour, voici un programme que j'ai conçu qui résoud tout les probleme possible ou presque (enfin plutôt les calculs) en rapport avec les pourcentages. Il est assez amélioré (cependant les vétérans de la progra sur calcu auront vite fait de l'améliorer...). C'est mon chef-d'oeuvre -snif- (oui bon ok quand vus aurez vu le prgm vous allez vous foutre de ma gueule mais bon j'ais fait que 5 prgm à peu près intéressant donc voila...)
Bref, passons au choses sérieuses il s'appelle : POURCENT (vous pouvez bien sur le changer en n'importe quoi mais bon hein ça parrait le truc le plus évident) il fait 693 octets et je n'ai pas le câble donc si vous le voulez faudra le taper désolé...:
&=Thétâ
->=sto


Code
:Lbl M
:EffEcr
:Menu("(A/B)=(X/100)","X=?",1,"B=?",2,"A=?",3,"X+&/100",4,"X-&/100",5,"ORIGINE",6,"QUITTER",7
:Lbl 7                  // il s'agit du Lbl Quitter donc rien de bien palpitant
:Stop
:Lbl 1                  /* ici en revanche c'est plus interessant il s'agit de trouver a partir de deux nombre A et B , l'équivalent en pourcentage par exemple A=2 et B=10 X=20(pour 20%) */
:Disp "A/B = X/100
:Disp "A=PARTIE DU TOUT
:Disp "B=SOMME TOTALE
:Prompt A,B
:A*100/B->F
:Disp F
:Pause
:Goto M
:Lbl 2                  /* Là dans le produit en croix A/B = X/100 on veut trouver le total B grâce aux valeurs A et X */
:Disp "A PARTIR D'UN
:Disp "NOMBRE A=X/100
:Disp "ON TROUVE
:Disp "LE TOTAL 'B'
:Prompt A,X
:A*100/X->U
:Disp U
:Pause
:Goto M
:Lbl 3
:Disp "SOIT X ET B
:Disp "A/B=X/100
:Prompt X,B
:B*X/100->B
:Disp B
:Pause
:Goto M
:Lbl 4                     /* Cette fois-ci on change un peu on veut pour un nombre X donné on veut trouver la somme d'un de son propre pourcentage par exemple 10+50%=15 */
:Disp "X+&/100
:Prompt X,&
:X*(1+(&/100))->N
:Disp N
:Pause
:Goto M
:Lbl 5                      /* ici c'est la même chose mais en soustraction */
:Disp "X-&/100
:Prompt X,&
:X*(1-(&/100))->G
:Disp G
:Pause
:Goto M
:Lbl 6                      /* celui-ci est le + intéressant je trouve (et celui qui m'as le plus stimulé intellectuellement (oui vous vous en foutez...)). Donc il permet de retrouver le nombre X auquel on ajouté ou soustrais un pourcentage A (10% par exemple) et qui a donné le nombre B.  On a besoin des valeur A et B. */
:Menu("ORIGINE","PLUS",A,"MOINS",B
:Lbl A                            // ici c'est pour les additions de %
:Disp "X=B/(1=A/100)
:Disp "X ETANT LE NBR
:Disp "A LE POURCENTAGE
:Disp "ET B LE NBR
:Disp "FINAL
:Prompt B,A
:B/(1+A/100)->X
:Disp X
:Pause
:Goto M
:Lbl B                // ici c'ets pour les soustraction de %
:Disp "X=B/(1-A/100)
:Disp "X ETANT LE NBR
:Disp "D'ORIGINE
:Disp "A LE POURCENTAGE
:Disp "ET B LE NBR
:Disp "FINAL
:Prompt B,A
:B/(1-A/100)->X
:Disp X
:Pause
:Goto M

Voila, voila j'espère que ça vous sera utile, n'hésitez pas à me corriger et à me proposer de faire une amélioration que j'aurais oublier.
Samos le 13/09/2012 à 17:59
Je ne suis pas expert mais j'ai vu quelques améliorations.

Code

While 1
EffEcr
Menu("(A/B)=(X/100)","X=?",1,"B=?",2,"A=?",3,"X+&/100",4,"ORIGINE",6,"QUITTER",7
j'ai supprimé X-& remplaçable par X+(-&)
Disp "A/B=X/100
Prompt A,B
Pause A/BE2    // E des exposants
End
Lbl 2
Prompt A,X
Pause A/XE2
End
Lbl 3
Prompt X,B
Pause BX E-2
End
Lbl 4
Prompt X,&
Pause X+X(&/100    // je n'ai pas très bien compris :X*(1=(&/100))->N
End
Lbl 6
Prompt B,A
Pause B/(1+A E-2
End
Lbl 7


Bon, je n'ai pas mis tous les texte, histoire de flemme godgrace.gif
En faisant
Code

Pause "TEXTE"
Ou
Pause Variable

Tu peux mettre le programme sur pause tout en affichant.
Attention, ce n'est pas comme Disp tu peux uniquement afficher une seule chose à la fois.

While 1 remplace Lbl M
et
End à la fin de chaque Label

While = Tant que en français.
Tant qu'une condition est vraie(1 est interpreté comme une condition vraie), la boucle While va s'éxecuter, elle est délimitée par un End
à la fin de chaque label il y a un End donc le programme va revenir au While.

Il doit y avoir quelques autres améliorations que je n'ai pas vu
ashtrail le 13/09/2012 à 18:28
Oui je connait while etc... enrevanche le coup des exposant j'ai pas compris, tu met une variable sans valeur décidé?
Citation
je n'ai pas très bien compris :X*(1=(&/100))->N
bin c'est une technique pour aller vite pour faire 2+10% tu tape 2*1.10 et ça marche sinon pour 2-10% tu fais 2-10%=2*0.90%. Et ça marche très bien (c'était dans mon cours de seconde donc je pense que c'est pas super recherché comme méthode...)

Sinon je voie pas en quoi le while est mieux que le Lbl M et sinon vu que je pige rien a E je ne comprend pas tes calculs en plus mon prog a fondu et c'est que la moitié a peu près (bon y a pas le texte mais quand même et sinon oui je mets beaucoup de disp inutile et de précision mais ça m'aide ça me fait un pense bête)
Voila c'est tout (et puis merci quand même).
blg_flg le 13/09/2012 à 18:35
ashtrail a écrit :
Sinon je voie pas en quoi le while est mieux que le Lbl M


Une boucle est toujours plus rapide qu'un Lbl + Goto.
Samos le 13/09/2012 à 18:40
While 1 et End prennent juste quelques octets en moins que Lbl M Goto M
le E s'obtient en faisant 2nd + ,
le moins qui suit le E est le petit moins à gauche de entrer
Tu dois le savoir mais E=*10^
donc E-2 = /100
ashtrail le 13/09/2012 à 18:45
Ah oui le E pour les puissance de dix... Bon sinon pour les gens qui veulent recopier le prgm vu qu'il prend moins d'octet autant prendre ta version mais pour ma part je me contenterait de mon humble petit prog de pépé.
linkakro le 13/09/2012 à 18:53
X*(1=(&/100))
semble être une faute de frappe : "=" au lieu de "+"
ashtrail le 13/09/2012 à 18:55
En effet (je fatiguais sur la fin ( j'oubliais de taper sur maj. du coup j'ai écrit des = à la place des +)) je corrige ça tout de suite.