Advertisement
Solingen

eqstruct

Apr 17th, 2024
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. struct Equation {
  5.     double a;
  6.     double b;
  7.     double c;
  8.  
  9.     Equation(double aa, double bb, double cc) {
  10.         this->a = aa;
  11.         this->b = bb;
  12.         this->c = cc;
  13.     }
  14.  
  15.     Equation(double aa, double bb){
  16.         this->a = aa;
  17.         this->b = bb;
  18.         this->c = 0;
  19.     }
  20.  
  21.     void solveLinear() {
  22.         if (b != 0) {
  23.             printf("Уравнение (линейное) имеет один корень: %f\n", -a / b);
  24.         } else if (a == 0) {
  25.             printf("Уравнение (линейное) имеет множество корней\n");
  26.         } else {
  27.             printf("Нет корней\n");
  28.         }
  29.     }
  30.  
  31.     void solveQuadratic() {
  32.         double discriminant = b * b - 4 * a * c;
  33.         if (discriminant < 0) {
  34.             printf("Нет корней\n");
  35.         } else if (discriminant == 0) {
  36.             printf("Уравнение (квадратное) имеет один корень: %f\n", -b / (2 * a));
  37.         } else {
  38.             printf("Уравнение (квадратное) имеет два корня: x1 = %f, x2 = %f\n", (-b + sqrt(discriminant)) / (2 * a), (-b - sqrt(discriminant)) / (2 * a));
  39.         }
  40.     }
  41. };
  42.  
  43. int main() {
  44.     double a, b, c;
  45.     printf("Введите коэффициенты a, b, c для уравнения в формате ax^2 + bx + c = 0: ");
  46.  
  47.     if (scanf("%lf %lf", &a, &b) == 2) {
  48.         if (getchar() == '\n') {
  49.             Equation eqLinear(a, b);
  50.             eqLinear.solveLinear();
  51.         } else {
  52.             if (scanf("%lf", &c) == 1) {
  53.                 Equation eqQuadratic(a, b, c);
  54.                 eqQuadratic.solveQuadratic();
  55.             } else {
  56.                 printf("Неверный ввод.\n");
  57.             }
  58.         }
  59.     } else {
  60.         printf("Неверный ввод.\n");
  61.     }
  62.  
  63.     return 0;
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement