Section BTS DSI Niveau 1ere Année DEVOIR SURVEILLE EN ALGORITHMIQUE Durée : 2heures Questions de cours : 3pts 1. Quel type de mémoire utilise la récursivité ? 2. Qu’appelle-t-on la récursivité indirecte ? 3. Quelle est la structure d’un algorithme récursif dans le cas général ? Exercice 1 : 2pts Soit la fonction Mystère dont l’algorithme est ci-dessous : , Question : On considère la tableau T contenant la suite 5,9,7,3,12,15,0 et les variables n=7,a=4, b=3, que va rendre alors l’appel de la fonction Mystère(T,n,a,b), que vont contenir les variables a et b à la fin de l’appel ? Attention : les paramètres a et b sont passés par référence. Toute modification de X est donc une modification de a et toute modification de Y est une modification de b. Exercice 2 : 2pts Ecrire l’algorithme d’une fonction appelée « Diag » qui met à zéro les éléments de la diagonale principale d’une matrice carrée A donnée. La fonction reçoit la matrice et la dimension de la matrice en paramètres. Exercice 3 : 4pts Ecrire un programme qui lit une liste de Nb nombres, la range dans un tableau, la décale d’un cran vers le haut, l’affiche, la décale d’un cran vers le bas puis l’affiche, le programme doit être décomposé en 4 modules : saisie, affiche, decalerbas, decalerhaut. Ecrire un algorithme qui fait appel aux 4 modules précédemment définis. 1 Exercice 2 : 3pts Soient les deux algorithmes suivants : 1. Quel est le type des deux algorithmes ci-dessus ? 2. Quelle est la relation entre les deux algorithmes ? Que déduisez-vous alors ? 3. Dans un programme principal, on appelle la fonction Pair(4), Tracez alors le schéma des appels successifs et justifiez la valeur de retour ? Exercice 4 : 4pts 1. Ecrire une fonction récursive deux_puiss(n en entier) qui calcule 2n avec n est un nombre entier positif ou nul. 2. On utilise un tableau pour stocker un nombre binaire de 8 bits. Ecrire un algorithme qui permet de saisir la valeur binaire et de calculer l’équivalent décimal de ce nombre binaire. Dans cet algorithme faites appel à la fonction deux_puiss (n) que vous avez définie dans la question 1 de l’exercice 4. Exercice 5 : 2pts Etablir la version récursive de l’algorithme qui calcule le Nième élément d’une suite de Fibonacci : c’est une suite où un élément est la somme des deux précédents. Excepté le premier FIBO(0) qui vaut 0 et le deuxième FIBO(1) qui vaut 1. 2