Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Mer 10 Aoû 2011, 14:52
Bonjour, alors je suis en train de faire un programme sans importance, bref voici d'abord le code:
Code
input "Argent:",Str1 // ici c'est des nombres.
input "petrole:",Str2
input "Or:",Str3
Str1->C // je veux mettre le résultat du input aussi dans la variable 'C'
Str2->P // ça marche pas bien sur, comment faire ? problème numéro 1 ^^
Str3->O
6C24->X //6*C*24
6P24->Y
6C24->Z
ClrDraw
Text(0,0,"Argent: ",Str1 //et la, si "argent" = 1500, que ça écrive "1.500"
Text(6,0,"Petrole: ",Str2 // si "petrole" = 50000000,que ça mette "50.000.000"
Voila je sais que c'est faisable avec les chaines et sous-chaine. merci d'avance
PS: il n'y a pas de nombre a virgule, que des nombre entier, je ne sais pas si ça poserais des problème.
(c'est l'équivalent de "int" en langage C++ )
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"
6C24->X
6P24->Y
6C24->Z
Fixe 3 //menu mode, le chifre 3
ClrDraw
Text(0,0,"Argent: ",.001C
If P<E6 // le "E" des puissances de 10
Text(6,0,"Petrole: ",.001P
Float //mode(à gauche des chifres)
If P>=E6 // le "E" des puissances de 10
Text(6,0,"Petrole: ",ent(PE-6),".",ent(PE(-)3),".",E3partdec(PE(-)3 //"E(-)"
représente le E des puissances de 10 suivit du moins des relatifs.
Sandro
PS : "j'èspère que mon "bidouillage" convient, on pourrait faire mieux, mais ce serrait plus lourd et pas focément mieux (teste, si ça ne te va pas préviens moi, je m'ocuperrait de faire un code pour des nombres sans limite de taille).
PS2 : pourquoi utilise tu des chaines et pas des nombres au départ?
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Mer 10 Aoû 2011, 15:48
car je pensais faire avec les sous-chaine mettre des "." a chaque fois qu'il le faut.
merci pour le premier problème je ne connaissais pas !
Ce qu'il y a c'est que je voudrais faire des calcules avec ces nombre et qu'a chaque fois le résultat sois avec des '.' a chaque millier et sans la lettre 'E' des puissances.
J'ai une autre idée plus facile: (et plus pratique) dès que le chiffre dépasse 1 million (mon exemple: '12 500 000') que ça tronque au million et a la première décimal, (mon exemple deviendrais: '12,5 million'
Pareil quand le chiffree dépasse 1 Milliard, 1Billion, 1Billiard, 1 trillion, 1 trillard.
la fonction pour tronqué c'est "int(" mais je sais pas si c'est possible de tronqué comme je voudrai le faire.
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 10 Aoû 2011, 17:57
Au cas-où :
Convertir une valeur en chaîne : sujet de mon programme VALSTR
J'ai d'ailleurs remarqué que je n'ai jamais posté de sujet avec ce programme à part.
( Si tu utilises des nombres négatifs à l'avenir, méfie toi de la différence entre int et iPart qui peuvent toutes deux tronquer. )
L'usage de "Text(" par sandro me plaît beaucoup.
J'hésite entre développer ça, créer une nouveauté ou trafiquer VALSTR.
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 10 Aoû 2011, 22:12
Pour ajoûter des séparateurs aux nombres contenus dans des chaînes
Les instructions signalées servent à rendre le résultat plus beau en enlevant les caractères innutiles.
Code
Input Str1
length(Str1üA
int(A/3üQ
A-3QüR
" üStr2
If R
" ."+sub(Str1,1,RüStr2 // " ."+ est facultatif
For(W,1,Q
Str2+"."+sub(Str1,R+3W-2,3)üStr2
End
sub(Str2,3,length(Str2)-2üStr2 // cette ligne est facultative
Disp Str2
Pour écrire un nombre avec les mots
Code
ClrDraw
"TRILLARDTRILLONSBILLIARDBILLIONSMILLIARDMILLIONSMILLE "üStr2
Input Str1
length(Str1üA
int(A/3üQ
A-3QüR
If R
Text(0,0,sub(Str1,1,R),sub(Str2,57-8Q,8
For(W,1,Q
Text(6W,0,expr(sub(Str1,R+3W-2,3)),sub(Str2,8W+57-8Q,8
End
Projet inachevé immaginé à partir de VALSTR.
Il décompose un nombre en une liste. Il pourrait servir dans des variantes des autres programmes.
Code
Prompt A
ClrList L1,L2
DelVar W
While iPart(A10^(-3W
W+1üW
iPart(1000fPart(A10^(-3WüL1(W
End
dim(L1üD
For(W,1,D
L1(D+1-WüL2(W
End
Disp L2
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Autorisation : Membre
Nb de messages : 178
Inscrit le : Sam 02 Avr 2011, 12:53
Posté le : Ven 12 Aoû 2011, 23:34
merci pour vos réponses, je n'ai pas le temps de les testers (et oui même ce ptite bou de programme) je suis super occuper pour le moment dans une semaine je testerais tout ça
---------------------- "Des millions de gens ont vu tomber une pomme, Newton est le seul a s'être demandé pourquoi ."
"L'urgent est fait, l'impossible est en cours.
un probléme a toujours une solution, la solution est de trouver le probléme, pour les miracles, prévoir un délai ...
"