コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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
        }