[C# WinForm] Giải phương trình bậc 2 có dạng: ax2 + bx + c = 0

Thảo luận trong 'Visual C#' bắt đầu bởi Trần Văn Cường, 16/9/16.

  1. Trần Văn Cường

    Trần Văn Cường I love CNTT Thành viên BQT Thành viên BQT

    Tham gia ngày:
    8/11/15
    Bài viết:
    3,693
    Đã được thích:
    43
    Điểm thành tích:
    48
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh Viên
    Nơi ở:
    Quảng Ninh thân yêu!
    Web:

    phuong-trinh-bac-2.PNG


    CODE .CS

    CODE:
    Select All
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace 
    WindowsFormsApplication3
    {
        public 
    partial class Form1 Form
        
    {
            public 
    Form1()
            {
                
    InitializeComponent();
            }

            private 
    void textBox3_TextChanged(object senderEventArgs e)
            {

            }

            private 
    void textBox2_TextChanged(object senderEventArgs e)
            {

            }

            private 
    void Form1_Load(object senderEventArgs e)
            {

            }
            class 
    TAM_THUC
    {
    private 
    double a//a<>0
    private double b;
    private 
    double c;
    public 
    double HeSoA
    {
    get
    {
    return 
    a;
    }
    set
    {
    a=value;
    }
    }
    public 
    double HeSoB
    {
    get
    {
    return 
    b;
    }
    set
    {
    b=value;
    }
    }
    public 
    double HeSoC
        
    {
    get
    {
    return 
    c;
    }
    set
    {
    c=value;
    }
    }
    public 
    TAM_THUC()
    {
    }
    public 
    bool NhapHeSo(string hesoastring hesobstring hesoc)
    {
    try
    {
    if (
    hesoa.Trim().Length == 0)
    {
    MessageBox.Show("Chưa nhập hệ số a""Thong bao loi",
    MessageBoxButtons.OKMessageBoxIcon.Stop);
    return 
    false;
    }
    else if (
    hesob.Trim().Length == 0)
    {
    MessageBox.Show("Chưa nhập hệ số b""Thong bao loi",
    MessageBoxButtons.OKMessageBoxIcon.Stop);
    return 
    false;
    }
    else if (
    hesoc.Trim().Length == 0)
    {
    MessageBox.Show("Chưa nhập hệ số c""Thong bao loi",
    MessageBoxButtons.OKMessageBoxIcon.Stop);
    return 
    false;
    }
    Double.Parse(hesoa);
    Double.Parse(hesob);
    Double.Parse(hesoc);
    return 
    true;
    }
    catch (
    Exception ex)
    {
    MessageBox.Show(ex.Message"Loi"MessageBoxButtons.OK,
    MessageBoxIcon.Stop);
    return 
    false;
    }
    }
    public 
    NGHIEM GiaiPT()
    {
    NGHIEM cNghiem = new NGHIEM();
    double delta;
    delta=b*b-4*a*c;
    if(
    delta<0)
    cNghiem.LoaiN 0;
    else if(
    delta==0)
    {
    cNghiem.LoaiN 1;
    cNghiem.x1 = -b/2*a;
    }
    else
    {
    cNghiem.LoaiN=2;
    cNghiem.x1 = -Math.Sqrt(delta) / a;
    cNghiem.x2 = -Math.Sqrt(delta) / a;
    }
    return 
    cNghiem;
    }
    }
    class 
    NGHIEM
    {
    private 
    double[] = new double[2];
    private 
    int LoaiNghiem;
    public 
    NGHIEM()
    {
    }
    public 
    int LoaiN
    {
    get
    {
    return 
    LoaiNghiem ;
    }
    set
    {
    LoaiNghiem=value;
    }
    }
    public 
    double x1
    {
    get
    {
    return 
    x[0];
    }
    set
    {
    x[0]=value;
    }
    }
    public 
    double x2
    {
    get
    {
    return 
    x[1];
    }
    set
    {
    x[1]=value;
    }
    }
    public 
    void Xuat(TextBox txtNghiem)
    {
    if(
    LoaiNghiem==0)
    txtNghiem.Text="Phương trình trên vô nghiệm";
    else if(
    LoaiNghiem==1)
    {
    txtNghiem.Text "Phương trình trên có nghiệm kép ";
    txtNghiem.Text += "x= " x[0];
    }
    else
    {
    txtNghiem.Text="Phương trình trên có 2 nghiệm phân biệt:";
    txtNghiem.Text +=" x1 = " x[0];
    txtNghiem.Text +=" va x2 = " x[1];
    }
    }
    }
            private 
    void button1_Click(object senderEventArgs e)
            {
                
    TAM_THUC tt = new TAM_THUC();
                
    NGHIEM N;

                
    tt.NhapHeSo(txta.Text.Trim(), txtb.Text.Trim(),
               
    txtc.Text.Trim());
                
    tt.GiaiPT();
                
    N.Xuat(txtNghiem);
            }

            private 
    void button2_Click(object senderEventArgs e)
            {
                
    this.Close();
            }
        }
    }
     

    Tập tin đính kèm:


    Bình Luận Bằng Facebook

    data-href="https://cnttqn.com/threads/c-winform-giai-phuong-trinh-bac-2-co-dang-ax2-bx-c-0.2555.html"