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 » Intégrer une valeur dans un Str
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Intégrer une valeur dans un Str

Posté le 24/06/2013 15:48

J'aimerais intégrer la valeur d'une variable dans une chaîne de caractère. Comme par exemple :
2->A
A->Str 1

Je voudrais ici que Str 1 prenne la valeur de A, qui est de 2 ici. (bon, évidemment l'exemple donné au dessus ne marche pas, c'était juste pour illustrer ma démarche).


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

Citer : Posté le 24/06/2013 16:00 | #


Le code que tu cherches a été posté quelque part, il ne nous reste plus qu'à le retrouver. Je poste le lien sur si je le trouve.
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 24/06/2013 16:04 | #


Si tu n'a que des entiers positifs, tu peux faire:

125[b]->[/b]A
[gray]""[/gray][b]->[/b]Str [maroon]1[/maroon]
[gray]"0123456789"[/gray][b]->[/b]Str [maroon]20[/maroon]
[b][blue]While[/blue][/b] Int A != [maroon]0[/maroon]
10Frac (A/10)[b]->[/b]B
Int (A/10)[b]->[/b]A
StrMid(Str [maroon]20[/maroon], B, [maroon]1[/maroon])+Str [maroon]1[/maroon][b]->[/b]Str [maroon]1[/maroon]
[b][blue]WhileEnd[/blue][/b]


Ajouté le 24/06/2013 à 16:05 :
Mais quelqu\'un avait fait un code qui prend tout les nombres en compte (décimaux relatifs)
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Citer : Posté le 24/06/2013 16:10 | #


J'ai des valeurs qui font jusque 1.7060507050805 , donc avec plus de 10 chiffres significatifs :x

Édit : Ah, j'ai même des 1.51060507050805, mais ça va pas plus haut x) (ou bas.)

Édit 2 : Bon, j'ai regardé un peu toutes les solutions proposées, j'vais les remanier un peu pour avoir ce dont j'ai besoin, si jamais ça va pas je reviens ici. Merci pour les idées en tous cas

Ajouté le 24/06/2013 à 18:40 :
?[b]->[/b]A
[gray]\"0123456789\"[/gray][b]->[/b]Str [maroon]8[/maroon]
[gray]\"\"[/gray][b]->[/b]Str [maroon]9[/maroon]
[b][blue]If[/blue][/b] A=[maroon]0[/maroon]
[b][blue]Then[/blue][/b] [gray]\"0\"[/gray][b]->[/b]Str [maroon]9[/maroon]
[b][blue]Else[/blue][/b] Int (log A)[b]->[/b]B
[b][blue]If[/blue][/b] B>=[maroon]0[/maroon]
[b][blue]Then[/blue][/b] A/10^B[b]->[/b]C
[b][blue]For[/blue][/b] [maroon]1[/maroon][b]->[/b]Z [b][blue]To[/blue][/b] B+1
Str [maroon]9[/maroon]+StrMid(Str [maroon]8[/maroon],Int (C)+1,[maroon]1[/maroon])[b]->[/b]Str [maroon]9[/maroon]
(C-Int C)*10[b]->[/b]C
[b][blue]Next[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][blue]If[/blue][/b] Int A<>A
[b][blue]Then[/blue][/b] Str [maroon]9[/maroon]+[gray]\".\"[/gray][b]->[/b]Str [maroon]9[/maroon]
0[b]->[/b]Z
0[b]->[/b]C
[b][blue]Do[/blue][/b]
Int (Frac (A*10^Z)*10)[b]->[/b]C
Str [maroon]9[/maroon]+StrMid(Str [maroon]8[/maroon],Int (C)+1,[maroon]1[/maroon])[b]->[/b]Str [maroon]9[/maroon]
[b][blue]Isz[/blue][/b] Z
[b][blue]LpWhile[/blue][/b] Frac (A*10^Z)
[b][blue]IfEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],Str [maroon]9[/maroon]


Marche avec tous les réels, avec un maximum de 15 chiffres significatifs.
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 24/06/2013 18:49 | #


Ton code gère pas les négatifs ?
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Citer : Posté le 24/06/2013 19:10 | #


