Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Лафоре Р. -> "Объектно-ориентированное программирование в С++" -> 26

Объектно-ориентированное программирование в С++ - Лафоре Р.

Лафоре Р. Объектно-ориентированное программирование в С++ — М.: Питер, 2004. — 992 c.
Скачать (прямая ссылка): obektnoorentprogramm2004.djvu
Предыдущая << 1 .. 20 21 22 23 24 25 < 26 > 27 28 29 30 31 32 .. 341 >> Следующая


ко раздел, касающийся приоритетов операций в С++, являете* важным для изучения, и мы еще вернемся к нему после того, как рассмотрим др> і не операции языка.

Вещественные типы

Мы уже рассматривали такие типы данных, как int и char, ко ¦ )рые представляют целые числа, то есть числа, у которых нет дробной части. Теперь мы рассмотрим типы данных, позволяющие хранить другой класс чисел — вещественный.

Переменные вещественного типа хранят числа в десятичной форме представления, например 3.1415927, 0.0000625, -10.2. У таких чисел есть как целая часть, стоящая слева от десятичной точки, так и дробная ча, ть, стоящая справа от нее. Переменные вещественного типа предназначены д:¦•.-> хранения вещественных чисел — тех чисел, которыми измеряются непрерывные величины: температура, расстояние, площадь. Вещественные числа, как пр івило, имеют ненулевую дробную часть.

В С++ имеются три вещественных типа: float, double и k ng double. Рассмотрим первый из них.

Тип float

Тип float способен хранить числа, содержащиеся в интервале от 3.4*10 38 до

3.4*IO38, с точностью до семи знаков после запятой. Размер типа float равен 4 байтам (32 битам), как показано на рис. 2.6.

Память

temp

Имя

переменной —

V-

V

I 4 байта

Рис. 2.6. Расположение переменной типа float в памяти 68

Глава 2. Ot новы программирования на С++

Следующий пример демонстрирует работу с вещественными числами. Пользователю предлагается ввести радиус окружности, а программа подсчитывает и выводит на экран площадь круга, ограниченного данной окружностью, //сігсагеа.срр

//работа с переменными вещественного типа #include <iostream> //для cout и т.д.

using namespace std:

int mainO {

float rad: // переменная вещественного типа

const float PI =3.14159F; // вещественная константа

cout « "Введите радиус окружности: ": // запрос

ein » rad: // получение радиуса

float area = PI *rad *rad: // вычисление площади круга

cout «"Площадь круга равна " « area « endl: // вывод результата на зкран

return 0:

}

Примером результата работы такой программы может служить следующий:

Введите радиус окружности: 0.5 Площадь круга равна 0.785398

Здесь мы подсчитали площадь 12-дюймовой долгоиграющей грампластинки, выраженную в квадратных футах. В свое время эта величина имела важное значение для производителей винила.

Типы double и long double

Два более крупных вещественных типа данных — double и long double — аналогичны типу float и отличаются от него лишь размерами занимаемой памяти, диапазонами значений и точностью представления. Тип double занимает 8 байтов памяти и хранит значения от 1.7* IO-308 до 1.7*IO308 с точностью до 15 знаков после запятой. Характеристики типа long double зависят от компилятора, но чаще всего они совпадают с характеристиками типа double. Иллюстрация типа double приведена на рис. 2.7.

Вещественные константы

Число 3.14159F в программе CIRCAREA является примером вещественной константы. Наличие десятичной точки говорит о том, что тип этой константы вещественный, а не целый, а суффикс F после значения константы указывает конкретный ее тип — float. Форма представления значения константы — нормализованная десятичная. Если вы определяете вещественную константу типа double, то суффикс Г> пе обязателен — он является суффиксом по умолчанию. Для констант типа long double необходимо указывать суффикс L.

Для задания значений вещественных констант наряду с десятичной может также использоваться экспоненциальная форма записи. Экспоненциальная форма записи предназначена для представления очень больших или очень малень- Вещественные типы 69

ких чисел, чтобы не выписывать большое количество нулей. Например, число 1 ООО ООО ООО можно записать в виде 1.0Е-9. Аналогично, число 1234.56 будет представлено в экспоненциальной форме как 1.23456E3, что соответствует арифметической форме записи 1.23456*10'. Число, следующее за знаком Е, называется экспонентой числа. Экспонента числа показывает, на сколько позиций необходимо переместить десятичную точку для того, чтобы вернуть число к нормальной десятичной форме.

- — Й-(О CN

т-

______со.------

8 байт

тип double

Рис. 2.7. Расположение переменной типа double в памяти

Экспонента числа может быть как положительной, так и отрицательной. Экспоненциальная форма 6.35239Е-5 соответствует десятичной форме 0.0000635239, что совпадает с числом 6.35239* IO"5.

Префикс const

Кроме работы с переменными типа float, программа CIRCAREA демонстрирует использование префикса const. Он используется в операторе

const float PI - 3.14159F: //тип вещественная константа

Ключевое слово const предшествует описанию типа переменной и означает, что во время выполнения программы запрещено изменять значение этой переменной. Любая попытка изменить значение переменной, описанной с таким префиксом, приведет к выдаче компилятором сообщения об ошибке. 70

Глава 2. Ot новы программирования на С++

Префикс const гарантирует, что наша программа не сможет случайно изменить значение переменной. Примером может служить переменная PI в программе CIRCAREA. Кроме того, префикс const информирует читающего листинг о том, что значение переменной не будет изменяться в ходе выполнения программы. Как мы увидим позже, префикс const может применяться не только к переменным, но и к другим элементам программы.
Предыдущая << 1 .. 20 21 22 23 24 25 < 26 > 27 28 29 30 31 32 .. 341 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100