ÉVALUATION EN ALGORITHMIQUE TEST 21 / XX
Examen Corriges en Algorithme
Exercice 1: Définitions 0,5x6-3 pts
1) Définir: algorithme, programme
2) Quelle est la différence entre une fonction et une procédure?
3). Quelle est la différence entre variables globales et variables locales ? 4) Quelle est la différence entre paramètres formels et paramètres effectifs ?
5) Quelle est la différence entre le passage par valeur, le passage par adresse et le passage par référence?
Exercice 2: 3 pts
La méthode de Newton Raphson pour calculer la racine carrée d'un reel positif c est définie par l'itération: X=(Xk+C/Xk)/2, k=0,1,2, où l'estimation initiale xo est supposée donnée. On s'arrête lorsque Xk+1 -Xk <= prec. Pour une précision donnée prec. Ecrire un algorithme pour calculer et imprimer (afficher) la racine carrée d'un réel C par la méthode de Newton Raphson. Votre Algorithme devrait lire en entrée C. la précision Prec et l'estimation initiale x0. Il devrait aussi calculer et imprimer le nombre d'itérations utilisées pour obtenir la précision prec fixée.
Exercice 3: (5-1,5+1,5+2) pts
On souhaite écrire un algorithme qui prend une liste d'entiers en entrée et qui calcule la moyenne et la médiane de cette liste.
1) Ecrire une fonction qui prend en entrée une liste d'entiers et qui retourne la moyenne de ces entiers.
2) Ecrire une fonction qui prend en entrée une liste d'entiers et qui retourne la médiane de ces entiers. La médiane est définie comme la valeur se trouvant au milieu de la liste triée. Si la liste contient un nombre pair d'éléments, la médiane est la moyenne des deux valeurs du milieu.
3)Utiliser les fonctions que vous avez implémentées dans les volets précédents pour résoudre le problème suivant: vous recevez une liste d'entiers en entrée, et vous devez retotirner la différence entre la moyenne et la médiane de cette liste.
Problème: Algorithmes et problèmes de tri (9-1+2+2+2+2) pts
Partie A: Soit une liste de n éléments, une clé est associée à chaque élément et dont la valeur appartient à un ensemble totalement ordonné. Le résultat est une liste dont les éléments sont une permutation des éléments de la liste d'origine telles que les valeurs des clés sont croissantes quand on parcourt la lise séquentiellement. 1) Donner le principe et l'algorithme du tri bulles. 2) Appliquer cet algorithme au tableau suivant et donner le tableau trié (Faites ressortir toutes les étapes jusqu'à l'obtention du tableau trié) (101, 115, 30, 64, 47, 50,20)
Partie B: Si un vecteur est trie, l'algorithme de recherche par dichotomie est recommandé pour rechercher un élément dans le vecteur. On suppose que le vecteur est trié par ordre croissant; que lower et upper désignent les bornes inférieures et supérieures des indices du vecteur vect, et que key contienne la valeur à rechercher. Après avoir exécuté les instructions suivantes:
milieu (lowertupper) div 2; if key> vect[milieu] then lower milieur+1 else upper milieu-1;
Soit vect[milieu] key et on a trouvé l'élément recherché, soit on poursuit la recherche, mais dans l'une des moitiés du vecteur.
Ecrire deux procédures, une récursive et une itérative pour rechercher un élément key dans un vecteur vect contenant des réels. Chacune devant renvoyer true dans une variable booléenne found et l'indice de key dans vect si key est trouvé; sinon false.