Exercice 118
Énoncé
Écrire un programme qui lit un nombre réel et qui en affiche le carré sur un
« gabarit » minimal de 12 caractères, de 22 façons différentes :
• en « point fixe », avec un nombre de décimales variant de 0 à 10,
• en notation scientifique, avec un nombre de décimales variant de 0 à 10.
Dans tous les cas, on affichera les résultats avec cette présentation :
précision de xx chiffres : cccccccccccc
Il faut donc activer d’abord le bit fixed, ensuite le bit scientific du champ floatfield.
Nous utiliserons la fonction setf, membre de la classe ios. Notez bien qu’il faut éviter
d’écrire, par exemple :
setf (ios::fixed) ;
En effet, cela activerait le bit fixed, sans modifier les autres donc, en particulier, sans
modifier les autres bits du champ floatfield.
Le gabarit d’affichage est déterminé par le manipulateur setw. Notez qu’il faut
transmettre ce manipulateur au flot concerné, juste avant d’afficher l’information
voulue.
#include // pour les "manipulateurs paramétriques"
#include // voir N.B. du paragraphe Nouvelles possibilités
// d'entrées-sorties du chapitre 2
using namespace std ;
main()
{ float val, carre ;
cout << "donnez un nombre réel : " ;
cin >> val ;
carre = val*val ;
cout << "Voici son carré : \n" ;
int i ;
cout << " en notation point fixe : \n" ;
cout.setf (ios::fixed, ios::floatfield) ;// met à 1 le bit ios::fixed
// du champ ios::floatfield
for (i=0 ; i<10 ; i++)
cout << " précision de " << setw (2) << i << " chiffres : "
<< setprecision (i) << setw (12) << carre << "\n" ;
cout << " en notation scientifique : \n" ;
cout.setf (ios::scientific, ios::floatfield) ;
for (i=0 ; i<10 ; i++)
cout << " précision de " << setw (2) << i << " chiffres : "
292
Précédent

- 293/398

Suivant