11-2010 1/2 JMA & JG
Université Pierre Mendès France
U.F.R. Sciences de l’Homme et de la Société
Master IC2A DCISS
Algorithmique T.D. n° 8
Séquences intermédiaires et tableaux
Exercice 1 : Mots terminés pas s
Écrire un algorithme qui affiche le nombre de mots dans une séquence de caractères représentée
dans un fichier ne contenant que des lettres ou des espaces, et éventuellement vide, puis affiche le
nombre de mots se terminant par un 's'.
Exemple :
fichier qui sont ces serpents qui sifflent sur nos têtes
résultat le fichier comporte 9 mots
le fichier comporte 4 mots se terminant par un 's'
Exercice 2 : Phrase palindrome
On considère un texte de longueur L représenté dans un tableau défini sur l'intervalle [1 .. Lmax].
On supposera dans les questions ci-dessous que le tableau considéré contient déjà le texte, sa
saisie dans le tableau n'est donc pas à faire. Ecrire un algorithme qui affiche un message indiquant
si le texte donné est un palindrome (une fois les espaces supprimés, le texte se lit de gauche à
droite comme de droite à gauche).
Exemples de palindrome : esope reste ici et se repose
tu l as trop ecrase cesar ce port salut
Exercice 3 : Décalage circulaire
On considère une séquence d'entiers de longueur L représentée dans un tableau T d'entiers défini
sur l'intervalle [1…Lmax], 0 ≤ L ≤ Lmax. On supposera dans les questions ci-dessous que le tableau
considéré contient déjà la séquence, l’enregistrement de la séquence dans le tableau n'est donc
pas à faire. Ecrire un algorithme qui réalise le décalage circulaire à droite de T selon la
spécification suivante : soient A et B les valeurs initiale et finale du tableau T. Le décalage est
caractérisé par l'assertion : B[1] = A[L] et ∀ k ∈ [2…n], B[k]= A[k-1].
a) Ecrire une première solution dans laquelle le problème est sérialisé en deux étapes : on crée tout
d'abord un tableau intermédiaire Z, puis on recopie Z dans T.
b) Ecrire une deuxième solution sans recourir à un tableau intermédiaire.
Exemple : Avant décalage circulaire à droite (L = 6) : T = [2, 3, 29, 54, -3, 12]
Après décalage circulaire à droite (L = 6) : T = [12, 2, 3, 29, 54, -3]
Exercice 4 : Cryptage
On veut écrire un algorithme qui effectue le cryptage d’un texte en utilisant la table de cryptage suivante :
Tcrypt
1 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
2 A Z E R T Y U I O P Q S D F G H J K L M W X C V B N
1
26
a) Pour faciliter l’écriture de l’algorithme de cryptage, réaliser la fonction de cryptage d’un caractère :
Cryptage : fonction (X : caractère, T : TableCryptage ) ⎯→ caractère
{ Cryptage (X) désigne le caractère correspondant à X dans la table de cryptage T }
avec :
TableCryptage : type tableau sur [1..2] de tableaux sur [1..26] de caractères
Pour notre problème, le paramètre formel T correspondra au paramètre effectif TCRYPT.