Ö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ü: