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

Возведения числа в целую положительную и отрицательную степень - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.59
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
17.04.2011, 13:48     Возведения числа в целую положительную и отрицательную степень #1
Запрограммируйте алгоритм возведения числа в целую положительную и отрицательную степень.
Пользователь вводит данные с клавиатуры. Программа выполняет вычисление и предлагает ввести следующую пару чисел. Отказом от продолжения служит возведение 0 в 0-ю степень.
При возведении в степень используйте рекурсивный алгоритм. Примените механизм исключений для обработки возможных ошибок при вводе данных и вычислении результатов.




За ранние большое спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2011, 13:48     Возведения числа в целую положительную и отрицательную степень
Посмотрите здесь:

C++ Возвести вещественное число A в целую положительную степень k
C++ Написать программу с функцией, вычисляющей целую степень дробного числа. Учесть,что степень может быть положительной, отрицательной, нулевой
C++ возведения отрицательного числа в степень
C++ Возведение числа в целую степень
C++ Программа для возведения числа в степень
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
17.04.2011, 14:13     Возведения числа в целую положительную и отрицательную степень #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<class _Ty> inline
_Ty Pow(_Ty _X, int _Y)
{
    unsigned int _N;
    if (_Y >= 0)
        _N = (unsigned int)_Y;
    else
        _N = (unsigned int)(-_Y);
    for (_Ty _Z = _Ty(1); ; _X *= _X)
    {
        if ((_N & 1) != 0)
            _Z *= _X;
        if ((_N >>= 1) == 0)
            return (_Y < 0 ? _Ty(1) / _Z : _Z); 
    }
}
Функция возведения. В наглую передрал из стандартных
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
17.04.2011, 14:22  [ТС]     Возведения числа в целую положительную и отрицательную степень #3
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 "stdafx.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    template<class _Ty> inline
_Ty Pow(_Ty _X, int _Y)
{
        unsigned int _N;
        if (_Y >= 0)
                _N = (unsigned int)_Y;
        else
                _N = (unsigned int)(-_Y);
        for (_Ty _Z = _Ty(1); ; _X *= _X)
        {
                if ((_N & 1) != 0)
                        _Z *= _X;
                if ((_N >>= 1) == 0)
                        return (_Y < 0 ? _Ty(1) / _Z : _Z); 
        }
}
}



ошибка 2 IntelliSense: использование объявления шаблона не допускается d:\програмирование 1курс\дз\kontrlna\kontrlna\kontrlna.cpp 10 2 kontrlna
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.04.2011, 15:20     Возведения числа в целую положительную и отрицательную степень #4
OneLove, Ничего логичнее кроме как засунуть функцию в main сделать не придумали?
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
17.04.2011, 15:23  [ТС]     Возведения числа в целую положительную и отрицательную степень #5
Цитата Сообщение от ForEveR Посмотреть сообщение
OneLove, Ничего логичнее кроме как засунуть функцию в main сделать не придумали?
ой........
всеравно не работает если меин опустить(((
ошибка шаблона выскакивает(((
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.04.2011, 15:26     Возведения числа в целую положительную и отрицательную степень #6
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 "stdafx.h"
#include <iostream>
 
using namespace std;
 
template<class _Ty> inline
_Ty Pow(_Ty _X, int _Y)
{
        unsigned int _N;
        if (_Y >= 0)
                _N = (unsigned int)_Y;
        else
                _N = (unsigned int)(-_Y);
        for (_Ty _Z = _Ty(1); ; _X *= _X)
        {
                if ((_N & 1) != 0)
                        _Z *= _X;
                if ((_N >>= 1) == 0)
                        return (_Y < 0 ? _Ty(1) / _Z : _Z); 
        }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout<<Pow(3, 2)<<'\n';
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2011, 15:40     Возведения числа в целую положительную и отрицательную степень
Еще ссылки по теме:

C++ Реализовать класс с методом возведения числа в целую степень
C++ Составить программу возведения числа n в целую степень
C++ Возведение числа в отрицательную степень

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

Или воспользуйтесь поиском по форуму:
OneLove
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 28
17.04.2011, 15:40  [ТС]     Возведения числа в целую положительную и отрицательную степень #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
#include "stdafx.h"
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#include <conio.h>
 
using namespace std;
int main()
{double A;
int k;
double r(1);
int z;
cout<<"Vubirete stepen esli minysova9 to vedite cifry (1) esli plysova9 to cifry (2)"<<endl;
cin>>z;
cout<<"Input A; "; cin>>A; //вводим A
cout<<"Input k: "; cin>>k; //вводим k
if(z=1)
for( int i = 0; i < k ; i++ )r*=A; //возводим число в степень.
r=1/r;
else(z=2);
for( int i = 0; i < k ; i++ )r*=A; //возводим число в степень.
 
cout<<"Otvet: "<<r<<endl; //выводим ответ.
system("pause");
return 0;


Помогите исправить ошибку.....
Yandex
Объявления
17.04.2011, 15:40     Возведения числа в целую положительную и отрицательную степень
Ответ Создать тему
Опции темы

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