При выводе на экран численных значений типа "float", "double" или "long
double" возможно указание точности представления данных на экране и задание не-
которых дополнительных параметров отображения, например, отображение значений
в формате с фиксированной или плавающей точкой.
В программе 3.1 вещественное число отображается в формате с фиксированной
точкой и двумя десятичными знаками после запятой. Идентификатор "sqrt" является
именем библиотечной функции извлечения квадратного корня. Описание библиотеки
математических функций содержится в заголовочном файле "math.h".
#include <iostream.h>
#include <math.h>
int main()
{
float number;
cout << "Введите вещественное число.\n";
cin >> number;
cout << "Корень из ";
cout.setf(ios::fixed); // СТРОКА 12
cout.precision(2);
cout << number;
cout << " примерно равен " << sqrt(number) << ".\n";
return 0;
}
Программа 3.1.
Программа 3.1 напечатает на экране:
23
Введите вещественное число.
200
Корень из 200.00 примерно равен 14.14.
Если СТРОКУ 12 заменить на "cout.setf(ios::scientific);", то вид результа-
та изменится:
Введите вещественное число.
200
Корень из 2.00e+02 примерно равен 1.41e+01.
В выходные данные можно включить параметры табуляции. Для этого предна-
значена функция ширины поля, например, "cout.width(20)". Она задает ширину сле-
дующего выводимого на экран значения равной, как минимум, 20 символам (при
меньшей ширине автоматически будут добавлены пробелы). Эта возможность осо-
бенно полезна для печати таблиц.
В компиляторе Visual C++ при указании ширины поля по умолчанию предпо-
лагается, что значения выравниваются по правой границе. Чтобы задать выравнива-
ние по левой границе поля, потребуется использовать еще несколько манипуляторов
ввода-вывода. Это специальные функции и операторы, содержащиеся в библиотеке
ввода/вывода Си++. Они описаны в заголовочном файле iomanip.h. Для задания вы-
равнивания по левой границе надо установить специальный флажок (переключатель)
с помощью функции setiosflags:
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{
int number;
cout << setiosflags(ios::left);
cout.width(20);
cout << "Число" << "Квадратный корень\n\n";
cout.setf(ios::fixed);
cout.precision(2);
for (number = 1; number <= 10; number = number + 1)
{
cout.width(20);
cout << number << sqrt(number) << "\n";
}
return 0;
}
Программа 3.2.
Программа 3.2 выдаст на экран следующие сообщения:
Число Квадратный корень
1 1.00
2 1.41
3 1.73
4 2.00
5 2.24
6 2.45
24
7 2.65
8 2.83
9 3.00
10 3.16
(ПРИМЕЧАНИЕ: во всех примерах идентификатор "cout" является именем перемен-
ной-объекта класса "stream" (поток). Функции "setf(...)", "precision(...)" и
"width(...)" являются функциями-членами класса "stream". Понятия "объект",
"класс", "функция-член" и др. будут подробно рассматриваться в курсе объектно-
ориентированного программирования.)