Vous êtes sur la page 1sur 4

Faculté des Sciences de Kénitra

Dépt. d’Informatique

Algorithmique et programmation en C++


TD N° 5 : Les fonctions

Exercice 1

Ecrire un programme se servant d'une fonction MOYENNE du type float pour afficher la
moyenne arithmétique de deux nombres réels entrés au clavier.

Solution :
#include <stdio.h>

main()
{
/* Prototypes des fonctions appelées */
float MOYENNE(float X, float Y);
/* Variables locales */
float A,B;
/* Traitements */
printf("Introduire deux nombres : ");
scanf("%f %f", &A, &B);
printf("La moyenne arithmétique de %.2f et %.2f est %.4f\n",
n",
A, B, MOYENNE(A,B));
MOYENNE(A,B)
return 0;
}

float MOYENNE(float X, float Y)


{
return (X+Y)/2;
}

Exercice 2

Ecrire deux fonctions qui calculent la valeur XN pour une valeur réelle X (type double) et une
valeur entière positive N (type int) :

a) EXP1 retourne la valeur XN comme résultat.

b) EXP2 affecte la valeur XN à X.

Ecrire un programme qui teste les deux fonctions à l'aide de valeurs lues au clavier.

Solution :
#include <stdio.h>

main()
{
/* Prototypes des fonctions appelées */
double EXP1(double X, int N);
void EXP2(double *X, int N);
/* Variables locales */
double A;

Pr. Yassine Rhazali Algorithmique et programmation


Faculté des Sciences de Kénitra
Dépt. d’Informatique
int B;
/* Traitements */
printf("Introduire un réel X : ");
scanf("%lf", &A);
printf("Introduire l'exposant positif N : ");
scanf("%d", &B);
/* a */
printf("EXP1(%.2f , %d) = %f\n", A, B, EXP1(A,B));
/* b */
/* Comme la valeur initiale de A est perdue à l'appel */
/* de EXP2, il faut partager l'affichage si on veut */
/* afficher la valeur de A avant et après l'appel ! */
printf("EXP2(%.2f , %d) = ", A, B);
EXP2(&A, B);
printf("%f\n", A);
return 0;
}

double EXP1(double X, int N)


{
double RES;
for (RES=1.0; N>0; N--)
RES *= X;
return RES;
}

void EXP2(double *X, int N)


{
double AIDE;
for (AIDE=1.0; N>0; N--)
)
AIDE *= *X;
*X = AIDE;
}

Remarque: Cette solution de EXP2 respecte automatiquement le cas où N=0.

Exercice 3

Ecrire une fonction MIN et une fonction MAX qui déterminent le minimum et le maximum
de deux nombres réels.

Ecrire un programme se servant des fonctions MIN et MAX pour déterminer le minimum et le
maximum de quatre nombres réels entrés au clavier.

Solution :
#include <stdio.h>

main()
{
/* Prototypes des fonctions appelées */
double MIN(double X, double Y);
double MAX(double X, double Y);
/* Variables locales */
double A,B,C,D;
/* Traitements */
printf("Introduire 4 réels : ");
scanf("%lf %lf
f %lf %lf", &A, &B, &C, &D);
printf("Le minimum des 4 réels est %f \n",

Pr. Yassine Rhazali Algorithmique et programmation


Faculté des Sciences de Kénitra
Dépt. d’Informatique
MIN( MIN(A,B), MIN(C,D)) );
printf("Le maximum des 4 réels est %f \n",
MAX( MAX(A,B), MAX(C,D)) );
return 0;
}

double MIN(double X, double Y)


{
if (X<Y)
return X;
else
return Y;
}

double MAX(double X, double Y)


{
if (X>Y)
return X;
else
return Y;
}

/* ou bien */
/*
double MIN(double X, double Y)
{
return (X<Y) ? X : Y;
}

double MAX(double X, double Y)


{
return (X>Y) ? X : Y;
}
*/

Exercice 4

Ecrire la fonction ECRIRE_TAB à deux paramètres TAB et N qui affiche N composantes du


tableau TAB du type int.

Exemple:

Le tableau T lu dans l'exemple ci-dessus


ci sera affiché par l'appel :

ECRIRE_TAB(T, N);

et sera présenté comme suit:

43 55 67 79
Solution :
void ECRIRE_TAB (int *TAB, int N)
{
/* Affichage des composantes du tableau */
while(N)
{
printf("%d ", *TAB);
TAB++;

Pr. Yassine Rhazali Algorithmique et programmation


Faculté des Sciences de Kénitra
Dépt. d’Informatique
N--;
}
printf("\n");
}

Exercice 5

Ecrire la fonction SOMME_TAB qui calcule la somme des N éléments d'un tableau TAB du
type int.. N et TAB sont fournis comme paramètres; la somme est retournée comme résultat
du type long.

Solution :
long SOMME_TAB(int *TAB, int N)
{
/* Variables locales */
long SOMME = 0;
/* Calcul de la somme */
while(N)
{
SOMME += *TAB;
TAB++;
N--;
}
return SOMME;
}

Pr. Yassine Rhazali Algorithmique et programmation

Vous aimerez peut-être aussi