Как найти значение выражения с шагом h?
Вычислить значения функции в диапазоне [?, ?] c шагом ℎ. Если функция не определена, вывести сообщение типа «Деление на ноль», «Логарифм из не положительного числа», «Корень из отрицательного числа»:sqrt(?*x − 1) /ln(2? − 8) Вот мой код:
//вычислить значения функции в диапащоне [a,b] c шагом h
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
float a, b, h;
//ввод данных
cout << "a=";
cin >> a;
cout << "b=";
cin >> b;
cout << "h=";
cin >> h;
//проверка корректности или замена:
if (a > b) swap(a, b);
for (float x = a; x < b + h; x += h) //цикл [a,b]
{
if (x < 1) cout << "Корень из отрицательного числа\n";
else if (x == 2) cout << "Деление на ноль\n";
else if (x == 4) cout << "Логарифм не положительного числа\n";
else
{
float y = sqrt(x*x - 1) / log(2*x - 8);
cout << "x = " << x << " y = " << y << endl; //вывод
}
}
return 0;
}
Товарищи знающие,что тут не так?
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
for (float x = a; x < b + h; x += h)
у вас цикл от a до b, а не до b + h, зачем вы его воткнули то?
if (x < 1) cout << "Корень из отрицательного числа\n";
у вас вообще-то в уравнении sqrt(x^2 - 1) и квадрат отрицательного числа - это положительное число, а проверять надо x^2 - 1 < 0
else if (x == 4) cout << "Логарифм не положительного числа\n";
а почему равенство строгое? При x < 4 логарифм положительный что ли?
А еще угадайте, что происходит при x = 4,5 и почему
