Разработать программу на языке С++. Cоздать 3 одномерных статических массива Х1, Х2, Х3 размерностями N1, N2, N3 (где N константа, определяемая в программе программистом). Заполнить каждый массив Х1, Х2, Х3 случайными числами в...
Разработать программу на языке С++.
Cоздать 3 одномерных статических массива Х1, Х2, Х3 размерностями N1, N2, N3 (где N константа, определяемая в программе программистом). Заполнить каждый массив Х1, Х2, Х3 случайными числами в диапазоне [D1_min, D1_max], [D2_min, D2_max], [D3_min, D3_max] соответственно.
Создать еще 3 одномерных массива Y1, Y2, Y3 размерностями N1, N2, N3, каждый элемент массивов Y вычисляется в соответствии с зависимостью (см. номер варианта). Например Y1[i]=f(X1[i], k), k- количество элементов многочлена из варианта.
Вывести на экран значения всех массивов.
Заполнение массивов Х1, Х2, Х3 случайными числами, вывод элементов массива на экран, вычисление значения функции f(X1[i], k), а также заполнение массивов Y1, Y2, Y3 реализовать в собственных функциях.
Ответ(ы) на вопрос:
Гость
#include
#include
#include
using namespace std;
float LogFunction(int x,int k,int a);
long double fact(int N);
void main()
{
setlocale(0, "");
srand(time(NULL));
int a,n1, n2, n3, d1, d2, d3, d1max, d2max, d3max, k;
cout << "Введите размерность массива n1 n2 n3 и а" << endl;
cin >> n1 >> n2 >> n3>>a;
int* x1 = new int[n1];
int* x2 = new int[n2];
int* x3 = new int[n3];
float* y1 = new float[n1];
float* y2 = new float[n2];
float* y3 = new float[n3];
cout << "Введите диапазоны чисел в массиве в такой последовательности: d1min, d1max, d2min, d2max, d3min, d3max" << endl; cin >> d1 >> d1max >> d2 >> d2max>> d3 >> d3max;
for (int i = 0;i < n1;++i)
{
x1[i] = d1 + rand() % (d1max - (d1-1)); //заполняем массив рандомными числами
}
for (int i = 0;i < n2;++i)
{
x2[i] = d2 + rand() % (d2max - (d2-1));
}
for (int i = 0;i < n3;++i)
{
x3[i] = d3 + rand() % (d3max - (d3-1));
}
cout << "Введите k " << endl;
cin >> k;
for (int i = 0;i < n1;++i)
y1[i] = LogFunction(x1[i], k , a); // через отдельную функцию считаем значения массива y1
for (int i = 0;i < n2;++i)
y2[i] = LogFunction(x2[i], k , a);
for (int i = 0;i < n3;++i)
y3[i] = LogFunction(x3[i], k , a);
for (int i = 0;i < n1;++i)
cout << " " << x1[i];
cout << endl;
for (int i = 0;i < n2;++i)
cout << " " << x2[i];
cout << endl;
for (int i = 0;i < n3;++i)
cout << " " << x3[i];
cout << endl;
for (int i = 0;i < n1;++i)
cout << " " << y1[i];
cout << endl;
for (int i = 0;i < n2;++i)
cout << " " << y2[i];
cout << endl;
for (int i = 0;i < n3;++i)
cout << " " << y3[i];
cout << endl;
system("pause");
}
float LogFunction(int x, int k,int a)
{
float result=0;
for (int i = 1;i <= k;++i)
{
result += ((pow(log(a),i)) / fact(i))*(pow(x, i + 1) + i); //Формула которая на картинке
}
return result;
}
long double fact(int N) //считаем факториал , который в знаменателе на картинке.
{
if (N < 0) return 0;
if (N == 0) return 1;
else return N * fact(N - 1); //Рекурсия
}
P.s не забудь отметить ответ лучшим, если он таков
Не нашли ответ?
Похожие вопросы