Mobil Programlama

iOS

DERS PROGRAMI
iOS 201 Ders Programı

Fonksiyon Çağrıları ile İlgili Örnek C Programları

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

ÖRNEK 1:

C(n,r)=n!/(r! (n-r)!) kombinasyon formülünün hesaplanacağı bir C programı yazalım.

n adet veri içinden r’li gruplar oluşturulmak istersek (grup içindeki sıralamanın önemi yoksa), bu tür grupların sayısını yukarıdaki kombinasyon formülüyle bulabiliriz.

 

KOMBİNASYON PROGRAMININ LİSTESİ:

 

float fakt(int);

#import <Foundation/Foundation.h>

int main(int argc,const char *argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
    
    float cnr;
    int n,r;
    NSLog(@"\nn=");
    scanf("%i",&n);
    NSLog(@"\nr=");
    scanf("%i",&r);
    cnr=fakt(n)/(fakt(r)*fakt(n-r));
    NSLog(@"\nC(%i,%i)=%8.0f\n\n",n,r,cnr);
}
float fakt(int n)
{
    float f;
    int i;
    f=1;
    for(i=1; i<=n; i++)
        f=f*i;
    return f;
}

 

 

PROGRAMIN ÇIKTISI:


 

ÖRNEK 2:

ax2 + bx + c = 0 şeklinde verilen ikinci derece denkleminin kökleri hakkında bilgi veren bir C fonksiyonu geliştirelim.

Yukarıdaki biçimde verilen ikinci derece denklemde bildiğimiz gibi, köklerin varlığını anlayabilmek için denklemin diskriminantına bakmamız gerekir. Diskriminant;

Δ =b2-4ac

şeklinde tanımlanmıştır.

Burada, 

  • Δ<0 ise denklemin gerçel (reel) kökü yoktur.
  • Δ=0 ise denklemin iki kökü birbirine eşittir. Bu duruma iki kat kök, çakışık kök veya katlı kök adı verilir. Kökler;

x1=x2=-b/(2a)

şeklinde hesaplanır.

  • Eğer Δ>0 ise, bu durumda iki farklı gerçel kök mevcuttur ve bunlar;

X1=(-b-√Δ )/(2a) X2=(-b+√Δ )/(2a)

şeklinde hesaplanır.

İkinci Derece Denkleminin Kökleri Hakkında Bilgi Veren C Fonksiyonu ve Çağıran Programla Kullanılışı:

 

void denk_iki_derece(float a,float b,float c);

#include <math.h>
#import <Foundation/Foundation.h>

int main(int argc,const char *argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];

    float x,y,z;
    NSLog(@"\na KATSAYISI...");
    scanf("%f",&x);
    NSLog(@"\nb KATSAYISI...");
    scanf("%f",&y);
    NSLog(@"\nc KATSAYISI...");
    scanf("%f",&z);
    denk_iki_derece(x,y,z);
}

/*İKİNCİ DERECE DENKLEMİNİ ÇÖZEN C FONKSİYONU*/
void denk_iki_derece(float a,float b,float c)
{
    float delta,kok1,kok2,g;
    delta=b*b-4*a*c;
    if(delta<0)
    {
        NSLog(@"\nDENKLEMIN GERCEK KOKU YOKTUR\n");
        return;
    }
    else if(delta==0)
    {
        kok1=-b/(2*a);
        NSLog(@"\nKOK1=KOK2=%8.3f\n\n",kok1);
        return;
    }
    else
    {
        g=exp(0.5*log(delta));
        kok1=(-b+g)/(2*a);
        kok2=(-b-g)/(2*a);
        NSLog(@"\nKOK1=%8.3f",kok1);
        NSLog(@"\nKOK2=%8.3f\n\n",kok2);
    }
}

 

 

ÖRNEK ÇIKTILAR:

x2 + x + 1 = 0 denkleminin çözümü:

 

x2 -5x + 6 = 0 denkleminin çözümü:

 

x2 -2x + 1 = 0 denkleminin çözümü: