Vous êtes sur la page 1sur 4

STPI

Jeudi 25 Juin 2009

I3 - Algorithmique
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. ` Nutilisez pas de crayon a papier.

1
1.1

Distance de Hamming (5 points)


Distance de Hamming entre deux mots

La distance de Hamming entre deux chanes de caract` res, appel es mots , de m me longueur est egale e e e ` au nombre de caract` res, a la m me position, qui diff` re. Par exemple la distance de Hamming entre rose et e e e ruse est de 1, alors que la distance de Hamming entre 110110 et 000101 est de 4. Proposer lalgorithme de la fonction it rative suivante qui permet de calculer la distance de Hamming de e deux mots, non vides, que lon sait de m me longueur1 : e fonction distanceHammingDeuxMots (mot1,mot2 : Chaine de caracteres) : Naturel

1.2

Distance de Hamming dun langage

Un langage est un ensemble de mots. La distance de Hamming dun langage est egale au minimum des ` distances de Hamming entre deux mots de ce langage diff rents deux a deux. e Proposer le corps de la fonction it rative suivante qui permet de calculer la distance de Hamming dun e ` langage dau moins 2 mots qui poss` de uniquement des mots de m me longueur et tous diff rents deux a e e e deux1 : fonction distanceHammingLangage (leLangage : Tableau[1..MAX] de Chaine de caracteres , nbMots : Naturel) : Naturel

Somme des chiffres dun naturel (3 points)

Proposer lalgorithme de la fonction r cursive suivante qui permet de calculer la somme des chiffres dun e naturel. Par exemple sommeChif f res(524) retournera la valeur 11. fonction sommeChiffres (n : Naturel) : Naturel

3
3.1

Un petit dessin (3 points)


Rappels et pr requis e

Nous avons vu en cours quun ecran graphique dordinateur (repr sent par une variable de type Ecran) e e ` est un quadrillage de pixels. Nous avons vu aussi que lon pouvait obtenir ou modier la couleur dun pixel a laide des deux proc dures suivantes : e proc dure xerCouleurPixel (E/S e : Ecran,E x,y : Naturel, c : Couleur) e fonction obtenirCouleurPixel (e : Ecran,x,y : Naturel) : Couleur Pour le type Ecran, on consid` re avoir aussi la proc dure suivante : e e proc dure segment (E/S e : Ecran,E x1,y1,x2,y2 : Naturel, c : Couleur) e
1

` Cela signie que vous navez pas a faire ce(s) test(s) dans votre algorithme

qui permet dessiner sur l cran un segment de droite de couleur c entre les pixels de coordonn es e e (x1, y1) et (x2, y2) Enn, on consid` re avoir en plus les proc dures math matiques suivantes : e e e proc dure rotation (E xc,yc,x1,y1 : Naturel, angle : Reel, S x2,y2 : Naturel) e qui permet de calculer limage, de coordonn es (x2, y2), dun pixel, de coordonn es (x1, y1), par e e une rotation de centre de coordonn es (xc, yc) et dangle angle (exprim en degr s). Pour rappel, e e e limage M dun point M par une rotation de centre C et de rayon est d ni par M CM = et e CM = CM . proc dure homothetie (E xc,yc,x1,y1 : Naturel, k : Reel, S x2,y2 : Naturel) e qui permet de calculer limage, de coordonn es (x2, y2), dun pixel, de coordonn es (x1, y1), par une e e homoth tie de centre de coordonn es (xc, yc) et de rapport k. Pour rappel, limage M dun point M e e par une homoth tie de centre C et de rapport k est d ni par CM = k CM . e e ` Par exemple lex cution de la proc dure exemple (donn e uniquement a titre dillustration) avec les pae e e ram` tres effectifs e, 100, 100, c donne la gure 1. e proc dure exemple (E/S e : Ecran, E x,y : Naturel, c : Couleur) e D claration x3,y3,x4,y4 : Naturel e debut segment(e,x,y,x+300,y,c) rotation(x+300,y,x+300+283,y,45,x3,y3) homothetie(x3,y3,x3+200,y3,0.5,x4,y4) segment(e,x+300,y,x3,y3,c) segment(e,x3,y3,x4,y4,c) n

