L6T54-55 - Programmation Perl-Maîtrise OS II - Clementine Gross

Exercices

Etape 1

Exercice 1

Copiez le texte du programme suivant dans un fichier et executez le :

Modifier ce programme et ajouter l'affichage du message : "Mon premier programme ecrit avec PERL".

> Resultat <

Il suffit de modifier le contenu des double-quotes.

Execution :

Exercice 2

Ecrire un programme qui crée trois variables $var1, $var2 et $var3 auxquelles vous affecterez les valeurs 33, 44 et 55 respectivement.

• affichez les valeurs de chaque variable en sortie.

• créez une variable $somme dans laquelle vous mettrez la somme des valeurs de chaque variable : $var1 + $ var2, $var1 + $var3... Affichez la valeur de $somme et des variables utilisées pour produire cette somme.

• créez une variable $produit dans laquelle vous mettrez le produit des valeurs de chaque variable : même remarque que ci-dessus

• permutez les valeurs de $var1, $var2 et $var3. C'est à dire que $var1 vaudra ce que valait $var2, $var2 ce que valait $var3, et $var3 ce que valait $var1. Pour cela vous créerez une variable temporaire $tmp..

> Resultat <

Voici l'exécution du script réalisant les opérations :

Puis, après modification, une reattribution des valeurs :

> Fichier de sortie <

Exercice 3

a. Parcours d'une liste

Récupérer le programme suivant, essayer de l'exécuter, si nécessaire corriger et compléter.

> Resultat <

L'exécution du script modifié

b. Manipulations de listes

Récupérer le programme suivant. Commenter les différentes instructions, et prévoir très précisément les affichages avant d'expérimenter

> Resultat <

L'exécution du script commenté

Exercice 4

> amants.txt <

1. Le texte du poème ci-dessus est contenu dans le fichier amants.txt. Ecrire un programme qui ouvre le fichier amants.txt et qui écrit dans un deuxième fichier moteneau.txt les seules lignes qui contiennent la séquence de caractères "eau".

> Resultat <

Voici la commande permettant de lancer le script :

De manière plus précise, on utilise l' expression régulière \b qui délimite le mot

> Fichier de sortie <

2. Vous réécrirez le programme pour numéroter toutes les lignes qui contiennent la même séquence

> Resultat <

Voici la commande permettant de lancer le script : (Ici, la récupération de la ligne est effectuée dans le script)

> Fichier de sortie <

3. Créez un nouveau programme pour produire dans un nouveau fichier contenant le premier mot de chaque vers.

> Resultat <

Voici la commande permettant de lancer le script : L' expression régulière ^ caractérise le début de ligne

> Fichier de sortie <

4. Idem avec le dernier mot.

> Resultat <

Voici la commande permettant de lancer le script : L' expression régulière $ caractérise la fin de ligne

> Fichier de sortie <

Etape 2

Exercice 1

A partir des différentes versions du corpus prématurés, construire un programme pour réaliser une extraction de 5 formes graphiques (5 mots avec les différentes marques morphologiques)

L'examen de toutes les occurrences de certains mots doit permettre de dégager leur emploi dans le corpus. On commencera par examiner la forme "contact". Pour chaque forme étudiée, on notera les points suivants :

• nombre de bébés concernés ;

• nombre d'infirmières employant ce mot ;

Etape 3

Exercice 1

Le programme perl ci-dessous fournit sur la sortie standard l'ossature d'une page HTML : les balises de l'entête et celles du corps.

Modifiez-le de façon à ce qu'il crée, dans le corps de la page, une liste numérotée. Les éléments de cette liste seront les lignes lues sur l'entrée standard (on lira toutes les lignes jusqu'a l'arrivée de fin de fichier sur l'entrée standard, et pour chaque ligne on créera un nouvel item de la liste en sortie). Le programme utilisera la première ligne aussi comme le titre de la page HTML. Appliquez le programme au fichier DE VOTRE CHOIX.

> Resultat <

Ainsi, en ligne de commande, le fichier sur lequel vous souhaitez travailler est à entrer en argument, un fichier hmtl contenant le résultat de la recherche sera généré en sortie.

Exercice 2

En utilisant le programme perl qui fournit l'ossature d'une page HTML (voir ci-dessus), vous ferez en sorte qu'il lise deux fichiers (que vous ouvrirez à l'intérieur de votre programme). Vous créerez un tableau qui contiendra autant de lignes qu'il y a de lignes dans les fichiers lus. Chaque ligne du tableau contiendra deux cellules (colonnes) : dans la première cellule de la ligne n du tableau il y aura la ligne n du premier fichier, et dans la deuxième cellule la ligne n du deuxieme fichier. Vous modifierez le programme pour que le tableau contienne une colonne de plus qui sera le numéro de ligne. Vous appliquerez le programme aux versions en francais et en anglais ( > desqueyroux.fr < et > desqueyroux.ang <) de Therèse Desqueyroux (de Francois Mauriac) pour obtenir le résultat présenté dans ce même dossier.

En voulant me précipiter, voici quelle erreur j'ai faite (et mis pas mal de temps à corriger). Elle est expliquée à l'intérieur du script.

> Resultat erroné <

> Fichier de sortie bizarre <

Après réajustements, voici ce qu'on attendait :

> Resultat <

> Fichier de sortie <

Etape 4

Recherche de patrons syntaxiques dans le corpus.

• On utilisera ici la version étiquetée du corpus Prématurés 96 (> p96.tag <).

• On tentera de mettre au jour des structures syntaxiques récurrentes dans le corpus autour de formes pôles.

1. Vous choisirez cinq formes graphiques différentes. Vous construirez ensuite un programme perl qui prend en entrée le fichier catégorisé et un nombre donné. Ce nombre définira la longueur de la fenêtre de mots que vous souhaitez extraire autour de la forme pôle.

2. Vous appliquerez ce programme sur votre fichier catégorisé.

> Resultat <

Voici l'exécution du script : l'argument 1 définit le motif recherché, l'argument 2 le contexte de la recherche

Voici l'exécution du script : l'argument 1 définit le motif recherché comprenant une regexp, l'argument 2 le contexte de la recherche

> Fichier de sortie <

Etape 5

1. Vous choisirez cinq formes graphiques différentes. Vous construirez ensuite un programme perl qui prend en entrée un état du corpus et un mot donné. Le résultat produit par ce programme doit être une concordance de cette forme dans le texte lu.

2. Vous appliquerez ce programme sur les différents états du corpus