예제 #1
0
        public List <double> KesisimHesapla(double d, KESISIM k, int sekilIndex = -1)
        {
            switch (k)
            {
            case KESISIM.HASSASLIK:
                return(HassaslikVeMiktarKesisim(d, k, sekilIndex));

            case KESISIM.MIKTAR:
                return(HassaslikVeMiktarKesisim(d, k, sekilIndex));

            case KESISIM.KIRLILIK:
                return(KirlilikKesisim(d, sekilIndex));
            }
            return(null);
        }
예제 #2
0
        private List <double> HassaslikVeMiktarKesisim(double d, KESISIM k, int sekilIndex)
        {
            // [-4, -1.5, 2, 4] - [3, 5, 7] - [5.5, 8, 12.5, 14]

            var tempList = new List <string>();

            List <double> kesisimler = new List <double>();
            double        d1, d2, d3;

            d1 = -1;
            d2 = -1;
            d3 = -1;


            if (d >= 0 && d <= 2)
            {
                d1 = 1;
            }
            else if (d >= 2 && d <= 4)
            {
                d1 = 1 - (d - 2) * (1 / Math.Abs((2.0) - (4)));
            }



            if (d >= 3 && d <= 5)
            {
                d2 = (d - 3) * (1 / Math.Abs((3.0) - (5.0)));
            }
            else if (d >= 5 && d <= 7)
            {
                d2 = 1 - (d - 5) * (1 / Math.Abs((5.0) - (7.0)));
            }



            if (d >= 5.5 && d <= 8)
            {
                d3 = (d - 5.5) * (1 / Math.Abs((5.5) - (8)));
            }
            else if (d >= 8 && d <= 12.5)
            {
                d3 = 1;
            }
            else if (d >= 12.5 && d <= 14)
            {
                d3 = 1 - ((d - 12.5) * (1 / Math.Abs((12.5) - (14.0))));
            }


            if (d1 > -1)
            {
                tempList.Add(k == KESISIM.HASSASLIK ? "Sağlam" : "Küçük");
                if (sekilIndex == -1 || sekilIndex == 0)
                {
                    kesisimler.Add(d1);
                }
            }

            if (d2 > -1)
            {
                tempList.Add("Orta");
                if (sekilIndex == -1 || sekilIndex == 1)
                {
                    kesisimler.Add(d2);
                }
            }

            if (d3 > -1)
            {
                tempList.Add(k == KESISIM.HASSASLIK ? "Hassas" : "Büyük");
                if (sekilIndex == -1 || sekilIndex == 2)
                {
                    kesisimler.Add(d3);
                }
            }

            if (k == KESISIM.HASSASLIK)
            {
                _hassaslikList = tempList;
            }
            else
            {
                _miktarList = tempList;
            }

            if (kesisimler.Count == 0)
            {
                kesisimler.Add(-1);
            }
            return(kesisimler);
        }