Poster un nouveau sujet Poster une réponse
Algorithme de conversion
Auteur Message
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Mer 08 Mai 2013, 15:00   Citer 

Bonjour à tous, voici un programme de conversion avec les unités de longueurs KM, HM, DAM, M, DM, CM, MM vers ces mêmes unités.

Mes soucis:
1) est que le programme est extrêmement long à écrire, je me retrouverais avec 7 Lbl pour chaque unités multipliés par 6 Lbl chacun pour chaque conversion, et donc au total 42 lbl à écrire. Certes je pourrais faire l'option rappel, en écrivant un lbl dans un autre programme, mais cela me prendrait également beaucoup de temps. Je demande donc votre aide pour l'optimiser (j'ai pensé à faire un menu de chaque unités et qui affiche ensuite chaque conversion, mais cela ne tient pas sur l'écran (sauf si je fais EffEcr mais je veux qu'il m'affiche le nb de départ et l'arrondi choisi), peut être en utilisant la fonction pause, en affichant les 4 premières puis les 2 dernières conversions...)

2) J'ai mis A le nb de décimales en arrondi, et N le nb à convertir. Le résultat est affiché en écriture scientifique, ex: si je prends 125.75 KM, avec 3 comme arrondi (donc millième) il m'affiche 1.2575 x 10^3 HM, j'aimerais qu'il m'affiche 1.258 x 10^3. Je demande également vos compétences pour ça.

Voici le programme (pas en entier, juste de KM vers HM):

Code
EffEcr
Disp "LES DONNEES SONT","EN [ENTRER]
Pause
Lbl M
Menu("DONNEES EN", "KM",1,"HM",2,"DAM",3,"M",4,"DM",5,"CM",6,"MM",7

Lbl 1
Input "DONNEES:",N
Input "ARRONDI A:",A
Output(5,1,"DECIMALES
Menu("EN KM VERS","HM",11,"DAM",12,"M",13,"DM",14,"CM",15,"MM",16
EffEcr

Lbl 11
N*10->N
arrondi(N,A
Disp "DE KM EN HM",N etc.



----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
Kelk'1



Autorisation : Membre
Nb de messages : 36
Inscrit le : Lun 01 Avr 2013, 18:48
Posté le : Mer 08 Mai 2013, 16:10   Citer 

est-ce que tu veux gargder tes menu ou je peux changer la facon d'incorporer les unites ?

----------------------
Signature inutile, enjoy =)
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 106
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Mer 08 Mai 2013, 16:13   Citer 

bah fait et montre-moi ce que tu as fais, je cherche juste à optimiser le programme.

----------------------
visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 08 Mai 2013, 16:41   Citer 

Regarde mon programme UNITE v2.
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=2847
Il simule un menu avec plus de 7 options, au départ et à l'arrivée, pui affiche les puissances et le nombre en écriture normale puis scientifique de la nouvelle unité.

----

Je te déconseille de chercher à adapter les menus selons la saisies pécédente. Cela n'apporte que plus de code ou de tests.
Je trouve que l'arrondi est complètement superflu devant le problème d'unité.

Pour utiliser un menu de ti plusieurs fois, je conseille de le placer dans une boucle et stocker un nombre décrivant la puissance.
Après la boucle tu exploites les données.
C'est seulement adapter la seconde execution à la première qui est gênant.

Voici mon idée basée sur ce que j'ai dit à propos de ton programme.
Code
EffEcr
Disp "LES DONNEES SONT","EN [ENTRER]
Pause
Lbl M
"DONNEES EN->Chaîne1
For(W,1,2
1
Menu(Chaîne1,"KM",1,"HM",2,"DAM",3,"M",4,"DM",5,"CM",6,"MM",7
Lbl 7
Rép+1
Lbl 6
Rép+1
Lbl 5
Rép+1
Lbl 4
Rép+1
Lbl 3
Rép+1
Lbl 2
Rép+1
Lbl 1
Rép->C

If W=1
Then
Input "DONNEES:",N
Input "DECIMALES:",A
C->B
End
"VERS->Chaîne1
End

N*10^(C-B
arrondi(Rép,A->N

"KM HM DAM   DM CM MM "
Disp "DE "+sous-chaine(Rép,3B-2,3)+" VERS "+sous-chaine(Rép,3C-2,3

Disp N



----------------------
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 
 
Kelk'1



Autorisation : Membre
Nb de messages : 36
Inscrit le : Lun 01 Avr 2013, 18:48
Posté le : Mer 08 Mai 2013, 17:00   Citer 


Code

:Effecr
:Disp "km=7","hm=6","dam=5","m=4","dm=3","cm=2","mm=1"
:pause
:effecr
:input "donnee=",D
:input "unitee=",U
:input "arrondi a =",A
:input "convertit en=",C
:Fixe A
:Disp D*10^(U-C)
:Pause
:Flottant



ps: pourquoi faire un pgrm pour cela, c'est pas bien compliquer de faire des convertions il suffit d'avoir des doigts en état de marche ou alors perfectionnes ton pgrm pour qu'il marche egalement à differentes echelles genre passer du fentometre au terametre bigmouth.gif (erreur capacité winkle.gif )
enfin voilà bye

ps: le pgrm de linkakro doit etre meilleur que le mien, je viens de le faire de tete alors il faut le tester happy.gif

----------------------
Signature inutile, enjoy =)
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes