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


Index du Forum » Autres questions » Transformer une variable en string ?
Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Transformer une variable en string ?

Posté le 18/12/2013 12:12

Bonjour,

Je viens de réaliser un programme qui calcule les impôts,
comme il s'agit de finance, je voudrais ajouter le signe € au bout de mes chiffres (pour que ça fasse joli :-))
Mes résultats sont des variables A,B,C...
Ces variables peuvent être à 2,3,4,5... chiffres.
Il me faut donc connaître leur longueur pour placer le signe € à la fin!

Dans les tutos ou les manuels, je ne trouve aucune fonction pour transformer ma variable en chaîne et faire un strjoin par exemple....
J'avais envisagé l'option suivante :
A-->str 1
strjoin(str 1,"€")... mais ça ne marche pas.

Voila si quelqu'un a une solution.... Merci d'avance

PS : merci Planète Casio où j'ai apppris la prog (addictive+++).
Maintenant je vais retourner à mes cours délaissés depuis 15 jours :-)

Edit Louloux : inutile de surcharger la ponctuation ou de mettre please help dans le titre. Attention au langage SMS, aux majuscules et à quelques fautes d'orthographe.


Totoyo Hors ligne Membre d'honneur Points: 16103 Défis: 102 Message

Citer : Posté le 18/12/2013 12:30 | #


If A
Then 3+In (Log (Abs A->Z
Else 3->Z
IfEnd
Locate 1,1,A
Locate 1,Z,"€"

Le seul défaut : ne prend pas en compte les nombres décimaux.

Sinon, tu as Alphaconvert de Dark Storm qui utilise les Str.
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 18/12/2013 12:33 | #


Pour connaitre la taille d'un nombre non-negatif et sans virgule, utilise log

(int (log 99)) +1 = 2
(int (log 4832))+1 = 4

Ect.

En fait la fonction log te renvoye la reciproque de 10^.
Donc par exemple,
log A = 20 <=> 10^20 = A
log 500 = 2.69 <=> 10^2.69 = 500

Ajouté le 18/12/2013 à 12:35 :
Euh... Totoyo t'aurais pas oublié une condition? car le if A est bizarre
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Totoyo Hors ligne Membre d'honneur Points: 16103 Défis: 102 Message
Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 18/12/2013 12:59 | #


Je vais tester ça, dommage que Casio n'ait pas pensé à une fonction simple...

@ Dodormeur, j'ai aussi des pourcentages, à virgule, et négatifs, t'as un plan B ?

Merci à vous !

Edit Louloux : attention à l'orthographe et à la ponctuation.
Totoyo Hors ligne Membre d'honneur Points: 16103 Défis: 102 Message
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 18/12/2013 13:16 | #


Alors, il y a moyen de faire un sous-programme qui te fait ca
Tu met ta variable dans Z, et après tu appelles ce sous-programme, et dans Y tu aura le nombre de caracteres (- et , compris)

0->Y

int (log (abs Z))->Y
Z<0=>Y+1->Y //-
if int Z ≠ Z
then Y+1->Y//virgule
for 1->A to 1
Y+1->Y
int (Z*10^a) != (Z*10^a) =>break;
next
ifEnd

Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 18/12/2013 13:54 | # | Fichier joint


Tu peux te servir des Str : la fonction Exp>Str permet de transformer une expression (donc un nombre aussi) en chaîne de caractères, et la fonction StrJoin permet d'ajouter à cette chaîne une autre chaîne (donc ton signe €).

Pour savoir comment les utiliser :

Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 18/12/2013 15:48 | #


@ loulou

c'est très aimable à toi de me copier coller le mode d'emploi,
maintenant, si tu peux me démontrer que la méthode marche je te paie le champagne.....
J'avais aussi essayé cette voie mais ça ne marche pas.....
Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 18/12/2013 16:04 | # | Fichier joint


@ totoyo et @ dodormeur

Vous êtes des génies!!!!! Le log, fallait y penser!!!!!

Voila le sous programme fini (et qui marche!!)
permet d'ajouter le signe € à la fin d'un nombre, positif, et/ou négatif, et en plus il compte les chiffre après la virgule 8)

Voir fichier g3m joint
(VOIR PLUS BAS LE PROG FINAL)

La variable est A
transformée en Z
Les chiffres après la virgule sont X
La somme de tout ça donne la position du "€"
Je ne sais pas pourquoi mais je dois décaler de +2 pour l'entier et pour la virgule..
J'ai finalement ajouter quelques lignes pour la valeur 0
finalement, ça ne marche pas à 100%
ya un problème avec les nombres genre: 0.000236

0→Y
?→A
A→Z

Abs Z→Z

'taille entier+2
Int (log Z+2)→Y

'si neg +1
A<0⇒Y+1→Y

'si virgule +2
If Int A≠A
Then
Y+2→Y
IfEnd

'apres virgule·
If Z≠(Int Z)
Then
Z-(Int Z)→X
Else
Goto 1
IfEnd

Lbl 0
X*10→X
If X≠(Int X)
Then
Goto 0
Else
Int (log (Abs X))→X
IfEnd

X+Y→Y

Lbl 1
Locate 1,3,A
Locate Y,3,"€"


Pffffff ça soulage quand ça marche!!!!!
Encore merci+++++

Modifié par Dark Storm : merci d'utiliser la balise [ code ]
Totoyo Hors ligne Membre d'honneur Points: 16103 Défis: 102 Message
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 18/12/2013 16:45 | #


Krisacaen a écrit :
@ loulou

c'est très aimable à toi de me copier coller le mode d'emploi,
maintenant, si tu peux me démontrer que la méthode marche je te paie le champagne.....
J'avais aussi essayé cette voie mais ça ne marche pas.....

Je me suis déjà servi de telles fonctions sur ClassPad, donc je sais que cette méthode marche.
Pour m'envoyer le champagne c'est 42 rue Héverlor, 01 337 Sacémieux.

PS : c'est Louloux et pas loulou.
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 18/12/2013 16:59 | #


On retrouve souvent 42 chez toi Louloux
Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 18/12/2013 17:39 | #


bon ok,
montre moi le script alors STP,
moi je n'ai pas réussi,
jte jure que je te l'envoie le champagne!!!

Ajouté le 19/12/2013 à 15:00 :
résultat final... en attendant la réponse de loulouX

Là ça marche à 100% dans la limite d'un affichage "norm" suffisant pour pour des euros donc.

0→Y
0→Q
0→X
?→A

'si a=0
If A=0
Then 2
2→Y
Goto 1
IfEnd

'si entier a=0
If Int A=0
Then
2→Y
IfEnd

'taille entier si>0
If Int (Abs A)>0
Then
Int (log (Abs A))+2→Y
IfEnd

'si neg +1
A<0⇒Y+1→Y

'si virgule +1
If Int A≠A
Then
Y+1→Y
IfEnd

'apres virgule

(Frac (Abs A))→X

If X>0
Then
Goto 0
Else
Goto 1
IfEnd

'comptage après virgule
Lbl 0
If Frac X>0
Then
X*10→X
Q+1→Q
Goto 0
Else
log (10^Q)→X
IfEnd

X+Y→Y

'vérification
Lbl 1
Locate 1,3,A
Locate Y,3,"€"


bon, faut aimer se prendre la tête pour du détail... mais ça fait plaisir :-)

