private void btnresult_Click(object sender, EventArgs e) { if (bans == true) { phansos[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); phansoNguyengoc[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); } else { phansos[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); phansoNguyengoc[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); } int l = KtraMausoBangKhong(phansos, n); Phanso kq = KquaCongTru(phansos, a, n); if (kq.Mauso != 0) { if (kq.Tuso * kq.Mauso > 0)//neu ca 2 cung la so am hoac duong { Math.Abs(kq.Tuso); Math.Abs(kq.Mauso); } else if (kq.Mauso < 0 && kq.Tuso > 0)//neu 1 trong 2 la so am { kq.Mauso = kq.Mauso * (-1); kq.Tuso = kq.Tuso * (-1); } kq = Doi(kq.Tuso) / Doi(kq.Mauso);//vi ham doi se tao ra 1 phan so moi, nen phai chia lai thi moi ra ans = new Phanso(kq.Tuso, kq.Mauso); if (kq.Tuso - (int)kq.Tuso == 0 && kq.Mauso - (int)kq.Mauso == 0) { double a = kq.UCLN(Math.Abs(kq.Tuso), Math.Abs(kq.Mauso)); ans = new Phanso(kq.Tuso / a, kq.Mauso / a); } textBox1.Text = ans.Tuso.ToString(); textBox2.Text = ans.Mauso.ToString(); btnClear.Enabled = true; bans = true; } else //mau so bang 0 { MessageBox.Show("Có một hoặc nhiều phân số bằng không.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); //int l = KtraMausoBangKhong(phansos, n); if (l >= 0) { mauso[l].Focus(); } } }
Phanso KquaCongTru(Phanso[] phanso, string[] ToanTu, int k) { Phanso kq = new Phanso(); KquaNhanChia(phanso, ToanTu, k); kq = phanso[0]; int n = k; for (int i = 0; i <= n; i++) { if (ToanTu[i] == "+") { phanso[i] = phanso[i + 1] + phanso[i]; kq = phanso[i]; // xoa vi tri so[i+1] for (int j = i + 1; j < n; j++) { phanso[j] = phanso[j + 1]; } //xoa dau i for (int j = i; j < n; j++) { ToanTu[j] = ToanTu[j + 1]; } i--; n--; } else if (ToanTu[i] == "-") { phanso[i] = phanso[i] - phanso[i + 1]; kq = phanso[i]; // xoa vi tri so[i+1] for (int j = i + 1; j < n; j++) { phanso[j] = phanso[j + 1]; } //xoa dau i for (int j = i; j < n; j++) { ToanTu[j] = ToanTu[j + 1]; } i--; n--; } } return(kq); }
public Phanso(Phanso ob) { tu = ob.tu; mau = ob.mau; }
private void btndiv_Click(object sender, EventArgs e) { if (bans == true)// tiep tuc thuc hien phep tinh moi { Coppy(phansoNguyengoc, phansos, ToanTuNguyengoc, a, n - 1); PS = true; button1.Enabled = true; btnAdd.Enabled = false; btnSub.Enabled = false; btnMutipl.Enabled = false; btndiv.Enabled = false; lefttoright = lefttoright + 10; TextBox operato = new TextBox(); this.Controls.Add(operato); operato.Size = new Size(30, 30); operato.Top = leftcontrol * 50; operato.Left = lefttoright * (n + 10); operato.Text = "/"; operato.TextAlign = HorizontalAlignment.Center; operato.Font = new Font("Microsoft Sans Serif", 10); lefttoright = lefttoright + 5; a[n - 1] = "/";//day la phep chia // phansos[n - 1] = new Phanso(Convert.ToDouble(textBox1.Text.Trim()), Convert.ToDouble(textBox2.Text.Trim())); phansoNguyengoc[n - 1] = new Phanso(Convert.ToDouble(textBox1.Text.Trim()), Convert.ToDouble(textBox2.Text.Trim())); ToanTuNguyengoc[n - 1] = "/"; } else { PS = true; button1.Enabled = true; btnAdd.Enabled = false; btnSub.Enabled = false; btnMutipl.Enabled = false; btndiv.Enabled = false; lefttoright = lefttoright + 10; TextBox operato = new TextBox(); this.Controls.Add(operato); operato.Size = new Size(30, 30); operato.Top = leftcontrol * 50; operato.Left = lefttoright * (n + 10); operato.Text = "+"; operato.TextAlign = HorizontalAlignment.Center; operato.Font = new Font("Microsoft Sans Serif", 10); lefttoright = lefttoright + 5; a[n - 1] = "/";//day la phep chia ToanTuNguyengoc[n - 1] = "/"; double[] b = new double[100]; string[] tt = new string[100]; double ts = 0; double ms = 0; if ((ktra(Tuso[n - 1].ToString()) == true) && (ktra(mauso[n - 1].ToString()) == true))//ca 2 cung co toan tu { convert(b, tt, Tuso[n - 1].Text.Trim()); ts = kqcongtru(b, tt); convert(b, tt, mauso[n - 1].Text.Trim()); ms = kqcongtru(b, tt); phansos[n - 1] = new Phanso(ts, ms); phansoNguyengoc[n - 1] = new Phanso(ts, ms); } else if (ktra(Tuso[n - 1].ToString()) == true)//co toan tu o trong tu so { convert(b, tt, Tuso[n - 1].Text.Trim()); ts = kqcongtru(b, tt); phansos[n - 1] = new Phanso(ts, Convert.ToDouble(mauso[n - 1].Text.Trim())); phansoNguyengoc[n - 1] = new Phanso(ts, Convert.ToDouble(mauso[n - 1].Text.Trim())); } else if (ktra(mauso[n - 1].ToString()) == true)//co toan tu o trong mau { convert(b, tt, mauso[n - 1].Text.Trim()); ms = kqcongtru(b, tt); phansos[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), ms); phansoNguyengoc[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), ms); } else //ca 2 khong co toan tu { try { phansoNguyengoc[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); phansos[n - 1] = new Phanso(Convert.ToDouble(Tuso[n - 1].Text.Trim()), Convert.ToDouble(mauso[n - 1].Text.Trim())); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); Tuso[n - 1].Focus(); } } } }