600,300 100,100 400,100

700,300

F IG . 1 Exemple dutilisation des proc dures segment, rotation et homothtie (les coordonn es des e e e points sont donn es a titre indicatif) e `

3.2

Proc dure myst` re e e

Soit la proc dure mystere suivante : e proc dure mystere (E/S e : Ecran, E x1,y1,x2,y2,n : Naturel, c : Couleur) e D claration x3,y3,x4,y4,x5,y5 : Naturel e debut si n=0 alors segment(e,x1,y1,x2,y2,c) sinon homothetie(x1,y1,x2,y2,0.33,x3,y3) homothetie(x1,y1,x2,y2,0.66,x5,y5) rotation(x3,y3,x5,y5,60,x4,y4) mystere(e,x1,y1,x3,y3,n-1,c) 2

mystere(e,x3,y3,x4,y4,n-1,c) mystere(e,x4,y4,x5,y5,n-1,c) mystere(e,x5,y5,x2,y2,n-1,c) nsi n Dessiner lex cution de cette proc dure avec les param` tres effectifs e, 0, 0, 1000, 0, 2, c. e e e

Traitement du Signal (9 points)


Un signal est une suite num rique (des r els). Les op rations habituelles sur un signal sont : e e e initialiser un signal avec n fois la m me valeur (n de type Naturel) ; e obtenir le nombre de valeurs dun signal ; obtenir la i` me valeur dun signal (avec 0 i n) ; e xer la i` me valeur dun signal (avec 0 i n) ; e ` ajouter une nouvelle valeur a la n dun signal (si le signal avait au pr alable n valeurs, il en poss` de e e ensuite n + 1).

4.1

Conception pr liminaire (1,5 point) e

On consid` re poss der le type Signal. Proposer les signatures des fonctions et proc dures, correspondant e e e aux op rations pr c dentes permettant de manipuler un signal. e e e

4.2

Conception d taill e (2 points) e e

On d cide de repr senter le type Signal de la facon suivante : e e Type Signal = Structure donnees : Tableau[1..MAX] de Reel nbDonnees : Naturel nstructure Donner les algorithmes des fonctions et proc dures de la conception pr liminaire. e e

4.3

Utilisation du type Signal

Pour rappel, dans cette partie nous sommes utilisateur du type Signal. Pour manipuler un signal, nous nutilisons donc que les fonctions et proc dures propos es par la conception pr liminaire. e e e 4.3.1 Min et max (1,5 points)

Proposer lalgorithme dune proc dure calculerMinMax qui permettra dobtenir la plus petite et la plus e grande valeur dun signal (que lon suppose poss d au moins une valeur). e e 4.3.2 Lissage de courbe (4 points)

Lobjectif ici est de d velopper un ltre non causal , cest-` -dire une fonction qui lisse un signal en e a utilisant une fen tre glissante pour moyenner les valeurs : la ieme valeur du nouveau signal est la moyenne des e ` valeurs du signal source se trouvant a lint rieur dune fen tre glissante centr e en i (Cf. gure 2). Pour les e e e premi` res et derni` res valeurs, seules les valeurs dans la fen tre sont prises en compte. e e e Apr` s avoir fait une analyse descendante du probl` me, proposer lalgorithme de la fonction filtreNonCausal e e ` avec la signature suivante sachant que le nombre de valeur dun signal est obligatoirement sup rieur a 1 et que e la taille de la fen tre est obligatoirement impaire1 : e fonction ltreNonCausal (signalNonLisse : Signal, tailleFenetre : Naturel) : Signal

Fentre glissante

Signal source Signal calcul

1.5

1.5 2.3 3.3 4 4.7

1.5 2.3 3.3 4 4.7 4 5.3 5

F IG . 2 Lissage dun signal avec une fen tre de taille 3 e

Vous aimerez peut-être aussi