• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
4
0
0

Texte intégral

(1)

Licence Informatique 1ère année

Algorithmique et Programmation Examen – 25/02/2019 - 2h00

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

Exercice 1 (9 points) : Le gouvernement veut automatiser l'analyse des idées émises dans le cadre du grand débat national. Chaque idée est décrite par un texte (chaine de caractères), le pseudonyme du citoyen qui a émis l'idée, et le coût (positif ou négatif) de l'idée pour les finances publiques. Exemple d'idée : texte =

"rétablir l'ISF", citoyen = "toto27", coût = +3,2 milliards d'euros.

a- Proposez des structures de données pour représenter les idées émises. (1 point)

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

b- Écrivez une fonction qui prend les idées en entrée et renvoie le coût moyen des idées. (2 points) c- Écrivez une fonction qui prend les idées en entrée et le pseudonyme d'un citoyen et renvoie le nombre d'idées émises par le citoyen. (2 points)

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 case et qu'il est trié par ordre croissant selon les pseudonymes. (4 points)

Exercice 2 (4 points) :

// l = taille du tableau t

fonction avec retour booléen mystere(chaine t[], entier l, chaine x) entier i, j;

booléen trouvé;

début

trouvé <- faux;

i <- 0;

j <- l-1;

tantque (i<=j ET non trouve) faire si (t[i] = x OU t[j] = x) alors

trouve <- vrai;

sinon

i <- i+1;

j <- j-1;

finsi fintantque

retourne trouvé;

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)

(2)

Exercice 3 (7 points) :

La fonction suivante remplit un tableau d'entiers générés aléatoirement et triés par ordre croissant.

On suppose que rand(100) renvoie un entier aléatoire entre 0 et 100 et que cette instruction s'exécute en temps constant.

fonction avec retour entier[] aleaTrie(entier n) entier t[n], i, j, e;

début

pour (i allant de 0 à n-1 pas de 1) faire e <- rand(100);

j <- i;

tantque (j>0 ET t[j-1]>e) faire t[j] <- t[j-1];

j <- j-1;

fintantque t[j] <- e;

finpour retourne t;

fin

a- Donnez le paramètre de complexité de l'algorithme. Indiquez quel est le cas au pire s'il existe.

Calculez la complexité de l'algorithme, 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)

b- Écrivez un autre algorithme de complexité linéaire qui génère aussi un tableau d'entiers aléatoires triés par ordre croissant. (3 points)

(3)

CO RR

EC TIO N

Exercice 1

enregistrement Idee

chaine texte, pseudo;

réel coût;

finenregistrement

Idee t[] contient les idées.

fonction avec retour réel coutMoyen (Idee t[l], entier l) entier i;

réel r;

début

r <- 0;

pour (i allant de 0 à l-1 pas 1) faire r <- r+t[i].coût;

finpour

retourne r/l;

fin

fonction avec retour entier nbIdees (Idee t[l], entier l, chaine pseudo) entier i, n;

début

n <- 0;

pour (i allant de 0 à l-1 pas 1) faire si (t[i].pseudo = pseudo) alors

n <- n+1;

finsi finpour retourne n;

fin

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

chaine pMax, p;

début

p <- t[0].pseudo;

n <- 1;

nMax <- -1;

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

si (n>nMax) alors pMax <- p;

nMax <- n;

finsi

p <- t[i].pseudo;

n <- 1;

sinon

n <- n+1;

finsi finpour

si (n>nMax) alors pMax <- p;

finsi

retourne pMax;

fin

Exercice 2

La fonction mystere cherche l'élément x dans le tableau t en utilisant une recherche séquentielle boustrophédon. Le paramètre de complexité est la taille du tableau, qu'on appele n. Le cas au pire est celui où le test de la conditionnelle est toujours faux, donc quand x n'est pas dans le tableau. Dans ce cas au pire,

(4)

CO RR

EC TIO N

il y aura n/2 tours de la boucle tantque, et la complexité sera de la forme a*n/2 + b avec a et b des constantes, on a donc une complexité au pire linéaire.

Exercice 3

Le paramètre de complexité est la taille du tableau, n. Le cas au pire est celui où la condition du tantque est toujours vraie, c'est-à-dire que chaque entier déjà généré est plus grand que l'entier e qu'on veut placer dans le tableau. Dans ce cas, la boucle tantque fera un tour lors du premier tour de la boucle pour, puis deux tours lors du deuxième tour de la boucle pour, ..., et n-1 tours lors du dernier tour de la boucle pour. La complexité sera donc de la forme 1+2+...+(n-1)=O(n²).

Fonction qui fait le même travail en temps linéaire :

fonction avec retour entier[] aleaTrie(entier n) entier t[n], i;

début

t[0] <- rand(100);

pour (i allant de 1 à n-1 pas de 1) faire t[i] <- t[i-1]+rand(100-t[i-1]);

finpour retourne t;

fin

Références

Documents relatifs

Reproduis les formes et colorie-les de la bonne couleur.. Tableau à

Dessine les œufs, colorie-les de la bonne couleur et reproduis les graphismes au bon endroit... Tableau à

Colorie les tortues de la bonne couleur et reproduis les graphismes au bon endroit ou colle.. Tableau à

Colle les tortues de la bonne couleur et reproduis les graphismes au bon endroit.. Tableau à

Retrouve la consigne du tableau à double entrée et colle les images au bon endroit... Tableau à

L’objectif du cours est triple : (1) program- mer en java, (2) maˆıtriser les bases de l’algorithmique sur des structures dynamiques (listes, arbres) et (3) introduire quelques

(prendre rendez-vous avec madame Janick si

 La présence de votre enfant est recommandée afin qu’il puisse exposer sa propre vision de son cheminement scolaire en tant qu’acteur de