C/C++
Задача по языку программированию C++
Написать программу решения уравнения ax^3 + bx = 0 для произвольных a и b .
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
const auto eps = 1e-12;
auto a = real("a: ");
auto b = real("b: ");
if (a < eps && b < eps) puts("Any values...");
else {
puts("x1 = 0");
a = -b / a;
if (a > eps) {
auto x = sqrt(a);
cout << "x2 = " << x << "\nx3 = " << -x << '\n';
}
}
system("pause > nul");
}
#include <cmath>
#include <iomanip>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
const auto eps = 1e-12;
auto a = real("a: ");
auto b = real("b: ");
if (a < eps && b < eps) puts("Any values...");
else {
puts("x1 = 0");
a = -b / a;
if (a > eps) {
auto x = sqrt(a);
cout << "x2 = " << x << "\nx3 = " << -x << '\n';
}
}
system("pause > nul");
}
Уравнение ax³ + bx = 0 решается следующим образом.
1) Случай а=0. Если b=0, то x є (-∞;+∞), иначе х=0.
2) Случай а≠0. Тут один вещественный корень всегда нулевой, а другие можно найти, решив уравнение x²=-b/a. Если знак его правой части отрицательный, тогда решением будет мнимая пара ±i·√(b/a), а если положительный, то вещественная пара ±√(-b/a). Теперь всё это правильное решение записываем in code:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c;
while (1)
{
cout << "a b » ";
cin >> a >> b;
if (a == 0)
if (b == 0) cout << "x є (-∞; +∞)" << endl;
else cout << "x = 0" << endl;
else
{
cout << "x = 0 и х = ±";
c = - b / a;
if (c > 0) cout << sqrt(c);
else cout << sqrt(-c) << "·i";
cout << endl;
}
}
}
1) Случай а=0. Если b=0, то x є (-∞;+∞), иначе х=0.
2) Случай а≠0. Тут один вещественный корень всегда нулевой, а другие можно найти, решив уравнение x²=-b/a. Если знак его правой части отрицательный, тогда решением будет мнимая пара ±i·√(b/a), а если положительный, то вещественная пара ±√(-b/a). Теперь всё это правильное решение записываем in code:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c;
while (1)
{
cout << "a b » ";
cin >> a >> b;
if (a == 0)
if (b == 0) cout << "x є (-∞; +∞)" << endl;
else cout << "x = 0" << endl;
else
{
cout << "x = 0 и х = ±";
c = - b / a;
if (c > 0) cout << sqrt(c);
else cout << sqrt(-c) << "·i";
cout << endl;
}
}
}
Похожие вопросы
- Задача на языке программирования C++
- Задача на языке программирования C#
- Задача на языке программирования C++
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- Язык программирования c++
- Задача по работе со строками на языке программировании c++
- Нормальный ли язык программирования C для новичка ,что бы в дальнейшем перейти на C# ,C++,И в чем различие между ними?
- Стоит ли выбирать язык программирования c++ или лучше учить java. Требуется ли для этого языка хорошо знать математику?
- Помогите с языком программирования C++
- Написать программу на языке программирования C++