Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Plusieurs notations de résultats dans un seul programme ?


Lenn-e Invité

Plusieurs notations de résultats dans un seul programme ?

Posté le 13/04/2020 01:26

Bonjour,
J'aimerai à l'aide de la fonction" Display" ([SHIFT] [SET UP] [DISP]) pouvoir mettre plusieurs notation différentes dans un seul même programme. Je veux pouvoir afficher un résultat en notation scientifique [Sci] si une variable rempli une condition à l'aide d'une fonction If, et un résultat en notation norm 1 [Norm] si une variable rempli une condition à l'aide d'une fonction If.

Le problème que je remarque c'est que si je met en Then la fonction Sci, alors peut importe si je met Norm dans un autre Then, le résultat prendra en compte le Sci, et vice versa. La première indication de notation semble s'appliquer à tout le programme peu importe ce que je demande...

Est ce que vous voyez un moyen de régler mon problème ?


Si oui, je vous explique ce que je veux obtenir :

If L ≥0.001
Then Sci 2
L             // <-- Notation scientifique avec 1 chiffre après la virgule
Else If L≥0.01
Then Norm 1
RndFix(L,4)   // <-- Notation normale avec 4 chiffres après la virgule
Else If L≥0.1
Then Norm 1
RndFix(L,3)   // <-- Notation normale avec 3 chiffres après la virgule
Esle If L≥1
Then Norm 1
RndFix(L,2)   // <-- Notation normale avec 2 chiffres après la virgule
Else If l≥100
Then Norm 1
RndFix(L,1)   // <-- Notation normale avec 1 chiffres après la virgule
IfEnd
IfEnd
IfEnd
IfEnd
IfEnd

En partant de la "logique" de ce code, j'aimerais avoir comme résultat visible sur l'écran :

L = 0,0097582 écrit comme ça : 9,8e-03
L = 0,097582 écrit comme ça : 0,0976
L = 0,97582 écrit comme ça : 0,976
L = 9,7582 écrit comme ça : 9,76
L = 975,82 écrit comme ça : 975,8


Merci de votre aide !


Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 13/04/2020 09:38 | #


Je n'ai pas de problème à changer de mode conditionnellement. Attention, il faut faire l'affichage pendant que le mode est actif.

Voilà par exemple ce que j'ai testé :

?→A
If A≤0:Then
Sci 2
0.0097582
Else
Norm 1
975.82
IfEnd

Ici, pas de problème, si on entre un nombre strictement positif on obtient 9.8e-03, et sinon on obtient 975.82.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)


Lenn-e Invité

Citer : Posté le 13/04/2020 16:17 | #


Merci beaucoup Lephenixnoir,
ton message m'a permis de me rendre compte que le problème était autre pars, et j'ai pu le résoudre !
Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 13/04/2020 16:31 | #


Tant mieux ! Peux-tu expliquer rapidement ce qui se produisait et quelle était la solution, pour que ça serve aux futurs lecteurs de cette page ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)


Lenn-e Invité

Citer : Posté le 15/04/2020 18:08 | #


Oui bien sûr :
Je voulais donc créer un programme qui me permettait de faire un calcul avec une variable, ici "L" et je voulais également que la calculatrice affiche le résultat avec des notations différentes en fonction de ce que j'avais besoin (exemple : 96756,238 ici le "38" est de trop. A l'inverse, 0.0000000953 est bien trop gros pour être compris, alors j'ai besoin de voir sous notation scientifique : 9,5e-08).

Mon problème n'étais pas qu'on ne pouvais pas cumuler plusieurs modes d'affichage dans le même code, car comme tu l'as dit ça fonctionne.
Mais en fait je m'étais gouré dans la manière de de faire les "palier" c'est à dire : entre quel et quel valeur ont met tel affichage, et entre quel et quel valeur on en met un autre. donc en ayant tout écris sur papier j'y ai vu plus clair et je me suis rendu compte que mes conditionnelles ">" ou "<" étaient mis n'importe comment.

voilà mon code qui marche :
"dB= "?→L
0.775(10^(L/20))→L
Locate 7,4,"CA FAIT :"
If L<0.01
Then Sci 2
Locate 5,6,L
Else If L<0.1
Then Norm 1
Locate 5,6,(RndFix(L,4))
Else If L<1
Then Norm 1
Locate 5,6,(RndFix(L,3))
Else If L<100
Then Norm 1
Locate 5,6,(RndFix(L,2))
Else If L≥100
Then Norm 1
Locate 5,6,(RndFix(L,1))
IfEnd
IfEnd
IfEnd
IfEnd
IfEnd
Locate 13,6,"Volts"
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 15/04/2020 18:12 | #


Tu devrais pouvoir utiliser les log pour avoir la longueur du nombre et remplacer Roundfix(L,longueur)
Longueur = int(log(nombre)) + 1

In Arch, I trust ! And you ?
Shadow15510 Hors ligne Administrateur Points: 5499 Défis: 18 Message

Citer : Posté le 15/04/2020 19:07 | #


Pour être encore plus souple on peut même noter :
Longueur = int(log(abs(nombre))) + 1

(le log des nombres négatifs n'existe pas )
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir En ligne Administrateur Points: 24228 Défis: 170 Message

Citer : Posté le 15/04/2020 19:15 | #


C'est pas suffisant, cette notation n'est utile que pour les entiers jusqu'à une certaine limite...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 86 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd