IFT1166 --- Automne 1999 --- Demo02 --- 22 Septembre 1999

 

IFT1166 -- Démonstration # 2

 

Contenu

- reprise des exercices de la démonstration -1-

- manipulation de la commande "remise" du TP00

- passage par valeur, par pointeur, & par référence.

 

----------------------------------------------------

Exo1

Que sera affiché par le programme suivant :

#include <iostream.h>

void f(int v, int* p, int & r) {

v = 120;

*p = 120;

r = 120;

cout << v << " " << *p << " " << r << endl;

}

int main() {

int x = 500, y = 500, z = 500;

f(x, &y, z);

cout << x << " " << y << " " << z << endl;

return 0;

}

----------------------------------------------------

Exo2

 

Dans le programme principal (main) inclure:

- l'appel de la fonction changer_valeur

- afficher la valeur des paramètres qui seront passes à la fonction changer_valeur avant l'appel de cette fonction et après son appel.

La fonction changer_valeur est comme suit:

- ayant comme arguments deux variables entières, la première est passée par pointeur et le seconde par référence.

- permettant de modifier le contenu de ces deux variables.

 

Exemple: soit les deux variables entières:

vreference = 10;

vpointeur = 20;

 

l'appel de la fonction changer_valeur devra donner le résultat suivant:

vreference = 30;

vpointeur = 50;

--------------------------------------------------------------------

Exo3

Passage par référence dans le cas de structure

Soit la structure date, ayant les 3 champs suivants:

 

struct Date {

int mois;

int jour;

int annee;

}

 

 

Écrire les fonctions suivantes:

void lire_date(Date& date)

pour lire les champs de la structure Date à partir des entrées/sorties standards

void affiche_date(Date date)

 

pour afficher les champs de la structure Date à partir des entrées/sorties standards

 

Et la fonction "main" qui appellera ces deux fonctions.

 

-----------------------------------------------------------------------------