Şuana kadar kodlarımızı main fonksiyonunun içine yazdık. Şimdi işleri daha da kolaylaştırmak için başka fonksiyonlar yazacağız.
int main() {
int a = 5, b = 6;
int min;
if (a < b) {
min = a;
}
else {
min = b;
}
cout << min << endl;
}
// bu kodu daha kısa yazabiliriz:
int main() {
int a = 5, b = 6;
int min = (a < b) ? a : b;
cout << min << endl;
}
// ama dikkat ederseniz ne kadar kısa olursa olusn minimum değeri hesaplayan kod parçasını sadece bir kere kullanabiliyoruz. Fonksiyonlardaki temel maksadımız tekrar tekrar kullanabileceğimiz kod parçaları oluşturmaktır.
int min(int a, int b) {
return (a < b) ? a : b;
}
int main() {
int a = 5, b = 6;
int minimum = min(a, b);
cout << minimum << endl;
}ilk başta olayları daha karmaşık hale getirdiğimizi düşünebilirsiniz ama aslında kolaylaştırdık.
- Artık başka yerlerde kullanabileceğimiz bir fonksiyonumuz var.
- Bu fonksiyon sadece 1 kere kullanılacak olsa bile karmaşıklığı azaltıyor. Çünkü artık bu kodu okuyan diğer kullanıcılar(yazılımcılar yani bizler) artık oradaki ifadenin minimum değeri vereceğini biliyor. Bu durumsa kodun okunaklılığını büyük ölçüde artırıyor.
#include <iostream>
using namespace std;
int menu() {
cout << "Yapmak istediginiz islemi seciniz:"
<< "1.Toplama"
<< "2.Cikarma"
<< "3.Carpma"
<< "4.Bolme" << endl;
int secim; cin >> secim; return secim;
}
double deger_al(bool ilk) {
cout << (ilk?"lutfen 1. sayiyi giriniz: ":"lutfen 2. sayiyi giriniz: ") << endl;;
double d; cin >> d; return d;
}
void sonuc_yazdir(double d) {
cout << "sonuc:\t" << d << endl;
}
double toplama(double a, double b) { return a + b; }
double cikarma(double a, double b) { return a - b; }
double carpma(double a, double b) { return a * b; }
double bolme(double a, double b) { return a / b; }
void hesapla(int secilen) {
double a, b, c;
a = deger_al(true);
b = deger_al(false);
switch (secilen){
case 1:
c = toplama(a, b);
break;
case 2:
c = cikarma(a, b);
break;
case 3:
c = carpma(a, b);
break;
case 4:
c = bolme(a, b);
break;
}
sonuc_yazdir(c);
}
int main() {
hesapla(menu());
}
#include <iostream>
using namespace std;
int main() {
cout << "Yapmak istediginiz islemi seciniz:"
<< "1.Toplama"
<< "2.Cikarma"
<< "3.Carpma"
<< "4.Bolme" << endl;
int secim; cin >> secim;
double a, b, c;
cout << "lutfen 1. sayiyi giriniz: " << endl;
cin >> a;
cout << "lutfen 2. sayiyi giriniz: " << endl;
cin >> b;
switch (secim) {
case 1:
c = a + b;
break;
case 2:
c = a - b;
break;
case 3:
c = a * b;
break;
case 4:
c = a / b;
break;
}
cout << "sonuc:\t" << c << endl;
}
gördüğünüz üzere fonksiyonları kullanmak kodumuzu daha uzun belki de daha karmaşık hale getirdi. Muhtemelen şuanlık yazacağımız çoğu ufacık programda fonksiyon yazmak bize büyük bir avantaj sağlamayacaktır. Fonksiyonel programlamanın avantajı programın boyutu artınca ve tekrar edilen kod sayısı artınca öne çıkıyor.


Leave a Reply