Faculté des Sciences de Bizerte Année Universitaire 2022/2023
Département d’Informatique
Examen Session de Janvier: Atelier de Programmation Durée :1h00
Enseignante : FETEN Ben Hassine 2 pages
Exercice 1 (7pts) :
On considère la partie de code d’un programme C :
a=2;b=4;
for (i=1,S=0;(i<=4); i++)
{
printf(“introduire un entier \n”) ;
scanf(d,&x) ;
y= x%3:
if( y==0)
S += x+a+b ;
else
if( y==1)
S +=((++x) * a) - (b--) ; (2)
else
S += ((x++) * (++ a)) - (--b) ; (3)
printf(“Pour la valeur %d la somme devient %d \n,x,S) ;
}
1- Réécrire cette partie de code en utilisant une boucle while au lieu de for et l’instruction switch à
la place de if.
2- Ecrire l’équivalent des instructions (2) et (3) sans utiliser les opérateurs ++ et --.
3-Effectuer la trace d’exécution de ce code en détaillant à chaque itération les résultats des variables
a, b, x et S et ce pour les valeurs saisies de x : x=3 , x=8, x=1 et x=6.
Exercice 2 (7pts) :
Soit S la somme définie par : S = b + a x + b x2 + a x3 + b x4 +…… avec a>0 et b>0.
Soit L une valeur limite, que S ne doit pas dépasser (S ≤ L et L ≥b).
On cherche à déterminer S et le plus haut degré de x tel que S ≤ L.
1-Ecrire un programme C qui permet de :
- Saisir a, b, x et L (les valeurs saisies doivent être correctes),
- Calculer la plus grande valeur S / S ≤ L,
- Déterminer le plus haut degré atteint de x.
2- On modifie S par : S = b + a x1 + b x22 + a x33 + b x44 +…… avec a>0 et b>0.
Quelles modifications apportées au programme ?
NB : Utiliser la structure de données qui vous convient (avec ou sans tableau)
Exercice 3 (6 pts ):
Le caissier d’un petit magasin dispose d’un registre où il inscrit dans un tableau tracé manuellement
le nombre associé d’unités (pièces et/ou cartes) pour chaque type de monnaie. Il dispose chaque
matin d’un état initial. A la fin de la journée et après les mises à jour réalisées, le caissier comptabilise
le nombre d’unités de chaque type de monnaie qu’il transcrit sur son registre et ce, afin de
déterminer le montant des ventes effectuées de la journée défini par :
13
M =∑ (TF [ i ] −TI [i])∗P [i]
i=1
On dispose de 13 types de monnaie (5,10, 20, 50,100, 200, 500 millimes, 1,2,5,10, 20,50 Dinars)
identifiés de 0 à 12.
P[i] est le type de monnaie dont le code est i. Les P[i] ont la même unité (millime ou dinar).
TI[i] est le nombre d’unités de la monnaie P[i] avant ouverture du magasin (état initial)
TF [i] est le nombre d’unités de la monnaie P[i] à la fin de la journée.
Pour aider le caissier à déterminer le montant M, écrire un programme C qui permet de :
- Saisir l’état initial de la caisse (les valeurs doivent être correctes),
- Saisir l’état final de la caisse (les valeurs doivent être correctes),
- Saisir ou initialiser dans le programme les types de monnaie (les valeurs doivent être
correctes),
- Calculer le montant des ventes M,
- afficher l’état initial et l’état final de la caisse, le montant M.
Bonne réflexion