Beispiel #1
0
        private void buttonSkaiciuoti_Click(object sender, EventArgs e)
        {
            float x1;

            float.TryParse(inputX1.Text, out x1);

            float x2;

            float.TryParse(inputX2.Text, out x2);

            int k;

            int.TryParse(inputK.Text, out k);

            if (x1 < 0 || x2 < 0 || k < 0)
            {
                MessageBox.Show("Blogai suvesti duomenis");
            }

            naujas = new Elementas("naujas", x1, x2, false);
            //lyginame naujai sukurta elementa su turimais, gautus atstumus saugome senuose elementuose
            foreach (Elementas el in elementai)
            {
                el.D1(naujas);
                el.D2(naujas);
                el.D3(naujas);
            }
            //Elementus surusiuojam (pagal skirtingus gautus atstumus), paimame k elemetu,
            List <Elementas> d1Elementai = elementai.OrderBy(t => t.d1).Take(k).ToList();
            List <Elementas> d2Elementai = elementai.OrderBy(t => t.d2).Take(k).ToList();
            List <Elementas> d3Elementai = elementai.OrderBy(t => t.d3).Take(k).ToList();

            //skaiciuojam vidurkius gautu listu
            double averageD1 = d1Elementai.Average(t => t.posible ? 1 : 0);
            double averageD2 = d2Elementai.Average(t => t.posible ? 1 : 0);
            double averageD3 = d3Elementai.Average(t => t.posible ? 1 : 0);

            //gauname grupe pagal gauta vidurki
            int d1Grupe = GetGrupe(averageD1);
            int d2Grupe = GetGrupe(averageD2);
            int d3Grupe = GetGrupe(averageD3);

            string isvada = "Neaisku";

            if ((d1Grupe + d2Grupe + d3Grupe) == 3)
            {
                isvada         = "Teigiamas";
                naujas.posible = true;
                elementai.Add(naujas);
            }
            else if ((d1Grupe + d2Grupe + d3Grupe) == 0)
            {
                isvada         = "Neigiamas";
                naujas.posible = false;
                elementai.Add(naujas);
            }

            rezultatas.Text = "pagal D1: " + GetGrupeString(d1Grupe) + "  D2: " + GetGrupeString(d2Grupe) + " D3: " + GetGrupeString(d3Grupe) + ". Galutine išvada: " + isvada;
            panel1.Refresh();
        }
Beispiel #2
0
        // kai pakeičia duomeni arba atnaujiname arba pritedam nauja elementa i sarasa
        private void DataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            var ro = ((DataGridView)sender).Rows[e.RowIndex];

            if (ro.Cells[0].Value != null && ro.Cells[1].Value != null && ro.Cells[2].Value != null && ro.Cells[3].Value != null)
            {
                if (ro.Cells[0].Value.ToString() != "" && ro.Cells[1].Value.ToString() != "" && ro.Cells[2].Value.ToString() != "" && ro.Cells[3].Value.ToString() != "")
                {
                    if (elementai.Count > e.RowIndex)
                    {
                        elementai[e.RowIndex].name    = ro.Cells[0].EditedFormattedValue.ToString();
                        elementai[e.RowIndex].x1      = float.Parse(ro.Cells[1].EditedFormattedValue.ToString());
                        elementai[e.RowIndex].x2      = float.Parse(ro.Cells[2].EditedFormattedValue.ToString());
                        elementai[e.RowIndex].posible = ro.Cells[3].EditedFormattedValue.ToString() == "+" ? true : false;
                    }
                    else
                    {
                        Elementas el = new Elementas(ro.Cells[0].Value.ToString(), float.Parse(ro.Cells[1].Value.ToString()), float.Parse(ro.Cells[2].Value.ToString()), ro.Cells[3].Value.ToString() == "+" ? true : false);
                        elementai.Add(el);
                    }
                }
            }
        }
Beispiel #3
0
 //skaiciojame pagal antra formule
 public double D2(Elementas elementas2)
 {
     this.d2 = Math.Pow(this.x1 - elementas2.x1, 2) + Math.Pow(this.x2 - elementas2.x2, 2);
     return(this.d2);
 }
Beispiel #4
0
 //skaiciojame pagal tracia formule
 public double D3(Elementas elementas2)
 {
     this.d3 = Math.Max(Math.Abs(this.x1 - elementas2.x1), Math.Abs(this.x2 - elementas2.x2));
     return(this.d3);
 }
Beispiel #5
0
 //skaiciojame pagal pirma formule
 public double D1(Elementas elementas2)
 {
     this.d1 = Math.Abs(this.x1 - elementas2.x1) + Math.Abs(this.x2 - elementas2.x2);
     return(this.d1);
 }