Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!


MU Moi ra - VINA MU

MU Moi ra - MU Hai Phong

Hình ảnh

[C#] Viết chương trình giải phương trình bậc 2

- - - - -

  • Please log in to reply
No replies to this topic

#1
LacVietST

LacVietST

    Thành viên mới

  • Newbies
  • 6 Bài Viết:
Hôm nay rảnh ngồi viết một bài hướng dẫn cơ bản cho các bạn mới làm quen với C#.
Phương trình bậc hai là phương trình có dạng: ax² + bx + c = 0. Hihihi ai mà ko biết :jeje:

Vậy giao diện chương trình chúng ta cơ bản cần có:
  • 3 Textbox để nhận giá trị của a, b, c.
  • 1 Button để chạy chương trình giải pt.
  • 4 Label để hiển thị kết quả tính toán như: X1, X2, Delta và thông báo.
Giờ chúng ta bắt đầu nhé:
Mở Visual Studio vào File -> New Project -> C# -> Windows Forms Application -> Ok

Design:
Tạo 3 Textbox đặt tên (thuộc tính name) lần lược là: txt_a, txt_b, txt_c.
Tạo một Button đặt tên là btn_giai giải phương trình
Tạo một Label đặt tên là lb_loigiai để thông báo cho người dùng biết phương trình có bao nhiêu nghiệm.
Tạo 3 Label đặt tên lần lược là: lb_x1, lb_x2, lb_delta để nhận các giá trị của X1, X2Delta.

Vậy là xong phần design. Cơ bản giao diện chương trình chúng ta như sau:

Posted Image


Giờ là phần code.

Code:
Click double vào Button btn_giai.
Chèn đoạn code sau vào giữa { và }:
float x1 = 0, x2 = 0, delta = 0, a, b, c;
				a = Convert.ToSingle(txt_a.Text);
				b = Convert.ToSingle(txt_b.Text);
				c = Convert.ToSingle(txt_c.Text);
			if (txt_a.Text == "" | txt_b.Text == "" | txt_c.Text == "")
			{
				lb_delta.Visible = false;
				lb_x1.Visible = false;
				lb_x2.Visible = false;
				lb_loigiai.Visible = true;
				lb_loigiai.Text = "Bạn chưa nhập đủ a, b, c";
			}
			else
			{

				if (a == 0)
				{
					if (b == 0)
					{
						if (c == 0)
						{
							lb_loigiai.Text = "Phương trình có vô số nghiệm!";
							lb_delta.Visible = false;
							lb_x1.Visible = false;
							lb_x2.Visible = false;
						}
						else
						{
							lb_loigiai.Text = "Phương trình vô nghiệm!";
							lb_delta.Visible = false;
							lb_x1.Visible = false;
							lb_x2.Visible = false;
						}
					}
					else
					{
						lb_loigiai.Text = "Phương trình có 1 nghiệm kép!";
						x1 = -c / b;
						lb_delta.Visible = false;
						lb_x1.Visible = true;
						lb_x1.Text = "X = " + x1.ToString();
						lb_x2.Visible = false;
					}
				}
				else
				{
					delta = (b * b) - 4 * a * c;
					double dt = Convert.ToDouble(delta);

					if (dt < 0)
					{
						lb_delta.Visible = true;
						lb_delta.Text = "Δ = " + delta.ToString() + " < 0";
						lb_loigiai.Visible = true;
						lb_loigiai.Text = "Phương trình vô nghiệm!";
						lb_x1.Visible = false;
						lb_x2.Visible = false;
					}
					else
					{
						if (dt > 0)
						{
							lb_loigiai.Visible = true;
							lb_loigiai.Text = "PT có 2 nghiệm phân biệt!";
							x1 = Convert.ToSingle((-Math.Sqrt(dt) - b) / (2 * a));
							x2 = Convert.ToSingle((Math.Sqrt(dt) - b) / (2 * a));
							lb_delta.Visible = true;
							lb_x1.Visible = true;
							lb_x2.Visible = true;
							lb_delta.Text = "Δ = " + delta.ToString() + " > 0";
							lb_x1.Text = "X1 = " + x1.ToString();
							lb_x2.Text = "X2 = " + x2.ToString();

						}
						else
						{
							lb_delta.Visible = true;
							lb_loigiai.Visible = true;
							lb_delta.Text = "Δ = 0";
							lb_loigiai.Text = "Phương trình có nghiệm kép!";
							x1 = -b / a;
							lb_x1.Visible = true;
							lb_x1.Text = "X1 = X2 = " + x1;
							lb_x2.Visible = false;
						}
					}
				}
			}
Vậy là xong. Giờ bấm F5 là chạy ầm ầm
Các bạn có thể download source code của chương trình này về nghiên cứu thêm nhé.
Chương trình này mình đã thêm một số chức năng như: bắt lỗi nhập liệu, có thể tính số thập phân và một vài chức năng khác,...
Các bạn download về nghiên cứu rồi góp ý với mình nhé.

Download: http://www.mediafire.com/?lm1mm5lymzb
PassUnlock: soctrangit.net

HVTIEN (http://soctrangit.net)
Copy đi đâu xin giữ dòng này. Thank


Bài viết này được chỉnh sửa bởi LacVietST: 27 January 2010 - 09:36 AM





0 người đang đọc chủ đề này

0 thành viên, 0 khách, 0 thành viên ẩn



MU Moi ra - MU Phuc Sinh

Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến