
Задача 1 - Описать функцию Power1 (A, B) действительного типа, которая находит величину AB по
формуле AB = exp(B·ln(A)) (параметры A и B – действительны). В случае нулевого или отрицательного параметра A функция возвращает 0. С помощью этой функции можно найти степени AP, BP, CP, если даны числа P, A, B, C. Задача 2 -Описать функцию Power2 (A, N) действительного типа, которая находит величину AN (A – действительное, N – целый параметр) по следующим формулам:A0=1;AN=A·A·...·A(N множителей), если N>0;AN = 1/(A·A·...·A) (|N|множителей), если N<0.С помощью этой функции найти AK, AL, AM, если даны числа A, K, L, M.---------------------------------------------------------------------------------------------------!Задача 3 - Используя функции Power1 и Power2 из задач 1 и 2, описать функцию Power3 (A, B) действительного типа с действительными параметрами, что находит AB следующим образом: если B имеет нулевую дробную часть, то вызывается Power2 (A, N), где N - переменная целого типа, равная числу B; иначе вызывается Power1(A, B). С помощью Power3 найти AP, BP, CP, если даны числа P, A, B, C. (Ответ нужен на 3-тий вопрос C++).

Ответы на вопрос

// Задача 1
#include <iostream>
#include <cmath>
using namespace std;
double Power1(double A, double B)
{
if (A <= 0)
return 0;
else
return exp(B * log(A));
}
// Задача 2
double Power2(double A, int N)
{
double result = 1;
if (N > 0)
{
for (int i = 0; i < N; i++)
result *= A;
}
else if (N < 0)
{
for (int i = 0; i < abs(N); i++)
result *= A;
result = 1 / result;
}
return result;
}
// Задача 3
double Power3(double A, double B)
{
if (B - int(B) == 0)
return Power2(A, int(B));
else
return Power1(A, B);
}
// С помощью Power3 найти AP, BP, CP, если даны числа P, A, B, C.
int main()
{
double A, B, C;
int P;
cout << "Введите P, A, B, C: ";
cin >> P >> A >> B >> C;
cout << "AP = " << Power3(A, P) << endl;
cout << "BP = " << Power3(B, P) << endl;
cout << "CP = " << Power3(C, P) << endl;
return 0;
}



Задача 1:
cpp#include <cmath>
double Power1(double A, double B) {
if (A <= 0) {
return 0;
}
return std::exp(B * std::log(A));
}
Задача 2:
cppdouble Power2(double A, int N) {
if (N > 0) {
double result = 1.0;
for (int i = 0; i < N; i++) {
result *= A;
}
return result;
} else if (N < 0) {
double result = 1.0;
for (int i = 0; i > N; i--) {
result /= A;
}
return result;
} else {
return 1;
}
}
Задача 3:
cppdouble Power3(double A, double B) {
if (std::fmod(B, 1.0) == 0.0) {
int N = static_cast<int>(B);
return Power2(A, N);
} else {
return Power1(A, B);
}
}
Пример использования функции Power3 для нахождения AP, BP, CP, если даны числа P, A, B, C:
cpp#include <iostream>
int main() {
double P = 2.5;
double A = 3.0;
double B = 1.7;
double C = 4.2;
double AP = Power3(A, P);
double BP = Power3(B, P);
double CP = Power3(C, P);
std::cout << "AP = " << AP << std::endl;
std::cout << "BP = " << BP << std::endl;
std::cout << "CP = " << CP << std::endl;
return 0;
}
Результат:
makefileAP = 15.5885 BP = 2.32001 CP = 50.586
Обратите внимание, что код представлен на языке программирования C++.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili