Posté le 10/04/2013 18:09
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 316 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
Citer : Posté le 10/04/2013 18:36 | #
Voici le code que j'utilise personnellement, à enrichir suivant tes besoins :
For 1->Y To 1+Intg log Z
StrMid("0123456789",1+Int (10Frac (Z/10^Y)),1)+Str 1->Str 1
Next
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 10/04/2013 18:42 | #
Ce code ne marche qu'avec les entiers naturels, mais est très performant
Citer : Posté le 10/04/2013 18:50 | #
Merci pour le code, mais j'ai deux questions :
Qu'est-ce qui doit être mis dans les variables Y et Z, et là je viens de tester avec le chiffre 3 et il m'a mis "3456789" (je m'y suis surement mal pris).
Citer : Posté le 10/04/2013 18:54 | #
Dans Y rien, dans Z le nombre à transférer
Citer : Posté le 10/04/2013 18:59 | #
En tout cas ça marche pas j'ai "3456789" alors que je veux juste "3"
Citer : Posté le 10/04/2013 20:22 | #
Tu as bien mis "StrMid" ?
Si tu veux rentrer un nombre décimal ou même complexe il suffit de découper ton nombre en "morceaux" (partie réelle, partie imaginaire, partie entière, partie décimale) et de les faire passer un à un par cette petite boucle qui a pour paramètre la variable Z, celle que tu souhaites mettre dans une Str. Entre chaque étape il te suffit d'ajouter tantôt une virgule, tantôt, un "+i" etc...
Ajouté le 10/04/2013 à 20:28 :
Au fait, vérifie que tu as bien été chercher la fonction \"Intg\".
Et le \"/\" symbolise un \"divisé\".
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 10/04/2013 20:30 | #
C'est bon, j'avais oublié le ",1" à la fin du StrMid...
Donc là ça marche, sauf quand j'essaye de mettre 33 il me met 3.
Je pense que je vais devoir remplacer ce "1" par une formule qui remplace le "1" par un "2" quand on arrive à 10 (si c'est possible).
Citer : Posté le 10/04/2013 20:35 | #
C'est normalement à ça que sert le "1+Intg log Z" !
Tu n'as pas oublié le "->Str 1" ?
Retente avec 33 et vérifie que la boucle tourne 2 fois. Si c'est le cas c'est que le problème se trouve en son sein. Sinon c'est qu'il faut changer le "To"...
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 10/04/2013 20:43 | #
Bon en fait j'avais aussi oublié de mettre le "+Str 4" avant le "->Str 4" (Je suis fatigué moi... ).
Tout marche correctement maintenant, merci Ne0tux et Dark Storm !
Edit : Bon, je m'en doutais, il va falloir faire du rafistolage pour que ça accepte les variables qui valent 0.
Citer : Posté le 10/04/2013 21:17 | #
Avec plaisir !
Oui pour les variables qui valent 0 il te suffit de mettre un "If Then Else Ifend" avec en Then cette boucle et en Else "0"->Str 1.
Le soucis viens simplement de la fonction log qui par définition n'est pas définie en 0 !
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 10/04/2013 21:30 | #
Encore merci Ne0tux !
Grâce à toi le créateur de cartes de Robscape 2 est presque terminé (faut juste mettre des sécurités antinombreimprévuquequelqu'undetropcurieuxavoulumettre ) puis faire les deux derniers gamemodes.
Citer : Posté le 10/04/2013 21:35 | #
Génial !
Au fait, tu pouvais retrouver ce bout de code dans Arkenstone, je m'en servais justement pour l'éditeur.
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Citer : Posté le 10/04/2013 22:29 | #
Perso, j'utilise ça :
For -5->I To Int log Abs X
I=0=>"."+Str 1->Str 1
MOD(Int (Abs X/10^I),10)
StrMid("0123456789",Ans+1,1)+Str 1->Str 1
Next
X<0=>"-"+Str 1->Str 1
Ce code gère les nombres à virgule, et négatifs, mais par contre tu dois indiquer le nombre de chiffres après la virgule.
Citer : Posté le 11/04/2013 20:49 | #
Oui c'est sensiblement la même chose, je pense qu'on peut difficilement faire plus court.
La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !