C# programok ismertetése érdeklődőknek kezdőktől haladókig

C# MŰHELY

C# MŰHELY

FÜGGVÉNY: Két 6 jegyű oktális szám összeadása

2021. január 06. - Benkő Tiborné

Írjunk függvényt, amely két 6 jegyű oktális számot ad össze. A két összeadandó számot ellenőrizze és az összeadásnál jelezze a túlcsordulást, ebben az esetben az eredmény hétjegyű lesz.

A feladat megoldása:

            static string oct_read(string oct, out int hiba1,
                                           out int hiba2)
        {
            int i, h, k;
            hiba1 = hiba2 = 0;
            h = oct.Length;
            if (h == 6)
            {
                for (i = 0; i < h; i++)
                {
                    k = oct[i] - '0';
                    if (k > 7)
                    {
                        hiba1 = i + 1;
                        return oct;
                    }
                }
            }
            else if (h < 6 || h > 6)
            {
                 hiba2 = h;
            }
            return oct;
        }

        static int oct_add(string s1, string s2, ref int[] eredm)
        {
            int carry = 0;
            int i, ered;
            for (i = 5; i >= 0; i--)
            {
                ered = carry + (s1[i] - '0') + (s2[i] - '0');
                if (ered > 7) carry = 1; else carry = 0;
                eredm[i] = ered & 7;
            }
            return carry;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string okt1="", okt2="", okt1j="", okt2j="";
            int i = 1, v;
            int hiba1 = 0, hiba2 = 0;
            int[] összeg = new int[7] { 0, 0, 0, 0, 0, 0, 0 };
            if (textBox1.Text != "" && textBox2.Text != "")
            {
                okt1 = textBox1.Text;
                okt1j = oct_read(okt1, out hiba1, out hiba2);

                if (hiba1 != 0)

                    MessageBox.Show("adat: " + okt1.ToString() + "\n"
                             + hiba1.ToString() + ". digit hibás! ",
                             "Hibajelzés");
                if (hiba2 != 0)
                    MessageBox.Show("adat: " + okt1.ToString() + "\n"
                               + "A szám hatjegyű lehet: ez " +
                               hiba2.ToString(), "Hibajelzés");
                if (hiba1 != 0 || hiba2 != 0)
                {
                     textBox1.Text = ""; textBox3.Text = "";
                     okt1j = "";
                }
                else
                    { textBox1.Text = okt1j; }
                okt2 = textBox2.Text;
                okt2j = oct_read(okt2, out hiba1, out hiba2);
                if (hiba1 != 0)
                    MessageBox.Show("adat: " + okt2.ToString() + "\n"
                             + hiba1.ToString() + ". digit hibás! ",
                             "Hibajelzés");
                if (hiba2 != 0)
                    MessageBox.Show("adat: " + okt2.ToString() + "\n"
                                  + "A szám hatjegyű lehet: ez " +
                                  hiba2.ToString(), "Hibajelzés");
                if (hiba1 != 0 || hiba2 != 0)
                {
                    textBox2.Text = ""; textBox3.Text = "";
                    okt2j = "";
                }
                else
                   { textBox2.Text = okt2j; }
            }
            textBox3.Text = "";
            if (okt1j != "" && okt2j != "")
            {
                v = oct_add(okt1j, okt2j, ref összeg);
                if (v == 1)     
                               {
                    label4.Text = "Túlcsordult: az eredmény 7 jegyű";
                    textBox3.Text += '1'
                    for (i = 0; i <= 5; i++)
                       textBox3.Text += összeg[i].ToString();
                }
                else
                {
                    label4.Text = "Az eredmény 6 jegyű";
                    for (i = 0; i <= 5; i++)
                        textBox3.Text += összeg[i].ToString();
                }
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
             textBox3.Text = ""label4.Text = "";
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
             textBox3.Text = ""; label4.Text = "";
        }

 

A program futási eredményei:

  

     

A bejegyzés trackback címe:

https://csharp-muhely.blog.hu/api/trackback/id/tr616372782

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása