Return to Snippet

Revision: 54241
at December 16, 2011 09:02 by sleepnir


Updated Code
#include <stdio.h>

/*
Fibonacci Dizisi oluşturmak için kullanacağımız fonksiyonu yazıyoruz.
Bu fonksiyon n. Fibonacci sayısına kadar olan diziyi ekrana yazdıracak.
Bu fonksiyon geriye hiçbir değer döndürmeyeceği için void olarak tanımlıyoruz.
*/

void FibonacciDizisi(int diziUzunlugu) {
	int a,b,c,sayac;

/*a'ya -1'i b'ye 1'i atıyoruz.
Bunu neden yaptığımıza gelirsek fibonacci sayılarını bulabilmemiz için bu şekilde atamamız gerekiyor.
Niye olduğunu fonksiyonumuz üzerinde bir örnekle açıklayalım.
Mesela diziUzunlugu = 3 olsun.
for döngüsü işlemeye başladı. 
sayac= 0 iken c= a+b yani (-1)+(1)=0 oluyor => c=0
c'yi ekrana yazdırdık.
Şimdi a'yı b'ye, b'yi c'ye eşitledik eşledik. a=1 b=0
Yine c= a+b oldu c=1
c'yi ekrana yazdırdık.
Yine a=b, b=c. a=0, b=1
c= a+b oldu c=1
c'yi ekrana yazdırdık c=1
İlk 3 sayıyı yazdırmış olduk. 0 1 1
*/
	a=-1;
	b=1;
	for(sayac=0;sayac<diziUzunlugu; sayac++) {
	  c=a+b;
	  printf("%d\n", c);
	  a=b;
	  b=c;
	}

}

/* 
Şimdi bize n. Fibonacci sayısını verecek olan fonksiyonu yazıyoruz.
Bize n. Fibonacci sayısını geri döndüreceği için int olarak tanımlıyoruz.
Yani x diye integer türünde bir değişkenimizin olduğunu varsayarsak:
x = FibonacciSayisi(10);
diyerek x'e 10.Fibonacci sayısını atayabiliriz.
*/

int FibonacciSayisi(int n) {
/* 
Dikkat ederseniz ilk fonksiyonumuzdaki a,b, sayac değişkenini burada tekrar tanımlıyoruz.
Çünkü ilk fonksiyondaki a,b ve sayac değişkenleri ilk fonksiyonun kapsama alanındaydı, yani ilk fonksiyonun lokal değişkenleriydi.
Bir nevi { } yani kıvırcıklar değişkenlerin kapsama alanını da gösteriyor...
*/
	int a,b,sayac;
	a=-1;
	b=1;

/*Yine ilk fonksiyondaki gibi a=-1 b=1 diyoruz.
Bu sefer döngünün içinde 2 değişken kullandık. 3 taneyle olandan farkı yok, maksat marjinallik...
*/

	for(sayac=0;sayac<n;sayac++) {
	  b += a;
	  a = b-a;
	}
	return b;

}

// Sıra geldi ana fonksiyonumuza...

int main() {
	 int dizi,sayi,secim;
/*Kullanıcıya 1 veya 2'yi girerek istenilen fonksiyonu seçmesini sağlıyoruz. */
	 printf("n elemanli Fibonacci Dizisi icin 1'i\n");
	 printf("n. Fibonacci Sayisi icin 2'yi tuslayiniz: ");

	 scanf("%d", &secim);

	 if(secim == 1) {
	   printf("n degerini giriniz:");
	   scanf("%d",&dizi);
	   FibonacciDizisi(dizi);
	 }

	 else if(secim == 2) {
	   printf("n degerini giriniz:");
	   scanf("%d",&sayi);
//Gördüğünüz üzere FibonacciSayisi fonksiyonunun dönüş değerini direkt printf ile ekrana yazdırabiliyoruz. Like a Boss.
	   printf("%d\n", FibonacciSayisi(sayi));
	 }
//Kullanıcı 1 veya 2 dışında birşey tuşlarsa, ona bunu yapmaması gerektiğini aşağıdaki else bloğuyla söylüyoruz.
	 else {
	   printf("\nbeyin.dll not found.\n");
	   printf("\nLutfen 1 -bir- veya 2 -iki-'yi tuslayin...\n");
	 }

	 return 0;
}

Revision: 54240
at December 16, 2011 08:41 by sleepnir


Updated Code
#include <stdio.h>

/*
Fibonacci Dizisi oluşturmak için kullanacağımız fonksiyonu yazıyoruz.
Bu fonksiyon n. Fibonacci sayısına kadar olan diziyi ekrana yazdıracak.
Bu fonksiyon geriye hiçbir değer döndürmeyeceği için void olarak tanımlıyoruz.
*/

void FibonacciDizisi(int diziUzunlugu) {
	int a,b,c,sayac;

/*a'ya -1'i b'ye 1'i atıyoruz.
Bunu neden yaptığımıza gelirsek fibonacci sayılarını bulabilmemiz için bu şekilde atamamız gerekiyor.
Niye olduğunu fonksiyonumuz üzerinde bir örnekle açıklayalım.
Mesela diziUzunlugu = 3 olsun.
for döngüsü işlemeye başladı. 
sayac= 0 iken c= a+b yani (-1)+(1)=0 oluyor => c=0
c'yi ekrana yazdırdık.
Şimdi a'yı b'ye, b'yi c'ye eşitledik eşledik. a=1 b=0
Yine c= a+b oldu c=1
c'yi ekrana yazdırdık.
Yine a=b, b=c. a=0, b=1
c= a+b oldu c=1
c'yi ekrana yazdırdık c=1
İlk 3 sayıyı yazdırmış olduk. 0 1 1
*/
	a=-1;
	b=1;
	for(sayac=0;sayac<diziUzunlugu; sayac++) {
	  c=a+b;
	  printf("%d\n", c);
	  a=b;
	  b=c;
	}

}

/* 
Şimdi bize n. Fibonacci sayısını verecek olan fonksiyonu yazıyoruz.
Bize n. Fibonacci sayısını geri döndüreceği için int olarak tanımlıyoruz.
Yani x diye integer türünde bir değişkenimizin olduğunu varsayarsak:
x = FibonacciSayisi(10);
diyerek x'e 10.Fibonacci sayısını atayabiliriz.
*/

int FibonacciSayisi(int n) {
/* 
Dikkat ederseniz ilk fonksiyonumuzdaki a,b, sayac değişkenini burada tekrar tanımlıyoruz.
Çünkü ilk fonksiyondaki a,b ve sayac değişkenleri ilk fonksiyonun kapsama alanındaydı, yani ilk fonksiyonun lokal değişkenleriydi.
Bir nevi { } yani kıvırcıklar değişkenlerin kapsama alanını da gösteriyor...
*/
	int a,b,sayac;
	a=-1;
	b=1;

/*Yine ilk fonksiyondaki gibi a=-1 b=1 diyoruz.
Bu sefer döngünün içinde 2 değişken kullandık. 3 taneyle olandan farkı yok, maksat marjinallik...
*/

	for(sayac=0;sayac<n;sayac++) {
	  b += a;
	  a = b-a;
	}
	return b;

}

// Sıra geldi ana fonksiyonumuza...

int main() {
	 int dizi,sayi,secim;
/*Kullanıcıya 1 veya 2'yi girerek istenilen fonksiyonu seçmesini sağlıyoruz. */
	 printf("n elemanli Fibonacci Dizisi icin 1'i\n");
	 printf("n. Fibonacci Sayisi icin 2'yi tuslayiniz: ");

	 scanf("%d", &secim);

	 if(secim == 1) {
	   printf("n degerini giriniz:");
	   scanf("%d",&dizi);
	   FibonacciDizisi(dizi);
	 }

	 else if(secim == 2) {
	   printf("n degerini giriniz:");
	   scanf("%d",&sayi);
	   printf("%d\n", FibonacciSayisi(sayi));
	 }
//Kullanıcı 1 veya 2 dışında birşey tuşlarsa, ona bunu yapmaması gerektiğini aşağıdaki else bloğuyla söylüyoruz.
	 else {
	   printf("\nbeyin.dll not found.\n");
	   printf("\nLutfen 1 -bir- veya 2 -iki-'yi tuslayin...\n");
	 }

	 return 0;
}

Revision: 54239
at December 16, 2011 08:40 by sleepnir