Modifié par Dark Storm : merci d'utiliser la balise [ code ]
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 19/12/2013 18:52 | #


Tiens, ça me fait penser que récemment, j'avais essayé de faire un algorithme qui convertit n'importe quel nombre en String.
Mais ça me prenait la tête donc je l'ai laissé de côté
Krisacaen Hors ligne Membre Points: 52 Défis: 0 Message

Citer : Posté le 19/12/2013 19:09 | #


tu pourrais partager l'ébauche, ça donnerait des idées....
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 19/12/2013 20:37 | #


Non, pour l'instant c'est un code de 208 octets qui ne marche même pas comme il faut, que j'ai programmé vite fait
Riptor Hors ligne Membre Points: 722 Défis: 0 Message

Citer : Posté le 24/03/2014 14:34 | #


Désolé d'upper le topic mais le sujet m'intéressait à la vue du titre mais en fait j'ai l'impression que y'a pas la réponse

Donc finalement, est ce qu'on peut insérer une variable dans un String ?
En fait, je voudrais utiliser la fonction Menu, mais dans les choix possibles afficher des valeurs de variables, c'est possible ?

Désolé, j'ai des années de retard en prog Casio à rattraper

PS : Et si le champagne est toujours dispo, j'ai une adresse également
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 24/03/2014 16:45 | #


Le programme que j'utilise:
prog int2str
Cliquer pour enrouler
[gray]""[/gray][b]->[/b]Str [maroon]2[/maroon]
[b][blue]If[/blue][/b] θ≠0 And θ≠-1
[b][blue]Then[/blue][/b] Abs θ
[b][blue]For[/blue][/b] [maroon]1[/maroon][b]->[/b]r [b][blue]To[/blue][/b] [maroon]1[/maroon]+Intg log Ans
StrMid([gray]"0123456789"[/gray],[maroon]1[/maroon]+Int (10Frac (θÁ10^ª)),[maroon]1[/maroon])+Str [maroon]2[/maroon][b]->[/b]Str [maroon]2[/maroon]
[b][blue]Next[/blue][/b]
[b][blue]If[/blue][/b] Frac θ≠0
[b][blue]Then[/blue][/b] Str [maroon]2[/maroon]+[gray]"."[/gray][b]->[/b]Str [maroon]2[/maroon]
-1[b]->[/b]r
[b][blue]While[/blue][/b] Frac (θ*10^(r+1))≠0
r+1[b]->[/b]r
Str [maroon]2[/maroon]+StrMid([gray]"0123456789"[/gray],[maroon]10[/maroon]Frac (.1Int (10(Frac Ans*10^r)))+1,[maroon]1[/maroon])[b]->[/b]Str [maroon]2[/maroon]
[b][blue]WhileEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
θ<0⇒[gray]"-"[/gray]+Str [maroon]2[/maroon][b]->[/b]Str [maroon]2[/maroon]
[b][blue]Else[/blue][/b] θ=[maroon]0[/maroon]⇒[gray]"0"[/gray][b]->[/b]Str [maroon]2[/maroon]
θ=-1⇒[gray]"-1"[/gray][b]->[/b]Str [maroon]2[/maroon]
[b][blue]IfEnd[/blue][/b]

Après il suffit de mettre ça dans un sous-programme pour l’appeler dès qu'on veut, le code marche pour les nombres positifs et négatifs mais pas avec les nombres à virgule.
Par contre je ne sais plus où j'ai trouvé cette fonction

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