Interrogation écrite Traîtement de texte

Durée 1 heure et demie ; tous documents autorisés.

Il s’agit de programmer quelques méthodes de base des traîtements de texte : des primitives de justification, pour la mise en page.

Ce sujet est long. Il sert aussi de préparation au TP.

On définit un texte comme étant une suite de chaînes de 80 caractères exactement.En effet, l’écran de l’ordinateur a 80 colonnes d’affichage. Si une ligne est incomplète (i.e. fait moins de 80 caractères), on complète avec des espaces.

On utilisera donc le type défini ci-dessous :

TYPE Ligne = ARRAY[1..80] OF CHAR;

1 Affichage

On rappelle que la procédure Write affiche à l’écran un caractère, sans retour à la ligne, et que la procédure WriteLn fait la même chose, suivi d’un retour à la ligne.

Écrire une procédure Pascal de nom AFFICHE qui affiche à l’écran une ligne (passée en paramètre), puis un retour à la ligne.

2 Saisie

Écrire une procédure SAISIE qui fait la saisie d’une ligne de texte et la range dans une variable de type Ligne passée en paramètre. Ne pas oublier de compléter avec des espaces en fin de ligne. On rappelle que la procédure Length donne la longueur d’une chaîne de caractères.

3 Comptage du nombre de mots

Écrire une fonction MOTS qui compte le nombre de mots d’une ligne. Attention ! il ne suffit pas de compter les espaces, car il peut y avoir plusieurs espaces pour séparer deux mots.

4 Décalage

Écrire une procédure DÉCALE qui aie pour argument une ligne de texte et un entier relatif n. Cette procédure modifie la ligne en la décalant de n caractères vers la droite.

Exemple, décalé de 0, puis +10, +50, −10 :

Phrase.de.trente-deux.caractères................................................
..........Phrase.de.trente-deux.caractères......................................
..................................................Phrase.de.trente-deux.caractèr
trente-deux.caractères..........................................................

5 Centrage

Écrire une procédure CENTRE qui aie pour argument une ligne de texte et la transforme en la même ligne, centrée. On veut le même nombre d’espaces en début et en fin de ligne, ou bien un de plus à la fin.

Exemple :

Cette.phrase.est.centrée.par.la.procédure.CENTRE................................
................Cette.phrase.est.centrée.par.la.procédure.CENTRE................

6 Élimination des espaces répétés

Écrire une procédure ESPACES qui modifie une ligne de texte pour éliminer les espaces répétés.

Exemple :

...Cette...phrase.contient......des.espaces..en.trop............................
Cette.phrase.contient.des.espaces.en.trop.......................................