Académique Documents
Professionnel Documents
Culture Documents
I3 - Algorithmique et Langage C
Dur e : 3h00 e Documents autoris s : AUCUN (calculatrice comprise) e Remarques : Veuillez lire attentivement les questions avant de r pondre. e Le bar` me donn est un bar` me indicatif qui pourra evoluer lors de la correction. e e e Rendez une copie propre.
1
1.1
1.2
Algorithme
Nous allons ecrire lalgorithme r cursif qui permet la multiplication de 2 naturels suivant cette e m thode : e 1. D terminer le ou les cas terminaux. D terminer le ou les cas g n raux. e e e e 2. Donner le corps de la fonction suivante en utilisant un algorithme r cursif : e fonction multiplicationEgyptienne (a,b : Naturel) : Naturel
Dans le cadre de la coupe du monde de football, on se propose de d velopper une proc dure e e e (construireDrapeauFrancais) qui pour un tableau de couleurs (contenant nb el ments signi l ments de facon a ce quil y ait successivement tous les bleus en d but de tableau, ` catifs), trie les e e e puis tous les blancs enn tous les rouges. 1. Proposer une analyse descendante de ce probl` me. e 2. Donner le corps de la proc dure construireDrapeauFrancais et des fonctions ou proc dures e e de votre analyse.
i n t t [ ] = {12 , 23 , 43 , 45 , 56 , 67 , 79 , 89 , 90}; i n t p ; p = t; Quelles valeurs ou adresses fournissent les expressions suivantes : 1. p+(*p-10) 2. *(p+2) 3. *p+2 4. t+3 5. *(&(t[4])-3) 6. *(p+*(p+8)-t[7])
Dans un espace orthonorm a deux dimensions, on d nit un carr par les coordonn es de son e` e e e point bas gauche et par la longueur dun cot . e 1. D nir un type Carre qui permet de stocker les informations d nissant un carr . e e e 2. On consid` re la relation dinclusion entre les carr s suivante : un carr C2 est inclus dans un e e e ` carr C1 si, graphiquement, le carr C2 est a lint rieur du carr C1. e e e e (a) Ecrire une fonction int estInclusDans(Carre C2, Carre C1) qui retourne 1 si C2 est inclus dans C1, 0 sinon. (b) Ecrire une fonction qui, pour un tableau de carr s, permet de trouver lindice dans le e tableau, du carr qui inclut le plus de carr s. e e
On se propose dans cet exercice dutiliser une structure de donn es qui ordonne nativement des e e e el ments. Cette structure de donn es est compos e de 4 el ments : e e e 1. un tableau permettant de stocker les el ments (lesElements), 2
2. un tableau de naturels, associ au premier, qui permet de connatre lindice de l l ment qui suit e ee un autre avec la valeur -1 sil ny en a pas (suivant), 3. un naturel qui indique le nombre d l ments (nbElements), ee e 4. un naturel qui indique lindice du premier el ment ( indicePremierElement). Pour illustrer cette structure nous allons consid rer que nous voulons stocker des noms danie maux. Les ajouts successifs de Lion, Gazelle, Z` bre, Chien et Lapin donnerait la structure e suivante :
1 2 3 4 5 6 7 MAX lesElements Lion Gazelle Zbre Chien Lapin suivant 3 5 -1 2 1 indicePremierElement 4 nbElements 5
e ` On voit bien que le premier el ment est celui qui est a lindice 4 (valeur dindicePremierElement) ` et cest le Chien (valeur de lesElements[4]). Il est suivi de l l ment se trouvant a lindice ee 2 (valeur de suivant[4]), cest la Gazelle (valeur de lesElements[2]), etc. Le dernier e el ment est bien Z` bre (valeur de lesElements[3]) car il ne poss` de pas d l ment suivant e e ee ` (valeur de suivant[3] a -1). Lajout de l l ment Chat dans cet exemple modiera la structure de la facon suivante : ee
1 2 3 4 5 6 7 MAX lesElements Lion Gazelle Zbre Chien Lapin Chat suivant 3 5 -1 2 1 4 indicePremierElement 6 nbElements 6
On repr sente cette structure de donn es a laide du type suivant : e e ` Type Liste = Structure lesElements : Tableau[1..MAX] de Chane de caract` res e suivant : Tableau[1..MAX] de Naturel indicePremierElement : Naturel nbElements : Naturel nstructure
5.1
Initialiser
e Ecrire le corps de la proc dure suivante qui initialise (aucun el ment) une variable de type Liste : e proc dure initialiser ( Entr e/Sortie l : Liste ) e e
5.2
Parcourir
e Ecrire le corps de la proc dure suivante qui afche dans lordre les el ments contenus dans une e variable de type Liste : proc dure afcher ( Entr e l : Liste ) e e
5.3
5.3.1
Ajouter
Un autre exemple
En reprenant lexemple donn dans l nonc , apr` s lajout de Loup, proposez le r sultat de e e e e e lajout de Pie. 5.3.2 Lalgorithme
Ecrire le corps de la proc dure suivante qui ajoute un nom danimal dans une liste : e proc dure ajouter ( Entr e/Sortie l : Liste , Entr e nom : Chane de caract` res ) e e e e Dans ce cas on consid` re : e e quil y a assez de place pour stocker le nouvel el ment que lon poss` de la fonction estInferieureOuEgale qui permet de comparer deux chanes e de caract` res : e fonction estInferieureOuEgale (chaine1, chaine2 : Chane de caract` res) : Bool en e e