Updated Code
#include <stdio.h>

/*
Fibonacci Dizisi olu�turmak için kullanaca�ımız fonksiyonu yazıyoruz.
Bu fonksiyon n. Fibonacci sayısına kadar olan diziyi ekrana yazdıracak.
Bu fonksiyon geriye hiçbir de�er döndürmeyece�i için void olarak tanımlıyoruz.
*/

void FibonacciDizisi(int diziUzunlugu) {
	int a,b,c,sayac;

/*a'ya -1'i b'ye 1'i atıyoruz.
Bunu neden yaptı�ımıza gelirsek fibonacci sayılarını bulabilmemiz için bu �ekilde atamamız gerekiyor.
Niye oldu�unu fonksiyonumuz üzerinde bir örnekle açıklayalım.
Mesela diziUzunlugu = 3 olsun.
for döngüsü i�lemeye ba�ladı. 
sayac= 0 iken c= a+b yani (-1)+(1)=0 oluyor => c=0
c'yi ekrana yazdırdık.
�imdi a'yı b'ye, b'yi c'ye e�itledik e�ledik. a=1 b=0
Yine c= a+b oldu c=1
c'yi ekrana yazdırdık.
Yine a=b, b=c. a=0, b=1
c= a+b oldu c=1
c'yi ekrana yazdırdık c=1
İlk 3 sayıyı yazdırmı� olduk. 0 1 1
*/
	a=-1;
	b=1;
	for(sayac=0;sayac<diziUzunlugu; sayac++) {
	  c=a+b;
	  printf("%d\n", c);
	  a=b;
	  b=c;
	}

}

/* 
�imdi bize n. Fibonacci sayısını verecek olan fonksiyonu yazıyoruz.
Bize n. Fibonacci sayısını geri döndürece�i için int olarak tanımlıyoruz.
Yani x diye integer türünde bir de�i�kenimizin oldu�unu varsayarsak:
x = FibonacciSayisi(10);
diyerek x'e 10.Fibonacci sayısını atayabiliriz.
*/

int FibonacciSayisi(int n) {
/* 
Dikkat ederseniz ilk fonksiyonumuzdaki a,b, sayac de�i�kenini burada tekrar tanımlıyoruz.
�ünkü ilk fonksiyondaki a,b ve sayac de�i�kenleri ilk fonksiyonun kapsama alanındaydı, yani ilk fonksiyonun lokal de�i�kenleriydi.
Bir nevi { } yani kıvırcıklar de�i�kenlerin kapsama alanını da gösteriyor...
*/
	int a,b,sayac;
	a=-1;
	b=1;

/*Yine ilk fonksiyondaki gibi a=-1 b=1 diyoruz.
Bu sefer döngünün içinde 2 de�i�ken kullandık. 3 taneyle olandan farkı yok, maksat marjinallik...
*/

	for(sayac=0;sayac<n;sayac++) {
	  b += a;
	  a = b-a;
	}
	return b;

}

// Sıra geldi ana fonksiyonumuza...

int main() {
	 int dizi,sayi,secim;
/*Kullanıcıya 1 veya 2'yi girerek istenilen fonksiyonu seçmesini sa�lıyoruz. */
	 printf("n elemanli Fibonacci Dizisi icin 1'i\n");
	 printf("n. Fibonacci Sayisi icin 2'yi tuslayiniz: ");

	 scanf("%d", &secim);

	 if(secim == 1) {
	   printf("n degerini giriniz:");
	   scanf("%d",&dizi);
	   FibonacciDizisi(dizi);
	 }

	 else if(secim == 2) {
	   printf("n degerini giriniz:");
	   scanf("%d",&sayi);
	   printf("%d\n", FibonacciSayisi(sayi));
	 }
//Kullanıcı 1 veya 2 dı�ında bir�ey tu�larsa, ona bunu yapmaması gerekti�ini a�a�ıdaki else blo�uyla söylüyoruz.
	 else {
	   printf("\nbeyin.dll not found.\n");
	   printf("\nLutfen 1 -bir- veya 2 -iki-'yi tuslayin...\n");
	 }

	 return 0;
}

Revision: 54238
at December 16, 2011 08:35 by sleepnir


Initial Code
#include <stdio.h>

/*
Fibonacci Dizisi oluşturmak için kullanacağımız fonksiyonu yazıyoruz.
Bu fonksiyon n. Fibonacci sayısına kadar olan diziyi ekrana yazdıracak.
Bu fonksiyon geriye hiçbir değer döndürmeyeceği için void olarak tanımlıyoruz.
*/

void FibonacciDizisi(int diziUzunlugu) {
	int a,b,c,sayac;

/*a'ya -1'i b'ye 1'i atıyoruz.
Bunu neden yaptığımıza gelirsek fibonacci sayılarını bulabilmemiz için bu şekilde atamamız gerekiyor.
Niye olduğunu fonksiyonumuz üzerinde bir örnekle açıklayalım.
Mesela diziUzunlugu = 3 olsun.
for döngüsü işlemeye başladı. 
sayac= 0 iken c= a+b yani (-1)+(1)=0 oluyor => c=0
c'yi ekrana yazdırdık.
Şimdi a'yı b'ye, b'yi c'ye eşitledik eşledik. a=1 b=0
Yine c= a+b oldu c=1
c'yi ekrana yazdırdık.
Yine a=b, b=c. a=0, b=1
c= a+b oldu c=1
c'yi ekrana yazdırdık c=1
İlk 3 sayıyı yazdırmış olduk. 0 1 1
*/
	a=-1;
	b=1;
	for(sayac=0;sayac<diziUzunlugu; sayac++) {
	  c=a+b;
	  printf("%d\n", c);
	  a=b;
	  b=c;
	}

}

/* 
Şimdi bize n. Fibonacci sayısını verecek olan fonksiyonu yazıyoruz.
Bize n. Fibonacci sayısını geri döndüreceği için int olarak tanımlıyoruz.
Yani x diye integer türünde bir değişkenimizin olduğunu varsayarsak:
x = FibonacciSayisi(10);
diyerek x'e 10.Fibonacci sayısını atayabiliriz.
*/

int FibonacciSayisi(int n) {
/* 
Dikkat ederseniz ilk fonksiyonumuzdaki a,b, sayac değişkenini burada tekrar tanımlıyoruz.
Çünkü ilk fonksiyondaki a,b ve sayac değişkenleri ilk fonksiyonun kapsama alanındaydı, yani ilk fonksiyonun lokal değişkenleriydi.
Bir nevi { } yani kıvırcıklar değişkenlerin kapsama alanını da gösteriyor...
*/
	int a,b,sayac;
	a=-1;
	b=1;

/*Yine ilk fonksiyondaki gibi a=-1 b=1 diyoruz.
Bu sefer döngünün içinde 2 değişken kullandık. 3 taneyle olandan farkı yok, maksat marjinallik...
*/

	for(sayac=0;sayac<n;sayac++) {
	  b += a;
	  a = b-a;
	}
	return b;

}

// Sıra geldi ana fonksiyonumuza...

int main() {
	 int dizi,sayi,secim;
/*Kullanıcıya 1 veya 2'yi girerek istenilen fonksiyonu seçmesini sağlıyoruz. */
	 printf("n elemanli Fibonacci Dizisi icin 1'i\n");
	 printf("n. Fibonacci Sayisi icin 2'yi tuslayiniz: ");

	 scanf("%d", &secim);

	 if(secim == 1) {
	   printf("n degerini giriniz:");
	   scanf("%d",&dizi);
	   FibonacciDizisi(dizi);
	 }

	 else if(secim == 2) {
	   printf("n degerini giriniz:");
	   scanf("%d",&sayi);
	   printf("%d\n", FibonacciSayisi(sayi));
	 }
//Kullanıcı 1 veya 2 dışında birşey tuşlarsa, ona bunu yapmaması gerektiğini aşağıdaki else bloğuyla söylüyoruz.
	 else {
	   printf("\nbeyin.dll not found.\n");
	   printf("\nLutfen 1 -bir- veya 2 -iki-'yi tuslayin...\n");
	 }

	 return 0;
}

Initial URL


Initial Description
Fibonacci dizileri ile ilgili fonksiyonlara örnek. -Yorumlu/Açıklamalı-

Initial Title
Fibonacci Dizisi - Örnek (Yorumlu/Açıklamalı)

Initial Tags


Initial Language
C