Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
«На прилагаемом компакт-диске в папкеCpp_Programs\Chap02 программыIntAverage иFloatAverage демонстрируют разобранные здесь примеры вычисления среднего значения.»
[ Диск ]
//
/* IntAverage — среднее 3 чисел, используя целочисленную арифметику. */
/* Сперва сумма трёх отношений */
/* ( сумма каждого числа разделённого на 3), */
/* второе разделить сумму трёх чисел на 3. */
#include
#include
#include
using namespace std ;
int main( int nNumberofArgs , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
int nValue1 ;
int nValue2 ;
int nValue3 ;
// введите три числа
cout << "Эта программа вычисляет среднее трёх чисел типа int\n "
<< "integer ( целочисленной ) арифметики\n\n" ;
cout << "Введите три целых числа:\n" ;
cout << "n1 - " ;
cin >> nValue1 ;
cout << "n2 - " ;
cin >> nValue2 ;
cout << "n3 - " ;
cin >> nValue3 ;
/* Сперва сумма трёх отношений */
cout << "n1/3 + n2/3 + n3/3 = " ;
cout << nValue1/3 + nValue2/3 + nValue3/3 ;
cout << "\n" ;
/* Сейчас соотношение трёх сумм */
cout << "( n1 + n2 + n3 ) / 3 = " ;
cout << ( nValue1 + nValue2 + nValue3) / 3 ;
cout << "\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
/* FloatAverage — среднее 3 чисел, используя арифметику с плавающей точкой.*/
/* В противном случае, так же как IntAverage */
#include
#include
#include
using namespace std ;
int main( int nNumberofArgs , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
float fValue1 ;
float fValue2 ;
float fValue3 ;
// введите три числа
cout << "Эта програма вычисляет среднее трёх чисел типа float\n"
<< "floating point( с плавающей точкой ) арифметики\n\n" ;
cout << "Введите три числа:\n" ;
cout << "f1 - " ;
cin >> fValue1 ;
cout << "f2 - ";
cin >> fValue2 ;
cout << "f3 - " ;
cin >> fValue3 ;
/* Сперва сумма трёх отношений */
cout << "n1/3 + n2/3 + n3/3 = " ;
cout << fValue1/3 + fValue2/3 + fValue3/3 ;
cout << "\n" ;
/* Сейчас соотношение трёх сумм */
cout << "(n1 + n2 + n3)/3 = " ;
cout << (fValue1 + fValue2 + fValue3) / 3 ;
cout << "\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
Ограничения, налагаемые на числа с плавающей точкой...44
Хотя применение чисел с плавающей точкой может решить многие вычислительные проблемы, на их использование тоже существуют ограничения. Проблемы отчасти противоположны тем, которые характерны для целочисленных переменных. Действительные переменные не могут использоваться для перечисления, с ними сложнее работать компьютеру, и они тоже страдают от ошибок округления ( хотя намного меньше, чем переменные типа int ).
Перечисление...44
Использовать переменные с плавающей точкой для простого перечисления нельзя. С++ не умеет определять, какое целочисленное значение подразумевается под действительным числом.
_________________
44 стр. Часть 1. Первое знакомство с С++
Например, ясно, что 1.0 есть 1 . Но что такое 0.9 или 1.1 ? Следует ли их рассматривать как 1 ? Так что С++ избегает многих проблем, требуя использовать при перечислении только целые значения.
Скорость вычислений...45
Исторически сложилось так, что процессор компьютера выполняет операции с целыми числами гораздо быстрее, чем с действительными. Для сложения 1000 целых чисел процессору может потребоваться столько же времени, сколько для выполнения только 200 вычислений с плавающей точкой.
Однако с увеличением производительности микропроцессоров проблема скорости вычислений становится всё менее важной. Большинство современных процессоров содержат специальные вычислительные схемы, которые позволяют вычислять выражения с плавающей точкой почти так же быстро, как и целочисленные выражения.
Потеря точности...45
Действительные переменные не могут решить всех вычислительных проблем. Обычно их точность ограничена приблизительно шестью разрядами, но есть и расширенный вариант типа для действительных чисел, который может содержать после десятичной точки до 15 значимых разрядов.
Чтобы понять эту проблему, представим 1/3 в виде бесконечной последовательности 0.333.... Однако математическое понятие периода в программировании не имеет смысла, так как точность компьютерных вычислений ограничена и где-то наша дробь должна оборваться ( что зависит от использованного для хранения числа типа переменной ). Поэтому, усреднив числа 1, 2, 2, мы получим не точное, а приблизительное значение 1.666667.
В некоторых случаях ошибки округления может исправлять сам С++; например, выводя информацию на экран, вместо числа 0.999999 С++ выдаст пользователю значение 1.
Ограниченность диапазона...45
Тип данных double также ограничен, хотя его диапазон намного обширнее диапазона целочисленных переменных. Максимальным значением типа int является число чуть больше 2 млрд.; максимальное значение переменной типа double приблизительно равно 10 308, т.е. 1 с 308 нулями [ 7 ] .
«Представляя переменные с плавающей точкой в стандартном виде, С++ учитывает после десятичной точки только первые 13 разрядов. Остальные 25 разрядов становятся жертвами ошибочных округлений.»
[ Атас! ]
►Объявления типов переменных...45
Вы уже знаете, что все переменные в программе должны быть объявлены и что им должен быть назначен тип. Однако в С++ имеется масса различных типов. В табл. 2.1 представлен список некоторых стандартных типов переменных языка С++ с указанием их достоинств и недостатков.
________
7Это не означает, будто тип double может представить 10 38разных значений; вспомните, что говорилось выше о количестве разрядов в числах этого типа . — Прим. ред.
_________________
45 стр. Глава 2. Премудрости объявления переменных
Таблица 2.1. Переменные С++
_________________
Переменная — Пример — Характеристика
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
int — 1 — Простые положительные или отрицательные числа, используемые для перечисления .
Читать дальшеИнтервал:
Закладка: