[CASIO] Longueur d'une variable
ImJDK
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
ImJDK Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
ImJDK Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir si il existe une fonction qui retourner la longueur d'une variable, par exemple 12 retournerais 2 (1 et 2) ou 562 retournerais 3 ainsi de suite.
Si cette fonction n'existe pas, comment est-il possible de la programmer ? (En BASIC)
merci d'avance
J'aimerais savoir si il existe une fonction qui retourner la longueur d'une variable, par exemple 12 retournerais 2 (1 et 2) ou 562 retournerais 3 ainsi de suite.
Si cette fonction n'existe pas, comment est-il possible de la programmer ? (En BASIC)
merci d'avance
A voir également:
- [CASIO] Longueur d'une variable
- Erreur argument casio graph 35+e ✓ - Forum calculatrices
- Vba range avec variable ✓ - Forum VB / VBA
- Mesurer longueur avec telephone - Guide
- Casio fx-92 affichage décimal ✓ - Forum calculatrices
- Casio vr200 mode d'emploi - Forum Autres périphériques et appareils
4 réponses
Je complète le message de Quent217 en proposant cet algo qui prend en compte les valeurs nulle et négatives :
1+Int (log(Abs A+(A=0)))
je peut te donner un algo , mais je ne connais pas le basic:
ici ton nombre sera nommé "var".
if( ! var/10^i > 0){ => si la variable divisée par 10 puissance i renvoie plus de 0, ca veut dire que la chaine fait au moins i caractères. tu ne rentre dans ce if que si le resultat de ce calcul est ifnérieur a 0 (=> tu est allé trop haut)
note que 10 puissance 0 est égal a 1.
je te laisse traduire ca en basic !
ici ton nombre sera nommé "var".
bool notfinished=true;
int i=0;
int count=0;
while(notfinished){
if( ! var/10^i > 0){
notfinished=false
i--;
}
i++;
}
return i;
if( ! var/10^i > 0){ => si la variable divisée par 10 puissance i renvoie plus de 0, ca veut dire que la chaine fait au moins i caractères. tu ne rentre dans ce if que si le resultat de ce calcul est ifnérieur a 0 (=> tu est allé trop haut)
note que 10 puissance 0 est égal a 1.
je te laisse traduire ca en basic !
il n'existe aucune fonction sur casio pour le faire.
tu peux utiliser l'algo donné par dudu3838 ou tout simplement faire int (log N)+1 :)
Par contre dans les deux cas ca marche uniquement pour les entier positifs (pour les négatif il suffit d'ajouter 1 mais pour les décimaux je n'ai pas encore trouvé de formule pour le faire)
--
tu peux utiliser l'algo donné par dudu3838 ou tout simplement faire int (log N)+1 :)
Par contre dans les deux cas ca marche uniquement pour les entier positifs (pour les négatif il suffit d'ajouter 1 mais pour les décimaux je n'ai pas encore trouvé de formule pour le faire)
--
Si on veut compter le - pour les nombres négatifs la formule est :
1+int(log(abs A+(A=0)))+(A<0)
--