C/C++

Есть идеи с задачкой? С++

Есть задачка (на массив)
Необходимо с циклом for найти все значения для Х, я в математике не силён, по этому пошёл сюда, к дядям на форуме не хочу, страшно там.
Это плюсы, но пишите как удобно, мне главное понять суть решения и конечный результат
Не ругайтесь сильно, если это возможно, на форуме уже послали с паскаля переписывать =(
Обычная табуляция кусочно заданной функции. Ну ещё картинку можно раскрасить на всякий случай:
#include <iomanip>
#include <iostream>
using namespace std;
double z(double x, double t)
{ return (x > 0.5) ? t * pow(sin(x), 2) + cos(x) :
(x < 0.5) ? (pow(log(x), 3) + x * x) / sqrt(x + t) :
sqrt(x + t) + 1. / x; }
void sym(int n, string x)
{ for (int i = 0; i < n; i++) cout << x; }
int main()
{ double i, x, dx = 0.2, t = 2.2;
string biruze = "\033[36m",
magenta = "\033[35m", yellow = "\033[33m",
red = "\033[31m", space = " "; cout << yellow;
sym(25, "="); cout << endl << red << " x:" <<
fixed; sym(4, space); cout << "z(x,t):" << endl;
cout << yellow; sym(25, "="); cout << endl;
for (i = 0; i <= 9; i++) { x = 0.2 + i * dx;
cout << biruze << setprecision(1) << setw(3)
<< x << magenta << setprecision(16) <<
setw(22) << z(x, t) << endl; } cout << yellow;
sym(25, "="); cout << endl; getchar(); }
Андрей Чундаков
Андрей Чундаков
66 572
Лучший ответ
Идея простая: заглянуть в учебник и выяснить, что в цикле for можно использовать и вещественный счётчик: for (float x = 0.2; x <= 2; x += 0.2)
#include <iostream>
using namespace std;

double foo(double& x, double& t)
{
double result;
if (x > 0.5) result = cos(x) + t * pow(sin(x), 2);
if (x == 0.5) result = sqrt(x + t) + 1 / x; else
result = (pow(log(x), 3) + x * x) / sqrt(x + t);
return result;
}

int main()
{
double t = 2.2, x_begin = 0.2, x_end = 2.0, dx = 0.2;
for (double x = x_begin; x <= x_end; x += dx)
cout << x << "\t\t" << foo(x,t) << endl;
}
Георгий Дедюра
Георгий Дедюра
51 411
Можно условие поконкретнее?
Сергей Язев
Сергей Язев
1 655