C++ Cetvel Ornegi (Recursive) Fonksiyonlar (1 İzleyici)

Nishimura

Üye
Katıldı
Mesajlar
29
Yaşadığın yer
Moskova
Kredi
0
Merhabalar Arkadaslar.. Bu benim BM'de Okulda yaptigim bir Calisma idi Sizinlede paylasicam Anlatimi Kisa olarak Yaptim.. lazim Olana Bize %10luk odev Istenmisti bu ornek...

Kod:
const int UzDiz = 66; // Dizi Uzunlugu..
const int Don = 6; // Dongu Recursive..
void RFonksiyon(char dizi[], int a, int b, int c); // Recursive fonksiyonumuz...
int main()
{
	char cetvel[UzDiz]; // dizimiz... cetvel icin..
	int i;
	for (i = 1; i < UzDiz - 2; i++) // burada dizimizi 64 adet.. bosluk ekleniyor...yerleri belirmek icin...
		cetvel[i] = ' ';
	
	cetvel[UzDiz - 1] = '\0'; // dizimizin 65 kismina null karakteri eklniyor.. bitis cizgisi icin...
	int max = UzDiz - 2; // dizimizin yane cetvelimizin maxmumum uzunluk degeri... 64
	int min = 0; // dizimizin cetvelin yane minimum kisalik degeri...
	
	cetvel[min] = cetvel[max] = '|'; // dizimizin yane cetvelin sonuna ve en basina cizgi ekleniyor... cetvel icin..
	cout << cetvel << endl; // daha sonra gosterliyor.. cout.. standardi iel..
	
	for (i = 1; i <= Don; i++) // bu dongu sayesinde..orta ve cetvelin alt kismi gerceklesiyor.. carpim olarak....
	{
		RFonksiyon(cetvel, min, max, i); // fonksiyona basvuru...
			cout << cetvel << endl; // fonksiyon cikis standart cout..
		for (int j = 1; j < UzDiz - 2;j++) // burada tekrar dizi bosluk birakilip yukarda alt satira gecildigi icin.. yerleri belirleniyor cetvelin..
			cetvel[j] = ' ';
	}

	system("pause"); // Ekranda Durdurmak icin...
}
void RFonksiyon(char dizi[], int a, int b, int c)
{
	if (c == 0)  // Biliyorsunuzki recursive fonksiyonlarda.. mutlaka bir bitis yeri olmali yoksa devamli kendini cagirmaya devam eder.. bitirmek amaciyal..2x2 olarak.. 0 laninca.. return edip durdursun diye..
		return;

	int bolum = (b + a) / 2; // burada bolme islemi en onemli kisimlardan bir tanesi.. 2 sini bolup ortasini buluyor..bu bolme devam ediyor. tabe.. her geri gidisinde sifirlaniyor..
	dizi[bolum] = '|'; // burada cizgi eklniyor bolundukten sonra..
	RFonksiyon(dizi, a, bolum, c - 1); // burada ise recursiv sol...
	RFonksiyon(dizi, bolum, b, c - 1); // burada ise recursiv sag eklniyor..
}[/COLOR]


"TARAFIMCA EKLENEN SCRIPTLER BANA AIT OLUP KOPYALANMASI ANINDA (ALINTI) IBARESI EKLENMESI RICA OLUNUR"
 

Bu konuyı kimler okuyor

Benzer konular

Top