Devoir maison Info 2 A rendre pour le 15 décembre au plus tard Exercice 1 : Exécutez un algorithme Considérez l algorithme suivant. Variables A, B, C en Entier; Début Lire A; Lire B; TantQue B 0 C A; TantQue C B C C B; FinTantQue A B; B C; FinTantQue Ecrire A; Fin 1. Exécutez l algorithme ci-dessus pour les différentes valeurs de A et B ci-dessous. Pour cela, vous utiliserez les tableaux en Annexe 1. (a) A = 36 and B = 30. (b) A = 30 and B = 36. (c) A = 25 and B = 13. 2. Que calcule cet algorithme? Exercice 2 : Nombres complexes Nous avons vu durant les cours que tous les langages de programmation étaient capables d effectuer des opérations mathématiques simples. Cependant, nous avons aussi vu que seuls les entiers et les réels sont gérés par tous les langages. Dans certains problèmes en sciences physiques, il est utile de travailler avec des nombres complexes (qui, contrairement à ce que leur nom indique, simplifient souvent les problèmes!). 1. Proposez un algorithme qui permette de stocker un nombre complexe, nommé z1, dont les valeurs sont fournies par l utilisateur. On rappelle qu un nombre complexe s écrit toujours sous la forme z 1 = a 1 +i b 1, avec i 2 = 1. 2. Ensuite, en considérant deux nombres complexes z 1 = a 1 + i b 1 et z 2 = a 2 + i b 2 préalablement saisis, écrivez les algorithmes permettant de calculer : (a) le produit z 3 = z 1 z 2, (b) la somme z 4 = z 1 +z 2, DUT GIM 2ème année IUT du Littoral Côte d Opale 1
(c) la rapport 1 z 5 = z 1 z 2. Exercice 3 : Matrices Quand on manipule des matrices, il est important de vérifier la dimension de celles-ci pour savoir si les opérations sont possibles ou pas. Dans cet exercice, on souhaite pouvoir multiplier, si possible, deux matrices A et B, de dimensions respectives n m et k l (n, m, k et l sont des valeurs arbitraires, fixées par l utilisateur). On remarquera tout d abord qu une matrice de taile n m peut être représentée par un tableau bi-dimensionnel de dimension n 1 et m 1. Dans cet exercice, l application est décomposée selon une analyse fonctionnelle en fonctions et procédure principale. Chaque question ci-dessous demande d écrire les pseudo-codes correspondant à chaque élément de l analyse fonctionnelle. Les questions peuvent être traitées de manière indépendante. 1. Ecrire une fonction DefMat qui, sans aucun argument en entrée, demande à l utilisateur les dimensions d un tableau bi-dimensionnel A et lui demande de rentrer les valeurs de ce tableau. Ce tableau est alors fourni en sortie de la fonction. 2. Ecrire une fonction MultOK dont les arguments d entrée sont deux tableaux bi-dimensionnels A(n,m)etB(k,l)qui fourniten sortie unbooléen quivaut 1 (ou VRAI) si la multiplication matricielle entre A et B est possible et 0 sinon. 3. Ecrire une fonction MultMat qui calcule le produit matriciel de deux tableaux bi-dimensionnels. Attention : on suppose que les dimensions des matrices permet le produit matriciel et on n inclura pas d étape de vérification ici. 4. Ecrire une procédure principale qui : demande à l utilisateur de saisir deux matrices de dimensions n m et k l fournies par l utilisateur calcule et affiche le produit matriciel si c est possible, ou affiche un message d erreur sinon. Exercice 4 : Analyse numérique En Physique, il est souvent impossible de calculer la solution exacte d une équation. Une approche classique consiste à approcher cette solution à une précision donnée. Ce domaine des sciences est connu sous le nom d analyse numérique. Une approche classique pour trouver la racine d une fonction est basée sur la recherche dichotomique. Imaginez que vous voulez résoudre une équation F(x) = 0. Imaginez que vous savez qu une de ses solutions inconnues, appelée x 0, est entre deux valeurs connues a et b, de telle sorte que (voir Fig 1) : a < b, F(a) et F(b) sont non-nuls et n ont pas le même signe, sur [a,b], l unique valeur de x pour laquelle F(x) = 0 est x = x 0, La recherche dichotomique consiste à : calculer c = b+a 2, garder le bon intervalle (cad assigner a c ou b c, selon les signes de F(a), F(b) et F(c) : nous devons être sûrs que x 0 reste dans [a,b]), 1. Indice : Dans ce cas, on remarquera que z 5 = z 1 z 2 z 2 z 2 = z 1 z 2, où z a 2 2 = a 2 i b 2. 2 +b2 2 DUT GIM 2ème année IUT du Littoral Côte d Opale 2
Figure 1 Un exemple de recherche dichotomique (Source Wikipedia) répéter les instructions suivantes jusqu à ce que b a ǫ, où ǫ est un seuil défini par l utilisateur, et enfin retourne la valeur b+a 2 comme une estimée de x 0. Ecrire un algorithme qui calcule la racine d une fonction F(x) sur [a,b] selon la méthode dichotomique. Pour cela, les valeurs de F(x) seront calculées à l aide d une fonction F(x)(supposée connue), les valeurs de a, b et ǫ seront demandées à l utilisateur. DUT GIM 2ème année IUT du Littoral Côte d Opale 3
Annexe 1 (a) A B C B 0? C B? Ecran DUT GIM 2ème année IUT du Littoral Côte d Opale 4
(b) A B C B 0? C B? Ecran DUT GIM 2ème année IUT du Littoral Côte d Opale 5
(c) A B C B 0? C B? Ecran DUT GIM 2ème année IUT du Littoral Côte d Opale 6