?[b]->[/b]A
[gray]"0123456789"[/gray][b]->[/b]Str [maroon]8[/maroon]
[gray]""[/gray][b]->[/b]Str [maroon]9[/maroon]
[b][blue]If[/blue][/b] A=[maroon]0[/maroon]
[b][blue]Then[/blue][/b] [gray]"0"[/gray][b]->[/b]Str [maroon]9[/maroon]
[b][blue]Else[/blue][/b] Int (log A)[b]->[/b]B
[b][blue]If[/blue][/b] ImP B<>0
[b][blue]Then[/blue][/b] [gray]"-"[/gray]+Str [maroon]9[/maroon][b]->[/b]Str [maroon]9[/maroon]
Int (log -A)[b]->[/b]B
-A[b]->[/b]A
[b][blue]IfEnd[/blue][/b]
[b][blue]If[/blue][/b] B>=[maroon]0[/maroon]
[b][blue]Then[/blue][/b] A/10^B[b]->[/b]C
[b][blue]For[/blue][/b] [maroon]1[/maroon][b]->[/b]Z [b][blue]To[/blue][/b] B+1
Str [maroon]9[/maroon]+StrMid(Str [maroon]8[/maroon],Int (C)+1,[maroon]1[/maroon])[b]->[/b]Str [maroon]9[/maroon]
(C-Int C)*10[b]->[/b]C
[b][blue]Next[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][blue]If[/blue][/b] Int A<>A
[b][blue]Then[/blue][/b] Str [maroon]9[/maroon]+[gray]"."[/gray][b]->[/b]Str [maroon]9[/maroon]
0[b]->[/b]Z
0[b]->[/b]C
[b][blue]Do[/blue][/b]
Int (Frac (A*10^Z)*10)[b]->[/b]C
Str [maroon]9[/maroon]+StrMid(Str [maroon]8[/maroon],Int (C)+1,[maroon]1[/maroon])[b]->[/b]Str [maroon]9[/maroon]
[b][blue]Isz[/blue][/b] Z
[b][blue]LpWhile[/blue][/b] Frac (A*10^Z)
[b][blue]IfEnd[/blue][/b]
[b][blue]IfEnd[/blue][/b]
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],Str [maroon]9[/maroon]


Maintenant oui.


Bon, sinon en fait j'ai un autre problème auquel j'avais pas pensé avant.
Je bosse sur un éditeur de map pour Portal, qui éviterait d'avoir à taper manuellement les données dans la matrice (ou dans un programme plutôt).
Est-il possible, en passant par une quelconque méthode, de pouvoir copier/coller le contenu d'un Str ?
J'avais pensé à les mettre des les List, quand j'me suis rendu compte que ces celles ne pouvaient contenir que 8 caractères.

Ajouté le 24/06/2013 à 19:16 :
OH NIQUEL JE CROIS QUE J\'AI TROUVÉ ! _o/

Str 1 -> fn1 marche.
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 24/06/2013 19:35 | #


oui, c'est ce que j'allais dire
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shyked Hors ligne Membre Points: 272 Défis: 20 Message

Citer : Posté le 24/06/2013 19:43 | #


Bon, le soucis c'est que les chaînes de caractères en elles-même sont limitées à 256 caractères, mais les calculs de Str aussi.
Donc pas de Str 1+Str 2+Str 3->fn1 si la somme des trois chaînes est supérieure à 256 caractères :/

Question HS du coup : Mon éditeur je le mets avec le jeu Portal ou dans un autre programme ? Et si c'est dans un autre programme je le place plutôt dans Jeux ou dans Utilitaires ?
Totoyo Hors ligne Membre d'honneur Points: 16102 Défis: 102 Message
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 24/06/2013 20:58 | #


?->A
"0123456789"->Str 2
Int Abs A->B
While B
StrMid(Str 2,B Rmdr 10+1)+Str 1->Str 1
B Int+ 10->B
WhileEnd
Abs Frac A->B
B=>Str 1+"."->Str 1
While B
Str 1+StrMid(Str 2,Int 10B+1,1)->Str 1
Frac 10B->B
WhileEnd
Int A=0=>"0"+Str 1->Str 1
A<0=>"-"+Str 1->Str 1

Locate 1,1,Str 1

Une version plus courte et propre que je viens de faire si tu veux

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