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

C# MŰHELY

C# MŰHELY

Pascal-háromszög sora

2020. június 24. - Benkő Tiborné

 Írjunk programot, amely megjeleníti a Pascal-háromszög adott sorát. 

 A Pascal-háromszög első hat sorát jelenítjük meg.
Ha az elemek soron belüli indexe
      
akkor p(n,k) jelölje az n-edik sor, k. elemét. 
Például a 4-edik sor 3-adik eleme: p(4,3) = 6.

 Az elemek meghatározásának rekurzív algoritmusa:

ha k= 0 vagy k=n, akkor p(n,k) = 1, egyébként pedig p(n,k) = p(n-1,k-1) + p(n-1,k)

Például 5. sor 2. eleme:   p(5,2) = p(4,1) + p(4,2)

                                        p(5,2) =   1  +  4 =  5

 A nem rekurzív algoritmus valójában a binomiális együtthatók képlete:

 A feladat megoldása:

         // Rekurzív függvény
        static int rbinom(int n, int k)
        {
            if (k == 0 || k == n)
                 return 1;
            else
                 return rbinom(n - 1, k - 1) + rbinom(n - 1, k);
        }

        //Nem rekurzív függvény
        static int binom(int n, int k)
        {
            int g, b;
            b = 1;
            for (g = n - k + 1; g <= n; g++)
                b *=  g;
            for (g = 1; g <= k; g++)
                b /= g;
            return b; 
        }

        private void Megjelenít_Click(object sender, EventArgs e)
        {
            int sorszám, i;
            string sor= "";
            if (textBox1.Text != "")
            {
                sorszám = Int32.Parse(textBox1.Text);
                if (sorszám >= 0 && sorszám <= 11)
                {
                    for (i = 0; i <= sorszám; i++ )
                       sor += binom(sorszám,i).ToString() + "  ";
                    textBox2.Text = sor;
                    sor = "";
                    for (i = 0; i <= sorszám; i++)
                       sor += rbinom(sorszám, i).ToString() + "  ";
                    textBox3.Text = sor;
                }
                else
                    MessageBox.Show("Hibás adat", "Üzenet");
             }
        }

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

A program futási eredményei:

     

    

 

 

A bejegyzés trackback címe:

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

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