Вычислить, не используя функцию pow
, значения функции z(x,m) = xm sinm(xm)
, для значений аргументов:
x
от -1.1 до 0.3 с шагом 0.2;m
от 1 до 5 с шагом 1.
При решении данной задачи просто найдите способ обойтись без функции pow. Например, воспользуйтесь циклом while. Пример работы программы показан ниже:
Автор данного решения — пользователь нашего сайта blablabla, поблагодарим его за предоставленное правильное решение данной задачи. Результат:
#include <iostream> #include <cmath> using namespace std; double step(float m, int e) { float t = 1; for ( 0; e; e--) t = t *m; return t; } int main() { setlocale(LC_ALL, "rus"); const double x1 = -1.1, x2 = 0.3, dx = 0.2; double y; for (float x = x1; x < x2; x+=dx) { for (int m = 1; m < 5 ; ++m) { y = step(x,m)*step(sin(x*m),m); cout << "Значение функции = " << y << "\t\t\tПри m = " << m << endl; } cout << "\t\tВычислено при x = " << x << endl; } system("pause"); return 0; }
CppStudio.com
Значение функции = 0.980328 При m = 1
Значение функции = 0.790936 При m = 2
Значение функции = -0.00522459 При m = 3
Значение функции = 1.20058 При m = 4
Вычислено при x = -1.1
Значение функции = 0.704994 При m = 1
Значение функции = 0.768187 При m = 2
Значение функции = 0.0569075 При m = 3
Значение функции = 0.0251596 При m = 4
Вычислено при x = -0.9
Значение функции = 0.450952 При m = 1
Значение функции = 0.475845 При m = 2
Значение функции = 0.220619 При m = 3
Значение функции = 0.00302349 При m = 4
Вычислено при x = -0.7
Значение функции = 0.239713 При m = 1
Значение функции = 0.177018 При m = 2
Значение функции = 0.124063 При m = 3
Значение функции = 0.0427272 При m = 4
Вычислено при x = -0.5
Значение функции = 0.0886561 При m = 1
Значение функции = 0.0286939 При m = 2
Значение функции = 0.0129776 При m = 3
Значение функции = 0.00611255 При m = 4
Вычислено при x = -0.3
Значение функции = 0.00998336 При m = 1
Значение функции = 0.000394696 При m = 2
Значение функции = 2.58085e-05 При m = 3
Значение функции = 2.29968e-06 При m = 4
Вычислено при x = -0.1
Значение функции = 0.00998333 При m = 1
Значение функции = 0.000394694 При m = 2
Значение функции = 2.58083e-05 При m = 3
Значение функции = 2.29966e-06 При m = 4
Вычислено при x = 0.0999999
Значение функции = 0.088656 При m = 1
Значение функции = 0.0286939 При m = 2
Значение функции = 0.0129775 При m = 3
Значение функции = 0.00611253 При m = 4
Вычислено при x = 0.3
Значение функции = 0.790936 При m = 2
Значение функции = -0.00522459 При m = 3
Значение функции = 1.20058 При m = 4
Вычислено при x = -1.1
Значение функции = 0.704994 При m = 1
Значение функции = 0.768187 При m = 2
Значение функции = 0.0569075 При m = 3
Значение функции = 0.0251596 При m = 4
Вычислено при x = -0.9
Значение функции = 0.450952 При m = 1
Значение функции = 0.475845 При m = 2
Значение функции = 0.220619 При m = 3
Значение функции = 0.00302349 При m = 4
Вычислено при x = -0.7
Значение функции = 0.239713 При m = 1
Значение функции = 0.177018 При m = 2
Значение функции = 0.124063 При m = 3
Значение функции = 0.0427272 При m = 4
Вычислено при x = -0.5
Значение функции = 0.0886561 При m = 1
Значение функции = 0.0286939 При m = 2
Значение функции = 0.0129776 При m = 3
Значение функции = 0.00611255 При m = 4
Вычислено при x = -0.3
Значение функции = 0.00998336 При m = 1
Значение функции = 0.000394696 При m = 2
Значение функции = 2.58085e-05 При m = 3
Значение функции = 2.29968e-06 При m = 4
Вычислено при x = -0.1
Значение функции = 0.00998333 При m = 1
Значение функции = 0.000394694 При m = 2
Значение функции = 2.58083e-05 При m = 3
Значение функции = 2.29966e-06 При m = 4
Вычислено при x = 0.0999999
Значение функции = 0.088656 При m = 1
Значение функции = 0.0286939 При m = 2
Значение функции = 0.0129775 При m = 3
Значение функции = 0.00611253 При m = 4
Вычислено при x = 0.3
Комментарии
Сергей Цысь
Юрій Білоус
Не могу понять почему у меня выходящие значения не совпадают с примером
dielife
odto11
colt
Константин Воливач
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main(){float x,m,y,a,b;
setlocale(LC_ALL,»RUS»);
x=-1.1;
for (int i=0;i<7;i++){//цикл для шагов x
a=1;
for ( m=1;m<=4;m++){//цикл для шагов m
a*=x;//возвоим x в степень
b=1;
for(int j=0;j<m;j++){//цикл для возведени синуса в степень т.к m меняется
b*=sin(x*m);}
cout<<«Значение функции =»<<(a*b)<<» При m=»<<m<<endl;//вывод
}
cout<<«Вычислено при x=»<<x<<endl;//вывод
x+=0.2;//увеличиваем шаг x
}
getch();
}