/// <summary> /// Cộng 2 hỗn số /// </summary> /// <param name="hs">Hỗn số</param> /// <returns>Kết quả của phép cộng 2 hỗn số</returns> public HonSo Cong(HonSo hs) { HonSo res; //Nếu mẫu hỗn số hiện tại bằng mẫu hỗn số được truyền vào if (this._PhanMau.Equals(hs.PhanMau)) { res = new HonSo(this._PhanNguyen + hs.PhanNguyen, this._PhanTu + hs.PhanTu, hs.PhanMau); } else { //Nếu mẫu 2 hỗn số khác nhau //Tìm bội chung nhỏ nhất của 2 mẫu int boichung = BCNN(hs.PhanMau, this._PhanMau); //Phần nguyên (kết quả) = this._PhanNguyen + hs.PhanNguyen //Phần tử (kết quả) = (_PhanTu * boichung / _PhanMau) + (hs.PhanTu * boichung/hs.PhanMau) //Phần mẫu (kết quả) = Bội chung 2 mẫu res = new HonSo(this._PhanNguyen + hs.PhanNguyen, (_PhanTu * boichung / _PhanMau) + (hs.PhanTu * boichung / hs.PhanMau), boichung); } return(res); }
static void Main(string[] args) { HonSo honso1 = new HonSo(20, 90, 50); HonSo honso2 = new HonSo(12, 23, 30); Console.WriteLine(honso1.ConvertToString()); Console.WriteLine(honso2.ConvertToString()); Console.WriteLine("{0} + {1} = {2}", honso1.ConvertToString(), honso2.ConvertToString(), honso1.Cong(honso2).ConvertToString()); Console.WriteLine("{0} - {1} = {2}", honso1.ConvertToString(), honso2.ConvertToString(), honso1.Tru(honso2).ConvertToString()); Console.WriteLine("Gia tri so thuc " + honso1.GiaTri()); Console.WriteLine("Nghich dao " + honso1.NghichDao().ConvertToString()); Console.ReadKey(); }
/// <summary> /// Nghịch đảo hỗn số /// x(y/z) => x(z/y) /// </summary> /// <returns>Trả về dạng nghịch đảo</returns> public HonSo NghichDao() { HonSo honso = new HonSo(0, _PhanMau, (_PhanNguyen * _PhanMau) + _PhanTu); return(honso); }