Тег: реализация квадратного уравнения на

KostyeFromHelen
6. Решение квадратного уравнения на C#, убираем ошибки.
05.10.2010 16:17:39

Честно говоря, когда я нашёл время поискать ошибки, которые могут возникать в программе, мне так хотелось спать, что я нашёл только 2 или 3 из них. Смотрим улучшенный код программы по решению квадратного уравнения:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите первый коэффициент");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй коэффициент");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите третий коэффициент");
int c = Convert.ToInt32(Console.ReadLine());
if (a == 0) Ошибка 1
{
Console.WriteLine("Уравнение не является квадратным:{0}*x+{1}=0", b,c );
if (b == 0) Ошибка 2
{
Console.WriteLine("Извините товарищ, но это уже не уравнение!");
}
else
{
double x = 0;
x = -c / b;
Console.WriteLine("x={0}", x);
}
}
else
{
double d;
d = b * b - 4 * a * c;

if (d < 0)
{
Console.WriteLine("Дискриминант отрицательный, корней нет");

}
if (d == 0)
{
double x1 = b / (2 * a);
Console.WriteLine("Дискриминант = 0, x = {0}", x1);

}
if (d > 0)
{
double x1 = (-b + Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
Console.WriteLine("Дискриминант = {0}, x1 = {1}, x2 ={2}", d, x1, x2);
}
}
}
}
}

 

В первом случае если коэффициент а равен 0, то  в данной строчке  double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a); мы делим на 0, что недопустимо. По-этому мы  и вставляем код проверки, после которого либо выполняем код дальше, либо решаем уравнение другим, простым методом.

Ошибка 2 возникает если коэффициент а равен 0 и b равен 0. Тогда получается даже не уравнение, что мы и сообщаем пользователю.

Так же есть ошибка, если мы вместо цифр вобьём буквы в переменные a, b и c. Но такую ошибку надо отлавливать с помощью инструкции try-catch, её рассмотрим в следующем уроке.



Теги: C# | реализация квадратного уравнения на | решение квадратного уравнения | .

Комментариев 5 | Просмотров: 16286 | Подробнее...


 

Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.