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.
-----------------------------------------------------------------------------