0% ont trouvé ce document utile (0 vote)
510 vues2 pages

Examen d'Algorithmique 2 SMI-3

L'examen contient 6 exercices portant sur les algorithmes et la programmation. Les exercices couvrent des sujets comme le chevauchement d'intervalles, les nombres parfaits, les tableaux multidimensionnels, le tri et l'insertion dans un tableau, la multiplication par décalage de bits et le calcul récursif de la longueur d'une chaîne.

Transféré par

anas
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
510 vues2 pages

Examen d'Algorithmique 2 SMI-3

L'examen contient 6 exercices portant sur les algorithmes et la programmation. Les exercices couvrent des sujets comme le chevauchement d'intervalles, les nombres parfaits, les tableaux multidimensionnels, le tri et l'insertion dans un tableau, la multiplication par décalage de bits et le calcul récursif de la longueur d'une chaîne.

Transféré par

anas
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Ibn Zohr

Faculté des Sciences d’Agadir


Département d’Informatique
Année : 2014 / 2015

Examen d’Algorithmique 2
Filière : SMI-3
Durée : 1 h 30 min - 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(chevauchement de deux intervalles) :


Ecrire un algorithme qui :
• Lit quatre entier a,b,c et d
• Vérifie si les intervalles [a,b] et [c,d] se chevauchent ou pas
• Affiche le résultat

Exemples : les intervalles [4,6] et [5,12] se chevauchent tandis que les intervalles [-4,-1] et [2,10] ne se
chevauchent pas.

Exercice 2 (nombre parfait) :


Un nombre parfait est un entier positif supérieur à 1, égal à la somme de ses diviseurs ;
On compte 1 comme diviseur, mais on ne compte pas le nombre lui-même comme diviseur.
Exemple : 6 est un nombre parfait puisque : 6 = 3 + 2 + 1.
Ecrire une fonction nbr_parfait qui prend comme paramètre un nombre entier n et retourne 1 si n
est un entier parfait et 0 sinon.

Exercice 3 :
1. Parmi les nombres suivant le(s)quel(s) est (sont) parfait(s) ? justifier votre réponse en
écrivant chaque nombre parfait sous forme de sommes.(voir définition exercice 2)
28 42 108 305 496 501
2. Sachant qu’au départ x=7 et y=3, quelles sont les valeurs de x et y après cette séquence :
x y
y x
x y-x
3. Quel est le résultat de l’initialisation du Tableau 2D suivante :
T [4][4] { { 1, 2, 3,0 }, { 5, 6,7 }, { 8, 9 } }

1 2 3 0 1 2 3 0 1 5 8 0 1 2 3 0
5 6 7 8 5 6 7 0 2 6 9 0 5 6 7 8
9 0 0 0 8 9 0 0 3 7 0 0 9 10 11 12
0 0 0 0 0 0 0 0 0 0 0 0 13 14 15 16

Examen d’Algorithmique 2 – Filière SMI 3 Page 1 / 2


Université Ibn Zohr
Faculté des Sciences d’Agadir
Département d’Informatique
Année : 2014 / 2015

Exercice 4 :
Soit A un tableau d’entier de taille maximale N.
1. Ecrire un programme qui lit n la taille effective de A (n <= N) puis remplit le tableau
élément par élément.
2. Supposons que le tableau A est trié dans un ordre croissant. Ecrire une fonction inser_trie
qui a comme paramètres le tableau A et un entier x. Elle insère l’entier x dans le tableau A
de sorte que A reste trié.
3. Quelle est la complexité de cette opération (notation en grand O) ? Justifier votre réponse.
4. Expliquer pourquoi on fait passer le tableau A par valeur dans la fonction inser_trie malgré
qu’on modifie son contenu (insertion d’un nouvel élément).

Exercice 5 (Multiplication par SHIFTs de 2 naturels) :


Voici un algorithme qui réalise l'exploit de multiplier 2 nombres entiers N et M en n'utilisant que
des multiplications/divisions par 2 selon la conception suivante :
A chaque étape, N est divisé par 2 (division entière) et M est multiplié par 2.
Si N est impair, la valeur de M est ajoutée au futur résultat. Si N est
strictement positif, on s’arrête à N = 1.
Exemple: 321 * 457
N M
321 457 N est impair donc futur résultat=457
160 914 N est pair donc on n'ajoute pas 914
80 1828 N est pair donc on n'ajoute pas 1828
40 3656 N est pair donc on n'ajoute pas 3656
20 7312 N est pair donc on n'ajoute pas 7312
10 14624 N est pair donc on n'ajoute pas 14624
5 29248 N est impair donc futur résultat=457+29248=29705
2 58496 N est pair donc on n'ajoute pas 58496
1 116992 N est impair donc résultat=29705+116992=146697

1. Ecrire une fonction itérative prod_shift_iter qui prend en paramètres deux entiers, respectivement,
N et M et retourne leur produit (de type Entier Double)
2. Quelle est la complexité de cette solution (notation en grand O) ? Justifier votre réponse.
3. Ecrire une fonction récursive prod_shift_rec qui fournit le même résultat que prod_shift_iter.
4. Ecrire un programme qui lit deux entiers positifs N et M puis, pour calculer leur produit, fait appel à
la fonction itérative prod_shift_iter de sorte à ce que le nombre d’itérations soit minimal.

Exercice 6 :
Ecrire une fonction récursive long_rec qui prend en paramètre une chaine de caractère ch et qui retourne sa
longueur.

Examen d’Algorithmique 2 – Filière SMI 3 Page 2 / 2

Vous aimerez peut-être aussi