compter des caractères |
Auteur |
Message |
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Lun 11 Oct 2010, 21:54
|
|
|
bonjour j'aimerais savoir si il existe un programme qui compte le nombre de caractères entrés( sauf les 0 après la virgule) et qui l'affiche.
Si oui est-ce que vous pouvez l'afficher.
merci d'avance
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 11 Oct 2010, 23:01
|
|
|
Tes caractères sont-ils stockés dans une chaîne ?
Si oui : longueur(Chaîne1)->L
Si non : 1+int(log(X)) pour les entiers
Je cherche un algorithme valable pour la partie décimale.
---------------------- 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)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Mar 12 Oct 2010, 16:16
|
|
|
non ils ne sont pas sont pas dans une chaine mais quand je met la "fonction" que tu m'a donné et que j'essaie le programme sa met erreur étiquette
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 13 Oct 2010, 0:17
|
|
|
Je ne peux pas avoir provoqué ce type d'erreur car c'est une formule de maths.
La seule erreur qui ne vient pas de la syntaxe, c'est lorsque X=0.
Et puis je pense évident que tu as placé un sto et choisi tes variables.
---------------------- 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)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Mer 13 Oct 2010, 15:29
|
|
|
err étiquette, d'habitude, c'est du aux Lbl et Goto et autres Menu( je crois.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
doomsday
Invité
|
Posté le : Mer 13 Oct 2010, 16:32
|
|
|
ok et sinon on trouve où la chaine1?
|
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Mer 13 Oct 2010, 16:37
|
|
|
[var][7][1]
|
|
|
|
doomsday
Invité
|
Posté le : Jeu 14 Oct 2010, 17:46
|
|
|
ok c'est bon mais quand j'entre la valeur de la chaine après sa me met erreur type donné et sinon quand je choisi la fonction pour les variables sa compte que les chiffres avant la virgule alors que je veux que sa compte tout(la virgule y compris) sauf les 0 inutiles après la virgule
|
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Jeu 14 Oct 2010, 18:55
|
|
|
c'est bon sa marche(avec les chaines) mais sa compte les 0 inutiles, est-ce que quelqu'un sait comment on fait pour ne pas les compter?
|
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Jeu 14 Oct 2010, 19:49
|
|
|
avec une chaine, ce n'est pas possible, car la chaine est une variable de texte, et pas de valeur.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Jeu 14 Oct 2010, 19:59
|
|
|
dans ce cas comment faut-il faire?
|
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Jeu 14 Oct 2010, 20:28
|
|
|
ça marche pas, la formule que linkakro a donné?
|
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Jeu 14 Oct 2010, 20:31
|
|
|
bah sa compte ni la virgule ni les chiffres après
j'ai trouver quelque chose:(partEnt(partDéc(log(X)))x[racine carré de]2xNombre de caractères après la virgule)+1
le +1 c'est pour compter la virgule mais justement on veut savoir le nb de caractères après la virgule donc je sais pas quoi faire
|
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Jeu 14 Oct 2010, 20:58
|
|
|
ouch!
bah, désolé mais moi non plus.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Jeu 14 Oct 2010, 22:04
|
|
|
sinon j'avais trouvé autre chose mais sa marche pas:on demande un chaine puis on la stocke dans une variable(donc les zéros inutiles disparaissent) puis on la restocke dans une chaine et après on fait longueur(chaine) et sinon linkaro t'as pas trouvé comment faire pour la partie décimale?
PS:quelqu'un peut me dire a quoi sert la fonction "log(" svp
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Ven 15 Oct 2010, 0:12
|
|
|
Ce que tu as tenté est une de mes plus grandes motivation d'envisager d'apprendre l'asm, et ce depuis longtemps.
Je rappelle que j'avais précisé que ma formule ne traîtait que les entiers.
J'ai conçu deux versions d'un prog complet, dont une qui est cappable de traîter le nombre de chiffres de la mantisse d'un nombre très grand ou très petit. Tu n'as sûrement besoin que de la première, je la poste.
Code | Prompt C
abs(C)->A
A->B
If iPart(A)=0
1->B
1+iPart(log(iPart(B)))->E
For(W,1,14
iPart(10fPart(A*10^(W-1)))->L1(W)
End
For(D,14,1,-1
If L1(D)ø0
Goto D
End
Lbl D
E+D->N
If D
N+1->N
If C<0
N+1->N
Disp N |
Ce prog ne peut pas traîter plus de 14 chiffres à cause de la capacité mémoire des réels.
---------------------- 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)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Ven 15 Oct 2010, 18:31
|
|
|
merci il fonctionne bien et c'est pg si il ne traite que 14chiffres max mais il y a quelques fonctions que j'aimerais savoir ce qu'elles font: "log("; "abs"; "goto" et "lbl"
et encore merci pour le programme
|
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 15 Oct 2010, 20:08
|
|
|
La fonction logarithme décimale (appelée log10 ou log sur les caltos) est une fonction qui transforme les exposants en coefficients et les produits en additions et en posant log(1)=0. On augmente de 1 pour chaque unité de pls
Par exemple: log(10^3*30^45)=3log(10)+45log(30)=3*2+45*2log(3)
La courbe associée est:
La fonction abs sert à prendre la valeur absolue d'un nombre c'est à dire que le résultat est un nombre rationnel postif.
Par exemple, abs(-3.445)=3.445 mais on a aussi abs(3.445)=3.445.
La courbe associée est donc:
Les fonction lbl et goto servent à créer une boucle. En effet, la première définie le lieu de départ de la boucle et la seconde renvoie l'exécution du programme au début de la ligne qui suit le lbl (étiquette en anglais).
Bien sur, pour les utilisé, il faut donner un nom à ta boucle et cela peut être un chiffre (un nombre à deux chiffressur 82 STATS) ou une lettre (deux peuvent être misent sur 82 STATS).
J'espère que je ne t'ai pas ennuyer avec ces explications et qu'elles te serviront un jour.
Sangohan38
|
|
|
|
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Ven 15 Oct 2010, 21:48
|
|
|
ok merci je comprends mieux maintenant sauf pour:
Code |
For(D,14,1,-1
If L1(D)ø0
Goto D
End
Lbl D
E+D->N |
quand je remplace goto...lbl par repeat sa ajoute 1 a un nombre sans décimal alors j'aimerais bien savoir pourquoi?
et aussi:
c'est quoi la condition du If?
|
|
|
|
Persalteas
Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Sam 16 Oct 2010, 13:53
|
|
|
c'est la logique boléenne:
If D signifie If D existe, soit If D =/= 0
c'est un raccourci.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|