Examen d`informatique

publicité
UFR SMBH, Licence 3 Sciences du Vivant
25 novembre 2016
Examen d’informatique
Seuls documents autorisés : 2 feuilles A4 recto verso manuscrites.
Durée : 2 heures
Question 1 (2 points)
Écrire un algorithme abstrait qui compte combien de fois apparaît le nombre 38 dans un tableau
d’entiers t, et met le résultat dans une variable n. Implémenter cet algorithme en Perl.
Question 2 (2 points)
exemple de fichier f
On a placé des nombres dans un fichier f (un nombre par
fichier g
ligne), comme dans l’exemple ci-contre.
4
2
Écrire un algorithme abstrait qui lit le fichier f et écrit dans un
3.5
1.75
fichier g les mêmes nombres, un par ligne, mais divisés par 2.
189
94.5
Implémenter l’algorithme en Perl.
Question 3 (2 points)
Écrire l’algorithme abstrait d’une fonction nb_de_fois qui compte dans un tableau combien de fois
apparaît chacun de ses éléments, et renvoie le résultat sous forme d’un tableau associatif. Par exemple,
l’appel nb_de_fois(4,’c’,7,4) renverra le tableau associatif (4 => 2, 7 => 1, ’c’ => 1) car le nombre
4 apparaît 2 fois, et le nombre 7 et le caractère c apparaissent 1 fois. Implémenter cet algorithme en Perl.
Question 4 (2 points)
Écrire une fonction decouper_en_codons qui découpe une séquence de nucléotides en codons (suites de
trois lettres A, C, T, ou G). Cette fonction prend comme argument une chaîne de caractères (représentant la
séquence de nucléotides) et renvoie un tableau de chaînes de caractères de trois caractères (les codons).
Question 5 (1 point)
À l’aide des fonctions précédentes, écrire une fonction compte_codons qui donne la fréquence d’apparition des différents codons présents dans une séquence. Cette fonction renvoie un tableau associatif
dans lequel est associé à chaque codon présent dans la séquence le nombre de fois où il apparaît.
Question 6 (2 points)
La séquence de reconnaîssance de l’enzyme de restriction HpyF10VI est constituée d’un G, suivi d’un
C, suivi de 7 nucléotides (n’importe lesquels), suivi d’un G et d’un C. Combien de mots comporte ce
langage ? Donner un exemple de mot de ce langage. Donner l’expression régulière correspondante.
Question 7 (2 points)
L’enzyme HpyF10VI découpe la séquence d’ADN après la septième lettre du site de reconnaissance.
Écrire une fonction decoupe qui prend comme argument une séquence d’ADN et qui renvoie la séquence
découpée sous forme d’un tableau de deux éléments. Par exemple, l’instruction
my @t = decoupe("TTCDAAGGCAGGGGCCGCA");
doit placer dans le tableau t deux éléments : "TTCDAAGGCAGGGG" et "CCGCA".
Question 8 (3 points)
On a placé dans les fichiers C.pm et test.pl les instructions
ci-contre. Les fichiers sont dans le même répertoire.
Que se passe-t-il lorsque test.pl est exécuté ? Pourquoi ?
Qu’est-ce qui est affiché si on enlève l’instruction use strict ?
Pourquoi ? Modifier le fichier test.pl pour que soit affiché le
contenu de la variable a déclarée dans le fichier C.pm.
fichier C.pm
package C;
our $a = 3;
1;
fichier test.pl
use C;
use strict;
print $a;
Téléchargement