
C/C++
Задание на С++
Нужна помощь с этим заданием, никак не могу понять его


#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; double ε;
double Exp(double x)
{ if (x < 0) return 1. / Exp(-x); double p = 1,
s = 1, q = 0; while (p / s > ε) { q += 1.; p *= x /
q; s += p; } return s; }
int main() { double x, xbeg, xend, dx, e;
cout << "a b h ε » "; cin >> xbeg >> xend >>
dx >> ε; for (x = xbeg; x <= xend; x += dx)
{ e = Exp(x); printf("%12f »%24.16e%15e\n",
x, e, e/exp(x) - 1.); } system("pause > nul"); }

#include <cstdio>
#include <cmath>
using namespace std; double ε;
double Exp(double x)
{ if (x < 0) return 1. / Exp(-x); double p = 1,
s = 1, q = 0; while (p / s > ε) { q += 1.; p *= x /
q; s += p; } return s; }
int main() { double x, xbeg, xend, dx, e;
cout << "a b h ε » "; cin >> xbeg >> xend >>
dx >> ε; for (x = xbeg; x <= xend; x += dx)
{ e = Exp(x); printf("%12f »%24.16e%15e\n",
x, e, e/exp(x) - 1.); } system("pause > nul"); }

// В решении использован частный случай, когда для любых a + bi, b = 0
#include <iomanip>
#include <iostream>
using namespace std;
double fact(int n) {
return n <= 0? 1 : n * fact(n - 1);
}
pair<double, int> sum(double x, double eps) {
auto count = 1;
auto sum = 1.0;
double prev = 0.0;
while (fabs(sum - prev) > eps) {
prev = sum;
sum += pow(x, count) / fact(count);
++count;
}
return { sum, count };
}
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
auto lim = 9.9e-10;
auto xn = real("Xn: ");
auto xk = real("Xk: ");
auto h = real("h: ");
puts("");
auto end = xk + h / 10.0;
auto w = 1U;
cout.setf(ios::fixed);
cout
<< setw(7) << "x"
<< setw(19) << "f(x)"
<< setw(14) << "n"
<< setw(20) << "exp(x)\n\n";
for (auto eps = 0.1; eps > lim; eps /= 10.0, ++w) {
cout << "precision: " << setprecision(w) << eps;
puts("\n");
for (auto x = xn; x < end; x += h) {
auto [res, count] = sum(x, eps);
cout
<< setw(9) << setprecision(3) << x << ' '
<< setw(22) << setprecision(15) << res << ' '
<< setw(7) << count << ' '
<< setw(22) << setprecision(15) << exp(x) << ' ' << '\n';
}
puts("");
}
system("pause > nul");
}
#include <iomanip>
#include <iostream>
using namespace std;
double fact(int n) {
return n <= 0? 1 : n * fact(n - 1);
}
pair<double, int> sum(double x, double eps) {
auto count = 1;
auto sum = 1.0;
double prev = 0.0;
while (fabs(sum - prev) > eps) {
prev = sum;
sum += pow(x, count) / fact(count);
++count;
}
return { sum, count };
}
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
auto lim = 9.9e-10;
auto xn = real("Xn: ");
auto xk = real("Xk: ");
auto h = real("h: ");
puts("");
auto end = xk + h / 10.0;
auto w = 1U;
cout.setf(ios::fixed);
cout
<< setw(7) << "x"
<< setw(19) << "f(x)"
<< setw(14) << "n"
<< setw(20) << "exp(x)\n\n";
for (auto eps = 0.1; eps > lim; eps /= 10.0, ++w) {
cout << "precision: " << setprecision(w) << eps;
puts("\n");
for (auto x = xn; x < end; x += h) {
auto [res, count] = sum(x, eps);
cout
<< setw(9) << setprecision(3) << x << ' '
<< setw(22) << setprecision(15) << res << ' '
<< setw(7) << count << ' '
<< setw(22) << setprecision(15) << exp(x) << ' ' << '\n';
}
puts("");
}
system("pause > nul");
}
Похожие вопросы
- Нужна помощь с выполнением заданий в C++
- Помогите с заданием по программированию язык C(не С++)
- Помогите понять задание С++
- С++ Петя успевает по математике лучше всех в классе, поэтому учитель задал ему сложное домашнее задание,
- Правильно ли решил задание? Решение задания на тему вектор по С++.
- Задание с массивом
- Программа не выполняет условия задания, исходный массив меняет сам себя, помогите найти ошибку
- Помогите сделать задания в С++
- Помогите решить задание на c++
- Правильно ли решено задание на языке программирования С++ ?