Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

Добавлено через 41 минуту
http://www.cyberforum.ru/attachment....1&d=1285931597
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 11:10     типы данных float и double #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:Как говорится результаты сами за себя - дабл ввиду большей разрядность выдаёт более точный результат...
Миниатюры
типы данных float и  double  
-=Дрюня=-
0 / 0 / 0
Регистрация: 11.10.2011
Сообщений: 17
28.10.2011, 17:02  [ТС]     типы данных float и double #3
Компилятор ругается на 25 строчку пишет :
error: 'c' was not declared in this scope
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 17:19     типы данных float и double #4
-=Дрюня=-, в 25 строчке нету с. Вы правильно программу переписали?


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

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

Цитата Сообщение от aeshes Посмотреть сообщение
Может, поэтому ответы и разные?
- Ещё бы, ответы разные потому что у double большая точность - это задание как раз и показывает какую погрешность может внести казалось бы невинный выбор типа данных
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:04     типы данных float и double #8
-=ЮрА=-, я тебе про опечатку) у тебя в одном случае b возводится в степень 3, а во втором - 2 возводится в степень 3, я ее в вопросе красненьким выделила:
pow(2,3) вместо pow(b,3)
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:07     типы данных float и double #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> - мы же на плюсах пишем!
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:11     типы данных float и double #10
-=ЮрА=-, ну у него не подключилось, видимо. Может, компилятор старый совсем
Насчет cstdlib вместо stdlib.h ты, скорее всего, прав. Но опять же зависит от древности компилятора, как мне кажется. Вдруг у него Борланд 3.1 какой-нибудь. Хотя тут могу и ошибаться
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:22     типы данных float и double #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...
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
28.10.2011, 19:41     типы данных float и double #12
-=ЮрА=-, я знаю, что дабл не флоат) я вам просто хотела сказать, что у вас в одной из формул была опечатка, и поэтому значения выводились разные
-=ЮрА=-
Заблокирован
Автор FAQ
28.10.2011, 19:55     типы данных float и double #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:Я вообще то к вам на вы пишу, так что не тыкайте пожалуйсто!

Миниатюры
типы данных float и  double  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 20:04     типы данных float и double
Еще ссылки по теме:

Warning C4244: =: преобразование "double" в "float", возможна потеря данных C++
C++ Вычислить значение выражения при различных вещественных типах данных (float и double)
Используя перегрузки, написать функцию для выполнения действий, для следующих типов данных: float, int, double C++

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

Или воспользуйтесь поиском по форуму:
aeshes
28.10.2011, 20:04     типы данных float и double
  #14

Не по теме:

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

Yandex
Объявления
28.10.2011, 20:04     типы данных float и double
Ответ Создать тему
Опции темы

Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru