Exercice 50
Énoncé
Soit la structure suivante, représentant un point d’un plan :
struct point
{ char c ; // nom du point
int x, y ; // coordonnées
} ;
1. Écrire la déclaration d’un tableau (nommé courbe) de NP points (NP supposé défini
par une constante).
2. Écrire une fonction (nommée affiche) qui affiche les valeurs des différents
« points » du tableau courbe, transmis en argument, sous la forme :
point D de coordonnées 10 2
3. Écrire un programme qui :
– lit en données des valeurs pour le tableau courbe ;
– fait appel à la fonction précédente pour les afficher.
1. Il suffit de déclarer un tableau de structures :
struct point courbe [NP] ;
2. Comme courbe est un tableau, on ne peut qu’en transmettre l’adresse en argument de
affiche. Il est préférable de prévoir également en argument le nombre de points. V oici
ce que pourrait être notre fonction :
void affiche (point courbe [], int np)
/* courbe : adresse de la première structure du tableau */
/* (on pourrait écrire point * courbe) */
/* np : nombre de points de la courbe */
{ int i ;
for (i=0 ; i
cout << "point " << courbe[i].c << " de coordonnées "
<< courbe[i].x << " " << courbe[i].x << "\n" ;
}
Comme pour n’importe quel tableau à une dimension transmis en argument, il est
possible de ne pas en mentionner la dimension dans l’en-tête de la fonction. Bien
entendu, comme, en fait, l’identificateur courbe n’est qu’un pointeur de type point *
(pointeur sur la première structure du tableau), nous aurions pu également écrire
point * courbe.
Notez que, comme à l’accoutumée, le « formalisme tableau » et le « formalisme
pointeur » peuvent être indifféremment utilisés (voire combinés). Par exemple, notre
fonction aurait pu également s’écrire :
106
Énoncé
Soit la structure suivante, représentant un point d’un plan :
struct point
{ char c ; // nom du point
int x, y ; // coordonnées
} ;
1. Écrire la déclaration d’un tableau (nommé courbe) de NP points (NP supposé défini
par une constante).
2. Écrire une fonction (nommée affiche) qui affiche les valeurs des différents
« points » du tableau courbe, transmis en argument, sous la forme :
point D de coordonnées 10 2
3. Écrire un programme qui :
– lit en données des valeurs pour le tableau courbe ;
– fait appel à la fonction précédente pour les afficher.
1. Il suffit de déclarer un tableau de structures :
struct point courbe [NP] ;
2. Comme courbe est un tableau, on ne peut qu’en transmettre l’adresse en argument de
affiche. Il est préférable de prévoir également en argument le nombre de points. V oici
ce que pourrait être notre fonction :
void affiche (point courbe [], int np)
/* courbe : adresse de la première structure du tableau */
/* (on pourrait écrire point * courbe) */
/* np : nombre de points de la courbe */
{ int i ;
for (i=0 ; i
<< courbe[i].x << " " << courbe[i].x << "\n" ;
}
Comme pour n’importe quel tableau à une dimension transmis en argument, il est
possible de ne pas en mentionner la dimension dans l’en-tête de la fonction. Bien
entendu, comme, en fait, l’identificateur courbe n’est qu’un pointeur de type point *
(pointeur sur la première structure du tableau), nous aurions pu également écrire
point * courbe.
Notez que, comme à l’accoutumée, le « formalisme tableau » et le « formalisme
pointeur » peuvent être indifféremment utilisés (voire combinés). Par exemple, notre
fonction aurait pu également s’écrire :
106
