Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 65
1

Функция возведения в степень с параметрами по умолчанию

02.04.2020, 10:56. Просмотров 2157. Ответов 10
Метки нет (Все метки)


Возведение числа n в степень р — это умножение числа n на себя р раз. Напишите функцию с именем power(), которая в качестве аргументов принимает значение типа double для n и значение типа int для р и возвращает значение типа double. Для аргумента, соответствующего степени числа, задайте значение по умолчанию, равное 2, чтобы при отсутствии показателя степени при вызове функции число n возводилось в квадрат. Напишите функцию main(), которая запрашивает у пользователя ввод аргументов для функции power(), и отобразите на экране результаты ее работы.
Как можно сделать условие по умолчанию?

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;
double power(double n, int p = 2);
double ch = 1;
int i = 1;
int main()
{
    setlocale(LC_ALL, "RUS");
    int st;
    double chislo, vivod;
    cout << "Введите число ";
    cin >> chislo;
    cout << "Введите его степень ";
    cin>> st;
    vivod = power(chislo, st);
    cout << vivod << endl;
    system("pause");
    return 0;
}
double power(double n, int p)
{
 
    if (p == 0)
    {
        n = 1;
    }
    else
    {
        for (i = 1; i <= p; i++)
            ch = ch * n;
    }
    return ch;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2020, 10:56
Ответы с готовыми решениями:

Функция возведения в степень 15
1)написать программу, считывающую с клавы число, возводящую в 15ю степень и выводящую результат на...

Функция возведения в степень
Помогите пожалуйста, написать функцию power, принимающую два аргумента, являющихся натуральными...

Функция возведения в степень
http://i043.***********/1102/3d/ff1e040b9d28.jpg фунцкию вывел, как доконца оформить ...

Функция возведения в степень
Добрый день. Ребята, помогите решить проблему. Написал функцию для вычисления действительных...

10
5894 / 4005 / 2322
Регистрация: 18.12.2017
Сообщений: 12,550
02.04.2020, 12:23 2
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
#include <iostream>
using namespace std;
 
double power(double n, int p=2)
{
    int k=0;
    double res=1.;
    if (p == 0) return 1.;
    if (p < 0) {k=1;p=-p;}
 
    for (int i = 1; i <= p; i++)
    res*=n;
    if(k) res=1./res;
    return res;
}
 
int main()
{    
    double num;
    int pow;
    
    cout << "num="; cin >> num;
    cout << "pow="; cin >> pow;   
    
    cout << num << "^" << pow << "=" << power(num, pow) << "\n";
    cout << num << "^2" << "=" << power(num) << "\n";
    
system("pause");
return 0;
}
0
Модератор
Эксперт CЭксперт С++
4303 / 3869 / 710
Регистрация: 07.10.2015
Сообщений: 7,943
02.04.2020, 12:41 3
IMO, вот такой вариант:
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
34
35
36
37
38
39
#include <conio.h>
#include <iostream>
using namespace std;
 
double power(double n, int p);
 
int main()
{
    setlocale(LC_ALL, "RUS");
    int st = 0;
    double chislo;
 
    cout << "Введите число: ";
    cin >> chislo;
 
    cout << "Введите его степень: ";
    cin >> st;
 
    cout << power(chislo, st) << endl;
 
    system("pause");
    return 0;
}
double power(double n, int p = 2)
{
    double ch = 1;
 
    if (p > 0)
    {
        for (int i = 1; i <= p; i++)
            ch *= n;
    }
    else
    {
        for (int i = -1; i >= p; i--)
            ch /= n;
    }
    return ch;
}
0
567 / 429 / 253
Регистрация: 24.02.2017
Сообщений: 1,528
02.04.2020, 13:29 4
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;
 
