\documentclass[twocolumn,a4paper]{article}
\usepackage{french,tp}
\advance\topmargin -1cm
\advance\textheight 1cm

\advance\textheight -1cm
\divide\textheight 2

\begin{document}

%\begin{header}
{
\Huge Cinquième TP
\\
\LARGE Mini traitement de texte
}
\bigskip
%\end{header}

Nous allons appliquer nos connaissances sur les
tableaux et chaînes de caractères pour construire
quelques procédures et fonctions qui serviront
de briques pour un traitement de texte...

\subsection*{Analyse d'une chaîne de caractères}
$\bullet$
Faire une fonction {\tt NbChar}
dont les deux arguments sont
une chaîne de caractères {\tt STRING} et
un caractère {\tt CHAR}, et dont le résultat
est le nombre de fois que ce caractère
apparaît dans la chaîne.
Le {\em prototype} de cette fonction
est donc : \\
{\small\tt FUNCTION NbChar(s : STRING; c : CHAR) : INTEGER;}

Vous pourrez vérifier que
{\small\tt NbChar('Bonjour','o')} vaut 2
et que
{\small\tt NbChar('Animal','a')} vaut 1.

Le dernier exemple montre qu'il y a
une différence entre un caractère et
une lettre de l'alphabet.

\medskip
$\bullet$
$\bullet$
On remarque que dans une phrase les mots
sont séparés par des espaces
(on considèrera que {\tt l'exemple}
n'est qu'un seul mot).
Dans les cas les plus simples,
le nombre des mots est
égal au nombre d'espaces, plus un.
Mais il faut faire attention aux espaces
doublés, ou bien en début ou fin de phrase.

Faire une fonction {\tt NbMots}
dont l'argument est
une chaîne de caractères et
dont le résultat est le nombre de mots.

\subsection*{Décalages}
$\bullet$
Faire une fonction {\tt Blancs} dont
l'argument est une chaîne de
caractères et dont le résultat
est le nombre d'espaces au début de
cette chaîne de caractères.

Par exemple, 
{\small\verb|Blancs('   Animal')|} vaut 3.

\medskip
$\bullet$
Faire une fonction {\tt Gauche} dont
les deux arguments sont une chaîne de
caractères et un entier positif,
dont le résultat est la même chaîne
décalée vers la gauche.
Un décalage vers la gauche se fait en
supprimant des caractères au début de la chaîne.

Par exemple, 
{\small\verb|Gauche('   Animal',5)|} vaut
{\small\verb|'imal'|}.

\medskip
$\bullet$
$\bullet$
Faire une fonction {\tt Droite} dont
les deux arguments sont une chaîne de
caractères et un entier positif,
dont le résultat est la même chaîne
décalée vers la droite.
Un décalage vers la droite se fait en
rajoutant des espaces au début de la chaîne.

Par exemple, 
{\small\verb|Droite('Animal',3)|} vaut
{\small\verb|'   Animal'|}.

\subsection*{Justification}
$\bullet$
$\bullet$
Utiliser les fonctions ci-dessus pour
faire une fonction {\tt JustGauche}
qui justifie à gauche une chaîne de
caractères.
Il s'agit de ``coller'' à gauche une
ligne de texte.

Par exemple, 
{\small\verb|JustGauche('     Animal')|} vaut
{\small\verb|'Animal'|}.

\medskip
$\bullet$
$\bullet$
$\bullet$
Utiliser les fonctions de décalage pour
faire une fonction {\tt Centre}
qui centre dans l'écran une chaîne de
caractères.
On suppose que l'écran affiche 80 caractères.

\end{document}
