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

Корень седьмой степени из числа? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
21.09.2013, 16:02     Корень седьмой степени из числа? #1
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 <math.h>
#include <conio.h>
 
using namespace std;
void main ( )
{
                float a,b,y;
                cout<<"\n a=";
                cin>>a;
                cout<<"\n b=";
                cin>>b;
 
        if (a<0)            {y=pow(pow(a,3)-pow(b,3),1/7.0);
                            cout<<"\n y="<<y; }
        else    if (a>1)                if (b=0)
                                            cout<<"\nError!\n";
                                        else {y=a/b;
                                            cout<<"\n y="<<y; }
                else    if (pow(a,3)==pow(b,3))
                        cout<<"\nError!\n";
                        else {y=(a*a + b*b*b)/(a*a*a-b*b*b);
                        cout<<"\n y="<<y; }
                    
getch ();
}
C++
1
    y=pow(pow(a,3)-pow(b,3),1/7.0);
Проблема в этой строчке - в ответ всегда выдает единицу...
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
makashello
7 / 0 / 2
Регистрация: 20.09.2013
Сообщений: 18
21.09.2013, 16:14     Корень седьмой степени из числа? #2
Цитата Сообщение от 8lgm Посмотреть сообщение
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 <math.h>
#include <conio.h>
 
using namespace std;
void main ( )
{
                float a,b,y;
                cout<<"\n a=";
                cin>>a;
                cout<<"\n b=";
                cin>>b;
 
        if (a<0)            {y=pow(pow(a,3)-pow(b,3),1/7.0);
                            cout<<"\n y="<<y; }
        else    if (a>1)                if (b=0)
                                            cout<<"\nError!\n";
                                        else {y=a/b;
                                            cout<<"\n y="<<y; }
                else    if (pow(a,3)==pow(b,3))
                        cout<<"\nError!\n";
                        else {y=(a*a + b*b*b)/(a*a*a-b*b*b);
                        cout<<"\n y="<<y; }
                    
getch ();
}
C++
1
    y=pow(pow(a,3)-pow(b,3),1/7.0);
Проблема в этой строчке - в ответ всегда выдает единицу...
Заранее спасибо.
задача? из разности кубов вычислить корень 7-ой степени?
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
21.09.2013, 16:20     Корень седьмой степени из числа? #3
"один" не льзя разделить на "семь", получается производная из 0,(142857)
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
21.09.2013, 16:21  [ТС]     Корень седьмой степени из числа? #4
Цитата Сообщение от makashello Посмотреть сообщение
задача? из разности кубов вычислить корень 7-ой степени?
this
http://www.cyberforum.ru/attachment....0&d=1379766049

Задаем a и b, считаем и выводим y.
Миниатюры
Корень седьмой степени из числа?  
makashello
7 / 0 / 2
Регистрация: 20.09.2013
Сообщений: 18
21.09.2013, 16:21     Корень седьмой степени из числа? #5
Цитата Сообщение от Нету имени Посмотреть сообщение
"один" не льзя разделить на "семь", получается производная из 0,(142857)
да если вы хотите получить дробный тип, то надо 1.0/7.0. Правила возведения типов хромают, но задачу можно скинуть?
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
21.09.2013, 16:29     Корень седьмой степени из числа? #6

Не по теме:

8lgm, прекращай украшать код


Цитата Сообщение от makashello Посмотреть сообщение
Правила возведения типов хромают, но задачу можно скинуть?
поподробнее
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
21.09.2013, 16:33  [ТС]     Корень седьмой степени из числа? #7
Цитата Сообщение от Нету имени Посмотреть сообщение

Не по теме:

8lgm, прекращай украшать код


Не по теме:

Что значит украшать? делать такие большие отступы?



И да, не работает именно вычисление корня 7 степени, все остальные ветви работают.
Btw 1.0/7.0 не работает. Ч.Я.Д.Н.Т.?
И да, нам в вузе уже дали задание, хотя язык с++ нам еще не читали... Считайте, что я занимаюсь самообучением.
Нету имени
21.09.2013, 16:41
  #8

Не по теме:

Цитата Сообщение от 8lgm Посмотреть сообщение
Что значит украшать? делать такие большие отступы?
вы меня правильно поняли, у вас код еле читабелен

makashello
7 / 0 / 2
Регистрация: 20.09.2013
Сообщений: 18
21.09.2013, 16:44     Корень седьмой степени из числа? #9
Если x отрицательное, а y не является целой, функция печатает сообщение об
ошибке DOMAIN в stderr, устанавливает errno в ERANGE и возвращает
либо положительное, либо отрицательное значение HUGE.
Описание функции pow. Оно такое значение тебе и вернет, потому что х является отрицательным, а y- дробным и результат "Отрицательная неопределённость" или -1.#IND. Может я не прав, но у меня такая версия. Сам написал и опробовал.

