Informatique – MP Faidherbe TP1 : Une reprise en douceur ! Alix Goguey - [email protected] année 2012-2013 1 Introduction Pour ce premier TP de l’année, je vous propose une reprise en douceur ! Le Caml n’étant très certainement pas le langage que nous pratiquons le plus pendant les vacances, il nous sera utile de ré-apprendre à le parler. Ça revient assez vite vous verrez. La scéance d’aujourd’hui consistera donc en une suite d’exercices simples ayant pour but de programmez. Je vous promets pour la suite des sujets qui mettront beaucoup plus à l’épreuve votre âme de codeur. La page https://groups.google.com/d/forum/tp-info-faidherbe-2012 est dédié au service après-vente. Je vous invite à y faire un tour (sur invitation seulement, laissez-moi vos mails). Les énoncés et corrigés des TP seront mis en ligne régulièrement. N’hésitez pas à créer un sujet pour poser une question utile à tous. Vous pouvez même vous entraider ! Si la question est plus spécifique/personnelle, un simple mail à mon attention suffira (précisez "TP Faidherbe" dans l’objet du mail). Aucune question n’est stupide ! Dans la mesure de ma disponibilité j’y répondrai volontier. Je suis également à votre disposition pour vous aider dans vos TIPE (dans la mesure de mes compétences). 2 2.1 La suite d’exercices Montons crescendo Exercice 1 : Implémentez les fonctions min et max comparant 2 entiers. Exercice 2 : Implémentez de même les fonctions minList et maxList renvoyant le minimum et le maximum d’une liste d’entier. Exercice 3 : Implémentez la fonction intList prenant en paramètre un entier n et initialisant une liste avec les n premiers entiers naturels non nuls. Exercice 4 : Implémentez la fonction diviseur prenant en paramètre un entier n renvoyant la liste des diviseurs positifs entiers de n. 1 2.2 Le crible d’Eratostène Le crible d’Eratost‘ene est un procédé qui permet de trouver tous les nombres premiers inférieurs à un certain entier naturel donné n. Etant donné une liste d’entier, le but est d’éliminer au fur et à mesure les multiples (on élimine les multiples de 2, puis de 3, · · · ). Exercice 5 : Implémentez la fonction suppMult qui prend en paramètre un entier k et une liste d’entiers naturels non nuls l et renvoyant la liste l où tous les multiples de k auront été enlevés (on gardera k s’il existe). Exercice 6 : Implémentez la fonction nbPremier qui prend en paramètre un entier naturel non nul n et renvoyant la liste des nombres premiers inférieurs ou égaux à n. 2.3 Faisons des Maths Exercice 7 : Implémentez la fonction estPremier qui prend en paramètre un entier naturel non nul n et renvoyant un booléen true si n est un nombre premier ou un booléen false sinon. Exercice 8 : Implémentez la fonction premierEntreEux qui prend en paramètre 2 entiers naturels non nuls a et b et renvoyant un booléen true si a et b sont premiers entre eux ou un booléen false sinon. Exercice 9 : Implémentez la fonction decompFP qui prend en paramètre un entier naturel non nul n et renvoyant la décomposition en facteur premier du nombre n. Un nombre parfait est un entier naturel n tel que la somme des diviseurs entiers positifs de n est égale à 2n. Exercice 10 : Implémentez la fonction estParfait qui prend en paramètre un entier naturel non nul n et renvoyant un booléen true si n est un nombre parfait ou un booléen false sinon. On dit qu’un entier naturel est un nombre sublime lorsque le nombre de ses diviseurs et la somme de ses diviseurs sont tous deux des nombres parfaits. Exercice 11 : Implémentez la fonction estSublime qui prend en paramètre un entier naturel non nul n et renvoyant un booléen true si n est un nombre sublime ou un booléen false sinon. Exercice 12 : Implémentez la fonction pgcd prenant en paramètre deux naturels non nuls a et b renvoyant P GCD(a, b). 2 Exercice 13 : Implémentez les fonctions ppcm1 et ppcm2 prenant en paramètre deux naturels non nuls a et b renvoyant P P CM (a, b). Note : l’une des implémentations utilisera la fonction pgcd, l’autre parcourant naïvement une liste d’entier. Exercice 14 : Implémentez la fonction evalSQRT √ qui prend en paramètre un entier naturel non nul n et renvoyant un encadrement de n (p2 ≤ n < q 2 ). Si c’est trop facile, implémentez la fonction evalSQRT2 qui √ prend en paramètre 2 entiers naturels non nuls n et k et renvoyant un encadrement de n à k chiffres après la virgule. 3