double power(double n, int p){
    double res=1.;
 
    if (p == 0) return 1.;
    for (int i = 1; i <= p; i++)
          res*=n;
    return res;
}
 
 double power(double n){
    double res=1.;
 
    for (int i = 1; i <= 2; i++)
        res*=n;
    return res;
}
 
 
int main()
{    
    double num;
    int pow;
 
    cout << "num="; cin >> num;
    cout << "pow="; cin >> pow;
    cout << num << "^" << pow << "=" << power(num,pow) << "\n";
    cout << num << "^" << '2' << "=" << power(num) << "\n";
    system("pause");
    return 0;
}
0
Модератор
Эксперт С++
10434 / 8694 / 5255
Регистрация: 18.12.2011
Сообщений: 23,236
02.04.2020, 14:13 5
повар1, все-таки предлагаю
C++
1
2
3
double power(double n){
   return n*n;
}
1
5894 / 4005 / 2322
Регистрация: 18.12.2017
Сообщений: 12,550
02.04.2020, 14:56 6
повар1, я так понимаю Вас не устроил мой вариант ? отрицательные рассматривать не нужно ? функция должна быть одна
Цитата Сообщение от IMO Посмотреть сообщение
Напишите функцию
и в Вашем коде нет параметра по умолчанию
0
567 / 429 / 253
Регистрация: 24.02.2017
Сообщений: 1,528
02.04.2020, 19:43 7
Цитата Сообщение от Yetty Посмотреть сообщение
функция должна быть одна
Так она одна, только перегружена.
Цитата Сообщение от Yetty Посмотреть сообщение
в Вашем коде нет параметра по умолчанию
ответ
Цитата Сообщение от IMO Посмотреть сообщение
при отсутствии показателя степени при вызове функции число n возводилось в квадрат.
Цитата Сообщение от Yetty Посмотреть сообщение
отрицательные рассматривать не нужно
ответ
Цитата Сообщение от IMO Посмотреть сообщение
Возведение числа n в степень р — это умножение числа n на себя р раз.
Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
повар1, все-таки предлагаю
предложение проходит

Добавлено через 36 секунд
Цитата Сообщение от zss Посмотреть сообщение
повар1, все-таки предлагаю
предложение проходит
0
5894 / 4005 / 2322
Регистрация: 18.12.2017
Сообщений: 12,550
02.04.2020, 20:17 8
Цитата Сообщение от повар1 Посмотреть сообщение
при отсутствии показателя степени при вызове функции число n возводилось в квадрат.
это понятно. я спрашивал вот что - условие
Цитата Сообщение от IMO Посмотреть сообщение
задайте значение по умолчанию, равное 2
в Вашем коде выполнено ?
0
567 / 429 / 253
Регистрация: 24.02.2017
Сообщений: 1,528
02.04.2020, 20:57 9
Цитата Сообщение от IMO Посмотреть сообщение
Для аргумента, соответствующего степени числа, задайте значение по умолчанию, равное 2, чтобы при отсутствии показателя степени при вызове функции число n возводилось в квадрат.
это значит что для степени р=2 и при этом что бы при вызове функции это отутствовало: чистая перегрузка функции,Yetty,
0
5894 / 4005 / 2322
Регистрация: 18.12.2017
Сообщений: 12,550
02.04.2020, 21:28 10
повар1, можете ответить на вопрос, только без ухода в сторону (да или нет)
Цитата Сообщение от IMO Посмотреть сообщение
параметры по умолчанию
в Вашем коде присутствуют ?
0
1294 / 629 / 295
Регистрация: 17.11.2018
Сообщений: 1,617
02.04.2020, 23:19 11
для разнообразия...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double power( double n, int p = 2 )
{
    if( p > 0 )  return n * power( n, -1 + p );
    if( p < 0 )  return 1 / power( n, -1 * p );
 
    return 1;
}
 
int main()
{
    double   base;
    int      exp;
 
    cout << "Enter a base and an exponent: ";
    cin  >>  base >> exp;
 
    cout << "The power is: " << power( base, exp ) << endl
         << "The power is: " << power( base ) << endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2020, 23:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Функция возведения в степень.
написал библиотеку для вычисления степени чисел.некорректно работает при возвращении переменной из...

Функция возведения в степень
Здравствуйте! задали программу написать! в Матлабе! а я в нем вообще дуб дубом! в Дельфи написал...

Функция возведения в степень
xi Помогите Добавлено через 43 секунды или 2i

Функция возведения в степень
В школе изучаем C++ и я её не понимаю. Требуется написать функцию long long pow(long long a,...


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

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

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