Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.

Benzer bir sunumlar


... konulu sunumlar: "4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama."— Sunum transkripti:

1 4. Hafta1 4. HAFTA

2 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama küçük ölçekte daha kolaydır  Küçük parçalara yoğunlaşmak kolaydır  Parçalara ayrılan problem çok sayıda insan tarafından paralel olarak çözülebilir  Yapısal programlama fonksiyonlarla mümkündür  Daha güvenli ve verimli kod üretimi

3 5. Hafta3 Fonksiyon(); ………. void fonksiyon() { } Ana Program Fonksiyon Fonksiyonlar (Functions)

4 4. Hafta4 Fonksiyonlara ait terimler  Tanıtım, prototip  Tanımlama  Kullanım  Parametre listesi  Dönüş tipi  Değişken kapsamları (Yerel, global,static,extern)  Değerle Çağırma (Call by value)  Referansla Çağırma (Call by reference)

5 4. Hafta5 Fonksiyon Tanımlama Format: Fonk_dönüş_değer_tipi fonksiyon_ismi (parametre_listesi){ gerekli değişken tanımlamaları; fonksiyon gövdesi; } Örnek: Çağrıldığı alandan aldığı tamsayının karesini döndüren fonksiyon tanımı: int kareAl(int x){ return x*x; }  Her fonksiyon bir değer döndürmek zorunda olmayabilir (void ). Örnek: Ekrana alınan parametreye göre mesaj yazdırma: void mesaj (int mesajNo){ switch(mesajNo){ case 0: cout<<“Mesaj 0”;break; case 1: cout<<“Mesaj 1”;break; default:cout<<“Tanımsız Durum”; }} Dikkat : Fonksiyon tanımı çağıran fonksiyondan önce yapılmalı. Eğer sonra yapılacaksa, tanıtım (prototip) mutlaka çağıran fonksiyondan önce yapılmalı

6 4. Hafta6 Fonksiyonların Yazılması  Fonksiyonlar 3farklı şekilde yazılabilir Bir fonksiyonun gövdesi Ana programdan (main) önce yazılabilir. Bir fonksiyonun gövdesi Ana programdan (main) önce yazılabilir. Prototipinin ana programdan önce yazılması koşuluyla fonksiyonun gövdesi Ana programdan sonra yazılabilir. Prototipinin ana programdan önce yazılması koşuluyla fonksiyonun gövdesi Ana programdan sonra yazılabilir. Fonksiyonun gövdesi bir başlık dosyasında yazılarak ana programda çağrılabilir. Fonksiyonun gövdesi bir başlık dosyasında yazılarak ana programda çağrılabilir. #include #include using namespace std; int kareKok(int a){ //Fonksiyonun gövdesi return a*a; return a*a;}main(){ int sayi; int sayi; cout<<"Kare almak icin bir sayi giriniz:"; cout<<"Kare almak icin bir sayi giriniz:"; cin>>sayi; cin>>sayi; int karekok=kareKok(sayi); int karekok=kareKok(sayi); cout<<“KARESI:"<<karekok<<endl; cout<<“KARESI:"<<karekok<<endl; system("PAUSE"); system("PAUSE"); return 0; return 0;} #include #include #using namespace std; int kareKok(int a);//prototip tanıtım main(){ int sayi; int sayi; cout<<"Kare almak icin bir sayi giriniz:"; cout<<"Kare almak icin bir sayi giriniz:"; cin>>sayi; cin>>sayi; int karekok=kareKok(sayi); int karekok=kareKok(sayi); cout<<“KARESI:"<<karekok<<endl; cout<<“KARESI:"<<karekok<<endl; system("PAUSE"); system("PAUSE"); return 0; return 0;} int kareKok(int a){ //Fonksiyonun gövdesi return a*a; return a*a;}

7 4. Hafta7 Örnek 4-1:Değer Döndürmeyen Fonksiyonlar #include #include using namespace std; void Univyaz(void) { cout<<"Sakarya Universitesi"<<endl; cout<<"Sakarya Universitesi"<<endl;} void Ciz(void) { for (int i=0;i<=20;i++) for (int i=0;i<=20;i++) cout<<'*'; cout<<'*'; cout<<endl; cout<<endl;} void Fakulte() { cout<<"Teknik Egitim"<<endl; cout<<"Teknik Egitim"<<endl;} main() { Univyaz(); Univyaz(); Ciz(); Ciz(); Fakulte(); Fakulte(); Ciz(); Ciz(); system("pause"); system("pause");}

8 4. Hafta8 Örnek 4-2:Faktöriyel ve Fibonacci #include #include long fakto (int fak){ int i=2, sonuc=1; for(;i<=fak;i++)sonuc*=i; return sonuc; } long fibo(int fib){//Fibonacci s sayıları: 0, 1,1,2,3,5,8,13,21,34,55, 89 ….. int fibo1=1, fibo2=1, geci, i=3; for(;i<=fib;i++){ geci=fibo1+fibo2; geci=fibo1+fibo2; fibo1=fibo2; fibo1=fibo2; fibo2=geci; fibo2=geci;}if(fib>1) return fibo2; return fibo2;else return 0; return 0;}main(){ int i; cout<<“Fibonacci ve faktöriyeli bulunacak değeri giriniz:”; cin>>i; cout<<“Faktoriyel (“<<i<<“):”<<fakto(i)<<endl; cout<<“Fibonacci (“<<i<<“):”<<fibo(i); }

9 4. Hafta9 Değişken Kapsamları  Yerel (local) değişkenler  Global değişkenler  Static değişkenler

