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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.86
-=Дрюня=-
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 17
#1

Типы данных float и double - C++

28.10.2011, 10:46. Просмотров 3028. Ответов 13
Метки нет (Все метки)

Ребята,пожалуйста помогите написать программу на С++

Вычислить значение выражения при различных вещественных типах данных (float и
double)

http://www.cyberforum.ru/attachment....1&d=1285931564
при a=1000,b=0.0001

Добавлено через 41 минуту
http://www.cyberforum.ru/attachment....1&d=1285931597
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 10:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Типы данных float и double (C++):

Размер для данных (int, char, long, double, short, unsigned, float) - C++
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

Вычислить значение выражения при различных вещественных типах данных (float и double) - C++
Решите пожалуйста =* Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2 - C++
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию - C++
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека в текущем году; б) вес человека в...

Используя перегрузки, написать функцию для выполнения действий, для следующих типов данных: float, int, double - C++
Используя перегрузки, написать функцию для выполнения действий, для следующих типов данных float, int, double, long: приведение типов.

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

13
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 11:10 #2
Цитата Сообщение от -=Дрюня=- Посмотреть сообщение
Ребята,пожалуйста помогите написать программу на С++
Вычислить значение выражения при различных вещественных типах данных (float и
double)
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
#include <iostream>
#include <cmath>
using namespace std;
 
float ffun(float a, float b)
{
    return ((a - b)*(a - b)*(a - b) - (a*a*a - 3*a*b*b))/
        (b*b*b - 3*a*a*b);
}
 
double dfun(double a, double b)
{
    return (pow((a - b),3) - (pow(a,3) - 3*a*pow(b,2)))/
        (pow(2,3) - 3*pow(a,2)*b);
}
 
int main()
{
    double a,b;
    cout<<"Enter a : ";cin>>a;
    cout<<"Enter b : ";cin>>b;
    cout<<"float   : "<<ffun(a,b)<<"\n";
    cout<<"double  : "<<dfun(a,b)<<"\n";
    system("pause");
    return 0;
}
PS:Как говорится результаты сами за себя - дабл ввиду большей разрядность выдаёт более точный результат...
1
Миниатюры
Типы данных float и double  
-=Дрюня=-
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 17
28.10.2011, 17:02  [ТС] #3
Компилятор ругается на 25 строчку пишет :
error: 'c' was not declared in this scope
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 17:19 #4
-=Дрюня=-, в 25 строчке нету с. Вы правильно программу переписали?


-=ЮрА=-, а почему у тебя в одной формуле в знаменателе (b*b*b - 3*a*a*b), а в другой pow(2,3) - 3*pow(a,2)*b? Может, поэтому ответы и разные?
0
-=Дрюня=-
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 17
28.10.2011, 17:37  [ТС] #5
Компилятор ругается на 25 строчку пишет :

++\main.cpp|25|error: 'system' was not declared in this scope
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 17:43 #6
подключи stdlib.h для этого
1
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:03 #7
Цитата Сообщение от aeshes Посмотреть сообщение
-=ЮрА=-, а почему у тебя в одной формуле в знаменателе (b*b*b - 3*a*a*b), а в другой pow(2,3) - 3*pow(a,2)*b?
- потому что pow возвращает double а нам по условию нужно посчитать с float...

Цитата Сообщение от aeshes Посмотреть сообщение
Может, поэтому ответы и разные?
- Ещё бы, ответы разные потому что у double большая точность - это задание как раз и показывает какую погрешность может внести казалось бы невинный выбор типа данных
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:04 #8
-=ЮрА=-, я тебе про опечатку) у тебя в одном случае b возводится в степень 3, а во втором - 2 возводится в степень 3, я ее в вопросе красненьким выделила:
pow(2,3) вместо pow(b,3)
0
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:07 #9
Цитата Сообщение от -=Дрюня=- Посмотреть сообщение
++\main.cpp|25|error: 'system' was not declared in this scope
- вобще то system объявлен в stdlib но строки ниже подключают system даже на Microsoft Visual Studio 6.0
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <iostream>
using namespace std;
- какой компилятор испольуем???
Цитата Сообщение от aeshes Посмотреть сообщение
подключи stdlib.h для этого
- не stdlib.h а
#include <cstdlib> - мы же на плюсах пишем!
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:11 #10
-=ЮрА=-, ну у него не подключилось, видимо. Может, компилятор старый совсем
Насчет cstdlib вместо stdlib.h ты, скорее всего, прав. Но опять же зависит от древности компилятора, как мне кажется. Вдруг у него Борланд 3.1 какой-нибудь. Хотя тут могу и ошибаться
0
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:22 #11
Цитата Сообщение от aeshes Посмотреть сообщение
Насчет cstdlib вместо stdlib.h ты, скорее всего, прав.
- Я прав, а не скорее всего прав

Не по теме:

aeshes, ну вот хватит вести себя как эксперт, немножко рановато вам



Добавлено через 1 минуту
aeshes, а это чтоб вы поняли раницу между дабл и флоат
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main(void) 
{
    double orig = 12345.669921875;
    float f = (float) orig;
    printf("%f\n", f); // prints 12345.669922
    return 0;
}
Спасибо можете не говорить, просто возьмите на заметку что double это НЕ float...
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:41 #12
-=ЮрА=-, я знаю, что дабл не флоат) я вам просто хотела сказать, что у вас в одной из формул была опечатка, и поэтому значения выводились разные
0
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:55 #13
Цитата Сообщение от aeshes Посмотреть сообщение
я вам просто хотела сказать, что у вас в одной из формул была опечатка, и поэтому значения выводились разные
- вот Вам код, чтобы успокоить ваши нервы
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
float ffun(float a, float b)
{
        return ((a - b)*(a - b)*(a - b) - (a*a*a - 3*a*b*b))/
                (b*b*b - 3*a*a*b);
}
 
double dfun(double a, double b)
{
        return (pow((a - b),3) - (pow(a,3) - 3*a*pow(b,2)))/
                (pow(b,3) - 3*pow(a,2)*b);
}
 
int main()
{
    printf("float   : %f\n"  ,ffun(1000000,0.0000001));
    printf("double  : %lf\n" ,dfun(1000000,0.0000001));
    system("pause");
    return 0;
}

Не по теме:

PS:Я вообще то к вам на вы пишу, так что не тыкайте пожалуйсто!

0
Миниатюры
Типы данных float и double  
aeshes
28.10.2011, 20:04     Типы данных float и double
  #14

Не по теме:

-=ЮрА=-, Извините за "тыканье", буду писать на Вы. Нервы успокоены тоже)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 20:04
Привет! Вот еще темы с ответами:

Warning C4244: return: преобразование "double" в "float", возможна потеря данных - C++
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244: return: преобразование &quot;double&quot; в &quot;float&quot;,...

warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Вот код. Работало, теперь не работает. Не пойму в чём дело. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Возникла проблема Решаю лабу, написал код, выдает ошибку (warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря данных) ...

Задание с float и double - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); float fA, fB, fC, fD,...


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

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

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