Exercice 48
Énoncé
Soit le type structure enreg défini ainsi :
const int NMOIS = 12 ;
struct enreg
{ int stock ;
float prix ;
int ventes [NMOIS]
}
Écrire une fonction nommée raz qui « met à zéro » les champs stock et ventes d’une
structure de ce type, transmise en argument. La fonction ne comportera pas de valeur
de retour.
Écrire un petit programme d’essai qui affecte tout d’abord des valeurs aux différents
champs d’une telle structure, avant de leur appliquer la fonction raz. On affichera les
valeurs de la structure, avant et après appel (on pourra s’aider d’une fonction
d’affichage).
Ici, pour que la fonction puisse modifier la valeur d’une structure reçue en argument, il
est nécessaire qu’elle en reçoive, soit la référence, soit l’adresse. Voici un exemple
complet utilisant la première possibilité :
#include
using namespace std ;
const int NMOIS = 12 ;
struct enreg
{ int stock ;
float prix ;
int ventes [NMOIS] ;
} ;
void raz (enreg & s)
{ s.stock = 0 ;
for (int i=0 ; i
s.ventes[i] = 0 ;
return ;
}
void affiche (enreg s) // transmission par valeur ici
{ cout << "stock : " << s.stock << "\n" ;
cout << "prix : " << s.prix << "\n" ;
cout << "ventes : " ;
for (int i = 0 ; i
cout << "\n" ;
}
main()
{ void raz (enreg &) ;
102
Énoncé
Soit le type structure enreg défini ainsi :
const int NMOIS = 12 ;
struct enreg
{ int stock ;
float prix ;
int ventes [NMOIS]
}
Écrire une fonction nommée raz qui « met à zéro » les champs stock et ventes d’une
structure de ce type, transmise en argument. La fonction ne comportera pas de valeur
de retour.
Écrire un petit programme d’essai qui affecte tout d’abord des valeurs aux différents
champs d’une telle structure, avant de leur appliquer la fonction raz. On affichera les
valeurs de la structure, avant et après appel (on pourra s’aider d’une fonction
d’affichage).
Ici, pour que la fonction puisse modifier la valeur d’une structure reçue en argument, il
est nécessaire qu’elle en reçoive, soit la référence, soit l’adresse. Voici un exemple
complet utilisant la première possibilité :
#include
using namespace std ;
const int NMOIS = 12 ;
struct enreg
{ int stock ;
float prix ;
int ventes [NMOIS] ;
} ;
void raz (enreg & s)
{ s.stock = 0 ;
for (int i=0 ; i
return ;
}
void affiche (enreg s) // transmission par valeur ici
{ cout << "stock : " << s.stock << "\n" ;
cout << "prix : " << s.prix << "\n" ;
cout << "ventes : " ;
for (int i = 0 ; i
}
main()
{ void raz (enreg &) ;
102
