Les Chaînes

Exercice 1
Faire un algorithme qui détermine la longueur d’une chaîne de caractères.
Faire ensuite de deux manières différentes, une fonction qui permet de copier la chaîne d’une source dans une chaîne destination.
Exercice 2
Faire une fonction de concaténation (ajoute à la fin de la première chaîne de caractères le contenu de la deuxième chaîne de caractères.)
Faire une fonction de Comparaison qui compare deux chaînes de caractères suivant l’ordre lexicographique.
Faire une fonction qui efface une partie de la chaîne en spécifiant une longueur d’effacement et un indice à partir duquel il faut effacer.

Correction
Exercice 1
Fonction Longueur (chaine : Tchaine) : entier
Var i : entier
Début
                iç0
                Tant que chaine[ i ] != END faire iç i+1
                Retourner (i)
Fin


Fonction de copie : première méthode :
Fonction Copier (E : src : Tchaine, S : dest : Tchaine)
Var i, Lsrc : entier
Début
                LsrcçLongueur(src)
                Pour i de 0 à Lsrc faire dest[ i ]çsrc [ i ]
Fin

Fonction de copie : deuxième méthode : plus optimisée :
Fonction CopieOptimisée (E : src : Tchaine, S : dest : Tchaine)
Var i : entier
Début
                iç0
                tant que src[ i ] != END faire
                               dest [ i ] ç src [ i ]
                               i ç i+1
                dest [ i ] ç src [ i] {pour copier en fin de fichier la sentinelle}
Fin


Exercice 2
Action Concaténation (ES : src1 : Tchaine, E : src2 : Tchaine)
Var i, Lsrc1 : entiers
Début
                iç0
                LsrcçLongueur (src1)
                Tant que src2 [ i ] != END
                               Src1[ Lsrc1+i]ç src2[ i ]
                               içi+1
                src1[Lsrc1+i]çsrc2[ i ]
Fin


Pour faire la fonction comparer, il faut d’abord créer une fonction qui compare les caractères :
Fonction ComparerChar (char a, char b)
Début
Si a<b retourner (-1)
Si a=b retourner (0)
Si a>b retourner (1)
Fin

On peut maintenant faire la fonction de comparaison de chaînes de caractères qui utilisera la fonction ComparerChar :
Fonction Comparer (E : src1 : Tchaine, E : src2 : Tchaine)
Var i, L1, L2, cmp : entiers
Début
                L1çLongueur (src1)
                L2çLongueur (src2)
                Iç0
                Tant que (i<L1 ET i<L2 ET ComparerChar (src1[ i ], src2[ i ])=0) faire içi+1
                Si i=L1 ou i=L2 alors
                               Si i<L1 alors cmpç1
                               Sinon
                                               Si i<L2 alors cmpç -1
                                               Sinon cmpç0
                Sinon cmpçComparerChar(src1[ i ], src2 [ i ])
                Retourner (cmp)
Fin


Fonction Effacer (ES : src : Tchaine, E : indice : entier, E : lg : entier)
Var i, Lsrc : entiers
Début
                LsrcçLongueur (src)
                Pour i de indice+lg à Lsrc faire
                               Src[i-lg]çsrc[ i ]
Fin
Suivant
« Précédent
Précédent
Suivant »

ConversionConversion EmoticonEmoticon

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.