Posté le 24/06/2013 15:48
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
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.
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 24/06/2013 16:04 | #
Si tu n'a que des entiers positifs, tu peux faire:
[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)
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 :
[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.
Citer : Posté le 24/06/2013 18:49 | #
Ton code gère pas les négatifs ?
Citer : Posté le 24/06/2013 19:10 | #
[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.
Citer : Posté le 24/06/2013 19:35 | #
oui, c'est ce que j'allais dire
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 ?
Citer : Posté le 24/06/2013 19:46 | #
Mets-le plutôt avec ton jeu Portal
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 24/06/2013 20:58 | #
"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