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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
#1

Корень и модуль - C++

20.05.2012, 23:30. Просмотров 1912. Ответов 19
Метки нет (Все метки)

как записать без библиотеки <math.h> корень (x), модуль (x).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 23:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Корень и модуль (C++):

Корень - C++
Пишу прогу для нахождения Среднее геометрического у меня получается что корень 6 степени. Я так думаю, что sqrt мне не поможет?

Корень - C++
Подскажите как вычисть корень 3..н степени.

вычислить корень - C++
По введённому х вычислите корень из (13 х + 22 х)

Квадратный корень - C++
как вычислить корень из числа в консольном виде , я имею ввиду код для консольного приложения

Квадратный корень из 5 - C++
Здравствуйте, подскажите, пожалуйста, алгоритм вычисления квадратного корня из 5 с точностью 10 миллионов знаков

Найти корень - C++
Как найти корень 15-ой степени из числа? Подскажите

19
Almaz_KG
6 / 6 / 0
Регистрация: 15.05.2012
Сообщений: 105
20.05.2012, 23:38 #2
В смысле вычислить корень или выявить модуль??
0
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
20.05.2012, 23:54  [ТС] #3
вычеслить корень.
тобишь БЕЗ библиотеки вводишь число,а оно ищет корень. И вводишь число например -2, а оно выводит 2. По модулю.
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
21.05.2012, 00:08 #4
Модуль просто, примерно так:
C++
1
2
3
4
template<typename Type>
Type abs(Type const& value) {
    return value < static_cast<Type>(0) ? -value : value;
}
0
WebPirat
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:14 #5
Можно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
0
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:21  [ТС] #6
Цитата Сообщение от WebPirat Посмотреть сообщение
Можно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
в корне (а) я так понимаю это выражение, в модуле (а) тоже?
0
WebPirat
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:25 #7
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
28
29
30
31
32
33
#include <iostream>
using namespace std;
int pow(int);//функция которая вычисляет корень
int modul(int);//функция которая вычисляет модуль
int main()
{
    int a;
    cin>>a;
    //Если хотим узнать модуль  
    cout<<modul(a)<<endl;
        //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
int modul(int a)
{
    if(a<=-1)
        a*=-1;
    return a;
}
0
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:32  [ТС] #8
начало понял,а зачем 17 строка и ниже..это и есть запись корня и модуля?

Добавлено через 3 минуты
В такой программе пишет что есть ошибка.
[PHP]
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 <iostream>
using namespace std;
int pow(int);
 
int main()
 
{
    int a;  //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
0
WebPirat
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 5
21.05.2012, 00:35 #9
Сверху объявляется прототип функции, а внизу она уже описывается, просто если не будет прототипа программа выдаст ошибку на этапе компиляции.
Конечно есть,
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
#include <iostream>
using namespace std;
int pow(int);
 
int main()
 
{
    int a;  //Если хотим посчитать корень
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
int pow(int a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
исправь функцию и не будет ошибки.
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 00:39 #10
Хардкор, только хардкор!

C++
1
2
3
4
5
6
#define abs(x) ((x < 0) ? -(x) : (x))
 
inline float sqrt(float number){
    long i;float y;
    return number*(y=*(float *)(&(i=0x5f3759df-((*(long *)&number)>>1)))) * (1.5f - (number*0.5f * y * y));
}
Update:
Пока я тут хардкором занимался, кто-то написал возведение в степень. Это вроде $#$^%$$# не корень...
0
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:41  [ТС] #11
только вот корень с 10 равен 3)
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 00:46 #12
Может потому что int != float?

Добавлено через 3 минуты
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Update:
Пока я тут хардкором занимался, кто-то написал возведение в степень. Это вроде $#$^%$$# не корень...
Извиняюсь, просто pow -> power -> степень. И она тоже считается в цикле... Не углядел немного рассчёт. Но всё равно считать sqrt так вот - не правильно...
0
marik2012
0 / 0 / 0
Регистрация: 05.05.2012
Сообщений: 41
21.05.2012, 00:58  [ТС] #13
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>
using namespace std;
 
double pow(float a)
{
    int b=0;
    for(int i=1;;i++)
    {
        b=a/i;
        if(b==i)
            break;
    }       
    return b;
}
 
 
int main()
 
{
    int a;  //Åñëè õîòèì ïîñ÷èòГ*ГІГј êîðåГ*Гј
    cout<<" vvedit6 a:";
        cin>>a;
    cout<<pow(a)<<endl;
 
    return 0;
}
так тоже не работает.
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
21.05.2012, 01:01 #14
А чем не нравиться

C++
1
2
3
4
5
inline float sqrt(float number){
    long i;float y;
    return number*(y=*(float *)(&(i=0x5f3759df-((*(long *)&number)>>1))))
            *(1.5f-(number*0.5f*y*y));
}
Матчасть.
1
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
21.05.2012, 01:03 #15
Ничего, что pow (power) - это возведение в степень, а извлечение квадратного корня - sqrt (square root)?
1
21.05.2012, 01:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2012, 01:03
Привет! Вот еще темы с ответами:

Обратный корень - C++
Исходные данные Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и...

Найти корень - C++
Помогите пожалуйста. как найти корень разности? например D=корень из A-B.

Кубический корень - C++
Как в C++ получить кубический корень числа?

Корень n-й степени - C++
Всем доброго времени суток. Как взять корень n-й степени? При использовании данного варианта: pow(x, (1/n)) в ответ всегда идет 1. ...


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

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

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