int olustur2(agacim dugum, int y, int x, int hangisi) { gr = panel1.CreateGraphics(); firca = new Pen(Color.Blue, 3); Point point1; Point point2; int konumy = y; int konumx = x; int konumatax = konumx; int konumatay = konumy; if (hangisi == 0) { butonolustur(konumx, konumy, dugum.value); } konumy += 60; if (dugum.solcocuk != null) { if (hangisi == 1) { point1 = new Point(konumatax + 25, konumatay + 25); point2 = new Point(konumx + 25, konumy + 25); gr.DrawLine(firca, point1, point2); firca.Dispose(); gr.Dispose(); } konumx = olustur2(dugum.solcocuk, konumy, konumx, hangisi); } if (dugum.sagcocuk != null) { if (hangisi == 1) { gr = panel1.CreateGraphics(); firca = new Pen(Color.Blue, 3); point1 = new Point(konumatax + 25, konumatay + 25); point2 = new Point(konumx + 25, konumy + 25); gr.DrawLine(firca, point1, point2); firca.Dispose(); } konumx = olustur2(dugum.sagcocuk, konumy, konumx, hangisi); } return(konumx + 60); }
void cizdirme(ArrayList dizi) { agacim atanacaksol = new agacim(); agacim atanacaksag = new agacim(); atanacaksag.ata = gecerlidugum; atanacaksol.ata = gecerlidugum; if (dizi.Count == 1) { if (dizi[0].ToString() != "") { if (dizi[0].ToString()[0] == '(') { dizi[0] = dizi[0].ToString().Remove(0, 1); dizi[0] = dizi[0].ToString().Remove(dizi[0].ToString().Length - 1, 1); } if (metin_ne(dizi[0].ToString())) { Ayikla(dizi[0].ToString(), 1); } else { gecerlidugum.value = dizi[0].ToString(); } } return; } else if (dizi.Count == 3) { ArrayList yenidizi = new ArrayList(); if (dizi[0].ToString() == dizi[2].ToString()) { gecerlidugum.value = dizi[1].ToString() + "="; gecerlidugum.sagcocuk = atanacaksag; gecerlidugum = atanacaksag; Ayikla(dizi[0].ToString(), 1); } else { gecerlidugum.value = dizi[1].ToString(); gecerlidugum.sagcocuk = atanacaksag; agacim dondugundekullan = gecerlidugum; gecerlidugum = atanacaksag; Ayikla(dizi[0].ToString(), 1); gecerlidugum = dondugundekullan; gecerlidugum.solcocuk = atanacaksol; gecerlidugum = atanacaksol; Ayikla(dizi[2].ToString(), 1); } } else if (dizi.Count > 3) { ArrayList yeniarray = new ArrayList(); string a = "("; int kesilecek = (dizi.Count + 1) / 2; if (kesilecek % 2 != 0) { kesilecek = (dizi.Count - 1) / 2; } for (int j = 0; j < kesilecek - 1; j++) { a += dizi[j].ToString(); } yeniarray.Add(a + ")"); yeniarray.Add(dizi[kesilecek - 1].ToString()); string b = "("; for (int j = kesilecek; j < dizi.Count; j++) { b += dizi[j].ToString(); } b += ")"; yeniarray.Add(b); cizdirme(yeniarray); } }
private void button1_Click(object sender, EventArgs e) { richTextBox1.Text = ""; panel1.Controls.Clear(); if (chdistenen.CheckedItems.Count == 0) { MessageBox.Show("taban seçiniz."); return; } if (!YazınınKontrolu(textBox1.Text)) { MessageBox.Show("Yazdığınız Metinle İlgili Bir Sıkıntı Var"); return; } ilk_dugum = new agacim(); gecerlidugum = ilk_dugum; richTextBox1.Text = "Herşey İstenen Taba Dönüşüyor\n\n\n\n\n"; //MessageBox.Show(kutluk.Sadelestir(textBox1.Text)); textBox1.Text = degilin_degili(textBox1.Text); string isleme_girecek = textBox1.Text; kayit.Add(isleme_girecek); string donusturulmus = Ayikla(isleme_girecek, 0); kayit.Add(donusturulmus); #region Sadeleştirme string sonuc = donusturulmus; sonuc = degilin_degili(sonuc); if (chckdcontrol("o")) { sonuc = NorSadelestir(donusturulmus); kayit.Add(sonuc); } else if (chckdcontrol("|")) { sonuc = NandSadelestir(donusturulmus); } else if (chckdcontrol("+")) { // SADELEŞTİRME İŞLEMLERİ BURADA YAPILMALI } else if (chckdcontrol("*")) { // SADELEŞTİRME İŞLEMLERİ BURADA YAPILMALI } #endregion sonuc = degilin_degili(sonuc); sonuc = Gereksiz_Parantezlerin_Atilmasi(sonuc); richTextBox1.Text += "\n\nsonuc:\n" + sonuc; kayit.Add(sonuc); #region Çizdirme Fonksiyonlarının Çağırılması panel1.Controls.Clear(); Ayikla(sonuc, 1); olustur2(ilk_dugum, 0, 0, 0); olustur2(ilk_dugum, 0, 0, 1); #endregion }