Добавлено через 1 минуту
Цитата Сообщение от makashello Посмотреть сообщение
да если вы хотите получить дробный тип, то надо 1.0/7.0. Правила возведения типов хромают, но задачу можно скинуть?
пример int и char складываем, то char будет возведен до int и т.д.
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
21.09.2013, 16:44  [ТС]     Корень седьмой степени из числа? #10
Цитата Сообщение от makashello Посмотреть сообщение
Если x отрицательное, а y не является целой, функция печатает сообщение об
ошибке DOMAIN в stderr, устанавливает errno в ERANGE и возвращает
либо положительное, либо отрицательное значение HUGE.
Описание функции pow. Оно такое значение тебе и вернет, потому что х является отрицательным, а y- дробным и результат "Отрицательная неопределённость" или -1.#IND
Через логарифм преобразовать как-нибудь тогда? Или как еще вывести корень нечетной степени из отрицательного числа?
makashello
7 / 0 / 2
Регистрация: 20.09.2013
Сообщений: 18
21.09.2013, 16:53     Корень седьмой степени из числа? #11
Цитата Сообщение от 8lgm Посмотреть сообщение
this
http://www.cyberforum.ru/attachment....0&d=1379766049

Задаем a и b, считаем и выводим y.
Ща может выход найду сек! проверю ток!

Добавлено через 4 минуты
Цитата Сообщение от 8lgm Посмотреть сообщение
Через логарифм преобразовать как-нибудь тогда? Или как еще вывести корень нечетной степени из отрицательного числа?
неее=( даже никак не проверишь=) даже калькулятор выдает бесконечность=)
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
21.09.2013, 17:24  [ТС]     Корень седьмой степени из числа? #12
Цитата Сообщение от makashello Посмотреть сообщение
Ща может выход найду сек! проверю ток!
Было бы неплохо...
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
21.09.2013, 17:25     Корень седьмой степени из числа? #13
А как такой вариант?
C++
1
double y = -pow( abs( pow( a, 3 ) - pow( b, 3 )), 1.0/7.0 );
makashello
7 / 0 / 2
Регистрация: 20.09.2013
Сообщений: 18
21.09.2013, 17:27     Корень седьмой степени из числа? #14
Цитата Сообщение от Нету имени Посмотреть сообщение
А как такой вариант?
C++
1
double y = -pow( abs( pow( a, 3 ) - pow( b, 3 )), 1.0/7.0 );
я тоже так пробовал, но как ты проверишь результат вычислений?
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
21.09.2013, 17:33     Корень седьмой степени из числа? #15
Цитата Сообщение от Нету имени Посмотреть сообщение
double y = -pow( abs( pow( a, 3 ) - pow( b, 3 )), 1.0/7.0 );
этот вариант комплементарен, при условии что а<0( по умолчанию ) и b>0
при a<0 и b<a, минус лишний

Добавлено через 1 минуту
Слипаются глаза, вот мой последний вариант на сегодня и я иду спать
C++
1
2
a<0 && b<a ? y = pow( abs( pow( a, 3 ) - pow( b, 3 )), 1.0/7.0 ): 
             y =-pow( abs( pow( a, 3 ) - pow( b, 3 )), 1.0/7.0 );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 18:06     Корень седьмой степени из числа?
Еще ссылки по теме:

Как записать корень в степени C++
Корень n-й степени C++
C++ Взять корень из степени большого числа

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

Или воспользуйтесь поиском по форуму:
8lgm
0 / 0 / 0
Регистрация: 21.09.2013
Сообщений: 16
22.09.2013, 18:06  [ТС]     Корень седьмой степени из числа? #16
Сделал вот так...
C++
1
2
3
4
5
6
7
8
9
10
    if (a<0) if ((a*a*a-b*b*b)<0) 
                {
            y=sqrt(pow(pow((pow(a,3)-pow(b,3)),2),1.0/7.0));
            cout<<"\n y=-"<<y;
                }
                else 
                {
            y=sqrt(pow(pow((pow(a,3)-pow(b,3)),2),1.0/7.0));
            cout<<"\n y="<<y;
                }
Добавлено через 11 минут
А-аа, abs - это модуль. Спасибо, я понял, сделал
Yandex
Объявления
22.09.2013, 18:06     Корень седьмой степени из числа?
Ответ Создать тему
Опции темы

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