Найти значение выражения
И вот мой код:
//найти значение выражения
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
float X;
cout << "x = ";
cin >> X;
if (X > 0 && X < 5) cout << "Корень из отрицательного числа\n";
else if (X <=-2 && X<0) cout << "Логарифм отрицательного числа\n";
else if (X == -3) cout << "Деление на ноль\n";
else
{
float Y = (sqrt(X - 5 / X * X - 9)) + log((X * X + 2 * X + 1));
cout << "F = " << Y << endl;
}
system("pause");
return 0;
}
У меня проблема в проверках промежутков,кроме 4 ни одна из цифр ниже из таблицы не проходит. Можете помочь пожалуйста с исправлением промежутков?
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
Порядок оценивания:
if (X * X == 9)
if ((X - 5) / (X * X - 9)) < 0 (обратите внимание на скобки в знаменателе)
if (X == -1) (то же, что и X*X + 2 * X + 1 <= 0)
Автор решения: Юрий
→ Ссылка
В общем спасибо "за помощь" без обид только товарищи программисты. Я написал верную программу:
//найти значение выражения
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
float X;
cout << "x = ";
cin >> X;
if (X * X == 9) cout << "Деление на ноль\n";
else if ((X - 5) / (X * X - 9) < 0) cout << "Корень из отрицательного числа\n";
else if ((X * X + 2 * X + 1) <= 0) cout << "Логарифм неположительного числа\n";
else
{
float Y = (sqrt((X - 5) / (X * X - 9))) + log((X * X + 2 * X + 1));
cout << "F = " << Y << endl;
}
system("pause");
return 0;
}
