C++ Dersleri 4 –Fonksiyonlar(Alt Programlar)

C++ Dersleri 4 –Fonksiyonlar(Alt Programlar)

C++ da fonksiyonlar kullanmadanda program yazılabilir ancak fonksiyon kullanırsa sadece gerekli olan(çağrılan) fonksiyon çalışacağından  daha verimli(performanslı) programlar yazılır.Program gereksiz yere çalışmaz.

Kullanım şekli :

Erişim_denetleyicisi  döndürdüğü_değer_tipi  fonksiyonun_ismi(para
                                                       metre_listesi)

{

komutlar;

return deger;// döndürdüğü deger tipi  void ise yazılmaz.
}

>>Erişim denetleyicisi

  1. Public : Tüm paket içlerinde ve dışlarında herhangi bir engel olmaksızın erişilebilir ve çağırılabilir(Genel).
  2. Private : Sadece tanımlandığı paket içindeki sınıf içinde erişilebilir ve kullanılabilir(Özel).
  3. protected : tanımlandığı class’ın içinde ve o class’tan türetilmiş diğer class’ların içinde erişilebilir.fakat farklı pakette erişim yoktur.
  4. Friendly : bulunduğu assembly’nin (Dll veya Exe dosyası) içinde erişilebilirdir.

cpperisimdenetleyiciler

>>Döndürdüğü Değer Tipi

  1. int :
  2. char :
  3. double :
  4. float :
  5. String
  6. vs. vs. deger tipleri …
  7. void : değer döndürmeyecekse kullanılır.

>>Prametre Listesi

Fonksiyonda kullanılan değişkenler yer alır.Eğer hiçbir değişken yer almayacaksa parametre boş bırakılabilir.

Foksiyonun işlevini gerçekleştirirken kullanacağı değerlerin fonksiyonu çağıran program kodu aracılığıyla

geçilebilmesi için tanımlanan bir arayüzdür. Bu arayüzde fonksiyona geçilecek parametreler tipleri ile sıralanır.

Altprogramı main fonksiyonundan sonra tanımlayacaksak ön bildirim yapmamız gerekir.

//function Ön bildirim kullanma
void func(sadece_parametrenin_veri_tipi);//ön bildirim

void main()//ana fonksiyon

{

     func();

}

void func(parametre)//function

{

     ;

}
//function Ön bildirim yapmadan kullanma

void func(parametre)
{
     ;
}

void main()
{
     func(parametre);
}

Ör: 

// TestCpp.cpp : Defines the entry point for the console application.
//forumkod.com && ibrahimkaya.net

#include "stdafx.h"
#include "iostream"
#include "clocale"//Türkçe karakter destek komutun kütüphanesi
using namespace std;

void Dogru()
{
	int boy;
	cout<>boy;
	for(int i=0; i<boy; i++)
		cout<<"*"<<endl;
}

void dikÜcgen()
{
	int a,b;
	cout<>a;

	for (int i = 0; i < a; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			cout<<"*";
		}
		cout<<endl;
	}
}

void Dikdörtgen()
{
	int en,boy;
	cout<>en;
	cout<>boy;

	for(int i = 0; i < boy; i++)
	{
		for (int j = 0; j < en; j++)
		{
			cout<<"*";
		}
		cout<<endl;
	}
}

int Toplama()
{
	int sayi;
	
	int toplam = 0,sayac = 0;
	cout<>sayi;
	toplam += sayi;
	while(sayi != 0)
	{
		cin>>sayi;
		toplam += sayi;
		
		
		sayac++;
	}
	cout<<sayac<<"adet sayının toplamı"<<endl;
	return toplam;
}


int Cıkarma()
{
	int sayi;
	
	int fark = 0,sayac = 0;
	cout<>sayi;
	fark -= sayi;
	while(sayi != 0)
	{
		cin>>sayi;
		fark -= sayi;
		
		
		sayac++;
	}
	cout<<sayac<<"adet sayının Farkı"<<endl;
	return fark;
}

double Carpma(int sayi)
{
	
	
	int sayac = 0;
	double carp = 1;
	cout<>sayi;
	carp *= sayi;
	while(sayi != 0)
	{
		cin>>sayi;
		carp *= sayi;
		
		
		sayac++;
	}
	cout<<sayac<<"adet sayının Farkı"<<endl;
	return carp;
}


double Bölme(int);//Önizleme

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL,"türkish");//Türkçe karakter destek komutu
	cout<<"~~~~Geometrik Çizimler~~~~\n1-Doğru\n2Dikdörtgen\n3-DikÜçgen\n";
	cout<<"\n\n\nveya";
	cout<<"\n\n\n~~~~Matematiksel işlemler\1-Toplama\n2-Çıkarma\n3-Çarpma\n4-Bölme~~~~\n";
	char secim;
	cout<>secim;

	while(secim == 'g')
	{
		cout<>devam;

		switch(devam)
		{

		case 1:
			Dogru();
			break;

		case 2:
			Dikdörtgen();
			break;

		case 3: 
			dikÜcgen();
			break;

		default:cout<<"nothing";
		}
	}


	while(secim == 'm')
	{
		cout<>devam;

		switch(devam)
		{

		case 1:
			cout<<Toplama();
			break;

		case 2:
			Cıkarma();
			break;

		case 3: 
                        int x;
			Carpma(x);//bu şekilde paremetreli olarak da yazılabilir.Parametresi -> x
			break;

		case 4: 
                        int y;
			Bölme(y);
			break;

		default:cout<<"nothing";
		}
	}


	system("pause");
	return 0;
}

double Bölme(int sayi)//Main ana fonksiyondan sonra kullandık

{
	int sayi;
	
	int sayac = 0;
	double böl = 1;
	cout<>sayi;
	böl /= sayi;
	while(sayi != 0)
	{
		cin>>sayi;
		böl /= sayi;
		
		
		sayac++;
	}
	cout<<sayac<<"adet sayının Farkı"<<endl;
	return böl;
}