Exercice 28
Énoncé
Transformer le programme (fonction + main) écrit dans l’exercice précédent de
manière que la fonction ne dispose plus que de 2 arguments, le caractère indiquant la
nature de l’opération à effectuer étant précisé, cette fois, à l’aide d’une variable
globale.
#include
using namespace std ;
char op ; // variable globale pour la nature de l'opération
// attention : doit être déclarée avant d'être utilisée
float oper (float v1, float v2)
{ float res ;
switch (op)
{ case '+' : res = v1 + v2 ;
break ;
case '-' : res = v1 - v2 ;
break ;
case '*' : res = v1 * v2 ;
break ;
case '/' : res = v1 / v2 ;
break ;
default : res = v1 + v2 ;
}
return res ;
}
main()
{ float oper (float, float) ; /* prototype de oper */
float x, y ;
cout << "donnez deux nombres réels : " ;
cin >> x >> y ;
op = '+' ;
cout << "leur somme est : " << oper (x, y) << "\n" ;
op = '-' ;
cout << "leur différence est : " << oper (x, y) << "\n" ;
op = '*' ;
cout << "leur produit est : " << oper (x, y) << "\n" ;
op = '/' ;
cout << "leur quotient est : " << oper (x, y) << "\n" ;
}
Il s’agissait ici d’un exercice d’« école » destiné à forcer l’utilisation d’une variable
globale. Dans la pratique, on évitera autant que possible ce genre de programmation
62
Énoncé
Transformer le programme (fonction + main) écrit dans l’exercice précédent de
manière que la fonction ne dispose plus que de 2 arguments, le caractère indiquant la
nature de l’opération à effectuer étant précisé, cette fois, à l’aide d’une variable
globale.
#include
using namespace std ;
char op ; // variable globale pour la nature de l'opération
// attention : doit être déclarée avant d'être utilisée
float oper (float v1, float v2)
{ float res ;
switch (op)
{ case '+' : res = v1 + v2 ;
break ;
case '-' : res = v1 - v2 ;
break ;
case '*' : res = v1 * v2 ;
break ;
case '/' : res = v1 / v2 ;
break ;
default : res = v1 + v2 ;
}
return res ;
}
main()
{ float oper (float, float) ; /* prototype de oper */
float x, y ;
cout << "donnez deux nombres réels : " ;
cin >> x >> y ;
op = '+' ;
cout << "leur somme est : " << oper (x, y) << "\n" ;
op = '-' ;
cout << "leur différence est : " << oper (x, y) << "\n" ;
op = '*' ;
cout << "leur produit est : " << oper (x, y) << "\n" ;
op = '/' ;
cout << "leur quotient est : " << oper (x, y) << "\n" ;
}
Il s’agissait ici d’un exercice d’« école » destiné à forcer l’utilisation d’une variable
globale. Dans la pratique, on évitera autant que possible ce genre de programmation
62
