You are on page 1of 4

D partement STPI e

Jeudi 9 Avril 2009

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

Questions de cours (5 points)


R pondez aux questions suivantes en 5 lignes maximum : e 1. Quest ce que le paradigme de la programmation structur e ? e 2. Dans le cycle en V, quel est le r le de la conception pr liminaire ? o e 3. Pourquoi dit-on que les types tableaux sont des types complexes ? 4. Quelle(s) condition(s) doit v rier deux tableaux t1 et t2 pour que lexpression t1 = t2 soit vrai ? e 5. Quel est le r le du caract` re ; (point virgule) dans un programme Pascal ? o e

Solution propos e : e 1. Sous paradigme du paradigme de la programmation imprative avec le concept de sous-programme. Cela induit les concepts de param` tres formels, param` tres effectifs et passage de param` tre. Il existe deux e e e types de sous-programme les fonctions (calculent des valeurs) et les proc dures (modie l tat du proe e gramme). 2. Choisir un paradigme de programmation. 3. Plusieurs valeurs peuvent etre stock es par une seule variable. e 4. Outre le faite que t1 et t2 doivent etre du m me type, t1 = t2 i, t1[i] = t2[i]. e 5. S parateur dinsctruction e

D veloppement limit (5 points) e e


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

n i=1

(1)i 2i+1 x (2i + 1)!

Compl tez le corps de la fonction suivante qui calcule une approximation de sin(x) jusquau rang n. Utie lisez uniquement les variables et param` tres donn s et nutilisez aucune autre fonction (pas danalyse descene e dante) : fonction sin (x : Reel, n : Naturel) : Reel D claration i : Naturel e numerateur,denominateur,xPuissance2IPlus1 : Reel resultat : Reel 1

debut ... n Solution propos e : e fonction sin (x : Reel, n : Naturel) : Reel D claration i : Naturel e numerateur,xPuissanceI : Reel resultat : Reel debut numerateur 1 denominateur 1 xPuissance2IPlus1 x resultat 0 ` pour i 1 a n faire numerateur -1*numerateur denominateur denominateur*(2*i+1)*(2*i) xPuissance2IPlus1 x*x* xPuissance2IPlus1 resultat resultat+numerateur/denominateur*xPuissanceI npour retourner resultat n

Majuscule (10 points)

Dans le cours pr sentant des programmes de chiffrement, nous avons consid r poss der la fonction majuscule e ee e ` qui permet de calculer a partir dune chane de caract` res ch une chane de caract` res ch tel que tous les ca e e ract` res minuscules, et uniquement eux, de ch soient transform s en majuscule dans ch . La signature de cette e e est fonction est : fonction majuscule (uneChaine : Chaine de caracteres) : Chaine de caracteres Ainsi majuscule(abc, ?ABC) donne la valeur ABC, ?ABC. Lobjectif de cet exercice est de donner lalgorithme de cette fonction en consid rant que nous avons les e trois fonctions suivantes : fonction longueur (uneChaine : Chaine de caracteres) : Naturel fonction iemeCaractere (uneChaine : Chaine de caracteres, position : Naturel) : Caractere fonction caractereEnChaine (unCaractere : Caractere) : Chaine de caracteres

3.1

Analyse

Pour calculer la version majuscule dune chane de caract` res ch, on a besoin de savoir calculer la majuscule e dun caract` re c de ch lorsque c repr sente une lettre minuscule. Nous navons aucun a priori concernant la table e e de codage de ces caract` res, si ce nest que : e le caract` re a pr c` de le caract` re b, qui pr c` de le caract` re c, etc. e e e e e e e le caract` re A pr c` de le caract` re B, qui pr c` de le caract` re C, etc. e e e e e e e ` Proposez une analyse descendante de ce probl` me a laide du formalisme vu en cours. e Solution propos e : e

Chaine

majuscule

Chaine

Caractre

estUneLettreMinuscule

Boolen Caractre

lettreMajuscule

Caractre

3.2

Conception pr liminaire e

D terminez la signature des fonctions ou proc dures correspondant aux op rations de votre analyse descene e e dante. Solution propos e : e fonction majuscule (ch : Chaine de caracteres) : Chaine de caracteres fonction estUneLettreMinuscule (c : Caractere) : Booleen fonction lettreMajuscule (c : Caractere) : Caractere

3.3

Conception d taill e e e

Donnez le corps de chacune de ces fonctions ou proc dures. e Solution propos e : e fonction majuscule (ch : Chaine de caracteres) : Chaine de caracteres D claration i : Naturel e c : Caractere resultat : Chaine de caracteres debut resultat ` pour i 1 a longueur(ch) faire c iemeCaractere(ch,i) si estUneLettreMinuscule(c) alors resultat resultat+ caractereEnChaine(lettreMajuscule(c)) sinon resultat resultat+ caractereEnChaine(c) nsi npour retourner resultat n fonction estUneLettreMinuscule (c : Caractere) : Booleen debut retourner ca et cz n fonction lettreMajuscule (c : Caractere) : Caractere debut retourner chr(ord(A)+ord(c)-ord(a)) n ou fonction lettreMajuscule (c : Caractere) : Caractere 3

D claration i : Caractere e resultat : Caractere debut resultat A ` pour i b a c faire resultat succ(resultat) npour n

3.4

D veloppement e
Donnez le code Pascal de la fonction majuscule.

Solution propos e : e f u n c t i o n majuscule(ch : String) : String; var resultat : String; i : Integer; c : Char; begin resultat:=; f o r i:=1 t o length(ch) do begin c:=ch[i]; i f estUneLettreMinuscule(c) t h e n resultat:=resultat+lettreMajuscule(c) else resultat:=resultat+c end; majuscule:=resultat end; { majuscule }