Advertisement
plarmi

workcpp_11_2

Jun 26th, 2023
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. template <typename T>
  5. void solveLinearEquation(T a, T b) {
  6.     if (a == 0) {
  7.         if (b == 0) {
  8.             std::cout << "Уравнение имеет бесконечное множество решений." << std::endl;
  9.         } else {
  10.             std::cout << "Уравнение не имеет решений." << std::endl;
  11.         }
  12.     } else {
  13.         T x = -b / a;
  14.         std::cout << "Корень линейного уравнения: x = " << x << std::endl;
  15.     }
  16. }
  17.  
  18. template <typename T>
  19. void solveQuadraticEquation(T a, T b, T c) {
  20.     if (a == 0) {
  21.         solveLinearEquation(b, c);
  22.     } else {
  23.         T discriminant = b * b - 4 * a * c;
  24.         if (discriminant > 0) {
  25.             T x1 = (-b + std::sqrt(discriminant)) / (2 * a);
  26.             T x2 = (-b - std::sqrt(discriminant)) / (2 * a);
  27.             std::cout << "Корни квадратного уравнения: x1 = " << x1 << ", x2 = " << x2 << std::endl;
  28.         } else if (discriminant == 0) {
  29.             T x = -b / (2 * a);
  30.             std::cout << "У квадратного уравнения есть один корень: x = " << x << std::endl;
  31.         } else {
  32.             std::cout << "Квадратное уравнение не имеет действительных корней." << std::endl;
  33.         }
  34.     }
  35. }
  36.  
  37. int main() {
  38.     // Пример использования функции для линейного уравнения
  39.     double linearA = 2.5;
  40.     double linearB = -7.5;
  41.     solveLinearEquation(linearA, linearB);
  42.  
  43.     // Пример использования функции для квадратного уравнения
  44.     double quadraticA = 1.0;
  45.     double quadraticB = -3.0;
  46.     double quadraticC = 2.0;
  47.     solveQuadraticEquation(quadraticA, quadraticB, quadraticC);
  48.  
  49.     return 0;
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement