Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #3
0
        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"));
        }
Beispiel #4
0
        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 !");
        }
Beispiel #5
0
        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);
        }
Beispiel #6
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;
                }
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
 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()));
     }
 }
Beispiel #9
0
 public List <HinhHoc> TimHinhMinMaxKieuTinh <T>(DanhSachHinhHoc danhSachHinhHoc, TypeMinMax typeMinMax, TypeCal typeCal)
 => TimHinhTheoKieuGoi <T>(danhSachHinhHoc, typeCal, MinMaxTheoKieuGoi <T>(danhSachHinhHoc, typeMinMax));
Beispiel #10
0
        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);
        }