Выбрать главу

    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 <cstdio>

#include <cstdlib>

#include <iostream>

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 значимых разрядов.