Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТ...docx
Скачиваний:
12
Добавлен:
21.09.2019
Размер:
695.51 Кб
Скачать

2.5 Символьные строки

В большинстве рассмотренных примеров программ для вывода на

экран часто используются символьные строки. В Си++ символьные строки

заключаются в двойные кавычки. Поэтому в программах часто встречаются

операторы вывода вроде:

cout << "' имеет код ";

На самом деле в Си++ строковый тип ("string") не является

стандартным типом данных, таким, как, например, "int", "float" или "char".

Строки хранятся в памяти в виде символьных массивов, поэтому строки

будут рассматриваться позднее, при изучении массивов.

2.6 Типы данных, определяемые пользователем

Вопрос о типах данных, определяемых пользователем, будет

обсуждаться намного более подробно в последующих лекциях. Будет

показано, как программист может определить собственный тип данных,

необходимый для решения конкретной задачи. Средства определения

новых типов данных – одна из наиболее мощных возможностей Си++,

которые позволяют хранить и обрабатывать в программах на Си++ сложные

структуры данных.

3. Вывод вещественных чисел на экран

При выводе на экран численных значений типа "float", "double" или "long

double" возможно указание точности представления данных на экране и

задание некоторых дополнительных параметров отображения, например,

отображение значений в формате с фиксированной или плавающей точкой.

В программе 4.1 вещественное число отображается в формате с

фиксированной точкой и двумя десятичными знаками после запятой.

Идентификатор "sqrt" является именем библиотечной функции извлечения

квадратного корня. Описание библиотеки математических функций

содержится в заголовочном файле "math.h".

#include <iostream.h>

#include <math.h>

void main()

{

float number;

cout << "Введите вещественное число.\n";

cin >> number;

cout << "Корень из ";

cout.setf(ios::fixed); // СТРОКА 12

cout.precision(2);

cout << number;

cout << " примерно равен " << sqrt( number ) << ".\n";

}

Программа 4.3.

Программа 4.3 напечатает на экране:

Введите вещественное число.

200

Корень из 200.00 примерно равен 14.14.

Если СТРОКУ 12 заменить на "cout.setf(ios::scientific);", то вид результата

изменится:

Введите вещественное число.

200

Корень из 2.00e+02 примерно равен 1.41e+01.

В выходные данные можно включить параметры табуляции. Для этого

предназначена функция ширины поля, например, "cout.width(20)". Она задает

ширину следующего выводимого на экран значения равной, как минимум,

20 символам (при меньшей ширине автоматически будут добавлены

пробелы). Эта возможность особенно полезна для печати таблиц.

В компиляторе CodeBlocks при указании ширины поля по умолчанию

предполагается, что значения выравниваются по правой границе. Чтобы

задать выравнивание по левой границе поля, потребуется использовать

еще несколько манипуляторов ввода-вывода. Это специальные функции и

операторы, содержащиеся в библиотеке ввода/вывода Си++. Они описаны

в заголовочном файле iomanip.h. Для задания выравнивания по левой

границе надо установить специальный флажок (переключатель) с помощью

функции setiosflags:

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

void 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";

}

}

Программа 4.4.

Программа 4.4 выдаст на экран следующие сообщения:

Число Квадратный корень

1 1.00

2 1.41

3 1.73

4 2.00

5 2.24

6 2.45

7 2.65

8 2.83

9 3.00

10 3.16

(ПРИМЕЧАНИЕ: во всех примерах идентификатор "cout" является

именем переменной-объекта класса "stream" (поток). Функции "setf(...)",

"precision(...)" и "width(...)" являются функциями-членами класса "stream".

Понятия "объект", "класс", "функция-член" и др. будут подробно

рассматриваться в разделе III.