• Aucun résultat trouvé

Licence Informatique 1ère année Algorithmique et Programmation Examen – 26/06/2019 - 2h00

N/A
N/A
Protected

Academic year: 2021

Partager "Licence Informatique 1ère année Algorithmique et Programmation Examen – 26/06/2019 - 2h00"

Copied!
4
0
0

Texte intégral

(1)

Licence Informatique 1ère année

Algorithmique et Programmation Examen – 26/06/2019 - 2h00

Les notes de cours, TD et TP sont autorisées.

Exercice 1 (7 points) : l'UICN (Union Internationale pour la Conservation de la Nature) veut un logiciel pour suivre la disparition des espèces sur la planète. Chaque espèce vivante est décrite par son nom, la zone où elle vit et son nombre d'individus approximatif. Exemple d'espèce : nom = "Asteriscus smithii", zone = "Iles du Cap-Vert", individus = 200.

a- Proposez des structures de données pour représenter les espèces vivantes. (1 point)

On suppose dans les questions qui suivent que la structure de données a été initialisée avec les espèces.

b- Écrivez une fonction qui prend en entrée les espèces et une zone et renvoie le nombre d'espèces de la zone qui ont moins de 100 individus. (2 points)

c- Écrivez une fonction qui prend en entrée un tableau des espèces et renvoie le nom de la zone qui possède le plus d'espèces. On suppose que le tableau a au moins une case et qu'il est trié par ordre croissant selon les nom des zones. (4 points)

Exercice 2 (4 points) :

// a et b sont les dimensions du tableau t

fonction avec retour entier mystere(caractère t[a][b], entier a, entier b) entier i, j, n;

début

i <- 0;

n <- 0;

tantque (i<a) faire

si (t[i][b-1] = 'z') alors n <- n+1;

finsi

i <- i + 1;

fintantque retourne n;

fin

a- Que fait la fonction mystere? (1 point)

b- Donnez le paramètre de complexité de la fonction mystère, indiquez quel est le cas au pire s'il existe, et calculez la complexité de la fonction (dans le cas au pire s'il existe, dans le cas général sinon). Le calcul de la complexité doit être justifié, sinon il ne sera pas pris en compte. (3 points)

Exercice 3 (9 points) : tri par comptage

On veut pouvoir trier des tableaux d'entiers par comptage. Le principe du tri par comptage est le suivant : pour trier un tableau t, pour chaque entier i allant du plus petit au plus grand entier présent dans le tableau t, on compte son nombre d'occurences ni, puis on remplit le tableau t avec pour chaque i, ni

éléments.

(2)

Exemple : soit le tableau t = [5,2,8,2,6,5,2]. On compte les différents entiers : il y a 0 un, 3 deux, 0 quatre, 2 cinq, 1 six, 0 sept, 1 huit et 0 entiers de valeur supérieure à 8. Donc le tableau trié sera [2,2,2,5,5,6,8]

a- Écrivez une fonction qui, étant donné un tableau d'entiers, tous compris entre 0 et 100, le trie en utilisant un tri par comptage. (5 points)

d- Donnez le paramètre de complexité de la fonction, indiquez quel est le cas au pire s'il existe, et calculez la complexité de la fonction (dans le cas au pire s'il existe, dans le cas général sinon). Le calcul de la complexité doit être justifié, sinon il ne sera pas pris en compte. (4 points)

(3)

CO RR

EC TIO N

Exercice 1

enregistrement Espèce chaine nom, zone;

entier individus;

finenregistrement

Espèce t[] contient les espèces.

fonction avec retour entier nbEspeces (Espèce t[l], entier l, chaine zone) entier i,n;

début

n <- 0;

pour (i allant de 0 à l-1 pas 1) faire

si (t[i].zone = zone ET t[i].individus<100) alors n <- n+1;

finsi finpour retourne n;

fin

fonction avec retour chaine plusActif(Espèce t[l], entier l) entier i, n, nMax;

chaine zMax, z;

début

z <- t[0].zone;

n <- 1;

nMax <- -1;

pour (i allant de 1 à l-1 pas 1) faire si (t[i].zone ≠ z) alors

si (n>nMax) alors zMax <- z;

nMax <- n;

finsi

z <- t[i].zone;

n <- 1;

sinon

n <- n+1;

finsi finpour

si (n>nMax) alors zMax <- z;

finsi

retourne zMax;

fin

Exercice 2

Si on voit t comme un tableau de chaines de caractères, la fonction mystere compte le nombre de chaines qui finissent par z. Le paramètre de complexité est a, la première dimension du tableau. Le cas au pire est celui où le test de la conditionnelle est toujours vrai, donc quand toutes les chaines finissent par 'z'.

Dans ce cas au pire, il y aura a tours de la boucle tantque, et la complexité sera de la forme c*a + b avec c et d des constantes, on a donc une complexité au pire linéaire.

(4)

CO RR

EC TIO N

Exercice 3

fonction sans retour triComptage(entier t[n], entier n) entier i, j, occ[101];

début

pour (i allant de 0 à 100 pas de 1) faire occ[i] <- 0;

pour (j allant de 0 à n-1 pas de 1) faire si (t[j] = i) alors

occ[i] <- occ[i]+1;

finsi finpour finpour j <- 0;

pour (i allant de 0 à 100 pas de 1) faire tantque (occ[i] > 0) faire

t[j] <- i;

j <- j+1;

occ[i] <- occ[i]-1;

fintantque finpour

fin

Le paramètre de complexité de la fonction est la taille du tableau d'entrée, qu'on appelle n. Il n'y a pas de cas au pire car le nombre de passages dans le si et le nombre de tours de la boulce tantque seront globalement toujours égaux à n. La complexité est de la forme 101*n+101*n donc linéaire en la taille du tableau.

Références

Documents relatifs

O(n) : complexité linéaire, augmentation linéraire du temps d'exécution quand le paramètre croit (si le paramètre double, le temps double). Exemple : algorithmes qui décomposent

d- Écrivez une fonction qui prend en entrée un tableau des idées émises et renvoie le pseudonyme du citoyen qui a émis le plus d'idées.. On suppose que le tableau a au moins une

c- Écrire une fonction qui prend en paramètre un tableau de patients et un indice ESI (entier) et renvoie le numéro de sécurité sociale du patient le plus agé ayant cet indice..

On pourrait aller plus vite en faisant une recherche dichotomique, soit dans tout le tableau DICO, soit juste dans la section du tableau qui contient les mots commençant par le

Un exemple illustrant cette situation est le suivant. Remarquons que les facteurs 02 et 20 n'appartiennent pas à l'ensemble des facteurs de u. Le choix fait pour la dénition

‘(Son) père n’arrête pas de semer des pastèques noires dans (son) champs.’ (soo_bax.003) Lit: il sème-danse des pastèques.. ERG - PRS -parce.que ‘(Elle

Bien qu’on soupçonne que P = BPP (ou du moins que BPP ⊆ DTIME(2 O(n) ) ), ce qui impliquerait bien sûr que EXP ̸= BPP par le théorème de hiérarchie déterministe en temps,

Jf Les affaires contaminées doivent être lavées à 60° ou désinfectées avec le produit adapté A-PAR® : vêtements, chaussons, chaussures, gants, bonnets, literie, linge de