Bon : on sait initialiser une chaîne & l'écrire, mais on pourrait aller un peu plus loin, non ?
Je vais vous montrer plusieurs fonctions qui permettent de faire ce que vous voulez de vos chaînes.
length(
Les anglophones ont dû deviner que cette fonction renvoie
la longueur de la chaîne.
Code : Pascal1
2
3 | :"ABCD"->Str8
:length(Str8)->L
:Disp L
|
Code : Console
sub(
Cette fonction renvoie une chaîne qui est une partie de la chaine initiale : on appelle ça
une sous-chaîne.
début est le numéro de position du premier caractère de la sous-chaîne.
taille est le nombre de caractères de la sous-chaîne.
Code : Pascal
Code : Pascal1
2
3 | :"BONJOUR JACQUES"->Str2
:sub(Str2,1,7)->Str3
:Disp Str3
|
Code : Console
inString(
Cette fonction renvoie
la position dans la chaîne initiale du premier caractère de la sous-chaîne.
début est facultatif : il indique la position du premier caractère de la chaîne où la recherche doit commencer (sa valeur par défaut est 1).
Code : Pascal1 | :inString(chaîne,sous-chaîne[,début]
|
Code : Pascal1
2 | :inString("BONJOUR","JOUR")->A
:Disp A
|
Code : Console
2ème exemple, avec le paramètre facultatif :
Code : Pascal1 | :inString("ABCABC","ABC",4)->Str2
|
Str2 contient donc "ABC" (les 3 dernières lettres de la chaîne).
expr(
Je crois que cette fonction est la plus intéressante !
Elle permet de convertir une chaîne de caractères en expression, pour ensuite l'exécuter.
Code : Pascal
Pas clair ?
Je m'explique : imaginons que Str1 vaut "3X" et que X vaut 4. Si j'utilise
expr(, alors 3X sera transformé en 3*4, et le calcul sera effectué.
Code : Pascal1
2
3
4 | :"3X"->Str1
:4->X
:expr(Str1)->A
:Disp A
|
Code : Console
On peut donc demander à l'utilisateur de rentrer une fonction contenant une inconnue, et une valeur de l'inconnue (bien sûr, dans ce cas, la fonction devra contenir X

).
Code : Pascal1
2
3
4 | :Input "Y=",Str1
:Input "X=",X
:expr(Str1)->A
:Disp A
|
Un autre exemple (tiré d'un problème du forum).
Pour un programme, on a besoin de connaître le nombre de caractères que fait un nombre avant de le manipuler. Comment faire ? C'est simple !
Code : Pascal1
2
3 | :"12345"->Str1
:length(Str1)->A
:expr(Str1)->B
|
A contient donc la taille du nombre, soit 5, & B contient quand à lui la
valeur 12345.
String>Equ(
Cette fonction permet de convertir une chaîne en équation.
Code : Pascal1 | :String>Equ(chaîne,Yn // n est l'indice de l'équation
|
En fait, quand je dis équation, je parle de celles qui permettent d'afficher des courbes sur votre écran graphique.
Elles sont numérotés de Y0 à Y9. Vous les trouverez en faisant
[VARS]+[Y-VARS]+1.
Code : Pascal
Vous pouvez vérifier que votre équation a bien été ajoutée en faisant
[Y=] (en haut).
Vous pouvez ensuite admirer la courbe créée en faisant
[TRACE] ou
[GRAPH].
Equ>String(
C'est tout simplement le contraire de la fonction du dessus. On passe d'une équation à une chaîne.
Code : Pascal1 | :Equ>String(Yn,Strn // n pouvant aller de 0 à 9
|
Code : Pascal1
2 | :"3X+2"->Y1
:Equ>Str(Y1,Str4
|
Str4 vaut donc bien "3X+2".
Un autre exemple (tiré d'un problème du forum):
Pour un programme, on a besoin de connaitre le nombre de caractère que fait un nombre avant de le manipuler. Comment faire ? C'est simple !
Code : Pascal1
2
3 | :"12345"->Str1
:length(Str1)->A
:expr(Str1)->B
|
A contient donc la taille du nombre soit 5 & B contient quand à lui la
valeur 12345.