15
M. El Marraki 1 SMIA S 2 Module M 5 E 2 Correction de la série N°3 Mohamed El Marraki

CorrTD4Algo2014

Embed Size (px)

DESCRIPTION

goooof

Citation preview

Page 1: CorrTD4Algo2014

M. El Marraki 1

SMIA S2 Module M5 E2

Correction de la série N°3

Mohamed El Marraki

Page 2: CorrTD4Algo2014

M. El Marraki 2

Exercice 1 : Ecrire un algorithme qui effectue la lecture de l’entier n (la taille de T), la lecture du tableau T (contient n valeurs réelles triés dans l’ordre croissant) et un nombre réel x, ensuite l’algorithme effectue l’insertion de x dans le tableau T, de telle manière que le tableau T reste trié. Exemple : Soit le tableau T de 8 nombres triés

dans lequel on désire insérer le nombre 40 :

4 7 8 12 23 56 89 112

4 7 8 12 23 40 56 89 112

Page 3: CorrTD4Algo2014

M. El Marraki 3

variables Tableau T[100], i, n, x, c :entier debut ecrire("donner la taille du tableau T :") lire(n) ecrire("donner les ",n," éléments du tableaux T :")

Pour i allant de 1 à n faire lire(T[i]) FinPour

ecrire("donner x :")

lire(x) ißn Tantque(i>1 et T[i]>x) T[i+1]ßT[i] i ß i-1

FinTantque T[i]ßx

fin

Page 4: CorrTD4Algo2014

M. El Marraki 4

Exercice 2 : Soit le programme mystere suivant : Variable : n, i : entiers

Tableau T[100] :entiers

debut

ecrire(" n ?") lire(n)

T[1] ß 0 T[2] ß 1 iß3 Tantque(i<=n) faire

T[i] ß T[i-1]+T[i-2]

ißi+1

FinTantque Pour i allant de 1 à n faire

Ecrire("T[",i,"]=",T[i])

finpour

end;

Page 5: CorrTD4Algo2014

M. El Marraki 5

1.  Donner le contenu du Tableau T pour n=10?

2.  Que fait ce programme ? 3.  On remarque que pour calculer T[i] on besoin que de T[i-1]

et T[i-2], comment améliorer cette fonction (écrire un programme qui n’utilise pas le tableau T) ?

Page 6: CorrTD4Algo2014

M. El Marraki 6

T : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 cet algorithme calcule les termes de la suite de Fibonacci.

variables i, n, u, v, w : entiers

début

ecrire(" n ?") lire(n)

si (n=1) alors écrire(0," ") finsi

si (n=2) alors écrire(1," ") finsi

i ß 3

TantQue(i<=n) faire

w ß v v ß u + v u ß w

écrire(v," ")

i ß i+1

FinTantQue

Fin

Page 7: CorrTD4Algo2014

M. El Marraki 7

Exercice 3 :

On désire écrire un algorithme qui affiche l’image miroir n’ d’un nombre entier n.

Exemple : l’image miroir du nombre n=54321 est n’=12345.

1.  Analyse : expliquer comment extraire à partir de l’entier n les chiffres qui le compose.

2.  Ecrire une conception de l’algorithme qui lit un entier n et affiche son image miroir.

Page 8: CorrTD4Algo2014

M. El Marraki 8

Correction :

Pour extraire les chiffres qui composent un entier n il suffit de répéter les deux instructions suivantes :

r ß n % 10 n ß n/10

Page 9: CorrTD4Algo2014

M. El Marraki 9

variables n, i, r : entier

début

écrire("Entrer un entier : ")

lire(n)

tanque(n!=0) faire

r ß n % 10

écrire(r)

n ß n/10

fintantque

fin

Page 10: CorrTD4Algo2014

M. El Marraki 10

Exercice 4 : Soit le programme mystere() suivant :

variable tableau T[100], n, i, d : entier debut

d ß 2 i ß 1

Tantque (d <= n) faire

si (n % d = 0) alors

T[i] ß d n ß n/d i ß i+1

sinon d ß d+1

finsi

fintantque

fin

Page 11: CorrTD4Algo2014

M. El Marraki 11

1. Que contient le tableau T après l’exécution de mystere(8) ?

2. Que contient le tableau T après l’exécution de mystere(36) ?

3. Que fait le programme ?

4. Que se passera-t-il si on remplace l’instruction dß2 par dß1 ?

Page 12: CorrTD4Algo2014

M. El Marraki 12

1.

2.

3. Rempli le tableau avec les diviseurs de n.

4. Si on remplace dß2 par dß1, on aura une boucle infini.

2 2 2

2 2 3 3

Page 13: CorrTD4Algo2014

M. El Marraki 13

Exercice 5 :

Ecrivez un algorithme qui lit un entier n, un tableau de n entiers A[], un autre tableau de n entiers B[] calcule et affiche le produit scalaire de A par B : ∑ A[i] * B[i]

Page 14: CorrTD4Algo2014

M. El Marraki 14

variables Tableau A[60], A[60], n, i, x :entier

début écrire("donner la taille des tableaux :") lire(n) écrire("donner les ",n," éléments du tableaux A :")

Pour i allant de 1 à n faire lire(A[i]) FinPour

écrire("donner les ",n," éléments du tableaux B :")

Pour i allant de 1 à n faire lire(B[i])

FinPour

xß0

Pour i allant de 1 à n faire xßx+A[i]*B[i]

FinPour écrire("le produit scalaire est",x)

fin

Page 15: CorrTD4Algo2014

M. El Marraki 15

Révisez bien et bon courage