Dizilerle Metodların Beraber Kullanımı

Bu çalışmada, bir metoda dizi göndermeyi inceleyeceğiz. Rastgele 10 tane sayı üretip bir diziye atacağız, dizideki en büyük ve en küçük değeri bulma, toplam ve ortalama bulma işlemlerini metodlarla yapacağız. Aşağıdaki gibi bir form tasarlayalım. 5 tane Button nesnesi, bir TextBox bir tane de etiket koyacağız.

Nesne Adı(Name) Görünen Metin(Text) 
Button btnRastgele Rastgele Sayı Üret
Button btnToplam Toplam Bul
Button btnOrtalama Ortalama Bul
Button btnEnBuyuk En Büyük Bul
Button btnEnKucuk En Küçük Bul
TextBoxt txtSayilar  




Formu oluşturduktan sonra tüm metodların içinden erişebileceğimiz aşağıdaki gibi genel bir dizi değişkeni tanımlıyoruz. 

 int[] dizi;

Ardından Rastgele butonun üzerine çift tıklayıp Click olayına aşağıdaki gibi  kodları yazıyoruz. Burada dizinin boyutunu 10 eleman olacak şekilde tanımlıyoruz. Ardından 10 tane  1-100 arası rastgele  sayı üretiyoruz ve diziye atıyoruz. Rastgele sayı üretirken önce Random motorunu başlatıp, yani Random sınıfından bir rastgele nesnesi türetip, Next metodu ile istediğimiz aralıkta sayı üretiyoruz. Aşağıdaki iki satır kod bunu yapıyor. Burada 1 eklememizin nedeni, üretilecek sayıyı 1-100 arasına(1 ile 100 dahil) çekmek.

Random rastgele = new Random();
dizi[i] = rastgele.Next(100) + 1;


Click olayının içindeki kodların tamamı aşağıdaki gibidir. Burada for döngüsü ile 10 defa sayı ürettiyoruz. Üretilen sayıların arasına virgül koyarak metin kutusuna atıyoruz. Döngü içindeki if satırı fazladan virgül koymamak için, sadece görüntüyü güzelleştirmek için.

private void btnRastgele_Click(object sender, EventArgs e)
        {
            dizi = new int[10];
            string sayilar="";
            Random rastgele = new Random();
            for (int i = 0; i < 10; i++)
            {
                dizi[i] = rastgele.Next(100) + 1;
                if(i==0)
                    sayilar =dizi[i].ToString();
                else
                    sayilar = sayilar + "," + dizi[i].ToString();
         
            }
            txtSayilar.Text = sayilar;
        }


Ardından aşağıdaki metodları yazıyoruz. enBuyukBul metodu bir diziyi parametre alıyor. Dizi içindeki ilk elemanı en büyük kabul edip, sonra döngü içinde sürekli karşılaştırma yapıyoruz, elimizdeki enbuyuk değerinden daha büyük bir değere rastlayınca enbuyuk değerine onu atıyoruz. 

 public static int enBuyukBul(int[] dizi)
        {
            int enbuyuk = 0;
            enbuyuk = dizi[0];
            for(int i=0;i<dizi.Length;i++)
            {
                if (dizi[i] > enbuyuk)
                    enbuyuk = dizi[i];
            }
            return (enbuyuk);
 
        }


enKucukBul metodu da enBuyukBul metoduna benzer mantıkla çalışıyor, dizinin ilk elemanını en küçük kabul edip, diğer elemanları bu değerle karşılaştırıyoruz, daha küçük bir değere rastlayınca yer değiştiriyoruz.
 
        public static int enKucukBul(int[] dizi)
        {
            int enkucuk = 0;
            enkucuk = dizi[0];
            for (int i = 0; i < dizi.Length; i++)
            {
                if (dizi[i] < enkucuk)
                    enkucuk = dizi[i];
            }
            return (enkucuk);
 
        }


toplamBul metodu da bir diziyi baştan sona dolaşıp, ilk başta oluşturduğumuz sonuc değişkeninin üzerine ekleye ekleye devam ediyoruz.
 
        public static int toplamBul(int[] dizi)
        {
            int sonuc = 0;
            for (int i = 0; i < dizi.Length; i++)
                sonuc += dizi[i];
 
            return (sonuc);
        }
 
 Programın çalışan görüntüsü ve kodların tamamı aşağıda verilmiştir.
 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace MetodDiziToplaOrtalaBuyukBuk
{
    public partial class Form1 : Form
    {
        int[] dizi;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        public static int enBuyukBul(int[] dizi)
        {
            int enbuyuk = 0;
            enbuyuk = dizi[0];
            for(int i=0;i<dizi.Length;i++)
            {
                if (dizi[i] > enbuyuk)
                    enbuyuk = dizi[i];
            }
            return (enbuyuk);
 
        }
 
        public static int enKucukBul(int[] dizi)
        {
            int enkucuk = 0;
            enkucuk = dizi[0];
            for (int i = 0; i < dizi.Length; i++)
            {
                if (dizi[i] < enkucuk)
                    enkucuk = dizi[i];
            }
            return (enkucuk);
 
        }
        public static int toplamBul(int[] dizi)
        {
            int sonuc = 0;
            for (int i = 0; i < dizi.Length; i++)
                sonuc += dizi[i];
 
            return (sonuc);
        }
 
 
        private void btnRastgele_Click(object sender, EventArgs e)
        {
            dizi = new int[10];
            string sayilar="";
            Random rastgele = new Random();
            for (int i = 0; i < 10; i++)
            {
                dizi[i] = rastgele.Next(100) + 1;
                if(i==0)
                    sayilar =dizi[i].ToString();
                else
                    sayilar = sayilar + "," + dizi[i].ToString();
         
            }
            txtSayilar.Text = sayilar;
        }
 
        private void btnToplam_Click(object sender, EventArgs e)
        {
            int sonuc = toplamBul(dizi);
            MessageBox.Show("Toplam Sonucu:"+sonuc.ToString());
        }
 
        private void btnOrtalama_Click(object sender, EventArgs e)
        {
            double ortalama = 0;
            ortalama = toplamBul(dizi) / (double)dizi.Length;
            MessageBox.Show(ortalama.ToString());
        }
 
        private void btnEnBuyuk_Click(object sender, EventArgs e)
        {
            MessageBox.Show(enBuyukBul(dizi).ToString());
        }
 
        private void btnEnKucuk_Click(object sender, EventArgs e)
        {
            MessageBox.Show(enKucukBul(dizi).ToString());
        }
 
        private void txtSayilar_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
}

Bu örnekte hem rastgele sayı üretmeyi, hem metodları kullanmayı hem bir metoda dizi göndermeyi öğrenmiş olduk. 

Mutlu kodlamalar,
Oğuzhan TAŞ
22 Şubat 2022

Bookmark and Share