Предмет: Информатика, автор: OderaaOrwa

На языке С++! Пожалуйста!
Составить программу для решения уравнений трёх видов:

7.1 ax^4 + bx^2 + c = 0;

7.2 ax^4 + bx^3 + cx^2 + bx + a = 0

7.3 x^3 + px + q = 0

то есть составить общий код для этих трех уравнений.

Ответы

Автор ответа: wherethefux
1

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

double a = NAN;

double b = NAN;

double c = NAN;

double p = NAN;

double q = NAN;

double d;

double x1;

double x2;

int n = 0;

cout << "Введите номер уравнения: ";

cin >> n;

switch (n)

{

case 1:

 cout << "Введите a, b, c: ";

 cin >> a >> b >> c;

 d = b * b - 4 * a * c;

 if (d > 0)

 {

  x1 = (-b + sqrt(d)) / (2 * a);

  x2 = (-b - sqrt(d)) / (2 * a);

  cout << "x1 = " << x1 << ", x2 = " << x2 << endl;

 }

 else if (d == 0)

 {

  x1 = -b / (2 * a);

  cout << "x1 = x2 = " << x1 << endl;

 }

 else

 {

  cout << "Корней нет" << endl;

 }

 break;

case 2:

 cout << "Введите a, b, c: ";

 cin >> a >> b >> c;

 d = b * b - 4 * a * c;

 if (d > 0)

 {

  x1 = (-b + sqrt(d)) / (2 * a);

  x2 = (-b - sqrt(d)) / (2 * a);

  cout << "x1 = " << x1 << ", x2 = " << x2 << endl;

 }

 else if (d == 0)

 {

  x1 = -b / (2 * a);

  cout << "x1 = x2 = " << x1 << endl;

 }

 else

 {

  cout << "Корней нет" << endl;

 }

 break;

case 3:

 cout << "Введите p, q: ";

 cin >> p >> q;

 d = p * p - 4 * q;

 if (d > 0)

 {

  x1 = (-p + sqrt(d)) / 2;

  x2 = (-p - sqrt(d)) / 2;

  cout << "x1 = " << x1 << ", x2 = " << x2

   << endl;

 }

 else if (d == 0)

 {

  x1 = -p / 2;

  cout << "x1 = x2 = " << x1 << endl;

 }

 else

 {

  cout << "Корней нет" << endl;

 }

 break;

default:

 cout << "Нет такого уравнения" << endl;

}

return 0;

}


OderaaOrwa: wherethefux, меня немного беспокоит, что 1 и 2 кейс идентичны.
это вызывает сомнение. а так в коде нет ошибок, спасибо.
OderaaOrwa: wherethefux, если я введу вместо a,b,c 0 1 0, то получаю x1 = -nan(ind), x2 = -inf. что значит не все случаи рассмотрены. что теперь следует сделать?
Похожие вопросы