Пример #1
0
        private void virgulKontrol()
        {
            if (v1 != null)
            {
                v1 = null;
            }
            if (v2 != null)
            {
                v2 = null;
            }
            virgul_geldi_mi = false;
            string sayi1 = txtSayi1.Text.ToString();
            string sayi2 = txtSayi2.Text.ToString();

            for (int i = 0; i < sayi1.Length; i++)
            {
                if (sayi1.Substring(i, 1) == ",")
                {
                    v1 = new virgulluSayi(sayi1, i);
                    if (v2 == null)
                    {
                        v2 = new virgulluSayi(sayi2);   // virgülden sonrası 0 olan sayı oluşturduk
                    }
                    virgul_geldi_mi = true;
                    break;
                }
            }
            for (int i = 0; i < sayi2.Length; i++)
            {
                if (sayi2.Substring(i, 1) == ",")
                {
                    v2 = new virgulluSayi(sayi2, i);
                    if (v1 == null)
                    {
                        v1 = new virgulluSayi(sayi1);
                    }
                    virgul_geldi_mi = true;
                    break;
                }
            }
        }
Пример #2
0
        public string cikar(virgulluSayi v1, virgulluSayi v2)
        {
            v1.elde = false;
            string sayi1 = v1.sayi_virgul;
            string sayi2 = v2.sayi_virgul;
            string sonuc = "";

            sayi1 = sayi1.Trim();
            sayi2 = sayi2.Trim();
            if (!sayi1_buyuk_mu(v1.sayi, v2.sayi))
            {
                string temp = sayi1;
                sayi1 = sayi2;
                sayi2 = temp;
            }
            else if (v1.sayi == v2.sayi)    // virgül öncesi eşitse virgül sonrasını karşılaştırıyoruz
            {
                if (!sayi1_buyuk_mu(sayi1, sayi2))
                {
                    string temp = sayi1;
                    sayi1 = sayi2;
                    sayi2 = temp;
                }
            }
            if (sayi2.Length > sayi1.Length)     // sayıların uzunluklarını eşitliyoruz
            {
                int fark = sayi2.Length - sayi1.Length;
                for (int i = 0; i < fark; i++)
                {
                    sayi1 += "0";
                }
            }
            else if (sayi1.Length > sayi2.Length)
            {
                int fark = sayi1.Length - sayi2.Length;
                for (int i = 0; i < fark; i++)
                {
                    sayi2 += "0";
                }
            }
            bool komsudan_aldik_mi = false;

            for (int i = 0; i < sayi1.Length; i++)
            {
                int cikar1 = Convert.ToInt32(sayi1.Substring(sayi1.Length - 1 - i, 1));
                int cikar2 = Convert.ToInt32(sayi2.Substring(sayi2.Length - 1 - i, 1));
                if (komsudan_aldik_mi)  // if (komsudan_aldik_mi && i != sayi1.Length - 1)
                {
                    cikar1           -= 1;
                    komsudan_aldik_mi = false;
                }
                if (cikar1 > cikar2 || cikar1 == cikar2)
                {
                    cikar1 = cikar1 - cikar2;
                }
                else
                {
                    cikar1            = cikar1 - cikar2 + 10; // 10 komşudan geldi;
                    komsudan_aldik_mi = true;
                }
                sonuc += cikar1.ToString();
            }
            if (komsudan_aldik_mi)
            {
                v1.elde = true;
            }
            char[] sonucu_duzelt = sonuc.ToCharArray();
            Array.Reverse(sonucu_duzelt);
            sonuc = new string(sonucu_duzelt);
            return(sifirlariTemizle(sonuc));
        }
Пример #3
0
        public string topla(virgulluSayi v1, virgulluSayi v2)
        {
            v1.elde = false;
            string sayi1 = v1.sayi_virgul;
            string sayi2 = v2.sayi_virgul;
            string sonuc = "";

            sayi1 = sayi1.Trim();
            sayi2 = sayi2.Trim();
            if (sayi2.Length > sayi1.Length)     // sayıların uzunluklarını eşitliyoruz
            {
                int fark = sayi2.Length - sayi1.Length;
                for (int i = 0; i < fark; i++)
                {
                    sayi1 += "0";
                }
            }
            else if (sayi1.Length > sayi2.Length)
            {
                int fark = sayi1.Length - sayi2.Length;
                for (int i = 0; i < fark; i++)
                {
                    sayi2 += "0";
                }
            }

            bool elde = false;

            for (int i = 0; i < sayi1.Length; i++)
            {
                int topla1 = Convert.ToInt32(sayi1.Substring(sayi1.Length - 1 - i, 1));
                int topla2;
                try
                {
                    topla2 = Convert.ToInt32(sayi2.Substring(sayi2.Length - 1 - i, 1));
                }
                catch (ArgumentOutOfRangeException hata)
                {
                    topla2 = 0;
                }
                topla1 = topla1 + topla2;
                if (elde)
                {
                    topla1 += 1;    // elde varsa 1 topluyoruz;
                    elde    = false;
                }
                if (topla1 > 9 && i == sayi1.Length - 1)
                {
                    v1.elde = true;
                    topla1 -= 10;
                }

                else if (topla1 > 9)     // satırı topladığımızda 9'dan büyükse elde var demektir
                {
                    elde    = true;
                    topla1 -= 10;
                }
                sonuc += topla1.ToString();
            }
            if (elde)
            {
                v1.elde = true;
            }
            char[] sonucu_duzelt = sonuc.ToCharArray();
            Array.Reverse(sonucu_duzelt);
            sonuc = new string(sonucu_duzelt);
            return(sifirlariTemizle(sonuc));
        }