Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders10.pdf · Bilgisayar Programlama 1...
Transcript of Bilgisayar Programlama 1hbahtiyar/dersler/icerik/Cplusplus-Ders10.pdf · Bilgisayar Programlama 1...
❖ Program yazarken bir takım işlemleri tekrar tekrar yapmamız gerektiği durumlarla karşılaşırız.
❖ Bu gibi durumlarda aynı işlemi yapacak fonksiyonlar yazarak, işimizi kolaylaştırırız.
❖ C++ da kendi fonksiyonumuzu tanımlarken, fonksiyonun döndürdüğü değişken tipine göre tanımlama yaparız.
❖ Dönüş değeri olmayan fonksiyonları ise void olarak tanımlarız.
Kaydedilen (ve tekrar kullanılan) adımlar
Fonksiyonların tanımlanması
değişken fonksiyon_adı ( parametreler ){
return dönüş_değeri;}
void fonksiyon (int sayi) {......yapılacak işlemler......}
int fonksiyon (int sayi) {......yapılacak işlemler......return sonuc;}
Fonksiyonların tanımlanması
int fonksiyon (int sayi) {......yapılacak işlemler......return sonuc;}
Dönüş türü int olacakParametre -> Fonksiyonu tanımlarken tanımladık.
Fonksiyonun sonucunda dönecek değer Başlangıçta tanımladığımız gibi int dönecek.
Parametre - Argüman Kavramları
❖ Fonksiyon tanımlanırken, yazılan değişkenlere parametre adı verilir.
❖ Fonksiyon çağrılırken gönderilen değere argüman denir.
Fonksiyonların tanımlanması❖ Fonksiyon tanımlanması iki şekilde yapılabilir:
❖ Ana Programdan Önce:...int topla (int X, int Y){ ...}...int main ( ){ ...}
Fonksiyonların tanımlanması❖ Fonksiyon tanımlanması iki şekilde yapılabilir:
❖ Ana Programdan Önce:
❖ Ana Programdan Sonra:
...int topla (int X, int Y){ ...}...int main ( ){ ...}
...int topla (int, int);...main ( ){ ...}...int topla (int X, int Y)
Return komutu
❖ return komutunun iki önemli işlevi vardır.
❖ Eğer fonksiyon void olarak tanımlanmadıysa fonksiyonun geri dönüş değerini döndürür.
❖ Fonksiyonu bitirir.
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
topla fonksiyonu int değeri döndürecek
sayi_1 ve sayi_2 parametrelerini kullanacak
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
toplama işlemini yaptık
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
sonucu döndürdük
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
sonucu döndürdük
Örnek: Toplama yapan fonksiyon❖ Örnek olarak iki tamsayı değerini alıp toplama işlemi
yapan ve sonucu döndüren fonksiyon yazalım.
Derleyip Çalıştıralım? Neler oldu??
❖ Fonksiyonumuzdaki değişkenler ile global değişkenlerin tanım aralıklarını inceleyelim
Örnek: Toplama yapan fonksiyon
main() içerisinde tanımlı
❖ Fonksiyonumuzdaki değişkenler ile global değişkenlerin tanım aralıklarını inceleyelim
Örnek: Toplama yapan fonksiyon
topla() içerisinde tanımlı
Örnek void fonksiyonu❖ Her çağırdığımızda ekrana nasilsin? yazdıracak
fonksiyonu tanımlayalım.Dönüş değeri yok o yüzden void
olarak tanımladık
Örnek void fonksiyonu❖ Her çağırdığımızda ekrana nasilsin? yazdıracak
fonksiyonu tanımlayalım.Dönüş değeri yok o yüzden void
olarak tanımladık
ekrana nasilsin yazdı
Örnek void fonksiyonu❖ Her çağırdığımızda ekrana nasilsin? yazdıracak
fonksiyonu tanımlayalım.Dönüş değeri yok o yüzden void
olarak tanımladık
ekrana nasilsin yazdı
Fonksiyonu sonlandırdık.
Örnek Celcius to Fahrenheit❖ 3. Dersimizde yazdığımız Cel->Fah programını,
fonksiyon ile yazmaya çalışalım?
❖ Santigrad derece cinsinden verilmiş bir sıcaklığı Fahrenheit birimine çevirmek istediğimizde bu sayıyı 1.8 ile çarptıktan sonra 32 eklememiz gerekmektedir.
❖ Formülümüz: F = C * 1.8 +32.00
❖ C++’da klavyeden girilen bir sıcaklığı Fahrenheit cinsine çeviren program yazınız.
Örnek Celcius to FahrenheitFonksiyonu tanımladım double celcius parametresi ile işlem
yapacak sonucu double döndürecek.
Özyineli Fonksiyonlar❖ Bazı özel durumlarda fonksiyonların kendini tekrar çağırıp aynı işlemi
tekrar yapmasını sağlamak isteriz.
❖ Bu şekilde yazılan fonksiyonlara özyineli (recursive) fonksiyonlar adı verilir.
❖ Özyineli fonksiyon yazarken dikkat etmemiz gereken birkaç önemli özellik vardır.
❖ Başlangıç değeri.
❖ Bitiş değeri
❖ Adım sayısı
❖ Yukarıdaki kurallara dikkat ederek tanımlamazsak, fonksiyonumuz yanlış çalışabilir.
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.
sayi parametresini aldı
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.
1 den büyük mü kontrol etti
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.
büyükse sayi ile çarptı ve sayi-1 hesaplaması için faktoriyel fonksiyonunu tekrar çağırdı.
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.
değilse 1 döndürdü 0! =11! = 1
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
5 * faktoriyel(4)
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
5 * faktoriyel(4)
5 *4 * faktoriyel(3)
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
5 * faktoriyel(4)
5 *4 * faktoriyel(3)
5 *4 *3* faktoriyel(2)
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
5 * faktoriyel(4)
5 *4 * faktoriyel(3)
5 *4 *3* faktoriyel(2)
5 *4 *3* 2* faktoriyel(1)
Özyineli Fonksiyonlar❖ Özyineli fonksiyon yapısını kullanarak faktoriyel
fonksiyonu yazalım.5 için düşünelim
5 * faktoriyel(4)
5 *4 * faktoriyel(3)
5 *4 *3* faktoriyel(2)
5 *4 *3* 2* faktoriyel(1)
5 *4 *3* 2*1
Örnek-Ödev❖ hacim isimli bir fonksiyonumuz olsun
❖ Fonksiyonumuz double alıp double döndürsün klavyeden girilen değerleri alıp,
❖ Numarasının son iki rakamı 1-10 arası olan öğrenciler KÜRENİN HACMİNİ V=4/3 pi r^3
❖ Numarasının son iki rakamı 11-20 arası olan öğrenciler SİLİNDİRİN HACMİNİ V = pi r^2 h
❖ hesaplayıp ekrana sonucu yazdıran program yazsın.
Kaynaklar!http://www.cplusplus.com/doc/tutorial/ !www.py4e.com !C++ How to program (Deitel) !Ferhat Özok Bilgisayar Programlama I ders notları
42