Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Text;
- using System.Threading.Tasks;
- namespace Lab_1
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- const short maxim = 10000; //максимально возможное значение
- const short minim = -10000; //минимально возможное значение
- int a, b, c;
- double dis, x;
- try
- {
- Console.Write("Введите число a: ");
- a = int.Parse(Console.ReadLine());
- Console.Write("Введите число b: ");
- b = int.Parse(Console.ReadLine());
- Console.Write("Введите число c: ");
- c = int.Parse(Console.ReadLine()); //ввод данных пользователем
- if (a < minim || a > maxim || b < minim || b > maxim || c < minim || c > maxim)//проверка принадлежания числа к промежутку
- {
- throw new Exception("Число не соответсвует ограничениям");
- }
- }
- catch (FormatException) //ошибка при неверном вводе
- {
- Console.WriteLine("ОШИБКА: Вы ввели не число!");
- return;
- }
- catch(Exception e) //ошибка при вводе большого числа
- {
- Console.WriteLine("ОШИБКА: " + e.Message);
- return;
- }
- if (a == 0) //проверка вида решаемого уравнения(квадратное или линейное)
- {
- if (b == 0) //проверка деления на ноль
- {
- if (c == 0) //уравнение имеет вид 0*x^2+0*x+0=0
- {
- Console.WriteLine("Уравнение линейное и его корнем является любое действительное число.");
- }
- else //уравнение имеет вид 0*x^2+0*x+c=0
- {
- Console.WriteLine("Деление на ноль невозможно!");
- Console.WriteLine("Уравнение не имеет действительных корней.");
- }
- }
- else //уравнение имеет вид bx+c=0
- {
- x = Math.Round((double)-c / b, 3);
- Console.WriteLine("Уравнение линейное и имеет один действительный корень: " + x);
- }
- }
- else //уравнение имеет вид ax^2+bx+c=0
- {
- dis = Math.Pow(b, 2) - 4 * a * c; //расчет дискриминанта
- if (dis < 0) //сообщаем об отсутсвии решений
- {
- Console.WriteLine("Уравнение квадратное. Дискриминант меньше нуля. Уравнение действительных корней не имеет.");
- }
- else
- {
- if (dis == 0) //сообщаем об одном решении и выводим его
- {
- x = Math.Round((double)-b / (2 * a),3);
- Console.WriteLine("Уравнение квадратное и имеет один действительный корень: " + x);
- }
- else //сообщаем о двух решениях и выводим их
- {
- double x1 = Math.Round(((double)-b - Math.Sqrt(dis)) / (2 * a),3);
- double x2 = Math.Round(((double)-b + Math.Sqrt(dis)) / (2 * a), 3);
- Console.WriteLine("Уравнение квадратное и имеет два корня: {0} и {1}", x1, x2);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement