private void diziyeEkle(KisiUzaklik[] k_nn, KisiUzaklik ks) { for (int i = 0; i < k_nn.Length; i++) { if (k_nn[i] == null) { k_nn[i] = ks; return; } } int max_index = 0; double max_uzaklik = k_nn[max_index].uzaklikDouble; for (int i = 1; i < k_nn.Length; i++) { if (k_nn[i].uzaklikDouble > max_uzaklik) { max_uzaklik = k_nn[i].uzaklikDouble; max_index = i; } } if (max_uzaklik > ks.uzaklikDouble) { k_nn[max_index] = ks; } return; }
private void BtnHesapla_Click(object sender, EventArgs e) { int yeni_yas = Convert.ToInt32(textBoxHY.Text); int yeni_gelir = Convert.ToInt32(textBoxHG.Text); int k = Convert.ToInt32(textBoxK.Text); KisiUzaklik[] k_nn = new KisiUzaklik[k]; List <KisiUzaklik> uzakliklarA = new List <KisiUzaklik>(); List <KisiUzaklik> uzakliklarB = new List <KisiUzaklik>(); double satir = dataGridView1.RowCount - 1; for (int i = 0; i < satir; i++) { int id = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value); int yas = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value); int gelir = Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value); string sinif = dataGridView1.Rows[i].Cells[3].Value.ToString(); double x = yas - yeni_yas; double y = gelir - yeni_gelir; double uzaklik = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2)); KisiUzaklik ks = new KisiUzaklik(id, uzaklik, sinif); diziyeEkle(k_nn, ks); if (sinif.Equals(snf[0])) { uzakliklarA.Add(ks); } else { uzakliklarB.Add(ks); } } string yeni_sinif = uzaklikAnalizEt(k_nn); listBox1.DataSource = uzakliklarA; listBox2.DataSource = uzakliklarB; listBox3.Items.Add("sinif: " + yeni_sinif); }