Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » [BASIC] Nombre vers String et inversement
Darkyzshadow Hors ligne Membre Points: 10 Défis: 9 Message

[BASIC] Nombre vers String et inversement

Posté le 05/11/2015 18:31

Salut à tous, j'ai un problème.
Je cherche à développer en programme de conversion de la base 10 à une base en décimal à point (utilisé les adresse IP).

Pour la conversion base 10 vers 10 pointé, imaginons que mon résultat soit 2.0.0, je crée une liste qui contient :
{[maroon]0[/maroon],[maroon]0[/maroon],[maroon]2[/maroon]}[b]→[/b]List [maroon]1[/maroon]

Via une boucle for qui décrémentera le compteur, j'aimerais savoir si il était possible d'afficher mon résultat sous la forme : 2.0.0 = 131072 (j'ai déjà l'algo).

Pour la conversion base 10 pointé vers 10 je voudrais savoir si il étais possible de "spliter" ma string et de la convertir en variable. Exemple : l'utilisateur entre "2.0.0". Je voudrais pouvoir obtenir :
2[b]→[/b]A
0[b]→[/b]B
0[b]→[/b]C


Merci


Dark storm En ligne Labélisateur Points: 11578 Défis: 176 Message

Citer : Posté le 05/11/2015 18:37 | #


J'ai une solution, je passe dans 2h l'expliciter
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Darkyzshadow Hors ligne Membre Points: 10 Défis: 9 Message

Citer : Posté le 05/11/2015 18:39 | #


Dark storm a écrit :
J'ai une solution, je passe dans 2h l'expliciter

MERCI
Dark storm En ligne Labélisateur Points: 11578 Défis: 176 Message

Citer : Posté le 05/11/2015 22:05 | #


Bref.

J'ai pas trop compris la première partie, mais pour la seconde c'est assez simple, pour peu qu'on ai un peu d'agilité d'esprit avec les strings

Pour spliter la string, le mieux est de retourner une liste plutôt que des variables.
On utilisera aussi les fonctions StrSrc, StrLeft, StrRight, StrLen et Exp(). Tu trouvera tout ça dans la liste des fonctions (Dans le menu "Outils" y'a un lien).

Faut savoir que la syntaxe est très lourde, mais fonctionnelle et plutôt rapide d'ailleurs.
Je simplifie un peu le programme en mettant dans une liste le nombres de la chaîne, quelle que soit sa taille.

Donc voici comment ça marche :
Dans la string 1 on met l'entrée
Dans une boucle
– On cherche la position d'un éventuel "."
– Si il y en a un, on met la partie qui se trouve avant dans la string 2, et celle qui se trouve après dans la string 1
– Sinon on met la string 1 dans la string 2
– On converti la string 2 en nombre
– On place ce nombre dans la liste de résultat
– On recommence avec le bout de string 1 qui reste

Si tu n'arrive pas à coder ça, poste ce que tu as cherché, on t'expliquera où se trouve le problème


Ajouté le 05/11/2015 à 22:06 :
Ah oui, bien entendu si la liste ne comporte plus de "." on quitte la boucle x)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Darkyzshadow Hors ligne Membre Points: 10 Défis: 9 Message

Citer : Posté le 05/11/2015 22:45 | #


Merci de ta réponse.
En fait, mon problème se trouve ici :
Dark storm a écrit :
– On converti la string 2 en nombre

Je ne sais pas convertir une string en nombre et vice versa

Dark storm a écrit :
J'ai pas trop compris la première partie

En fait, l'utilisateur entre un nombre en base décimale, et mon algo génère une liste de nombre que je dois séparer par un point pour obtenir mon nombre en décimal à point.
Exemple : si l'utilisateur entre 131072, mon algo va générer une liste contenant 2, 0 et 0. Il me reste juste à trouver comment convertir ces nombres en strings et à les séparer par des points ce qui donnera 2.0.0.
Totoyo Hors ligne Membre d'honneur Points: 16076 Défis: 102 Message
Dark storm En ligne Labélisateur Points: 11578 Défis: 176 Message

Citer : Posté le 06/11/2015 07:24 | #


C'est la fonction Exp()
Je t'ai donné les références
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Darkyzshadow Hors ligne Membre Points: 10 Défis: 9 Message

Citer : Posté le 06/11/2015 13:03 | #


Totoyo a écrit :
Pour les conversions Nombre - String : Regarde mon profil : totoyo, le programme Var2Str
Ok. Je regarde ça ce soir. Merci

Dark storm a écrit :
C'est la fonction Exp()
Je t'ai donné les références
Je sais mais j'ai pas trop compris comment ça marche. Je vais faire quelques tests pour voir.

Edit : Autant pour moi, j'avais pas vu ça : Exp()
Lephenixnoir En ligne Administrateur Points: 22869 Défis: 149 Message

Citer : Posté le 07/11/2015 15:40 | #


Pour, Exp() c'est simple, tu lui donnes le calcul et elle renvoie la valeur.
Exp("3*4+cos(ln(1))") // 13
Darkyzshadow Hors ligne Membre Points: 10 Défis: 9 Message

Citer : Posté le 10/11/2015 12:47 | #


Lephenixnoir a écrit :
Pour, Exp() c'est simple, tu lui donnes le calcul et elle renvoie la valeur.
Exp("3*4+cos(ln(1))") // 13
Merci

Ajouté le 10/11/2015 à 12:48 :
Ça y est, je viens de pondre un truc 8) 8) 8)
Par contre, comme d'hab, ça manque d'optimisation

Merci à vous pour votre aide.

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 v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 68 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