Poster un nouveau sujet Poster une réponse
Convertisseur Année Lumière en KM
Auteur Message
pito2901



Autorisation : Membre
Nb de messages : 107
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Jeu 06 Jui 2013, 18:45   Citer 

Bonjour à tous,
mon souci est que mon programme n'effectue pas les arrondis que je lui demande, le voici:


Code
EffEcr
Menu("CONVERTIR","A.L EN KM",1,"KM EN A.L",2
EffEcr

Lbl 1
Input "DONNEE ",A

9,4607304726×10^12xA -> B

arrondi(B,2
Sci

Disp B
Pause
Stop

Lbl 2
Input "DONNEE ",C

1,057000834×10^(-)13xC -> D

arrondi(D,2
Sci

Disp D
Pause
Stop



Voilà, merci de votre aide...

----------------------

visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 06 Jui 2013, 19:39   Citer 

Bonjour,
Essaye:

Code
Disp arrondi(B,2


Petite remarque: en mode scientifique, il y a un petit problème à ce niveau.
Ex:

Code
12.343->A
Disp arrondi(A,2


donnera (en mode normal):
12.34
Et en mode scientifique:
1.234*10^1
Je suppose que tu voulais qu'en mode scientifique il soit affiché "1.23*10^1" non?
(Si c'est le cas, signale le, je vois un moyen de le faire mais il faut que j'y réfléchisse 2 secondes winkle.gif )

EDIT: Je donne mon alternative, au cas où (va plus loin pour une solution qui marche à tous les coups):

Code
Disp arrondi(A,N-partEnt(log(A  //N correspond au nombre de chiffres après la virgule souhaités


Celle ci ne marche que dans le cas où tu es sur que le nombre est strictement inférieur à 10^(N+1) (soit A<1000 si N=2)...
Je cherche pour que ce soit valide dans tout les cas je te tiens au courant winkle.gif

Re-EDIT:
Alors voilà une solution qui marche quel que soit le nombre:
(On cherche à afficher A avec N nombres après la virgule):


Code
Disp 10^partEnt(log(abs(A))-N)partEnt(A*10^(N-partEnt(log(abs(A


Comme c'est embêtant à retaper pleins de fois, je te conseille de le mettre dans un prgm qui gèrera ça à ta place.

Code
//Prgm ARONDI
Disp 10^partEnt(log(abs(Rép))-N)partEnt(Rép*10^(N-partEnt(log(abs(Rép

//Et pour l'utiliser dans un autre prgm
2->N //Tu fixes le nb de chiffres après la virgule au début du prgm (ou tu peux carrément remplacer N par ce nombre dans le prgm ARONDI si tu est sur de toujours vouloir ce nombre de chiffres)

1234.438129Y+137890.312907*10^(-EA67->A //Calcul hyper méga compliqué
A  //C'est pour stocker A dans Rép (Rép est une variable qui stocke le résultat du dernier calcul effectué, donc pas besoin de cette ligne si le dernier calcul avait pour résultat la valeur que tu veux afficher)
prgmARONDI

//Pour afficher B le résultat de A*123.783612 avec un arrondi de 2, il suffit de faire:
2->N
A*123.783612->B
prgmARONDI



----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.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 : Jeu 06 Jui 2013, 23:17   Citer 

STOP ! Vous vous donnez du mal pour rien car la solution est beaucoup plus simple.

Cause 1 :
La fonction arrondi ne met pas les variables à jour, il faut stocker ou réutiliser immédiatement le résulat.

Cause 2 :
Placer le format Sci AVANT le calcul d'arrondit contrôlera correctement l'arrondi dans la plupart des cas.

Cause 3 (la moins évidente, voire pas du tout évidente) :
La fonction arrondi avec paramètre arrodi toujours le nombre réel, pas la mantisse (nombre autre que l'exposant) de l'écriture scientifique.
Tandis que la fonction arrondi sans argument respecte à la fois les modes et l'écriture scientifique.


Code
EffEcr
Menu("CONVERTIR","A.L EN KM",1,"KM EN A.L",2
Lbl 1
Input "DONNEE ",A
9,4607304726*10^12*A -> B

Sci
Fixe 2
Disp B
Flottant

Pause
Stop

Lbl 2
Input "DONNEE ",C
1,057000834*10^(-)13*C -> D

Sci
Fixe 2
Disp D
Flottant

Pause


Code
EffEcr
123.456->A
Normal
Flottant
Disp A            // 123.456
Disp arrondi(A,2  // 123.46
Fixe 2
Disp A            // 123.46
Disp arrondi(A    // 123.46

Pause

Sci
Flottant
Disp A            // 1.23456 E2
Disp arrondi(A,2  // 1.2346  E2
Fixe 2
Disp A            // 1.23    E2
Disp arrondi(A    // 1.23    E2



----------------------
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 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 07 Jui 2013, 9:25   Citer 

bouhouhou cry.gif
/me etait fier de sa formule winkle.gif

Autant pour moi je ne savais pas que la fonction arrondi en mode scientifique marchait ainsi crazy.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.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 : Ven 07 Jui 2013, 17:29   Citer 

Je reconnais que c'est pas évident au premier abord crazy.gif.
Et le manuel n'est pas assez clair.

Citer
arrondi( donne un nombre, une expression, une liste ou une matrice arrondie à #decimales (<=9). Si #decimales n’est pas mentionné, valeur est arrondi aux chiffres affichés, soit jusqu’à 10 chiffres.
arrondi(valeur[,#decimales])



Si on s'intéresse quand même aux formules voici mes réflexions.
Je préfère utiliser l'arrondi plutôt que les troncatures puisque c'est l'objectif de ce sujet.
Et peu importe si on a des variables ou Rép/Ans.
Se rappeler que partEnt=int et ent=iPart (erreur officielle de TI) permet d'éviter des erreurs pour des nombres négatifs, y compris les exposants qu'on traite.
Je fais attention au nombre zéro.
Code
123.456->A
2->B
If A
Then
10^(iPart(log(abs(A))))round(A10^(-iPart(log(abs(A)))),B)
Else
0
End
Disp Ans



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



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 07 Jui 2013, 18:31   Citer 

Autant pour moi, je ne savais pas que log(0) était impossible crazy.gif
Et c'est vrai que c'est mieux avec un arrondi winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
pito2901



Autorisation : Membre
Nb de messages : 107
Inscrit le : Sam 20 Avr 2013, 15:43
Posté le : Ven 07 Jui 2013, 18:51   Citer 

Merci quand même, mais je prends la solution de linkakro

----------------------

visitez ma page ti82stats.fr
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 07 Jui 2013, 19:47   Citer 

Je me doute bien bigmouth.gif
En plus ma formule était incomplète winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 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