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

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

Войти
Регистрация
Восстановить пароль
 
Nike.amst
0 / 0 / 0
Регистрация: 26.01.2012
Сообщений: 8
#1

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

26.01.2012, 19:52. Просмотров 397. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 19:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Типы данных в тривиальной задаче (C++):

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

типы данных - C++
какой диапазон данных у main, getch? и какой тип данных у getch?

Типы данных - C++
Ребят, можете мне помочь написать простенькую прогу на c++ где использовались бы все типы данных.Заранее большое спасибо.

типы данных - C++
int x1, x2; float summa; x1 = 5; x2 = 6; summa = (x1 + x2)/2; cout &lt;&lt; summa &lt;&lt; endl; почему в результате 5, а не...

типы данных - C++
на Си реализовать: (не С++) построить функцию, возвращающую все байты заданного вещественного х в целом виде. т.е. нам например вводят...

Типы данных C++ - C++
Подскажите какие вещественные и целые типы самые большие и маленькие

1
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
26.01.2012, 21:10 #2
поставь перед выводами cout.precision(20) и увидишь, что в случае с float у m не записывается (не хватает точности) дробная часть и он оказывается равен n. в итоге числитель равен 0.
у double точность двойная и для дробной части памяти хватает. почему получается именно 1 - не разбирался.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2012, 21:10
Привет! Вот еще темы с ответами:

Типы данных - C++
Какого типа мне нужна переменная, чтобы принимала во такое число: 100000000000000 (15 цифр) ???

Типы данных - C++
Перекопал везде и всюду, может где-то и есть обьяснение по поводу типов данных. Какая разница между следующими типами данных (имеется...

Типы данных - C++
Добрый день. Очень нужна помощь умных людей в написании программы, задание приведено ниже. Буду очень благодарен если кто-то откликнется. ...

типы данных - C++
Подскажите как средствами С++ получить доступ к отдельным байтам стандартных типов данных, только без использования асматических вставок.


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

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

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