С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
#1

Погрешность вычислений - C++

27.07.2013, 17:19. Просмотров 669. Ответов 4
Метки нет (Все метки)

Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход бензина, когда закончится ввод. Вроде все сделал правильно, но когда ввожу данные которые приведены в качестве примера у авторов, у меня средний расход считается почему - то с очень большой погрешностью. (у меня почему-то больше на 0.3). Помогите разобраться, в чем дело.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    setlocale(0,"");
    float gallon, way, milgal, total = 0.0 ;
    int counter = 1 ;
    cout << "Введите расход бензина (-1, если ввод окончен): " ;
    cin >> gallon ;
    while (gallon != -1)
    {
        cout << "Введите пройденный путь: " ;
        cin >> way ; 
        milgal = way / gallon ;
        cout << "Для этой емкости полученно миль/галлон: " << setprecision(6) << setiosflags(ios::fixed | ios:: showpoint) << milgal << endl ;
        total += milgal ;
        ++counter ;
        cout << "Введите расход бензина (-1, если ввод окончен): " ;
        cin >> gallon ;
    }
    cout << "Средний расход бензина: " << setprecision(6) << setiosflags(ios::fixed | ios:: showpoint) << total / ((float)counter - 1.0) << endl;
    return 0;
}
0
Миниатюры
Погрешность вычислений  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2013, 17:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Погрешность вычислений (C++):

Погрешность вычислений - C++
определить погрешность вычислений на ЭВМ выражения а*(1/a), задавая тип данных для переменной a - float, double, long double. Для этого...

Высокая точность вычислений (погрешность<10^-30) - C++
Здравствуйте, необходимо вычислить значение функции с заданной точностью (к примеру с точностью до 30-го знака после запятой), знает ли кто...

В сответствии с вариантом задания определить погрешность вычислений на ЭВМ выражения a*(1/a) - C++
Вместо переменной а можно любое число. Для этого написать программу на языке Cи++ с использованием вывода результата не менее 8 значащих...

"Точность вычислений" или "Элементарная погрешность" - C++
Всем привет! Решаю задачку (Задача А - во вложениях), где даны координаты вершин треугольника, и нужно найти наибольший угол в нем. ...

Погрешность в вычислениях - C++
Есть зщадание вычислить значения для {y}_{n}=\frac{1}{n}-5{y}_{n-1} если n=0,1,2,3,...,16. зная что {y}_{n}\approx 0.182321556 Я написал...

Откуда погрешность? - C++
double j=3.143; cout &lt;&lt; int(j*1000); // выдает 3142 Подскажите откуда берется погрешность?

4
Rebelition
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 22
27.07.2013, 21:31 #2
Скомпилировал в visual studio 2013, ответы получились как в книжке. Скорее всего проблема в твоем компиляторе, попробуй заменить float на double.
0
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
27.07.2013, 21:43  [ТС] #3
Пробовал, не помогает
0
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
27.07.2013, 21:53 #4
в книге ошибка. должно получится
(22.421875 + 19.417475 + 24) / 3 = 21,94645
0
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76
27.07.2013, 22:24  [ТС] #5
Ну значит все правильно работает
0
27.07.2013, 22:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2013, 22:24
Привет! Вот еще темы с ответами:

Погрешность интерполяции на C++ - C++
написал код для интерполяционного полинома Ньютоно, он работает правильно, но вот никак не могу разобратса как обчислить его погреность ...

Погрешность и бесконечность - C++
Как задать в программе бесконечность(infinity) и погрешность (EPS) например для типа float?

Найти погрешность числа - C++
Добрый вечер.Дана вроде простая задача,а появились проблемы.Записать число пи с 5 значащими цифрами.Нужно найти относительную погрешность...

Погрешность при вычислениях - C++
Вкратце условие задачи: Есть N счетов, нам нужно соединить их в один так: берется два счета и прибавляются друг к другу и при этом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.