C Fonksiyon Türleri

0 210

C Fonksiyon Türleri; Bir programda işimizi kolaylaştırması için birden fazla fonksiyon kullanmaktayız. Bunlardan bazıları önceden tanımlı olsa da bazılarını bizim kendimiz tanımlamamız gerekmektedir.

C Fonksiyon Türlerine Örnek

C Fonksiyon Türlerine örnek olarak bir problemi ele aldık. Kullanıcı tarafından girilen tam sayının asal olup olmadığını hesaplayan programı 4 farklı yolla aynı işlemleri hesaplamasını sağlayacağız. C Fonksiyon Türleri adı altında bu kontrolle beraber 4 farklı C Fonksiyon Türleri göreceğiz.

Örnek 1: Hiçbir argümanın iletilmediği ve geri dönüş değerinin olmaması durumu

#include <stdio.h>

void checkPrimeNumber();

int main()
{
    checkPrimeNumber();    // argument is not passed
    return 0;
}

void checkPrimeNumber()
{
    int n, i, flag=0;

    printf("pozitif bir tamsayı girin: ");
    scanf("%d",&n);

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0)
        {
            flag = 1;
        }
    }
    if (flag == 1)
        printf("%d bir asal sayı değildir.", n);
    else
        printf("%d bir asal sayıdır.", n);
}

CheckPrimeNumber () fonksiyonu kullanıcıdan veriyi ister ve aldığı verinin sayı olup olmadığını kontrol eder. Fonksiyonun türü dönüşü olmayan türden olduğu için hiçbir veri dönmez.

Örnek 2: Hiçbir argümanın iletilmediği ancak geri dönüş değerinin olması durumu

#include <stdio.h>
int getInteger();

int main()
{
    int n, i, flag = 0;

    n = getInteger();   // no argument is passed 

    for(i=2; i<=n/2; ++i)
    {
        if(n%i==0){
            flag = 1;
            break;
        }
    }

    if (flag == 1)
        printf("%d bir asal sayı değildir.", n);
    else
        printf("%d bir asal sayıdır.", n);

    return 0;
}

int getInteger()   // kullanıcı tarafından girilen tam sayıyı döndürür
{
    int n;

    printf("pozitif bir tamsayı girin: ");
    scanf("%d",&n);

    return n;
}

N = getInteger () deyimi, işleve argüman iletilmediğini belirtir. Ve, fonksiyondan döndürülen değer n’ye atanır. Burada, getInteger () işlevi kullanıcıdan veri alır ve onu döndürür. Uygulamanın asıl amacı olan asallık kontrolü main fonksiyonunun içindedir.

Örnek 3: Argümanların iletildiği ancak geri dönüş değerinin olmaması durumu

#include <stdio.h>
void checkPrimeAndDisplay(int n);

int main()
{
    int n;

    printf("pozitif bir tamsayı girin: ");
    scanf("%d",&n);

    // n is passed to the function
    checkPrimeAndDisplay(n);

    return 0;
}

// void indicates that no value is returned from the function
void checkPrimeAndDisplay(int n) 
{
    int i, flag = 0;

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0){
            flag = 1;
            break;
        }
    }
    if(flag == 1)
        printf("%d bir asal sayı değildir.",n);
    else
        printf("%d bir asal sayıdır.", n);
}

Kullanıcı tarafından girilen tamsayı değeri checkPrimeAndDisplay () fonksiyonuna geçirilir. Burada, checkPrimeAndDisplay () işlevi, iletilen değerin asallığını kontrol eder ve geri dönüş sağlar.

Örnek 4: Argümanların iletildiği ve geri dönüş değerinin olması durumu

#include <stdio.h>
int checkPrimeNumber(int n);

int main()
{
    int n, flag;

    printf("pozitif bir tamsayı girin: ");
    scanf("%d",&n);

variable
    flag = checkPrimeNumber(n);

    if(flag == 1)
        printf("%d bir asal sayı değildir.",n);
    else
        printf("%d bir asal sayıdır.",n);

    return 0;
}

int checkPrimeNumber(int n)
{
    int i;

    for(i=2; i <= n/2; ++i)
    {
        if(n%i == 0)
            return 1;
    }

    return 0;
}

Kullanıcının girdiği veri checkPrimeNumber () fonksiyonuna iletilir. CheckPrimeNumber () fonksiyonu, iletilen değerin asal olup olmadığını kontrol eder. İletilen argüman bir asal sayı ise, fonksiyon 0 döndürür. İletilen argüman asal olmayan bir sayıysa, fonksiyon 1 döndürür. Dönüş değeri bayrak değişkenine atanır. Bayrağın 0 mı yoksa 1 mi olduğuna bağlı olarak, main () fonksiyonunda uygun bir mesaj yazdırılır.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.