ELBILIA SUP Année scolaire Section Classe Responsable : 2003/2004 : BTS-GI : 1ère Année : Mme ANOUAR DEVOIR SURVEILLE EN ALGORITHMIQUE Durée : 2heures Questions de cours : ............................................................................................................ 6pts 11.. Expliquez par un exemple la différence entre le passage des paramètres par valeur et par référence. 22.. Quel type de mémoire utilise la récursivité ? Quelle est la structure d’un algorithme récursif dans le cas général ? Exercice 3: ............................................................................................................................. 3pts Ecrire un algorithme qui permette à l’utilisateur de supprimer une valeur d’un tableau préalablement saisi. L’utilisateur donnera l’indice de la valeur qu’il souhaite supprimer. Attention, il ne s’agit pas de remettre une valeur à zéro, mais de la supprimer du tableau lui même. Exemple : Tableau initial : 12 8 4 45 64 9 2 7 Si l’utilisateur désire supprimer la valeur d’indice 4, le nouveau tableau qui sera de dimension égale à la dimension du tableau initial moins 1 donnera : Tableau final : 12 8 4 45 9 2 7 Indication : L’algorithme devra copier dans le deuxième tableau toutes les valeurs du premier tableau sauf celle à supprimer Exercice 4 : ------------------------------------------------------------------------------------------ 3pts 1. Ecrire une fonction récursive deux_puiss(n en entier) qui calcule 2n (en utilisant seulement le produit) 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. Exercice5 : -------------------------------------------------------------------------------------------- 2pts Ecrire une fonction calculant la somme de deux matrices dont les éléments sont de type double. Les adresses des trois matrices et leurs dimensions (communes) seront transmises en argument. Exercice 2 Ecrire un programme qui met à zéro les éléments de la diagonale principale d'une matrice carrée A donnée. Exercice6 : ---------------------------------------------------------------------------------------------------------- 5pts a. Ecrire un algorithme qui permet la saisie d’une note et son affichage. Afficher en plus un message d’avertissement si la note est en dessous de la moyenne. b. Ajouter à l’algorithme précédent une vérification de la note (nombre compris entre 0 et 20), une note incorrecte ne doit pas être affichée ( afficher un message d’erreur si note incorrecte) c. Ecrire un algorithme qui permet de : Lire N notes, Compter le nombre de notes incorrectes ; Compter le nombre de notes <10 ; De calculer la moyenne de notes correctes Exercice 1 : ........................................................................................................................ 2pts Dans les séquences suivantes x, y et z sont trois variables numériques : Pour chacune de ces séquences, donner les valeurs après exécution de X, Y et Z si l’on suppose qu’à l’état initial ces variables ont les valeurs : X=1 ; Y = 3 ; Z = 1 Séquence 1 SI (((x < 5) OU (y > 2)) ET ( Z > 3)) alors X=1 SI ((Z-Y) >0) alors Z=0 FinSi Y = Y+Z SINON X=2 Z = Y+Z FinSi Séquence 2 SI ((x < 5) OU ((y > 2) ET ( Z > 3)) alors X=1 SI ((Z-Y) >0) alors Z=0 FinSi Y = Y+Z SINON X=2 Z = Y+Z FinSi Exercice 4 : ------------------------------------------------------------------------------------------------------------ 4pts On donne en entrée d’une procédure un tableau de N éléments de type entier. Donner l’algorithme de la procédure Double qui pour chaque élément du tableau affiche cet élément si son double (au sens mathématique x : 2x) est aussi présent dans le tableau. Les éléments sont rangés dans un ordre aléatoire à l’intérieur du tableau. Le tableau est considéré comme intégralement rempli. Exemple : 1 16 2 4 6 8 Éléments dont les doubles sont présents : 1, 2, 4, 8 Exercice5 : -------------------------------------------------------------------------------------------- 2pts Ecrire une fonction récursive S(n) qui calcule la somme des n premiers entiers, n étant un entier positif donné. Exercice 2 : ------------------------------------------------------------------------------------------------------------ 3pts Ecrire un algorithme qui remplit et imprime une matrice carré 8*8 avec un terme constant d sur la diagonale et un autre terme constant t partout ailleurs. Exercice 6 : ------------------------------------------------------------------------------------------ 3pts Ecrire un programme qui lit deux tableaux A et B et leurs dimensions N et M au clavier et qui ajoute les éléments de B à la fin de A. Exercice 6 : Etablir la version récursive de l’algorithme qui calcule le Nè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 (F0) qui vaut 0 et le deuxième (F1) qui vaut 1.