Cách giải phương trình bậc 3 bằng C#

Chia sẻ: vietdung2176

Tài liệu tham khảo - Cách giải phương trình bậc 3 bằng C#

Nội dung Text: Cách giải phương trình bậc 3 bằng C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GiaiPhuongTrinhBacBa
{
class Program
{
static double x1, a, b, c, d;
static void Nhap()
{
char ok;
do
{
Console.Clear();
Console.WriteLine("Nhap vao gia tri cua cac he so cua phuong trinh");
Console.Write("He so a = ");
a = double.Parse(Console.ReadLine());
Console.Write("He so b = ");
b = double.Parse(Console.ReadLine());
Console.Write("He so c = ");
c = double.Parse(Console.ReadLine());
Console.Write("He so d = ");
d = double.Parse(Console.ReadLine());
Console.Write("Ban muon nhap lai he so hay khong? C hoac K:");
ok = char.Parse(Console.ReadLine());
Console.WriteLine("\n");
} while ((ok == 'C') || (ok == 'c'));
}
static double F(double x)
{
double f = a * x * x * x + b * x * x + c * x + d;
return f;
}
static void HeSo(out double g, out double h, out double e)
{
g = a; h = b + x1 * a; e = -d / x1;
}
static void GiaiBacHai1(double g, double h, double e)
{
double delta = h * h - 4 * g * e;
if (delta == 0)
{
double q = -h / (2 * g);
Console.WriteLine("Phuong trinh co nghiem:\n\t x1 = {0}\n\t x2 = x3 {1}", x1, q);
return;
}
else
if (delta > 0)
{
double q = (-h - Math.Sqrt(delta)) / (2 * g);
double r = (-h + Math.Sqrt(delta)) / (2 * g);
Console.WriteLine("Phuong trinh co ba nghiem thuc phan biet:");
Console.WriteLine("\t x1 = {0}\n\t x2 = {1}\n\t x3 = {2}", x1, q, r);
}
else
{
double m = -delta;
double n = -h / (2 * g);
double p = Math.Sqrt(m) / (2 * g);
Console.WriteLine("Phuong trinh co ba nghiem:");
Console.WriteLine("\t x1 = {0}\n", x1);
Console.WriteLine("\t x2 = {0} + {1} i\n", n, p);
Console.WriteLine("\t x3 = {0} - {1} i", n, p);
}
}
static void GiaiBacHai2(double g, double h, double e)
{
double delta = h * h - 4 * g * e;
if (delta == 0)
{
double q = -h / (2 * g);
Console.WriteLine("Phuong trinh co nghiem:\n\t x1 = x2 = {0}", q);
return;
}
else
if (delta > 0)
{
double q = (-h - Math.Sqrt(delta)) / (2 * g);
double r = (-h + Math.Sqrt(delta)) / (2 * g);
Console.WriteLine("Phuong trinh co hai nghiem thuc phan biet:");
Console.WriteLine("\t x1 = {0}\n\t x2 = {1}", q, r);
}
else
{
double m = -delta;
double n = -h / (2 * g);
double p = Math.Sqrt(m) / (2 * g);
Console.WriteLine("Phuong trinh co hai nghiem phuc lien hop:");
Console.WriteLine("\t x1 = {0} + {1} i\n", n, p);
Console.WriteLine("\t x2 = {0} - {1} i", n, p);
}
}
static void GiaiBacNhat()
{
if (c != 0)
{
Console.WriteLine("Nghiem cua phuong trinh la: x= {0}", -d / c);
}
else
if (d == 0)
Console.WriteLine("Phuong trinh co vo so nghiem.");
else
Console.WriteLine("Phuong trinh vo nghiem.");
}
static void KhoangNghiem(out double k, out double l)
{
double t = 0, v = 0;
double i = -1000, j;
for (; i 0)
k = c;
}
}
static void Main()
{
Nhap();
if ((a == 0) && (b!=0))
{ GiaiBacHai2(b, c, d); Console.ReadLine(); return; }
if ((a == 0) && (b == 0))
{ GiaiBacNhat(); Console.ReadLine(); return; }
double k = 0, l = 0, g, h, e;
KhoangNghiem(out k, out l);
TinhNghiem(k, l);
HeSo(out g, out h, out e);
GiaiBacHai1(g, h, e);
Console.ReadKey();
}
}
}
Đề thi vào lớp 10 môn Toán |  Đáp án đề thi tốt nghiệp |  Đề thi Đại học |  Đề thi thử đại học môn Hóa |  Mẫu đơn xin việc |  Bài tiểu luận mẫu |  Ôn thi cao học 2014 |  Nghiên cứu khoa học |  Lập kế hoạch kinh doanh |  Bảng cân đối kế toán |  Đề thi chứng chỉ Tin học |  Tư tưởng Hồ Chí Minh |  Đề thi chứng chỉ Tiếng anh
Theo dõi chúng tôi
Đồng bộ tài khoản