Anasayfa / Yazılım / C# / Çoklu Parametre Kullanarak Metotların Oluşturulması – En Büyük Sayıyı Bulma

Çoklu Parametre Kullanarak Metotların Oluşturulması – En Büyük Sayıyı Bulma

Bu yazımda parametreli metot nasıl oluşturulur buna değinmek istiyorum. Bunu da bir örnek üzerinden anlatacağım. Örneğimizde kullanıcıdan 3 adet sayı girmesini isteyeceğim ve bu girilen 3 sayıdan en büyük olanını bulmaya çalışacağız.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            //Kullanıcıdan sayılar isteniyor ve her biri bir değişkene alınıyor
            Console.WriteLine("Üç adet sayı giriniz, her sayı girişinin ardından Enter tuşuna basınız!");
            double sayi1 = Convert.ToDouble(Console.ReadLine());
            double sayi2 = Convert.ToDouble(Console.ReadLine());
            double sayi3 = Convert.ToDouble(Console.ReadLine());
            //metodumuzu çağırıyoruz ve girilen sayılardan en büyük sayıları bulmaya çalışıyoruz
            double sonuc = EnBuyukSayi(sayi1, sayi2, sayi3);
            //metot sonucu geriye dönen değeri yani en büyük sayıyı ekrana yazdırıyoruz.
            Console.WriteLine("En Büyük Sayı Değeri: {0}" , sonuc);
            //ekranda bekleme
            Console.ReadLine();
        }

        public static double EnBuyukSayi(double a, double b, double c)
        {
            //Öncelikle a değerini büyük kabul ediyorum, sonra diğerleri ile kıyaslama yapacağım
            //Bu kıyaslama da eğer diğer değerler büyük ise bu sefer onların değerini
            //EnBuyukDeger içine kaydedeceğim
            double EnBuyukDeger = a;
            //b değeri büyük mü bakıyoruz
            if (b > EnBuyukDeger)
            {
                EnBuyukDeger = b;
            }
            //c değeri büyük mü bakıyoruz
            if (c > EnBuyukDeger)
            {
                EnBuyukDeger = c;
            }

            return EnBuyukDeger;
        }
    }
}

2013051607

Şimdi detaylı bir şekilde kod bloğumuzu inceleyelim. Görüleceği üzere EnBuyukSayi metodumu tanımlarken public ve static deyimlerini kullandım. public deyimini kullanmakla birlikte ben bu metot için her yerden ulaşılabilir özelliğini kazandırmış oluyorum. Bu uygulama dahilinde her sınıf altında bu metoda ulaşılır. Daha sonra ben bu metota static dedim. Böylelikle de bu metodu başında herhangi bir sınıf adı yazmadan rahatlıkla çağırabileceğim. Daha sonra görüleceği üzere metodumun adını verdim. EnBuyukSayi oldu. Bu metodumun veritipi de double türünde. Bu metodum aynı zamanda 3 parametreli bir metot ve her bir parametre birbirinden virgül ile ayrılıyor. Yani bu metot kullanılırken argüman olarak 3 adet parametre girilmesi zorunda. Örneğimizi ele aldığımızda bu metot çalıştırıldığında görüleceği üzere Sayi1 değeri aslında metodumda a’ya eşitleniyor. Sırası ile Sayi2 ve Sayi3’de b ve c’ye eşitleniyor. Tabi yine burada dikkat edilmesi gereken nokta, metodumun içinde yer alan veri tipleri ile metodu tanımladığım zamandaki veri tiplerinin aynı olması kuralı. Eğer bu olmaz ise metot çalışmaz. Mesela örnekte görüleceği üzere sayı değerleri girdim. Bu sayıları kullanıcı girişinde string değer olduğu için bunları double tipine çevirdim ve öylece metoduma yolladım. Eğer kullanıcı string bir değer girmiş olsa bu metot çalışmaz. Metodum içinde büyük sayıyı bulmak için ise şöyle bir yol izledim. Öncelikle ilk girilen sayı değeri için bunu içlerinde en büyük olarak kabul ettim. Daha sonra bu değer ile diğer değeri karşılaştırdım. Eğer büyük olan sonraki değer olursa bu sefer onu büyük kabul edip EnBuyukDeger içine aldım. Daha sonra aynı işlemi 3. sayı içinde yaptım. Böylece birbirleri ile girilen değeri kıyaslayarak içlerindeki en büyük değeri buldum. Daha sonra en büyük değeri bulduktan sonra metodumdan bu değeri geri döndürdüm.

Şimdi ben metot içinde if ile karşılaştırma yaptım. Ben bu işlemi o kadar satır yerine tek bir satırda yapabilir miyim? Tabii ki yaparım 🙂 Metodumuz içinde Math sınıfının Max metodunu kullanarak bu işi çok rahat bir şekilde yapabiliriz. O halde kodlarımı şöyle yapıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            //Kullanıcıdan sayılar isteniyor ve her biri bir değişkene alınıyor
            Console.WriteLine("Üç adet sayı giriniz, her sayı girişinin ardından Enter tuşuna basınız!");
            double sayi1 = Convert.ToDouble(Console.ReadLine());
            double sayi2 = Convert.ToDouble(Console.ReadLine());
            double sayi3 = Convert.ToDouble(Console.ReadLine());
            //metodumuzu çağırıyoruz ve girilen sayılardan en büyük sayıları bulmaya çalışıyoruz
            double sonuc = EnBuyukSayi(sayi1, sayi2, sayi3);
            //metot sonucu geriye dönen değeri yani en büyük sayıyı ekrana yazdırıyoruz.
            Console.WriteLine("En Büyük Sayı Değeri: {0}" , sonuc);
            //ekranda bekleme
            Console.ReadLine();
        }

        public static double EnBuyukSayi(double a, double b, double c)
        {
            //Bu sefer tek satır kod ile karşılaştırmamı yapıyorum
            return Math.Max(a, Math.Max(b, c));
        }
    }
}

Görüleceği üzere tek satırda yazdım, bir bakalım cidden olmuş mu?

2013051608

Evet olmuş. Burada tek satırlık kısımda;

 return Math.Max(a, Math.Max(b, c));

En önce içteki Math.Max sınıfı ile b ve c değerlerinden büyük olanı bulunuyor, daha sonra dışta yer alan Math.Max ile de a değeri ile içteki bulunan büyük değer karşılaştırılıyor ve ikisinden büyük olan bulunup return ile geri döndürülüyor. Böylelikle if ile yapmış olduğumuz kıyaslamanın birebir yerini tutuyor.

Ekrana yazdırırken aşağıdaki kodu kullandım.

Console.WriteLine("En Büyük Sayı Değeri: {0}" , sonuc);

Bunun yerine string toplama da yapabiliriz. Şöyle bir şekilde yani,

Console.WriteLine("En Büyük Sayı Değeri: " + sonuc);

Görüleceği üzere + ile string toplama işlemi de yapılabilir. Bu iki satır kod birbiri ile aynı işi yaparlar. Bu işlem string concatenation olarak adlandılır. Türkçe olarak da string toplama ya da string birleştirme diyebiliriz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir