Vous êtes sur la page 1sur 2

Université Mohammed Premier Filière : GE-ER II/ S3

Ecole Supérieur de Technologie, Oujda     Année Universitaire: 2018/2019


Département de Génie Appliquée TP : Programmation C

Série 1
Préprocesseur et classes de mémorisation
Exercice 1 :
Au niveau global, et en utilisant la directive "# define" :
1- Donner la valeur 3 à N, 3.1415 à pi et 2 à R ;

2- Définir une macro nommée "cube" qui calcule le cube d'un nombre R où R est passé en
argument de la macro ;

3- Définir une macro nommée " somme " qui calcule la somme de deux nombres (a et b) où a
et b sont passés en argument de la macro ;

4- Définir une macro nommée "volume" qui calcule le volume d'une sphère (V=(4πR3)/3) où
R est passé en argument de la macro  et R3 est remplacé par la macro cube;

5- Définir une macro nommée "Affiche_F" qui affiche une variable x de type float avec 2
chiffres après la virgule. x est passé en argument.

Dans la fonction main () :


1- Après déclaration des variables nécessaires, effectuer une boucle ayant un indice i qui varie
entre 1 et N (compris) et par appel de différentes macros programmées ci-dessus, calculer la
somme (S) des volumes de N sphères, ayant le même rayon.
2- Par appel de la macro "Affiche_F", afficher S la somme des volumes des trois sphères.

Exercice 2 :

1- Au niveau global, par utilisation de typedef, remplacer float par F et int par I.
Dans la suite du programme, utiliser les nouveaux symboles de float et int.
2- En utilisant la directive "# define", donner la valeur 76 à N.

3- Définir une macros nommée "transfert" qui calcule le produit exp(i/y)*cos(2iy), où y et i sont
passés en argument de la macro.

4- Définir une macros nommée "Affiche_F" qui affiche une variable x de type float avec 2 chiffres
après la virgule. x est passé en argument.

5- Définir une macro nommée "Affiche_I" qui affiche une variable i de type int. i est passé en
argument.

6- Définir un symbole nommé "Retour" qui effectue un retour à la ligne pendant l’affichage.

7- Définir un symbole nommé "Printf_I" qui permet d’afficher la phrase "donner un entier".

8- Définir un symbole nommé "Printf_F" qui permet d’afficher la phrase "donner un reel" .

9- Définir une macros nommée "Saisi_I" qui permet de saisir une variable k de type int. k est passé
en argument.

1
Université Mohammed Premier Filière : GE-ER II/ S3
Ecole Supérieur de Technologie, Oujda     Année Universitaire: 2018/2019
Département de Génie Appliquée TP : Programmation C

10- Définir une macros nommée "Saisi_F" qui permet de saisir une variable x de type float. x est
passé en argument.

11- Dans la fonction main() :

11-1 Par appel de différentes macros programmées ci-dessus, saisir un entier k et un réel x.

11-2 Programmer une boucle ayant un indice i qui varie entre 0 et N et qui appelle la macro
"transfert" où y = 0.2*k*x. La valeur de retour de la macro "transfert" sera stockée dans un
tableau T[N].

Pour plus de rapidité pour l’exécution de la boucle sur i, utiliser la classe de


mémorisation register.

11-3 Par appel de la macro "Affiche_F", afficher les éléments du tableau T[N] sur l’écran.

Le compilateur doit quitter la boucle lorsque la valeur absolue de la macro "transfert"


dépasse 10.

11-4 Par appel de la macro "Affiche_I", afficher le nombre de passage dans la boucle.