You are on page 1of 5

Correction – TD N°6 ( 1h45 Min)

(Cette propositon est destinée uniquement aux Prof. TDs)

Exercice 1 ( 15 Min)

Algorithme Exo1
Variable
m: Entier

Procedure TableMult(N:Entier)
Variable
i : Entier

Debut (* Début procedure*)

Pour i = 1 à 10 faire
Ecrire( N,' * ', i , ' = ', N*i)
FinPour
Fin (* Fin procedure*)

DEBUT (* Algorithme *)

Ecrire(' Donnez un entier S.V.P ')


Lire(m)
TableMult (m)

FIN (* Algorithme *)

Exercice 2 ( 20 Min)

Algorithme Exo2
Variables
a,b , res : Réel
opr:Caractère

Fonction Operations(x:Réel,y:Réel, op:caractère) : Réel

Variable
r : Réel

Debut (* Début fonction *)


r<--0
Si(x<>0) Alors
SELON(op) faire
'*' : r<-- x*y
'+' : r<-- x+y
'-' : r<-- x-y
'/' : Si (y<>0) Alors
r<-- x/y
finSi
Sinon
Ecrire('Erreur !')

1/5
FinSELON
FinSi

Retourner (r)
Fin (* fin Fonction *)

DEBUT (* Algorithme *)

Ecrire(' Donnez deux réels S.V.P ')


Lire(a,b)

Ecrire(' Donnez une opération S.V.P ')


Lire(opr)
res <-- Operations(a,b,opr)

(* res <-- Operations(a,b,'+') , un autre exemple d'utilisation *)

Ecrire(' Le résultat de l'opération ', a , op, b , 'est :' , res)

FIN (* Algorithme *)

Exercice 3 (20 Min)


Corriger les erreurs et compléter l'algorithme suivant :
Algorithme Facture
Constante
N=50
Type
TF = tableau[1..N] des Réels (* Expliquez aux étudiants l'utilité de l'utilisation de ce type *)
Variables
f:TF
n: Entier
Globale MntF: Réel (* Déclaration de la variable globale MntF *)
(****************************************)
Procedure SaisieF(p :TF, nb:entier) (* nb : nombre d'articles *)
Variable
i : entier
Debut
Pour i = 1 à nb faire
Ecrire('Donnez le prix de l'article', i , 'S.V.P ')
lire(p(i))
finPour
Fin
(****************************************)
Fonction MontantF(t :TF, nb:entier ): réel
Variables
i: entier
m: réel
Debut
m<--0
Pour i= 1 à nb faire
m<-- m + t(i)

2/5
finPour
Retourner (m)
Fin
(****************************************)
Procedure Remise(nba :entier ) (* nba : nombre d'articles *)
Debut
Si (nba>=3) Alors
MntF<-- MntF – MntF*(10/100) (* Modification de la variable globale MntF *)
Sinon
Ecrire('Nombre d'articles <3)
finSi
Fin
(****************************************)
DEBUT (* Début Algorithme *)

Ecrire('Donnez le nombre d'articles, S.V.P')


lire(n)
MntF<-- 0
SaisieF(f, n ) (* Saisie des prix des articles *)
MntF <-- MontantF(f, n) (* Récupération de la valeur retournée par la fonction *)
Remise(n) (* Remise, Si nombre d'articles > = 3 *)
lire(MntF) (* Cette modification est interdite ! *)
Ecrire('Total facture :', MntF) (* Affichage du montant total de la facture *)

FIN (* Fin Algorithme *)

Exercice 4 (50 Min)

Algorithme Exo4
Constante :
N = 4 (* Notes : Exam. + Contrôle Continu + TP + Projet *)
Type
TNotes = tableau[1..N] des Réels (* Expliquez aux étudiants l'utilité de l'utilisation de ce type *)
Variables
ml: TNotes
num, j , nb , m : Entier
som,mg,my:Réel
rep : Caractère
(****************************************)
Procedure Initialise(mdl :TNotes, n:entier) (* n : nombre de notes *)
Variable
i: entier
Debut
Pour i = 1 à n faire
Ecrire('Intialisation à zéro de la note ', i )
mdl(i)<-- 0
finPour
Fin

(****************************************)

3/5
Procedure SaisieNotes(mdl :TNotes, n:entier) (* n : nombre de notes *)
Variable
i: entier
Debut
Pour i = 1 à n faire
Ecrire('Donnez la note ', i , 'S.V.P ') (* i=1 note TP, i=2 note cc et i = 3 note exam.*)
lire (mdl(i))
finPour
Fin
(****************************************)
Procedure Afficher(mdl :TNotes, n:entier )
Variable
i: entier
Debut
Pour i = 1 à n faire
Ecrire('La note ', i , 'est : ', mdl(i))
finPour
Fin
(****************************************)
Fonction MoyNoteM(mdl :TNotes, n:entier) : Réel
Variable
i: entier
m,s:Réel
Debut
s<--0.0
m<--s
Si(n >= 3)Alors
debut
Pour i = 1 à n faire (* coef(Exam) = 3 et coef(CC) = 2 et coef(TP) = 1 *)
s<-- i*mdl(i)
finPour
m<-- s/6
fin
Sinon
debut
Pour i = 1 à n faire (* n = 2 *)
s<-- (i+1)*mdl(i) (* coef(Exam) = 3 et coef(CC) = 2 *)
finPour
m<-- s/5
fin
finSi
Retourner(m)
Fin
(****************************************)
DEBUT (* Début Algorithme *)
rep ← 'O'
num ← 1
som<--mg<-- my<--0.0

Repeter
Ecrire('______________________________________') (* Séparation entre les notes des étudiants *)
Ecrire('**** Notes de l'étudiant N° ****', num)

4/5
Ecrire('Donnez le nombre de modules, S.V.P')
lire(m) (*Par exemple m =3 (Maths, Physique et Informatique )*)
Pour j = 1 à m faire
Ecrire('Nombre de notes [Examen, CC et TP ( 2 ou 3 )], S.V.P')
lire(nb)
Initialise(ml, nb)
SaisieNotes(ml, nb )
Afficher(ml, nb )
my <-- MoyNoteM(ml, nb)
som<-- som + my
FinPour

Si(m <> 0) Alors


mg<-- som/m
Ecrire('Moyenne générale :', mg)
FinSi
Ecrire('Voulez-vous continuez(O/N)')
lire(rep)
num ← num + 1
Jusqu'à (rep ='N')

FIN (* Fin Algorithme *)

5/5

You might also like