Section BTS Informatique Niveau 1ere Année DEVOIR SURVEILLE EN ALGORITHMIQUE Durée : 2heures Questions de cours : 5pts 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 ? 4. Sans le réécrire, expliquer le principe de l’algorithme de tri par insertion. 5. Faites le tourner (faites une simulation) sur un tableau contenant la suite d’entier 4,7,2,8,6,1,5 afin de trier le tableau en ordre croissant. Exercice 1 : 2pts Quel résultat produira l’algorithme suivant : Tableau T[4,2] en Entier Variables K,m en Entier DEBUT Pour (K=0 à 3) Faire Pour ( m=0 à 1) Faire T[k,m] = 2*k+m+1 FinPour FinPour Pour (K=0 à 3) Faire Pour ( m=0 à 1) Faire Ecrire T[k,m] FinPour FinPour FIN Exercice 2 : 2pts Ecrire un algorithme qui remplit et affiche une matrice carré 8*8 avec un terme constant d sur la diagonale et un autre terme constant t partout ailleurs. 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 4 : 3pts 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. Exercice 6 : 2pts Ecrire un algorithme qui permet de transposer (remplacer le contenu des lignes par le contenu des colonnes) une matrice N*N. Exemple : Soit une matrice [3,3] : Matrice Initiale : 1 4 7 2 5 8 3 6 9 Matrice après Transposition :1 2 3 2 4 5 6 7 8 9