Vous êtes sur la page 1sur 4

Premier cycle

Vendredi 11 Mai 2007

I3 - Algorithmique et Langage C
Dur e : 1h30 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. Justiez vos r ponses. e

D veloppement limit (6 points) e e


Lorsque x est proche de 0, sinh(x) peut etre approxim a laide de la formule suivante : e`

x2i+1 i=0 (2i + 1)! Compl tez le corps de la fonction suivante qui calcule une approximation de sinh(x) jusquau e rang n. Utilisez uniquement les variables et param` tres donn s et nutilisez aucune autre fonction e e (pas danalyse descendante) : fonction sinh (x : R el, n : Naturel) : R el e e e D claration i : Naturel numerateur,denominateur : R el e resultat : R el e e d but ... n Solution propos e : e fonction sinh (x : R el, n : Naturel) : R el e e D claration i : Naturel e numerateur,denominateur : R el e resultat : R el e d but e numerateur x denominateur 1 resultat resultat+numerateur/denominateur ` pour i 1 a n faire 1

numerateur numerateur*x*x denominateur (2*i+1)*(2*i)*denominateur resultat resultat+numerateur/denominateur npour retourner resultat n

Nombre de chiffres pairs dans un nombre (7 points)

On se propose de calculer le nombre de chiffres pairs dun nombre donn . On suit pour cela e lanalyse descendante pr sent e par la gure 1, tel que : e e nbChiffresPairs r soud le probl` me demand . Par exemple pour le nombre 821, on obtient 2. e e e nbChiffres permet dobtenir le nombre de chiffres dun nombre. Par exemple pour le nombre 821, on obtient 3. iemeChiffre permet dobtenir le i` me chiffre dun nombre. Par exemple pour 821, le premier chiffre e est 1, le second 2 et le troisi` me est 8 (on ne traite pas les erreurs). e estPair permet de savoir si un nombre est pair.

nbChiffresPairs

nbChiffres iemeChiffre
F IG . 1 Analyse descendante

estPair

1. Reprenez le sch ma donn et compl tez le (tel que nous lavons vu en cours). e e e 2. Donnez la signature des fonctions ou proc dures des op rations donn es par lanalyse descene e e dante. 3. Donnez le corps de la fonction ou proc dure nbChiffresPairs. e Solution propos e : e
Naturel

nbChiffresPairs

Naturel

Naturel

nbChiffres
Naturel Naturel

Naturel Naturel

estPair
Naturel

Boolen

1.

iemeChiffre

2. 3. fonction nbChiffresPairs (nb : Naturel) : Naturel D claration i : Naturel e resultat : Naturel d but e resultat 0 ` pour i 1 a nbChiffres(nb) faire si estPair(iemeChiffre(nb,i)) alors resultat resultat+1 nsi npour retourner resultat n fonction nbChiffresPairs (nb : Naturel) : Naturel fonction nbChiffres (nb : Naturel) : Naturel fonction iemeChiffre (nb : Naturel,) : Naturel fonction estPair (nb : Naturel,) : Bool en e

Tri par insertion (7 points)

Nous avons vu en cours que lalgorithme du tri par insertion est : fonction obtenirIndiceDInsertion (t : Tableau[1..MAX] dEntier ,borneSup :Naturel,lEntier :Entier) : Naturel proc dure decaler ( E/S t : Tableau[1..MAX] dEntier , E borneInf,borneSup :Naturel ) e proc dure triParInsertion ( E/S t : Tableau[1..MAX] dEntier , E nb :Naturel ) e D claration i,j,temp : Naturel e d but e ` pour i 2 a nb faire j obtenirIndiceDInsertion(t,i,t[i]) temp t[i] decaler(t,j,i) t[j] temp npour n 1. Donnez le corps de la fonction obtenirIndiceDInsertion. 2. Quelle est la complexit dans le pire des cas de la proc dure triParInsertion ? Justiez e e votre r ponse. e Solution propos e : e 3

1. fonction obtenirIndiceDInsertion (t : Tableau[1..MAX] dEntier ,borneSup :Naturel,lEntier :Entier) : Naturel D claration i : Naturel e d but e i1 tant que t[i]<lEntier et i<borneSup faire i i+1 ntantque retourner i n 2. Complexit en O(n2 ), en effet : e La boucle principale est en O(n) (car cest une boucle pour en dont les bornes est fonction du nombre d l ments). On va donc multiplier cette complexit par laddition des comee e plexit s des instructions quelle contient : e obtenirIndiceDInsertion est en O(n) (si recherche s quentiel, boucle pour fonce tion du nombre d l ments) ou (Olog2 (n) (si recherche dichotomique) ee decaler est en O(n) car boucle pour fonction du nombre d l ments ee Cette suite dinstruction est donc en O(n) et donc la complexit de triParInsertion e 2 dans le pire des cas est en O(n )

Vous aimerez peut-être aussi