Bilgisayar Programlama - Fonksiyonlar

İşlev, ilgili tek bir eylemi gerçekleştirmek için kullanılan organize, yeniden kullanılabilir bir kod bloğudur. Fonksiyonlar, uygulamanız için daha iyi modülerlik ve yüksek derecede kod yeniden kullanımı sağlar. Gibi çeşitli işlevleri zaten gördünüzprintf() ve main(). Bunlara dilin kendisi tarafından sağlanan yerleşik işlevler denir, ancak kendi işlevlerimizi de yazabiliriz ve bu eğitim size bu işlevleri C programlama dilinde nasıl yazacağınızı ve kullanacağınızı öğretecektir.

İşlevlerle ilgili iyi olan şey, çeşitli isimlerle ünlü olmalarıdır. Farklı programlama dilleri bunları farklı adlar, örneğin işlevler, yöntemler, alt rutinler, prosedürler vb. Böyle bir terminolojiyle karşılaşırsanız, bu eğitimde tartışacağımız aynı kavramı hayal edin.

İki sayı dizisi tanımlayacağımız bir programla başlayalım ve ardından her diziden en büyük sayıyı bulacağız. Aşağıda, belirli bir sayı kümesinden maksimum sayıyı bulmaya yönelik adımlar verilmiştir -

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4.    If max is less than Li
5.       Set max = Li
6.    If Li is last number from the list then
7.       Print value stored in max and come out
8. Else prepeat same process starting from step 3

Yukarıdaki programı C programlama diline çevirelim -

#include <stdio.h>

int main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int i, max;
   
   /* Process first set of numbers available in set1[] */
   max = set1[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set1[i] ) {
         max = set1[i];
      }
      i = i + 1;
   }
   
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = set2[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set2[i] ) {
         max = set2[i];
      }
      i = i + 1;
   }
   printf("Max in second set = %d\n", max );
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Max in first set = 50
Max in second set = 501

Yukarıdaki örnek konusunda net iseniz, neden bir işleve ihtiyacımız olduğunu anlamak kolaylaşacaktır. Yukarıdaki örnekte, yalnızca iki sayı kümesi vardır, küme1 ve küme2, ancak her kümeden maksimum sayıları bulmak için 10 veya daha fazla benzer sayı kümesine sahip olduğumuz bir durumu düşünün. Böyle bir durumda, 10 veya daha fazla kez tekrar etmemiz gerekecek ve sonuçta program tekrarlanan kodla çok büyük hale gelecektir. Bu tür bir durumla başa çıkmak için, programlamamızda tekrar tekrar kullanılacak kaynak kodunu tutmaya çalıştığımız fonksiyonlar yazıyoruz.

Şimdi C programlama dilinde bir fonksiyonun nasıl tanımlanacağına bakalım ve daha sonraki bölümlerde nasıl kullanılacağını anlatacağız.

Bir Fonksiyonun Tanımlanması

C programlama dilinde bir fonksiyon tanımının genel biçimi aşağıdaki gibidir -

return_type function_name( parameter list ) {
   body of the function
   
   return [expression];
}

C programlamadaki bir işlev tanımı, bir işlev başlığı ve bir işlev gövdesinden oluşur . İşte bir işlevin tüm bölümleri -

  • Return Type- Bir işlev bir değer döndürebilir. return_typeişlevin döndürdüğü değerin veri türüdür. Bazı işlevler, bir değer döndürmeden istenen işlemleri gerçekleştirir. Bu durumda, dönüş_türü anahtar kelimedirvoid.

  • Function Name- Bu, işlevin gerçek adıdır. İşlev adı ve parametre listesi birlikte işlev imzasını oluşturur.

  • Parameter List- Parametre, yer tutucu gibidir. Bir işlev çağrıldığında, parametre olarak bir değer iletirsiniz. Bu değer, gerçek parametre veya bağımsız değişken olarak adlandırılır. Parametre listesi, bir fonksiyonun parametrelerinin türü, sırası ve sayısı ile ilgilidir. Parametreler isteğe bağlıdır; yani, bir işlev hiçbir parametre içermeyebilir.

  • Function Body - İşlev gövdesi, işlevin ne yaptığını tanımlayan bir dizi deyim içerir.

Bir Fonksiyon Çağırma

Bir C işlevi oluştururken, işlevin ne yapması gerektiğine dair bir tanım verirsiniz. Bir işlevi kullanmak için, tanımlanmış bir görevi gerçekleştirmek üzere o işlevi çağırmanız gerekir.

Şimdi yukarıdaki örneği bir fonksiyon yardımıyla yazalım -

#include <stdio.h>

int getMax( int set[] ) {
   int i, max;
   
   max = set[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set[i] ) {
         max = set[i];
      }
      i = i + 1;
   }
   return max;
}
main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int max;

   /* Process first set of numbers available in set1[] */
   max = getMax(set1);
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = getMax(set2);
   printf("Max in second set = %d\n", max );
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Max in first set = 50
Max in second set = 501

Java'daki Fonksiyonlar

C programlamadaki işlevler konusunda net iseniz, bunları Java'da da anlamak kolaydır. Java programlama onları şöyle adlandırırmethodsancak kavramların geri kalanı aşağı yukarı aynı kalır.

Aşağıda Java ile yazılmış eşdeğer program verilmiştir. Çıktıyı görmek için çalıştırmayı deneyebilirsiniz -

public class DemoJava {
   public static void main(String []args) {
      int[] set1 = {10, 20, 30, 40, 50};
      int[] set2 = {101, 201, 301, 401, 501};
      int max;

      /* Process first set of numbers available in set1[] */
      max = getMax(set1);
      System.out.format("Max in first set = %d\n", max );

      /* Now process second set of numbers available in set2[] */
      max = getMax(set2);
      System.out.format("Max in second set = %d\n", max );
   }
   public static int getMax( int set[] ) {
      int i, max;
      max = set[0];
      i = 1;    
      
      while( i < 5 ) {
         if( max <  set[i] ) {
            max = set[i];
         }
         i = i + 1;
      }
      return max;
   }
}

Yukarıdaki program yürütüldüğünde, aşağıdaki sonucu verir -

Max in first set = 50
Max in second set = 501

Python'daki Fonksiyonlar

Bir kez daha, C ve Java programlamadaki fonksiyon kavramını biliyorsanız, Python çok farklı değildir. Aşağıda Python'da bir işlevi tanımlamanın temel sözdizimi verilmiştir -

def function_name( parameter list ):
   body of the function
   
   return [expression]

Python'da bu işlev sözdizimini kullanarak, yukarıdaki örnek aşağıdaki gibi yazılabilir -

def getMax( set ):
   max = set[0]
   i = 1   
   
   while( i < 5 ):
      if( max <  set[i] ):
         max = set[i]
      
      i = i + 1
   return max

set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]

# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max
    
# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max

Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -

Max in first set =  50
Max in second set =  501