Les chaines de caractères en Basic Casio

VII - Les chaines de caractères

Avant de commencer, les chaines de caractères ne sont pas disponibles sur toutes les calculatrices. Dans le menu (PRGM) puis [F6] -> [F6], vous devez avoir l'onglet STR. Sans cela, vous ne pouvez pas les utiliser, ces fonctions étant absentes.

Voici la liste des calculatrices compatibles :

  • Graph 25+ PRO
  • Graph 35+ USB (NB : la Graph 35+ et la Graph 35+ USB sont deux modèles différents !)
  • Graph 75
  • Graph 85 (SD) avec la mise à jour 2.xx
  • Graph 95 SD
  • Fx-CG 10
  • Fx-CG 20

Pour connaitre la version du système de votre calculatrice, allez dans SYSTEM puis Version [F4]. Si votre Graph 85 (SD) affiche 01.xx.xxxx, mettez-la à jour soit via notre site, soit via edu.casio.com. Je n’ai pas trouvé d’alternative légale et gratuite pour ceux qui ne possèdent pas une de ces calculatrices. Les Graph 35+ USB sont assez répandues, trouvez un(e) ami(e) qui accepterait de vous la prêter. Je vous conseille vivement de lire ce chapitre car c’est de loin celui qui me plait le plus !

Notions de base

Une chaine de caractères ou string en anglais est une liste composée de caractères. Par exemple, "SALUT" est une chaine de caractères, tout comme "}75GRH$0-T5{aft" (même si cela ne veut rien dire pour nous). Les chaines de caractères sont délimitées par des guillemets « " ».

"CASIO" //Une chaine contenant les caractères ‘C’ ‘A’ ‘S’ ‘I’ ‘O’
CASIO //Sans les guillemets, la calculatrice interprète cela comme le produit (multiplication) des variables C, A, S, I et O
"7851" //Une autre chaine contenant les caractères ‘7’ ‘8’ ‘5’ ‘1’
7851 //Pour la calculatrice, il s’agit simplement d’une valeur : 7851

Rappelez-vous toujours qu’une chaine de caractères est délimitée par des guillemets, sinon la calculatrice l’interprète comme un calcul.

Les chaines de caractères ont des variables propres : Str suivi d'un numéro entre 1 et 20. La variable Str se trouve dans [VARS] -> [F6] -> [F5]. Elle fonctionne sur le même principe que les variables normales.

//Comme avec les variables, on utilise -> pour attribuer une "valeur" à une chaine de caractères
"MA CHAINE DE CARACTERES"→Str 1

//Idem que pour les variables, ? demande à l'utilisateur de renseigner une chaine de caractère (ici : Str 5)
?→Str 5

//La chaine de caractères Str 15 est égale à la chaine de caractère Str 4
Str 4→Str 15

//Pour afficher le contenu d'une chaine de caractères
Locate 1,2,Str 1

Important à retenir, une chaine de caractères est limitée à 255 caractères.

Pour être exact, certains caractères sont codés sur 2 bits. Ce sont des caractères spéciaux, la plupart des caractères qu'on utilise dans un programme sont codés sur 1 bit. Pourquoi je vous embrouille avec ça ? Simplement parce que les caractères de 2 bits occupent 2 fois plus de places, donc réduisent le nombre maximal de caractères dans la chaine. Donc, ne soyez pas étonnés si vous avez avec une erreur alors que votre chaine à moins de 255 caractères. C'est juste une petite parenthèses ;-)

Longueur d’une chaine (StrLen)

Pour connaitre la longueur d’une chaine (en caractères), vous avez la fonction StrLen(<"votre chaine">).

StrLen("BONJOUR")    //StrLen renvoie 7
StrLen(Str 1)        //Tout dépend du contenu de Str 1
""→Str 1

Si vous obtenez une « Erreur mémoire », votre chaine ne contient aucun caractère. Voici une technique pour initialiser vos Str :

""→Str 1

Le fait que les caractères dans votre chaine soient codés sur 1 ou 2 bits n'influencent par le résultat de StrLen(). Elle renvoie bien le nombre de caractères.


Modifier la casse (StrUpr et StrLwr)

Modifier la casse signifie changer les lettres MAJUSCULES en lettres minuscules et inversement. Personnellement, je n'ai jamais utilisé ses fonctions, mais c'est toujours bien de savoir qu'elles existent.

StrUpr() met les lettres minuscules en MAJUSCULES, StrLwr() donne le résultat en minuscule.

StrUpr("bonjour")    //Renvoie "BONJOUR"
StrLwr("BONJOUR")    //Renvoie "bonjour"
StrUpr("Bonjour")    //Renvoie "BONJOUR"
StrLwr("bOnJouR")    //Renvoie "bonjour"


Comparer deux chaines de caractères (StrCmp)

Une autre fonction que vous utiliserez régulièrement : StrCmp() qui compare deux chaines. Cette fonction renvoie 3 valeurs possibles :

  • si Str 1 = Str 2 alors StrCmp() renvoie 0
  • si Str 1 > Str 2 alors StrCmp() renvoie 1
  • si Str 1 < Str 2 alors StrCmp() renvoie -1

Retenez bien ces deux points importants sur StrCmp():

  • Pour être exact, StrCmp() détermine si les deux chaines sont différentes, ce qui explique qu’elle renvoie la valeur 0 si les deux chaines sont identiques. Il faut donc réfléchir à l’envers.
  • De même, StrCmp() ne compare pas les longueurs des chaines, mais le premier caractère différent entre les deux chaines.


StrCmp("A","B")         //renvoie -1 car 'A'<'B'
StrCmp("C","B")         //renvoie 1 car 'C'>'B'
StrCmp("TEST-X","TEST-Y")     //renvoie -1 car 'X'<'Y'
StrCmp("Salut","Bonjour")     //renvoie 1 car 'S'>'B'

Beaucoup de programmeurs pensent que StrCmp() compare les longueurs des chaines, ce qui est faux ! Regardez bien le dernier exemple, selon StrCmp(), on a : "Salut" > "Bonjour", pourtant StrLen("Salut") < StrLen("Bonjour").


Concaténer des chaines (StrJoin ou +)

La concaténation consiste à fusionner des chaines pour en former une nouvelle. Alors vous allez être content car il est inutile d'utiliser une fonction. On employera de préférence le symbole de l'addition « + ». D'ailleurs, contrairement à StrJoin(), vous pouvez concaténer plus de deux chaines en même temps avec « + ».

J'insiste, StrJoin() et « + » produisent exactement le même résultat. Pour des raisons évoquées précédemment, je vous conseille vivement la seconde option ;-).


"QUEL EST VOTRE NOM" ?→Str 1

StrJoin("BONJOUR",Str 1) //Fonctionne, mais déconseillée

"Bonjour "+Str 1+", bienvenue dans ce cours sur le Basic Casio !" //Recommandée !

Vous remarquerez que le dernier message ne peut être affiché entièrement sur l’écran de la calculatrice. En effet, la calculatrice ne fait pas de retour à la ligne quand la chaine est trop grande (quoiqu’il arrive, Locate ne le fait jamais).



<<< Revenir au cours précédent Continuer le cours >>>

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 53 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd