C# 'da Pascal Üçgeni Yapalım

Pascal üçgeni, matematikte binom katsayılarını içeren üçgensel bir dizidir. Bir çok algoritma dersinde yapılması istesen algoritmaların başında gelmektedir. Bu dersimizde pascal üçgenini consol uygulamasıyla gerçekleştirelim. Yararlı olması dileğiyle...

Visual Studio Programında yeni bir consol uygulaması açıp alttaki kodlarımızı yazalım.Kodların yanında açıklama satırıyla açıklamasını yaptım. Yararlı olması dileğiyle...




using System;

using System.Collections.Generic;

using System.Text;



namespace pasgalucgen

{

    class Program

    {

        static void Main(string[] args)

        {

            int x, y;  // x ve y adlı integer tipinde değişken tanımlıyoruz.



            string k = "", h = ""; // buradada boşukları yazdırmak için k ve h adında değişken tanımlaması yapıyoruz.



            Console.Write("Basamak sayısını girin:"); // pascal üçgenini dışarıdan girilecek basamak sayısına göre oluşturmak için dışarıdan bir sayı girişi istiyoruz.



            x = Convert.ToInt32(Console.ReadLine()); // x değişkenine dışarıdan girilen değeri atadık.



            int[] m = new int[x]; // daha sonra m adında int tipinde bir dizi tanımlayıp bunun boyutunu x'e eşitliyoruz.



            for (int g = 1; g <= x; g++) k += " ";  // ilk olarak üçgenin kaçtane satırı yazılacak, yani kaç basamaklı ise o kadar döngümüzü çalıştırıyoruz.



            if (x == 1) Console.Write("{0} 1", k); // eğer girilen değer dışarıdan 1 ise sadece 1 yazacak



            if (x == 2) Console.Write("{0}1n 1 1", k); //girilen değer 2 ise 1 -1 1 yazacak bir nevi 1 ve 2 için kontrol yaptık



            k = "";  



            if (x > 2) // 2 den büyükse eğer basamak sayısı o zaman hesaplamaları yapacağız.

            {



                for (int g = x; g >= 0; g--) h += " "; // döngünün başlanğıç değeri x den başlar 0'a kadar azalarak 1 yazar tabi üçgenin en baş tarafı dikkat ettiysek hep 1 rakamı ile başlıyor onun için. dizinin 0.indisi



                Console.WriteLine("{0}1", h); // dışarıdan girilen basamak sayısı 5 ise 5 tane alt alta 1 yazar.



                h = "";  

                 

                for (int g = x; g >= 1; g--) h += " "; // buradada 0 indise gene 1 1 değerini atıyoruz ikinci satır.



                Console.WriteLine("{0}1 1", h);



                h = "";



                m[0] = 1;   // m dizisinin 0.ve 1.indir değerlerini 1'e eşitliyoruz.



                m[1] = 1;



                for (int i = 2; i < x; i++) // 2den başlayıp basamak sayısına kadar işleyen döngü.

                {  



                    int[] m1 = new int; // döngüdeki her i degerini m1 dizisine aktar.



                    for (y = 1; y < i; y++) // 1 den başlayıp i nin o andaki değerine kadar dön

                    {



                        m1[y] = m[y] + m[y - 1]; // ve burada gerekli işlemi yap. yani kendi değeri ile kendinden bir önceki değeri toplayıp m1 dizisindeki y indisinin yeni değeri olmuş oluyor.



                        k = k + " " + m1[y].ToString(); // k nın yeni değeri de yeni hesaplanan y değeri ile k nın bir önceki değeri, tabi en başında boşluk bırakarak yaz.



                    }



                    for (y = 1; y < i; y++) // Döngü 1 den başlayıp i nin değerine kadar döner amaç m dizisine m1 dizisinin değerini yüklemek

                    {  



                        m[y] = m1[y]; // burada m dizisindeki y nin yeni değeri m1 dizisindeki değere eşit oluyor.



                    }



                    m = 1; // i nin dizideki değerini 1'e eşitle son indis için yazarken.



                    for (int g = x; g >= i; g--) h += " "; // ve bu döngü ilede hesaplanan değerleri ekrana yazdıralım



                    Console.WriteLine("{1}1{0} 1", k, h); 



                    h = "";



                    k = "";  



                }



            }



            Console.ReadKey();  // burada consol ekranının kapanmaması için 

        }

    }

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git