Vous êtes sur la page 1sur 2

Université Ibn Zohr

Faculté des Sciences d’Agadir


Département d’Informatique
A.U : 2017 / 2018

Examen d’Algorithmique 2
Filière : SMI3
Durée : 1h30 - Documents non autorisés
Important :
 Lire tout l’énoncé de l’examen avant de commencer à répondre.
 L’ordre de difficulté des exercices n’est pas nécessairement croissant.
 Le prêt de tout matériel entre étudiants est formellement interdit.

Exercice 1: [ 4 points] [~ 10 minutes]


Rappel : une chaine de caractères est un tableau de caractères qui se termine par le caractère ‘\0’
1. Ecrire la fonction récursive LCR qui prend en paramètre une chaine de caractère cha et qui retourne
sa longueur.
2. Ecrire une fonction OCL qui prend en paramètre une chaine de caractère ch et un caractère car et
retourne le nombre d’occurrence du caractère car dans la chaine ch.
Exemple : ch : « examen smi3 » et car :’m’ alors la fonction OCL retourne la valeur 2.

Exercice 2: [8 points] [~ 30 minutes]


1. Ecrire une fonction TRC qui prend en paramètre un tableau d’entiers naturels Tab et retourne 1 si le
tableau est trié dans un ordre croissant et 0 sinon.
2. Une matrice triangulaire supérieure est une matrice carrée dont toutes les valeurs au-dessous de la
diagonale principale sont nulles.
 5 3 2 81 10 
 
Ex :  0  9 12 10 6 
 0 0 21 3 7 
 
0 0 0 0 4
0 0 0 0 3 

Ecrire une fonction TRSUP() qui retourne 1 si une matrice carrée A de taille nxn est triangulaire
supérieure, sinon retourne 0. L’entête de la fonction est :
Fonction TRSUP(A[ ][ ] : Entier, n : Entier) : Entier
3. Une matrice strictement triangulaire inférieure est une matrice carrée dont :
 Les valeurs de la diagonale principale sont nulles.
 Les valeurs au-dessus de la diagonale principale sont nulles.
 0 0 0 0 0
 
Ex :  7 0 0 0 0
1 2 0 0 0
 
 11  14 3 0 0
 
 6 3 1 71 0
Ecrire une fonction STRINF() qui retourne 1 si une matrice carrée B de taille nxn est strictement
triangulaire inférieure, sinon retourne 0. L’entête de la fonction est :
Fonction STRINF(B[ ][ ] : Entier, n : Entier) : Entier
4. Une matrice de Hankel est une matrice carrée dont les valeurs le long des diagonales ascendantes
de gauche à droite sont constantes.
 3 7 1 2 6 
 
Ex :  7  1 2 6 18 
  1 2 6 18 4 
 
 2 6 18 4  5 
 
 6 18 4  5 125 
Ecrire une fonction HANKEL() qui retourne 1 si une matrice carrée M de taille nxn est de Hankel,
sinon retourne 0. L’entête de la fonction est :
Fonction HANKEL(M[ ][ ] : Entier, n : Entier) : Entier

FSA/UIZ : Examen d’Algorithmique 2, Session Normale – Filière SMI3 ; AU 2017-2018 Page 1 / 2


Université Ibn Zohr
Faculté des Sciences d’Agadir
Département d’Informatique
A.U : 2017 / 2018

Exercice 3 : [2 points][~ 15 minutes]


Soit un tas max d’entier représenté par un tableau T de taille n.
Ecrire une fonction profond() qui retourne la profondeur du nœud à la position i. Si le tas est vide ou si la
position i est supérieure à n, la fonction doit retourner -1. L’entête de la fonction est :
Fonction profond(T[] : Entier, n : Entier, i : Entier) : Entier
Rappel :
 Le premier élément du tas est à la position 0.
 La profondeur d'un nœud p dans un arbre est la longueur (nombre d'arêtes) du chemin à partir de la
racine jusqu'au nœud p.
Exemple :
Dans le tas max ci-contre, la profondeur du nœud à la position 5 et
valué par 25 est égale à 2.

Exercice 4 : [6 points] [~ 35 minutes]


Soit la fonction D définit comme suit :
D(0, n) = 1,
D(m, 0) = 1,
D(m, n) = D(m-1,n) + D(m-1,n-1) + D(m,n-1) pour m,n > 0.
a) Ecrire une fonction récursive D qui prend en paramètre deux entiers m et n et retourne la valeur de
D(m,n) comme définie ci-dessus. [ 2 points]
b) Calculer D(1,1), D(2,1), D(2,2) et D(3,1) en justifiant votre réponse [ 2 points]
c) En déduire D(3,2), D(3,3) en justifiant votre réponse [ 1 point]
d) Calculer D(4,3) en justifiant votre réponse [ 1 point]

Indication : Utiliser le fait que D(m,n) = D(n,m)

FSA/UIZ : Examen d’Algorithmique 2, Session Normale – Filière SMI3 ; AU 2017-2018 Page 2 / 2

Vous aimerez peut-être aussi