KostyeFromHelen
5. Оператор if в C# и реализация решения квадратного уравнений (перезалито, см. по номерам)
06.05.2011 08:46:47

Оператор if мы будем рассматривать прямо в ходе реализации решения квадратного уравнения.
А чтобы реализовать данную задачу, нам надо подумать ход действий. Для начала вспомним, что такое квадратное уравнение:

Квадратное уравнение, это уравнение вида a*x^2 + b*x + c = 0, где a,b,c коэффициенты при иксах.(^2 - возведение в квадрат)

Чтоб найти корни квадратного уравнения, надо найти дискриминант. Обозначим его буквой d:

d = b^2 - 4*a*c

Так же как мы помним из школьной программы, если дискриминант меньше 0, то решений нет. Если равен 0, то имеется одно решение, если больше 0, то имеем 2 корня.

Корни находятся по формуле:

x = (-b ± √d)/(2*a)

И так код нашей программы будет выглядеть так:

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());

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);
}
}
}
}

Я думаю тут всё ясно, как-раз таки кроме оператора if:

if(d<0), оператор if дословно переводится как "если". В скобках написано условие. То есть Если d меньше 0 и дальше в { } мы пишем, что надо делать если условие выполняется.

Так же существует оператор else(иначе) и else if, он выполняется, если условие в if не выполняется, то выполняется else. Программно это выглядит так:

if(условие)
{
код
}
else
{
код
}
else if(условие)
{
код
}

Ну вот и всё. Следующие несколько уроков мы будем работать над этой задачей, улучшать её программный код, так как он на данный момент не идеальный.




Теги:


 

afanasy
01.12.2011 12:35:06

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

коэф. b должен быть отрицательный
double x1 = -b / (2 * a);

 
admin
01.12.2011 13:45:55

Верно подмечено!
Благодарю.

 


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