Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 26.01.2012
Сообщений: 8
1

Типы данных в тривиальной задаче

26.01.2012, 19:52. Просмотров 526. Ответов 1
Метки нет (Все метки)

Суть задачи такова: вычислить значение дроби.

Имеются два аргумента a=100, b=0.001.

Условие: "Вычислить значение выражения при различных вещественных типах данных (float и
double). Вычисления следует выполнять с использованием промежуточных переменных.
Сравнить и объяснить полученные результаты."

Возникла проблема такого рода: все промежуточные переменные, как приведено в листинге с выводом на экран для наглядности, - при выводе видно, что они типа double, и вроде как числитель дроби выходит равным знаменателю при выполнении программы. Но с типом переменных double ответ выходит равным 1, а с float - 0.

Как это объяснить?
Считал на калькуляторе - числитель не равен знаменателю (но различие очень маленькое) .
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
25
26
27
#include <iostream.h>
#include <math.h>
 
void main()
{
    cout<<"Laboratornaya rabota 1.1. Vypolnil student gr.KS-10 Kushnirov N.";
    cout<<"\n";
    
    double a,b,m,n,k,f,c,Z;
    cout<<"Vvedite chislo a: ";
    cin>>a;
    cout<<"Vvedite chislo b: ";
    cin>>b;
 
    m = pow((a - b),4);
    cout<<m<<"\n";
    n = pow(a,4) - 4 * pow(a,3) * b;
    cout<<n<<"\n";
    k = 6 * a * a * b * b;
    cout<<k<<"\n";
    f = 4 * a * b * b * b;
    cout<<f<<"\n";c = pow(b,4);
    
    Z = (m - n)/(k - f + c);
 
    cout<<Z<<"\n";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2012, 19:52
Ответы с готовыми решениями:

Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си?
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы:...

Шары и сфера в тривиальной метрике
Вопрос в заголовке. С канонической все понятно, а тут как-то задумался... Спасибо.

Какой формат базы данных DSN Access (атрибуты и типы данных)?
В настройках IIS можно выбирать формат журнала, один из форматов - это DSN Access, то есть события...

Типы данных: чем отличается тип данных int от float?
Всем привет! Помогите пожалуйста, чем отличается тип данных int от float?

1
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
26.01.2012, 21:10 2
поставь перед выводами cout.precision(20) и увидишь, что в случае с float у m не записывается (не хватает точности) дробная часть и он оказывается равен n. в итоге числитель равен 0.
у double точность двойная и для дробной части памяти хватает. почему получается именно 1 - не разбирался.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2012, 21:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Типы данных, которые можно использовать в предложении foreach в качестве поставщика данных
Типы данных, которые можно использовать в предложении foreach в качестве поставщика данных 1...

Для следующих значений данных определить типы данных
Для следующих значений данных определить типы данных, указать какой объем памяти они занимают,...

Типы данных С# для передачи данных через TCP
подскажите пожалуйста какой тип переменной лучше всего использовать в C# для передачи данных через...

Создание базы данных, таблиц, типы данных и триггеры
Здравствуйте. В колледже выдали задание по базам данных. Как создавать базы, таблицы и типы...


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

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

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