Vous êtes sur la page 1sur 4

Faculté des Sciences de Bizerte

Département d’Informatique

TD 3 : Atelier de Programmation

Enseignante cours : Faten Ben Hassine

Exercice 1
Ecrire un programme C qui permet de calculer la résistance équivalentes à 3 résistances R1,
R2, R3 montées en parallèle ou en série. Les valeurs des résistances R1, R2 et R3 sont saisies
au clavier.
Rsérie = R1+R2+R3 Rparalèlle =( R1* R2* R3)/(R1*R2 +R1*R3+ R2*R3)

Exercice 2
Ecrire un programme C qui permet de calculer le périmètres et la surface d’un trapèze. On
notera H la hauteur du trapèze, B1 la grande base et B2 la petite base. Le résultat sera affiché
sous la forme :
Le trapèze dont :
la petite base mesure…..m,
la grande base mesure…..m
et la hauteur est de ….m
a un périmètre égal à …..m et une surface égale à ……(m*m)
Utiliser dans une première version la fonction d’affichage printf et dans une seconde version
les fonctions puts et printf

Exercice 3
Soit F une fonction définie par :
F : NxN R
(x,y) axb+bya
Ecrire un programme C qui permet de déterminer l’image par F d’un couple de données (x,y)
de type entier. On suppose que les données saisies sont correctes. La fonction C pow(i,j)
retourne ij.

Exercice 4
Un petit commerçant achète mensuellement des quantités différentes de 3 articles A1,A2 et
A3 aux prix P1,P2 et P3 qu’il revend aux prix PV1, PV2 et PV3. Les prix de ventes de ces
articles sont calculés sur la base d’une taxe (TVA) de 18% et d’une marge bénéficiaire de
22% selon le principe suivant :
Le calcul du montant de la TVA est égale à M_TVA= Prix d’achat * TVA
Le prix de vente = P_TVA + Bénéfices
avec P_TVA=Prix d’achat + M_TVA ; Bénéfices = P_TVA*20%

Ecrire un programme C qui permet de saisir toutes les données nécessaires (supposées
correctes) pour déterminer le prix de ventes des 3 articles et le bénéfices global.
Faculté des Sciences de Bizerte
Département d’Informatique

TD 4 : Atelier de Programmation

Enseignante cours : Faten Ben Hassine

Complément cours

Règles de priorité des opérateurs

Le tableau suivant classe les opérateurs par ordres de priorité décroissants. Les opérateurs
placés sur une même ligne ont même priorité. Si dans une expression figurent plusieurs
opérateurs de même priorité, l'ordre d'évaluation est définie par la flèche de la seconde
colonne du tableau. On préfèrera toutefois mettre des parenthèses en cas de doute...

Opérateurs
() [] -> . 
! ~ ++ -- -(unaire) 
* / % 
+ -(binaire) 
<< >> 
< <= > >= 
== != 
&(et bit-à-bit) 
^ 
| 
&& 
|| 
? : 
= += -= *= /= %= &= ^= |= <<= >>= 
, 

Table 1.4: Règles de priorité des opérateurs

Par exemple, les opérateurs logiques bit-à-bit sont moins prioritaires que les opérateurs
relationnels. Cela implique que dans des tests sur les bits, il faut mettre des parenthèses aux
expressions. Par exemple, il faut écrire if ((x ^ y) != 0)
Précision pour le format %f

%f : format standard du type float


%.vf avec v un entier : signifie qu’un flottant sera affiché avec v chiffres après la virgule
%v.wf avec v et w deux entiers : signifie que l'on réserve (v+w+1) caractères (incluant le
caractère .) pour afficher le flottant et que w d'entre eux sont destinés aux chiffres après la
virgule.
Exemple :
%.10fsignifie qu'un flottant sera imprimé avec 10 chiffres après la virgule. De même
%10.2fsignifie que l'on réserve 13 caractères (incluant le caractère .) pour imprimer le
flottant et que 2 d'entre eux sont destinés aux chiffres après la virgule.

opérateur de conversion de type

L'opérateur de conversion de type, appelé cast, permet de modifier explicitement le type d'un
objet. On écrit
(type) objet
Par exemple,
main()
{
int i = 3, j = 2;
printf("%f \n",(float)i/j);
}
Retourne la valeur 1.500000.

Exercice 1

Mettre des parenthèses aux expressions suivantes et évaluez les.


Ecrire un programme pour vérifier vos résultats.

a=3 ; b=2 ; c=9 ; d= -1 ;

k=a+b*c/a-d;

m= c * b * a + d – c /3*a;

n= a * b + c – d + ++k – 2 * c / 6;

Exercice 2

Soient les instructions C suivantes :

x = a++ - (b*c) ;
y = a- (--b * c++) ;

En justifiant la réponse, donner les valeurs finales des expressions x et y et des variables a, b
et c sachant que pour chaque instruction a= 3, b= 4 et c= 5.
On modifie les instructions précédentes par :
x = a++ - (b*c) ;
y = a- (--b * c++) + --x ;

Donnez les nouvelles valeurs des expressions x et y.

Exercice 3

Soient les instructions C suivantes :

A B C
a=2 ; b= 4 ; c= 3 ; a=2 ; b= 4 ; c= 3 ; a=2 ; b= 4 ; c= 3 ;
k= (a++ *5) + (--b+c++) ; m= (a+b++)*c ; k= (a++ *5) + (--b+c++) ;
m= (a+b++)*c ; k= (a++ *5) + (--b+c++) ; m= (a+a--)*c ;

En justifiant la réponse, donner les valeurs finales des expressions k et m et des variables a, b
et c.

Exercice 4

Ecrire le programme suivant

#include <stdio.h>
Include <conio.h>
main()
{
int i = 7, j = 3;
float k = 6.32;
printf("%d ** %f ** %f\n", i/j, i/j,(float)i/j);
printf("%f ** %f ** %f\n", float)(i/j),(float)i/j, i/(float)j);
printf("%d ** %f \n", (int)k, k);
printf("%d ** %f ** %f\n", k/j, (int)k/j, k/float(j));
}

Exercice 5

On considère le flottant suivant k=2370.626567800. on considère les instructions C


suivantes :
printf("%d \n", k);
printf("%f \n", k);
printf("%.5f \n",k);
printf("%12.7f \n",k);
printf("%7.2f \n",k);

Quel est le résultat de chaque instruction ?

Vous aimerez peut-être aussi