Advertisement
egogoboy

123

Sep 27th, 2023
921
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Linq.Expressions;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace Lab_1
  9. {
  10.     internal class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             const short maxim = 10000; //максимально возможное значение
  15.             const short minim = -10000; //минимально возможное значение
  16.             int a, b, c;
  17.             double dis, x;
  18.             try
  19.             {
  20.                 Console.Write("Введите число a: ");
  21.                 a = int.Parse(Console.ReadLine());
  22.                 Console.Write("Введите число b: ");
  23.                 b = int.Parse(Console.ReadLine());
  24.                 Console.Write("Введите число c: ");
  25.                 c = int.Parse(Console.ReadLine()); //ввод данных пользователем
  26.                 if (a < minim || a > maxim || b < minim || b > maxim || c < minim || c > maxim)//проверка принадлежания числа к промежутку
  27.                 {
  28.                     throw new Exception("Число не соответсвует ограничениям");
  29.                 }
  30.             }
  31.             catch (FormatException) //ошибка при неверном вводе
  32.             {
  33.                 Console.WriteLine("ОШИБКА: Вы ввели не число!");
  34.                 return;
  35.             }
  36.             catch(Exception e) //ошибка при вводе большого числа
  37.             {
  38.                 Console.WriteLine("ОШИБКА: " + e.Message);
  39.                 return;
  40.             }
  41.             if (a == 0) //проверка вида решаемого уравнения(квадратное или линейное)
  42.             {
  43.                 if (b == 0) //проверка деления на ноль
  44.                 {
  45.                     if (c == 0) //уравнение имеет вид 0*x^2+0*x+0=0
  46.                     {
  47.                         Console.WriteLine("Уравнение линейное и его корнем является любое действительное число.");
  48.                     }
  49.                     else //уравнение имеет вид 0*x^2+0*x+c=0
  50.                     {
  51.                         Console.WriteLine("Деление на ноль невозможно!");
  52.                         Console.WriteLine("Уравнение не имеет действительных корней.");
  53.                     }
  54.                 }
  55.                 else //уравнение имеет вид bx+c=0
  56.                 {
  57.                     x = Math.Round((double)-c / b, 3);
  58.                     Console.WriteLine("Уравнение линейное и имеет один действительный корень: " + x);
  59.                 }
  60.             }
  61.             else //уравнение имеет вид ax^2+bx+c=0
  62.             {
  63.                 dis = Math.Pow(b, 2) - 4 * a * c; //расчет дискриминанта
  64.                 if (dis < 0) //сообщаем об отсутсвии решений
  65.                 {
  66.                     Console.WriteLine("Уравнение квадратное. Дискриминант меньше нуля. Уравнение действительных корней не имеет.");
  67.                 }
  68.                 else
  69.                 {
  70.                     if (dis == 0) //сообщаем об одном решении и выводим его
  71.                     {
  72.                         x = Math.Round((double)-b / (2 * a),3);
  73.                         Console.WriteLine("Уравнение квадратное и имеет один действительный корень: " + x);
  74.                     }
  75.                     else //сообщаем о двух решениях и выводим их
  76.                     {
  77.                         double x1 = Math.Round(((double)-b - Math.Sqrt(dis)) / (2 * a),3);
  78.                         double x2 = Math.Round(((double)-b + Math.Sqrt(dis)) / (2 * a), 3);
  79.                         Console.WriteLine("Уравнение квадратное и имеет два корня: {0} и {1}", x1, x2);
  80.                     }
  81.                 }
  82.             }
  83.         }
  84.     }
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement