Vous êtes sur la page 1sur 5

Université Cadi Ayyad

Faculté des Sciences Semlalia Marrakech


Département d’Informatique

Contrôle de Module informatique SMIA-S2


Printemps 2015 (Durée 2H.)

Consignes. Les algorithmes doivent être lisiblement rédigés en utilisant un


langage algorithmique. Toute erreur de syntaxe sera pénalisée. Les
documents et les appareils électroniques ne sont pas autorisés. L’examen
est noté sur 20 points.
Exercice 1. (6 pts.)
1. Ecrire une fonction Puissance qui calcule la puissance nième d’un
nombre x : x n

On va construire une fonction puissance( x, p)// (sur 2 pts.)


Fonction puissance( x : entier, p :entier) : entier
Var z : entier
DEBUT
z1
TantQue (p>0)
zz*x
pp-1
FinTantque
retourne(z)
FinFonction

2. Écrire une fonction Fact qui calcule la factorielle d’un nombre n :  n !


On va construire une fonction Fact( n) (sur 2 pts.)
Fonction Fact(n :entier) : entier
Var z,i : entier
DEBUT
z1
pour i allant de 1 à n
z=z*i
finpour
retourne(z)
FinFonction

3. Ecrire un algorithme qui calcule et affiche la somme des puissances p-


ième des entiers et qui utilise la fonction Puissance précédemment définie :
p p p p p
S p ( n )=1 +2 +3 + …+( n−1) +n

1/2
Algorithme Somme_puissance (sur 2 pts.)
var p, n, s, i : entiers

Début
i0
s0
afficher(" entrer la puissance p et l’entier n :")
lire(p,n)
pour i allant de 1 à n
s = s + puissance(i,p)
finpour
afficher(" La somme est : ",s)
Fin

Exercice 2. (6 pts.)
1. Écrire un algorithme qui calcule et affiche la somme des n premiers
nombres entiers positifs impairs. L’algorithme demandera à l’utilisateur de

saisir la valeur den .

Algorithme Somme_premiers_nombre (sur 2 pts.)


var s, i : entiers

Début
afficher(" entrer l’entier n :")
lire(n)
s0
pour i allant de 1 à n
si (i mod 2 <>0) s = s + i
finsi
finpour
afficher(" La somme est : ",s)
Fin

2. Ecrire un algorithme qui affiche tous les nombres premiers inférieurs ou


égal à 100. On utilisera une fonction Premier prenant un nombre entier et
retournant Vrai si le nombre est premier, Faux sinon.

On va construire une fonction Premier(n) (sur 2 pts.)


Fonction Premier (n : entier) : entier
Var i : entier
z : booleen
DEBUT
zVRAI
pour i allant de 2 à n-1
si(n mod i=0) z FAUX
finsi
finpour
retourne(z)
FinFonction
2/2
Algorithme Nombres_premiers (sur 2 pts.)
var i : entiers

Début
pour i allant de 1 à 100
si (premier(i)=VRAI) //ou tout simplement si(premier(i))
afficher(i)
finsi
finpour
Fin

Exercice 3. (3 pts.)
1. Que donne l’algorithme suivant à « l’exécution » :
ALGORITHME Question3.1
Var i, j : Entier
DEBUT
Pour iß1 jusqu’à 2
Ecrire(" i= ", i)
Pour jß1 jusqu’à 3
Ecrire("le produit de",i," et ",j," est:",i*j)
FinPour
FinPour
FIN

i=1 //pas de retour de ligne forcé (sur 1.5pts.)


le produit de 1 et 1 est : 1
le produit de 1 et 2 est : 2
le produit de 1 et 3 est : 3
i=2
le produit de 2 et 1 est : 2
le produit de 2 et 2 est : 4
le produit de 2 et 3 est : 6

2. Que donne l’algorithme suivant à « l’exécution » :

ALGORITHME Question3.2 (sur 1.5 pts.)


Var i, j : Entier
DEBUT
Pour iß1 jusqu’à 2
Ecrire(" i= ", i)
FinPour
Pour jß1 jusqu’à 3
Ecrire("le produit de",i," et
3/2",j," est:",i*j)
FinPour
FIN
i=1 //pas de retour de ligne forcé
i=2
//apres la sortie de la boucle pour la valeur de i est 3
// mais on peut accepter la valeur 2
le produit de 3 et 1 est : 3
le produit de 3 et 2 est : 6
le produit de 3 et 3 est : 9

Exercice 4. (5 pts.)
Soit l’algorithme suivant :

ALGORITHME Exercice4
Var X, T, S : réel
I, N : entier
DEBUT
Lire (N, X)
S0
T1
I1
TantQue I≤ N Faire
T T * X*X
S S+ T/ I
I I+ 1
FinTQ
Ecrire(S)
FIN.

1. Faire le déroulement (l’exécution) de l’algorithme donné pour N= 3, X=2 et


déduire la valeur de S. (sur 2 pts.)

2. Déduire l’expression générale calculée par l’algorithme en fonction de X et N.


(sur 2 pts.)

3. Réécrire l’algorithme en remplaçant la boucle Tant que par la boucle Pour.


(sur 1 pts.)

4/2
1. Déroulement de l’algorithme

N X I T S
3 2 1 1 0
1 1*2*2 0+4/1=4
2 4*2*2 4+16/2=12
3 16*2*2 12+64/3=33.33
4>N

La valeur de S =33.3
3. L’expression de S en fonction de X est N :

4. L’écriture du programme en utilisant la boucle pour

ALGORITHME Exercice4
Var X, T, S : réel
I, N : entier
DEBUT
Lire (N, X)
S0
T1
I1
pour I allant de 1 à N
T T * X*X
S S+ T/ I
FinPour
Afficher(S)
FIN.

Bonne chance

5/2

Vous aimerez peut-être aussi