next up previous
Next: About this document ...

\fbox{\begin{minipage}{173mm}\large
Nom :\hspace*{9cm}No dossier :\\ [1mm]
Pr\'enom(s) :\hspace*{8cm}Signature :\\ [1mm]
Date de naissance :
\end{minipage}}

Exercice 4 : Les fichiers textes
On suppose que la longueur des lignes des textes est inférieure à 255 caractères.

4.a Ecrire la fonction compteNBLignes qui renvoie le nombre de lignes d'un fichier texte. (1 pt)

\fbox{\begin{minipage}{173mm}
{\texttt{function compteNBLignes(nom\_fic: string):integer;}\large ~ \\ [6.5cm]}
\end{minipage}}

4.b Ecrire la fonction compteNBMots qui renvoie le nombre de mots d'un fichier texte. Aide : Un mot commence par une lettre suivie du maximum de caractères appartenant à Cars_valides. 'c in Cars_valides' renvoie true si et seulement si l'élément c appartient à l'ensemble Cars_valides. (2 pts)

const Lettres = ['A'..'Z','a'..'z'] ; Chiffres = ['0'..'9']; Autres = ['_'];
      Cars_valides = Lettres+Chiffres+Autres;

\fbox{\begin{minipage}{173mm}
{\texttt{function compteNBMots(nom\_fic: string):integer;}\large ~ \\ [9cm]}
\end{minipage}}

Exercice 5 : Chaînes de caractères et pointeurs

Toto a un goût prononcé pour l'optimisation et a decidé d'implémenter son propre type de chaîne de caractères : ChaineAToto.

Type ChaineAToto=^Cellule;
     Cellule=record
             c: Char;
             suivant: ChaineAToto;
             end;
5.a Ecrire la fonction preChaine qui renvoie true si chaine2 commence par chaine1, false sinon. (1 pt)

\fbox{\begin{minipage}{173mm}
{\texttt{function preChaine(chaine1, chaine2: ChaineAToto):boolean;}\large ~ \\ [6cm]}
\end{minipage}}

5.b Ecrire la procédure effaceChaine qui enlève de chaine2 toutes les occurences de chaine1. On dispose de la fonction longChaine(chaine: ChaineAToto):integer qui renvoie la longueur de chaine. (2 pts)

\fbox{\begin{minipage}{173mm}
{\texttt{procedure effaceChaine(chaine1: ChaineAToto; var chaine2:ChaineAToto);}\large ~ \\ [10.5cm]}
\end{minipage}}





fred 2001-12-14