Есть ошибки, но не знаю как исправить и почему они вообще появились, интернет не помог. Самому разобраться уже мозгов не хватает... Прошу помощи!
Даны два выражения z1 и z2. Написать функции для вычисления этих выражений с организацией обнаружения нештатной ситуации (например, ввод некорректных данных, деление на ноль) и еѐ обработки. В случае успеха значения z1 и z2 должны быть приблизительно одинаковыми. Вывести значения выражений в виде таблице от Хнач до Хкон с заданным шагом: z1 z2 x y Хнач, Хкон, шаг ввести с клавиатуры.
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "");
double z1, z2;
double x1, x2, h, i;
int x;
cout << "Введите X начальное:";
cin >> x1;
cout << endl;
cout << "Введите X конечное:";
cin >> x2;
cout << endl;
cout << "Введите шаг:";
cin >> h;
cout << endl;
cout << "Значения Z1";
cout << setw(15) << " X z1" << endl;
for (double i = x1; i <= x2; i = i + h)
z1 = (x + 1) * sqrt(x ^ 2 - 9) + x * (x + 2) - 3 / (x - 1) * sqrt(x ^ 2 - 9) + x ^ 2 - 2 * x - 3;
try
{
int znamenatsel1 = ((x + 1) * sqrt(x ^ 2 - 9) + x * (x + 2) - 3);
int znamenatsel2 = ((x - 1 * sqrt(x ^ 2 - 9) + x ^ 2 - 2 * x - 3);
if (znamenatsel1 & znamenatsel2== 0);
throw "123";
z1 = (x + 1) * sqrt(x ^ 2 - 9) + x * (x + 2) - 3 / (x - 1) * sqrt(x ^ 2 - 9) + x ^ 2 - 2 * x - 3;
cout << setw(10) << i << setw(15);
}
catch (int i)
{
cout << "Error!" << i << "Знаменатель равен 0!" << endl;
try
{
if (x1 < 0 || x2 < 0)
throw"222";
cout << "Значение z1 " << x << endl;
}
catch
cout << "Error!" << i << "Отрицательное подкоренное уравнение!" << endl;
{
for (double i = x1; i <= x2; i = i + h)
{
z2 = sqrt(x + 3 / x - 3);
cout << setw(10) << z2 << setw(15) << i << endl;
}
try
{
double znamenatsel3 = x + 3;
double znamenatsel4 = X - 3;
if (znamenatsel 3 == 0 || znamenatsel4 == 0);
throw "333";
cout << "значение z2" << z2 << endl;
}
catch
cout << "Error!" << z2 << "Деление на 0!" << endl;
system("pause");
return 0;
}
}
}
Ошибка (активно) E2140выражение должно относиться к целочисленному типу или типу перечисления без области видимости
Ошибка (активно) E2140выражение должно относиться к целочисленному типу или типу перечисления без области видимости
Ошибка (активно) E2140выражение должно относиться к целочисленному типу или типу перечисления без области видимости
Ошибка (активно) E0125требуется круглая скобка "("
Ошибка (активно) E0018требуется круглая скобка ")"
Ошибка (активно) E0130требуется фигурная скобка "{"
Другие языки программирования и технологии
Нужна помощь в решении задачи по языку программирования С++!!срочно!
а разве в с++ "^" это возведение в степень?
а если дальше читать то еще больше ошибок
напишите чему равны выражения z1 и z2 по условию задачи.
а если дальше читать то еще больше ошибок
напишите чему равны выражения z1 и z2 по условию задачи.
Ошибок куча. Вообще надо всегда приводить условие задачи. Что за выражения?
Трудно разобраться сразу.
Возможно несовпадение типов переменных double и int.
надо приводить к чему-то одному
Возможно несовпадение типов переменных double и int.
надо приводить к чему-то одному
sqrt(x ^ 2 - 9) чо это за ересь? вы xor делаете или вторую степень? если второе то просто pow(x, 2)
далее вы не пробовали кешировать? у вас куча x ^ 2 и sqrt(x^2 - 9), может заведете переменные x_sqr = pow(x, 2); и x_sqrt = sqrt(x_sqr - 9); ?
catch обязан иметь тип исключения которое ловит ну или хотя бы (...), не может catch выглядеть так
catch cout << endl;
обязан так
catch(...)
{
cout << endl;
}
catch(...) { cout << endl; } // на худой конец
далее
double znamenatsel4 = X - 3; // у вас нет переменной "Х" только "х"
if (znamenatsel 3 == 0 || znamenatsel4 == 0); // имя не может содержать пробелы
я сомневаюсь что после for нет фигурной скобки, иначе вы z1 прокрутите и только после войдете в блок try catch
z1 вообще не используется
cout << "Значение z1 " << x << endl; //может тут всеже должен z1 быть а не x?
далее x - чему он равен???? он вообще у вас не задается ни разу! может он равен i? тогда смените имя переменной в счетчике с i на x
если тут замешан дискрименант - у вас большие проблемы...
далее вы не пробовали кешировать? у вас куча x ^ 2 и sqrt(x^2 - 9), может заведете переменные x_sqr = pow(x, 2); и x_sqrt = sqrt(x_sqr - 9); ?
catch обязан иметь тип исключения которое ловит ну или хотя бы (...), не может catch выглядеть так
catch cout << endl;
обязан так
catch(...)
{
cout << endl;
}
catch(...) { cout << endl; } // на худой конец
далее
double znamenatsel4 = X - 3; // у вас нет переменной "Х" только "х"
if (znamenatsel 3 == 0 || znamenatsel4 == 0); // имя не может содержать пробелы
я сомневаюсь что после for нет фигурной скобки, иначе вы z1 прокрутите и только после войдете в блок try catch
z1 вообще не используется
cout << "Значение z1 " << x << endl; //может тут всеже должен z1 быть а не x?
далее x - чему он равен???? он вообще у вас не задается ни разу! может он равен i? тогда смените имя переменной в счетчике с i на x
если тут замешан дискрименант - у вас большие проблемы...
Похожие вопросы
- Нужна помощь в решении задачи по С++ связанная с матрицами
- Решение задачи на языке программирования С++.
- Нужна помощь с решением задачи на С++ через Visual Studio
- Нужна помощь в решении задач на Циклы и простейшие программы
- Информатика. Помощь в решении задач по массивам
- задача на С++, нужна помощь в решении
- Какие именно базовые знания нужны для того чтобы начать учить языки программирования?
- Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)
- Помощь в решение задачи на PROLOG
- Программирование задач на языке программирования C++.