160 likes | 404 Views
5.HAFTA. Dersin Adı :ALGORİTMA GELİŞTİME TEKNİKLERİ Dersin Kodu :YBS506. Konu:Fonksiyonlar. Giriş. Programlamada en önemli esaslardan biri “böl ve fethet” anlayışıdır. Her bir parçanın yönetilmesi programın tümünü yönetmekten daha kolaydır. Önceden tanımlı fonksiyonlar.
E N D
5.HAFTA Dersin Adı :ALGORİTMA GELİŞTİME TEKNİKLERİDersin Kodu :YBS506 Konu:Fonksiyonlar E-mail:speldek@bartin.edu.tr
Giriş Programlamada en önemli esaslardan biri “böl ve fethet” anlayışıdır. Her bir parçanın yönetilmesi programın tümünü yönetmekten daha kolaydır.
Önceden tanımlı fonksiyonlar C++ dili önceden tanımlı fonksiyonlardan oluşur. Haddi zatında bizim kullandığımız çoğu özellik birer fonksiyondurlar. Fonksiyonlar çağırılarak kullanırlar. Fonksiyon çağırmaları parametreli veya parametresiz olabilir.
Önceden tanımlı fonksiyonlar MathKütübane Fonksiyonları Programın ortak matematik fonksiyonları kullanmasına imkan sağlar <cmath> kütüphanesinin içerisinde tutulur. Örnek: cout<<sqrt(900.0); yukarıdaki ifade sonuç olarak 30 verecektir. sqrt parametre olarak double bir değer alır ve double bir değere döner.
Fonksiyonlar • Fonksiyon parametreleri aşağıdaki gibi olabilir • Sabit sqrt( 4 ); • Değişken sqrt( x ); • İfade sqrt( sqrt( x ) ) ; sqrt( 3 - 6x );
Fonksiyonlar Fonksiyonlar Programcıya programı modüle etme imkanı verir. Yerel Değişkenler Sadece fonksiyon içerisinde bilinen değişkenler Fonksiyonun içerisinde tanımlanan tüm değişkenler yerel değişkenlerdir Parametreler Fonksiyonlar parametre alabilir ve bu parametrelerle işlem yapabilir.
Fonksiyonlar Fonksiyonun işleyişi Veriyi alır İşlem yapar Sonucu döner Fonksiyon tanımlamanın formatı dönüş-değerfoksiyonİsmi(parametre listesi) { tanımlar ve yapılacaklar…. } Örnek: int karesi(int a) { return a*a; }
Örnek: Karesini bulan fonksiyon Fonksiyonun dönüş değeri Fonksiyonun ismi Fonksiyona gönderilecek değişken tipi • #include"stdafx.h" • #include<iostream> • usingnamespacestd; • int karesi(int); • int _tmain(intargc, _TCHAR* argv[]) • { • int a=4; • cout<<"Karesi : "<<karesi(a)<<endl; • cout<<"Karesi : "<<karesi(5)<<endl; • getchar(); getchar(); • return 0; • } • int karesi(int x) • { • return x*x; • } Fonksiyonun prototipini main’in üstünde tanımlıyoruz Fonksiyonumuza değişken vererek çağırıyoruz Fonksiyonumuzu sabit vererek çağırıyoruz Fonksiyonumuz Karesi : 16 Karesi : 25
Örnek: Kullanıcıdan değer alma, değerin karesini bulma ve ekrana yazdırma işlemlerini fonksiyonlarla yapan program. • #include<cstdlib> • #include<iostream> • usingnamespacestd; • int al(); • int karesi (int); • voidyazdir(int ); • intmain(intargc, char *argv[]) • {int x, xkare; • x=al(); • xkare=karesi(x); • yazdir(xkare); • system("PAUSE"); • return EXIT_SUCCESS; • } • int al() • {intsayi; • cout<<"Karesi AlinacakSayi : "; • cin>>sayi; • returnsayi; • } • int karesi(int a) • { • return a*a; • } • voidyazdir(intakare) • { • cout<<"\nGirilensayinin karesi"<<akare; • } Fonksiyonlarımızın prototipleri al() fonksiyonunu çağırıyoruz karesi() fonksiyonunu çağırıyoruz yazdir() fonksiyonunu çağırıyoruz
Örnek: Girilen üç tane değerin en büyüğünü bulan program. Fonksiyonlarımızın prototipleri • usingnamespacestd; • intmax(int, int, int); • void al(); • intmain(intargc, char *argv[]) • { • al(); • system("PAUSE"); • return EXIT_SUCCESS; • } • intmax(int a, int b, int c) • { • intenbuyuk; • enbuyuk=a; • if(b>enbuyuk) • enbuyuk=b; • if(c>enbuyuk) • enbuyuk=c; • returnenbuyuk; • } • void al() • { • int x, y,z; • cout<<"degerler : "; • cin>>x>>y>>z; • cout<<"En buyuk : "<<max(x,y,z)<<endl; • } al() fonksiyonu ile kullanıcıdan değerleri alıyoruz Buraya Dikkat!!! al() fonksiyonu içerisinde max() fonksiyonunu çağırıyoruz
Örnek:İstenilen sayının küpünü fonksiyon ile bulan program • usingnamespacestd; • int kup(int); • intmain(intargc, char *argv[]) • { • intdeger; • for(;;) • { • cout<<"\ndeger : "; • cin>>deger; • cout<<"kup : "<<kup(deger); • } • system("PAUSE"); • return EXIT_SUCCESS; • } • int kup (int a) • { • return a*a*a; • }
Örnek: Faktöriyeli fonksiyon ile bulan program • #include<cstdlib> • #include<iostream> • usingnamespacestd; • intfaktoriyel(int); • intmain(intargc, char *argv[]) • { • for(int i=1;i<=10;i++) • { • cout<<i<<"!="<<faktoriyel(i)<<endl; • } • system("PAUSE"); • return EXIT_SUCCESS; • } • intfaktoriyel(int a) • {int f=1; • for(int j=1;j<=a;j++) • f*=j; • return f; • } for döngüsü içerisindeki her “i” değeri için faktoriyel() fonksiyonu çağrılıyor.
Fonksiyonların Prototipi Örneklerde de gördüğümüz gibi fonksiyonların prototipleri dönüş değeri fonksiyonu ismi ve fonksiyonla gönderilecek değerleri içeriyor(intkaresi(int)). Eğer fonksiyon her hangi bir değer göndermiyorsa içine her hangi bir değer yazmaya gerekyok(int al()). Eğer fonksiyon her hangi bir değişken tipine dönmüyorsa dönüş tipine voidyazılmaldır(voidyazdir(int))
intmax(int, int, int); Fonksiyonun sadece bir tane dönüş değeri olabilir. Bir fonksiyon birden fazla değer alabilir. Fonksiyonun dönüş tipi int Fonksiyonun int tipinde üç tane değer alıyor.
C++ Matematik Fonksiyonları Bazı matematik fonksiyonlar
C++ Matematik Fonksiyonları Bazı matematik fonksiyonlar