10 4. Hafta10 #include<stdio.h> int x=4,y=4; //global değişkenler int f1(int a, int b){ int x=3;//f1 in yerel x değişkeni int y; ………….} void f2(void){ int x=4;//f2 nin yerel x değişkeni static int y=2;//f2 nin statik değişkeni ……….}main(){ int x=5;//main fonk. yerel x değişkeni y=10;……..}

11 4. Hafta11 Özyineleme (recursion) f1( )//recursive function { f1();//özyineleme f1();//özyineleme} Fonksiyonun kendi kendini çağırması ile döngüsel yapı kurulur. Nerelerde kullanabiliriz?  Seri hesaplamalarında  Döngüsel hesap zorluklarında

12 4. Hafta12 Özyineleme – Genel Kullanım Fonksiyon (int k) {…. if (k<0) return a; // dönüş noktası Fonksiyon(k-1); //özyineleme Fonksiyon(k-1); //özyineleme….} Not: Dönüş noktası kullanılmazsa sonsuz döngü kurulumuş olur

13 4. Hafta13 Özyineleme- örnek  Faktöriyel Hesabı n!=n*(n-1)! #include #include using namespace std; long fakto(int x){ if(x<=1) return 1; // dönüş else return (x*fakto(x-1)); // özyineleme } main() { int gir; int gir; cout<<"Faktoriyeli hesaplancak sayiyi giriniz:"; cout<<"Faktoriyeli hesaplancak sayiyi giriniz:"; cin>>gir;cout >gir;cout<<endl; cout<<"Faktoriyel("<<gir<<")="<<fakto(gir);cout<<endl; cout<<"Faktoriyel("<<gir<<")="<<fakto(gir);cout<<endl; system("pause"); system("pause");}

14 4. Hafta14 Özyineleme- örnek  Fibonacci 1 1 2 3 5 8 13 21 34 55 …….. Fibo(n)= Fibo(n-2)+Fibo(n-1) long fibo(int n){ if(n==2 || n==1) return 1; else return (fibo(n-1)+fibo(n-2)); }

15 4. Hafta15 Çalışma Soruları 1. Aşağıdaki programı do-while ile tekrar düzenleyiniz. for (c=getche(); (ch=getche())!='f'; ++i) { if (ch=='a') continue; else if (ch=='e') break; else printf("%c ",ch); printf("Next iteration\n"); }

16 4. Hafta16 2. c,d,e,f,g,h,i,j,k,l,m harfleri 0,1,2,3,..,9 rakamlarına karşılık gelecek şekilde eşleştirilmiştir. Klavyeden girilen bitişik formdaki harflerden oluşan harf dizisinin sayısal karşılığını veren programı yazınız. İlgili harflerin dışında giriş yapılırsa harf grubunun tamamlandığı varsayılmalıdır. Örnek ekran çıktısı: Girişiniz?efcds 2x10 3 +3x10 2 +0x10 1 +1x10 0 =2301 3. Klavyeden üç harfli(Türkçeye has karakter içermeyen) bir kelime girilmesini takiben bir cümle girilmesi istenir ve girilen cümlede daha önce belirlenen üç harfli kelimeden kaç adet olduğu ekrana yazdırılır. Cümlenin bittiği, nokta işareti ile anlaşılır. 4. Klavyeden girilen kelimelerin ve sayıların adedini bulan programı yazınız. Kelimeler harflerden, sayılar rakamlardan oluşur. Program ayrıca kurala uymayan girdilerin de adedini vermelidir. Sayı ve kelimeler birbirinden boşluk ile ayrılmalıdır. Girdi işlemi nokta işareti ile sonlandırılmalıdır. 5. 4. soruda girilen kelimelerin en uzununu ve en kısasını sayısal karşılıklarını verecek şekilde değiştiriniz.

17 4. Hafta17 6. Programınız klavyeden üç adet parametre almaktadır. Sırasıyla, bir karakter ve iki adet reel sayı (char,float,float).İlk parametre +, -, *,\ gibi dört işlem operatörüdür. Takip eden diğer iki parametre işleme sokulacak sayılardır.Her parametre arasında virgül olmalıdır. Aritmetik işlemin sonucu ekrana yazdırılmalıdır. Girişlerde hata olduğunda hata mesajı yazdırılmalıdır. Örnek1: Örnek2: Giriş? Giriş? +,3,4 %,3,4 Sonuç=7Hatalı parametre girişi 7. Dışarıdan girilen sayıyı Pascal üçgeninin satır sayısı olarak alan ve ilgili üçgene ait sayıları ekrana yazdıran (üçgensel formda) programı yazınız. Çözüm için fonksiyonları kullanınız. 8. Klavyeden girilen hexadecimal sayının onluk karşılığını ekrana bastıran programı yazınız.

18 4. Hafta18 9.Klavyeden üç adet parametre alan bir fonksiyon değer döndürmemektedir. İlk parametre başlangıç sayısı, ikinci parametre komşu kolon farkı, üçüncü parametre kolon adeti olacaktır. İlk kolon ve satır birinci parametre değeri ile başlayacak ve satırlar birer artarak aşağıya devam edecektir. Aynı satırdaki kolonların değeri soldaki kolona ikinci parametre değeri eklenerek bulunacaktır. Satır sayısının bulunması için; sağdaki kolonun en üst değeri, soldaki komşu sütunun en alttaki değerinden bir fazla olmalıdır. Parametreler birbirinden virgül veya boşluk ile ayrılabilir. Örnek Çıktı: Sayıları giriniz? 15,6,4 15 21 27 33 16 22 28 34 17 23 29 35 18 24 30 36 19 25 31 37 20 26 32 38


"4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama." indir ppt

Benzer bir sunumlar


Google Reklamları