TP 1 : Prise en main et éléments de syntaxe UFR SMBH, Licence Sciences de la Vie septembre 2015 L indice de masse corporelle imc est définie par imc = poids/taille 2 (en kg/m 2 ). L indice de masse corporelle est interprété selon la classification de l OMS de la manière suivante : Valeur de l indice imc<16.5 16.5 imc<18.5 18.5 imc<25 25 imc<30 30 imc<35 35 imc<40 imc 40 Interprétation dénutrition ou famine maigreur corpulence normale surpoids obésité modérée obésité sévère obésité morbide ou massive Exercice 1 Ouvrir l interpréteur de commandes et se placer à l invite. On doit avoir quelque chose comme : fadi@pulcinella:/e/src/perl$ On vérifie que l interpréteur Perl est bien présent en appelant l interpréteur Perl sans argument, avec seulement l option - - version (ou - v) : fadi@pulcinella:/e/src/perl$ perl - - version Si Perl est installé, on doit obtenir un message de présentation comme le suivant : This is perl 5, version 14, subversion 2 (v5.14.2) built for... Exercice 2 En utilisant un éditeur de texte, créer un fichier tp1.pl et enregistrer ce fichier dans le répertoire courant. Dans ce fichier, placer la ligne suivante : 1
print " Hello World! \ n" ; Sous l interpréteur de commandes, passer le script à l interpréteur Perl : Hello World! Exercice 3 On peut également exécuter un script Perl directement en écrivant son chemin (relatif ou absolu) à l invite de commandes, comme suit : ou fadi@pejite:/e/src/perl$./tp1.pl fadi@pejite:/e/src/perl$ /e/src/perl/tp1.pl Mais dans ce cas, deux précautions doivent être prises : On doit avoir les droits en exécution sur le script. Sous Unix, on change les droits avec la commande chmod : fadi@pejite:/e/src/perl$ chmod u+x tp1.pl Il faut dire au shell que le contenu du fichier tp1.pl doit être passé l interpréteur Perl lors de l exécution. Pour cela, on rajoute la directive #!/usr/bin/perl au début du fichier tp1.pl : #! / usr / b i n / p e r l print " Hello World! \ n" ; Cette directive donne au shell le chemin absolu vers le programme à exécuter pour interpréter les instructions du script. Car en réalité, l interpréteur Perl est un programme exécutable situé dans le répertoire /usr/bin/ : fadi@pejite:/e/src/perl$ ls -l /usr/bin/perl -rwxr-xr-x 2 root root 10376 Aug 10 23:59 /usr/bin/perl Exercice 4 Déclarer une variable scalaire nom contenant la chaîne de caractères Ben Chetrit. Exercice 5 Déclarer une variable scalaire age contenant le nombre 24. 2
Figure 1 Les principales commandes Unix. Exercice 6 Déclarer une variable scalaire bytes_per_day contenant le nombre 2.5e18. Ce nombre correspond, en nombre d octets (groupes de 8 bits), à la quantité de données produits chaque jour sur Terre. Exercice 7 Déclarer un tableau t contenant le nombre 4, le Booléen faux et la chaîne de caractères Silenius. Exercice 8 Déclarer un tableau associatif h qui à la clé age associe la valeur 24 et à la clé nom associe la valeur Ben Chetrit. Exercice 9 Déclarer deux variables scalaires poids et taille et leur affecter les valeurs 70 et 1.86, puis écrire une instruction Perl qui permet d afficher la valeur de ces variables sur la sortie standard. On doit obtenir : Mon poids est 70 et ma taille est 1.86. Exercice 10 Calculer l indice de masse corporelle correspondant et affecter le résultat à une variable nommée imc. Afficher le contenu de la variable imc sur la sortie standard. On doit obtenir : 20.2335530119089 Exercice 11 Modifier le script précédent pour écrire le résultat sur la sortie erreurs (STDERR). 3
Exercice 12 Modifier le script précédent pour écrire le résultat dans un fichier nommé log. Exercice 13 Écrire un script qui prend cette fois-ci les valeurs de poids et de taille sur l entrée standard (STDIN) et qui calcule la valeur de l indice de masse corporelle. On doit obtenir le résultat suivant : Quel est votre poids (kg)? 60 Quelle est votre taille (m)? 1.7 Votre indice de masse corporelle est 20.7612456747405 Exercice 14 Modifier le script précédent pour afficher également l interprétation associée à l indice calculé. Par exemple, si l utilisateur fait 60 kg et mesure 1m70, on aura le résultat suivant : Quel est votre poids (kg)? 60 Quelle est votre taille (m)? 1.7 Votre indice de masse corporelle est 20.7612456747405 (corpulence normale) Exercice 15 On voudrait garder une trace de tous les indices de masse corporelle qui ont déjà été calculés. Pour cela, à chaque fois qu on calcule une nouvelle valeur, on choisit de la rajouter à la suite d un fichier log. Par exemple, si l imc a été calculé pour trois utilisateurs, le fichier log pourrait contenir les lignes suivantes : fadi@pejite:/e/src/perl$ cat log 18.8365650969529 22.2222222222222 14.4641683103222 Modifier le script précédent pour obtenir le résultat voulu. Exercice 16 Le fichier log peut être utilisé pour établir un profil de la population testée. Compléter le script précédent de façon à afficher à chaque calcul d imc un résumé des tests précédents, par exemple : 4
Poids (kg) :127 Taille (m) :1.79 Indice de masse corporelle :39.636715458319 (obesite severe) HISTORIQUE denutrition ou famine : 2 maigreur : 0 corpulence normale : 2 surpoids : 1 obesite moderee : 0 obesite severe : 3 obesite morbide ou massive : 0 5