| 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 : 3738
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 |
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
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 : 3738
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 : 2086
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.
|
 |
|
| |
doomsday
Invité
|
Posté le : Mer 13 Oct 2010, 16:32
|
|
|
ok et sinon on trouve où la chaine1?
|
| |
|
| |
Persalteas
Autorisation : Membre
Nb de messages : 2086
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 : 2086
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 : 2086
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 : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Jeu 14 Oct 2010, 20:58
|
|
|
ouch!
bah, désolé mais moi non plus.
|
 |
|
| |
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 : 3738
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 : 3293
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 : 2086
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.
|
 |
|
| |
doomsday
Autorisation : Membre
Nb de messages : 16
Inscrit le : Lun 11 Oct 2010, 21:51
|
Posté le : Sam 16 Oct 2010, 17:17
|
|
|
ok merci
|
 |
|
| |
Prof-DeMath
Invité
|
Posté le : Dim 17 Oct 2010, 22:07
|
|
|
Bonjour,
je suis professeur de math au lycée vinci et je remarque que la date de ce sujet correspond étrangement à c'elle ou j'ai donné un devoir maison demandant de faire un programme comptant les caractère d'une entrée sur une ti, ne devant pas compter les zéro après la virgule, et comptant la "," comme un caractère. Soupçonnant un élève, j'espère qu'à l'avenir il fera ces devoirs maison par lui même, au lieu de ce les faire faire par d'autre personnes. Je verrais bien sur les copies qui est cette personne, j'espère m’être trompé..
Cordialement.
|
| |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Dim 17 Oct 2010, 22:46
|
|
|
Tiens, pour une fois que c'est un professeur qui viens et pas un élève.
A ce propos, je trouve intéressant qu'un prof essaye d'inculqué la programmation à ses élèves mais en général quand il donne à ses élèves un exercice, ils n'ont aucune indication d'où leur arrivée sur ce forum.
Et pendant que j'y pense, voila un programme pour compter les caractères d'un nombre (virgule comprise).
| Code |
Input "NOMBRE:",A
partEnt(A->B
partDéc(A->C
0->D
0->E
While 9*10^D<B
D+1->D
End
While 9*10^E<C
E+1->E
End
Output(2,1,"NOMBRE DE
Output(3,1,"CARACTERES:
Output(4,1,D+E+1 |
Sangohan38
PS: Ce prog n'a pas du tout été testé.
|
 |
|
| |
Akmdad
Autorisation : Membre
Nb de messages : 713
Inscrit le : Mar 22 Jui 2010, 21:03
|
Posté le : Jeu 21 Oct 2010, 15:43
|
|
|
| Citer : persalteas | | avec une chaine, ce n'est pas possible, car la chaine est une variable de texte, et pas de valeur. |
bien sur que si, il faudrait
| Code |
0[sto]B
For(A,1,Longueur(Chaine1
If B=/=1
1+C[sto]C
If sous-chaine(Chaine1,A,1)=",
1[sto]B
End
Disp C
|
---------------------- retrouvez moi sur twitter!!!
j'ai une ti 82 stats fr et une ti89 titanium  |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 21 Oct 2010, 16:42
|
|
|
Aaaah ! j'avais jamais compris ça,merci beaucoup persalteas ^^
|
 |
|
| |
Persalteas
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Sam 23 Oct 2010, 13:26
|
|
|
t'as raison akmdad.
|
 |
|
| |
linkakro
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Lun 01 Nov 2010, 0:47
|
|
|
Sangohan38, j'ai testé ton programme et c'était faux.
Ce programme-ci gère tous les réels en écriture normale.
| Code | Prompt A
0->D
While fPart(C*10^(D
D+1->D
End
0->E
While iPart(B*10^(-E
E+1->E
End
Disp E+D+(A<=0)+(D!=0) |
---------------------- 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 |
 |
|
| |