public float TongCV_DT(TypeMinMax typeMinMax, TypeList typeList) { float sum = 0; if (typeMinMax == TypeMinMax.maxDienTich) { foreach (var item in ListHinhHoc) { if (TrungKieuHinh(item, typeList)) { sum += TinhDienTich(item); } } } if (typeMinMax == TypeMinMax.maxChuVi) { foreach (var item in ListHinhHoc) { if (TrungKieuHinh(item, typeList)) { sum += TinhDienTich(item); } } } return(sum); }
public void XoaTheoCachGoi <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { List <HinhHoc> list = DanhSachTheoKieuHinh <HinhHoc>(danhSachHinhHoc); foreach (var item in list) { switch (typeMinMax) { case TypeMinMax.MaxChuVi: case TypeMinMax.MinChuVi: if (item.TinhChuVi().Equals(MinMaxTheoKieuGoi <T>(danhSachHinhHoc, typeMinMax))) { danhSachHinhHoc.ListHinhHoc.Remove(item); } break; case TypeMinMax.MaxDienTich: case TypeMinMax.MinDienTich: if (item.TinhDienTich().Equals(MinMaxTheoKieuGoi <T>(danhSachHinhHoc, typeMinMax))) { danhSachHinhHoc.ListHinhHoc.Remove(item); } break; } } }
public string HinhCoTongPhepTinhMinMax(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { float hinhVuong = TongPhepTinhMinMaxTheoHinh <HinhVuong>(danhSachHinhHoc, typeMinMax); float hinhTron = TongPhepTinhMinMaxTheoHinh <HinhTron>(danhSachHinhHoc, typeMinMax); float hinhChuNhat = TongPhepTinhMinMaxTheoHinh <HinhChuNhat>(danhSachHinhHoc, typeMinMax); if (typeMinMax == TypeMinMax.MaxDienTich || typeMinMax == TypeMinMax.MaxChuVi) { return(hinhVuong > hinhTron ? (hinhVuong > hinhChuNhat ? "Hình Vuông" : "Hình Chữ Nhật") : (hinhTron > hinhChuNhat ? "Hình Tròn" : "Hình Chữ Nhật")); } return(hinhVuong < hinhTron ? (hinhVuong < hinhChuNhat ? "Hình Vuông" : "Hình Chữ Nhật") : (hinhTron < hinhChuNhat ? "Hình Tròn" : "Hình Chữ Nhật")); }
public string TimHinhMinMaxCV_DT(TypeMinMax typeMinMax) { switch (typeMinMax) { case TypeMinMax.maxDienTich: return(TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhVuong) > TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhTron) ? (TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhVuong) > TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhChuNhat) ? "Hinh Vuong" : "Hinh Chu Nhat") : (TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhTron) > TongCV_DT(TypeMinMax.maxDienTich, TypeList.HinhChuNhat) ? "Hinh Tron" : "Hinh Chu Nhat")); // return dtHinhVuong > dtHinhTron ? (dtHinhVuong > dtHinhChuNhat ? 1 : -1) : (dtHinhTron > dtHinhChuNhat ? 0 : -1); case TypeMinMax.maxChuVi: return(TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhVuong) > TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhTron) ? (TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhVuong) > TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhChuNhat) ? "Hinh Vuong" : "Hinh Chu Nhat") : (TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhTron) > TongCV_DT(TypeMinMax.maxChuVi, TypeList.HinhChuNhat) ? "Hinh Tron" : "Hinh Chu Nhat")); // return cvHinhVuong > cvHinhTron ? (cvHinhVuong > cvHinhChuNhat ? 1 : -1) : (cvHinhTron > cvHinhChuNhat ? 0 : -1); case TypeMinMax.minDienTich: return(TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhVuong) < TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhTron) ? (TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhVuong) < TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhChuNhat) ? "Hinh Vuong" : "Hinh Chu Nhat") : (TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhTron) < TongCV_DT(TypeMinMax.minDienTich, TypeList.HinhChuNhat) ? "Hinh Tron" : "Hinh Chu Nhat")); // return dtHinhVuong < dtHinhTron ? (dtHinhVuong < dtHinhChuNhat ? 1 : -1) : (dtHinhTron < dtHinhChuNhat ? 0 : -1); case TypeMinMax.minChuVi: return(TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhVuong) < TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhTron) ? (TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhVuong) < TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhChuNhat) ? "Hinh Vuong" : "Hinh Chu Nhat") : (TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhTron) < TongCV_DT(TypeMinMax.minChuVi, TypeList.HinhChuNhat) ? "Hinh Tron" : "Hinh Chu Nhat")); // return cvHinhVuong < cvHinhTron ? (cvHinhVuong < cvHinhChuNhat ? 1 : -1) : (cvHinhTron < cvHinhChuNhat ? 0 : -1); } return("Co loi gi do da xay ra !"); }
private float MinMaxTheoKieuGoi <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { List <HinhHoc> hinhHoc = DanhSachTheoKieuHinh <T>(danhSachHinhHoc); switch (typeMinMax) { case TypeMinMax.MaxChuVi: return(hinhHoc.FindAll(p => p is T).Max(x => x.TinhChuVi())); case TypeMinMax.MinChuVi: return(hinhHoc.FindAll(p => p is T).Min(x => x.TinhChuVi())); case TypeMinMax.MaxDienTich: return(hinhHoc.FindAll(p => p is T).Max(x => x.TinhDienTich())); case TypeMinMax.MinDienTich: return(hinhHoc.FindAll(p => p is T).Min(x => x.TinhDienTich())); case TypeMinMax.MaxCanh: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhVuong).Canh)); case TypeMinMax.MinCanh: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhVuong).Canh)); case TypeMinMax.MaxBanKinh: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhTron).BanKinh)); case TypeMinMax.MinBanKinh: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhTron).BanKinh)); case TypeMinMax.MaxCanhHCN: return(hinhHoc.FindAll(p => p is T).Max(x => (x as HinhChuNhat).TinhDienTich())); case TypeMinMax.MinCanhHCN: return(hinhHoc.FindAll(p => p is T).Min(x => (x as HinhChuNhat).TinhDienTich())); } return(0); }
public void XoaHinh(TypeMinMax typeMinMax, TypeList typeList) { List <HinhHoc> isList = new List <HinhHoc>(ListHinhHoc); foreach (var item in isList) { switch (typeMinMax) { case TypeMinMax.maxDienTich: if (TinhDienTich(item).Equals(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList))) { ListHinhHoc.Remove(item); } break; case TypeMinMax.maxChuVi: if (TinhChuVi(item).Equals(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList))) { ListHinhHoc.Remove(item); } break; case TypeMinMax.minDienTich: if (TinhDienTich(item).Equals(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList))) { ListHinhHoc.Remove(item); } break; case TypeMinMax.minChuVi: if (TinhChuVi(item).Equals(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList))) { ListHinhHoc.Remove(item); } break; } } }
public DanhSachHinhHoc TimHinhMinMaxDT_CV(TypeList typeList, TypeMinMax typeMinMax) { switch (typeMinMax) { case TypeMinMax.maxDienTich: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.dienTich, typeList)); case TypeMinMax.maxChuVi: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.chuVi, typeList)); case TypeMinMax.minDienTich: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.dienTich, typeList)); case TypeMinMax.minChuVi: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.chuVi, typeList)); case TypeMinMax.maxCanh: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.canh, typeList)); case TypeMinMax.minCanh: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.canh, typeList)); case TypeMinMax.maxBanKinh: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.banKinh, typeList)); case TypeMinMax.minBanKinh: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.banKinh, typeList)); case TypeMinMax.maxChieuDai: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.chieuDai, typeList)); case TypeMinMax.minChieuDai: return(TimHinhTheoDT_CV(MinMaxCV_DT_BK_C_CD(typeMinMax, typeList), TypeCal.chieuDai, typeList)); } return(null); }
private float TongPhepTinhMinMaxTheoHinh <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax) { if (typeMinMax == TypeMinMax.MaxDienTich || typeMinMax == TypeMinMax.MaxChuVi) { return(danhSachHinhHoc.ListHinhHoc.FindAll(p => p is T).Sum(x => x.TinhDienTich())); } else { return(danhSachHinhHoc.ListHinhHoc.FindAll(p => p is T).Sum(x => x.TinhChuVi())); } }
public List <HinhHoc> TimHinhMinMaxKieuTinh <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax, TypeCal typeCal) => TimHinhTheoKieuGoi <T>(danhSachHinhHoc, typeCal, MinMaxTheoKieuGoi <T>(danhSachHinhHoc, typeMinMax));
public float MinMaxCV_DT_BK_C_CD(TypeMinMax typeMinMax, TypeList typeList) { DanhSachHinhHoc hinhVuong = DanhSachKieuHinh(TypeList.HinhVuong); DanhSachHinhHoc hinhTron = DanhSachKieuHinh(TypeList.HinhTron); DanhSachHinhHoc hinhChuNhat = DanhSachKieuHinh(TypeList.HinhChuNhat); float minMax = 0; switch (typeList) { case TypeList.HinhVuong: switch (typeMinMax) { case TypeMinMax.maxDienTich: minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).TinhDienTich()); break; case TypeMinMax.maxChuVi: minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).TinhChuVi()); break; case TypeMinMax.minDienTich: minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).TinhDienTich()); break; case TypeMinMax.minChuVi: minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).TinhChuVi()); break; case TypeMinMax.maxCanh: minMax = hinhVuong.ListHinhHoc.Max(x => (x as HinhVuong).Canh); break; case TypeMinMax.minCanh: minMax = hinhVuong.ListHinhHoc.Min(x => (x as HinhVuong).Canh); break; } break; case TypeList.HinhTron: switch (typeMinMax) { case TypeMinMax.maxDienTich: minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).TinhDienTich()); break; case TypeMinMax.maxChuVi: minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).TinhChuVi()); break; case TypeMinMax.minDienTich: minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).TinhDienTich()); break; case TypeMinMax.minChuVi: minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).TinhChuVi()); break; case TypeMinMax.maxBanKinh: minMax = hinhTron.ListHinhHoc.Max(x => (x as HinhTron).BanKinh); break; case TypeMinMax.minBanKinh: minMax = hinhTron.ListHinhHoc.Min(x => (x as HinhTron).BanKinh); break; } break; case TypeList.HinhChuNhat: switch (typeMinMax) { case TypeMinMax.maxDienTich: minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhDienTich()); break; case TypeMinMax.maxChuVi: minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhChuVi()); break; case TypeMinMax.minDienTich: minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhDienTich()); break; case TypeMinMax.minChuVi: minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhChuVi()); break; case TypeMinMax.maxChieuDai: minMax = hinhChuNhat.ListHinhHoc.Max(x => (x as HinhChuNhat).TinhDienTich()); break; case TypeMinMax.minChieuDai: minMax = hinhChuNhat.ListHinhHoc.Min(x => (x as HinhChuNhat).TinhDienTich()); break; } break; case TypeList.TatCaHinh: switch (typeMinMax) { case TypeMinMax.maxDienTich: minMax = ListHinhHoc.Max(x => x.TinhDienTich()); break; case TypeMinMax.maxChuVi: minMax = ListHinhHoc.Max(x => x.TinhChuVi()); break; case TypeMinMax.minDienTich: minMax = ListHinhHoc.Min(x => x.TinhDienTich()); break; case TypeMinMax.minChuVi: minMax = ListHinhHoc.Min(x => x.TinhChuVi()); break; } break; } return(minMax); }