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 » Str ?
Blerain Hors ligne Membre Points: 64 Défis: 0 Message

Str ?

Posté le 09/10/2013 18:41

Salut
J'ai un petit problème dans mon programme.

For 1ãB To StrLen(Str 10):9Ù
Exp(StrMid(Str 10,9B-8,9B-8+8))ãList 1[B]Ù
NextÙ


Mon STR 10 c'est "2D+DC-C+1002D+DC-10000002002D+DC-C+1002D+DC-1000000200002D+DC+12D+DC-C+1000000200002D+DC-1002D+DC-1"

Et C c'est 4.

Je voudrais
liste 1[1] prenne 2D+DC-C+1
liste 1[2] prenne 002D+DC-1
liste 1[3] prenne 000000200
[...]
En gros je veux que la STR 10 se mette dans la liste 1 par paquet de 9
Je comprends pas pourquoi pour Liste 1 [1] il me met bien 2D+DC-C+1
Mais pour Liste 1[2] il me met 002D+DC-1000000200 ( Soit 2x9 caractères)

Merci !

J'ai mis tout mon programme en fichier joint.


Fichier joint


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

Citer : Posté le 09/10/2013 18:48 | #


Les listes ne peuvent pas enregistrer de caractères. Il faut que tu convertisses des chiffres (qui sont des caractères) en nombres.
Un membre avait publié un programme qui le faisait, quelqu'un sait où le retrouver ?
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 09/10/2013 18:51 | #


@Totoyo
La fonction "Exp" permet d'éxecuter un calcul qui est dans une Str (par exemple "18*B")


@Blerain
A la première exécution de la boucle B=1
Donc tu prends bien 9B-8+8 = 9 caractères
Mais a la secondes exécution de la boucle B=2 (Comme tu utilise un For ... To ...)
Ce qui te fais 9B-8+8 = 18 caractères

D'ailleurs pourquoi avoir fait 9B-8+8 ?

Ajouté le 09/10/2013 à 18:55 :
Voilà comment j'aurais écrit le programme :
For 1->B To StrLen(Str 10) Step 9
Exp(StrMid(Str 10,B,9))->List 1[(B+8)/9]
Next

Tweaks : ||||| ||||
Blerain Hors ligne Membre Points: 64 Défis: 0 Message

Citer : Posté le 09/10/2013 18:56 | #


OK c'est bon merci !
J'suis trop bête sa fais trois heures que je bloque dessus alors que je me sers tout le temps de cette fonction ...

Chez moi il pleut 2 fois par an.
Une fois pendant 4 mois.
Une autre pendant 6 mois.
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 09/10/2013 18:58 | #


J'ai rajouté le programme simplifié, il faut utiliser la fonction "Step" pour augmenter B de 9 en 9
Tweaks : ||||| ||||
Dark storm Hors ligne Labélisateur Points: 11620 Défis: 176 Message

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


Totoyo a écrit :
Un membre avait publié un programme qui le faisait, quelqu'un sait où le retrouver ?

J'avais fait Str2Int et Int2Str, disponibles ici : http://www.planet-casio.com/Fr/programmes/programme1828-1-alpha-convert-dark-storm-programme.html
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 16091 Défis: 102 Message
Dark storm Hors ligne Labélisateur Points: 11620 Défis: 176 Message

Citer : Posté le 09/10/2013 19:15 | #


mais c'est le genre de programme facile à faire:

Str -> Int
?->Str 1
"0123456789"->Str 20
0->A
For 1->B To StrLength Str 1
10A+StrSrc(Str 20, StrMid(Str 1, B, 1))-1->A
Next


Int -> Str (ne fonctionne que pour les entiers naturels, mais peut être adapté aux réels et aux complexes)
?->A
"0123456789"->Str 20
""->Str 1
While A
StrMid(Str 1, 10Frac (A/10), 1)+Str 1->Str 1
Int (A/10)->A
WhileEnd


Comme d'hab, c'est fait en 2 minutes, c'est pas testé, mais c'est théoriquement fonctionnel
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 09/10/2013 19:23 | #


Str -> Int
est remplaçable par exp() comme l'a dit Blerain, quant a Int -> Str j'aimerais vous proposer ma version:
(codée par hasard aujourd'hui quand je me fessais chier en info, en même temps que quelques autres petit programmes utiles)

'#INPUT
Int Ans

'#OUTPUT
'Str 20

""->Str 20
For (1+Int log Abs Ans)->r To 1 Step -1
StrMid("0123456789",1+Int Abs (10Frac .1Ans),1)+Str 20->Str 20
Ans/10
Next
Ans<0=>"-"+Str 20-Str 20


cette version gère les nombre entiers positif et négatif (entiers relatifs)

j'ai pris l'habitude de faire mes programmes sur ce model quand ils sont conçu en tant que sous programme commun a plusieurs autres programmes (avec un nom explicite bien sur)

l'utilisation ce fait comme ceci pour convertir mettre 146 dans le str 1:
146
Prgm "INT2CHAR"
Str 20->Str 1

Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)

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