Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu.

Benzer bir sunumlar


... konulu sunumlar: "Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu."— Sunum transkripti:

1 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar

2 Fonksiyon Tanımı Karmaşık ve uzun programları, küçük, basit ve belirli bir amacı olan program parçalarına bölebiliriz. Belirli bir işi yapan bu program parçalarına fonksiyon adı verilir. main ana fonksiyondur.

3 Fonksiyon Tanımı Örnek: İki fonksiyondan oluşan bir program

4 Fonksiyon Tanımı döndürme_tipi fonksiyon_ismi (parametre_ listesi) Fonksiyon Başlığı

5 Örnek:Girilen iki sayıdan büyük olanını bulan max fonksiyonu #include int max(int a, int b) { if (a>b) return a; else return b; } main() {int i=10; int j=15; int k; k=max(i,j); printf("maksimum deger=%d",k); return 0; }

6 Fonksiyon Tanımı Fonksiyon başlığına benzer, cümle sonunda noktalı virgül vardır. Fonksiyon prototipi program başında yer almalıdır. Böylece, derleyici, fonksiyon prototipini gördüğünde fonksiyon ismini tanır. Fonksiyon Prototipi int topla(int a); veya int topla(int);

7 Değer Döndürmeyen Fonksiyonlar Parametresiz Fonksiyonlar Parametreler, fonksiyonların çağırıldıkları yerden veri almasını sağlayan değişkenlerdir. Parametresiz, değer döndürmeyen fonksiyonlar çağırıldıkları yerden bir veri almayan ve herhangi bir veri geri döndürmeyen fonksiyonlardır.

8 Değer Döndürmeyen Fonksiyonlar Parametreli Fonksiyonlar çağırıldıkları yerden veri alan ama herhangi bir veri geri döndürmeyen tip fonksiyonlardır.

9 Değer Döndüren Fonksiyonlar çağırıldıkları yerden bir veri almayan fonksiyonlardır. Parametresiz Fonksiyonlar çağırıldıkları yere bir değer döndüren ve çağırıldıkları yerden bir veri almayan fonksiyonlardır.

10 Değer Döndüren Fonksiyonlar Parametreli Fonksiyonlar hem çağırıldığı yerden değer alan, hem de çağırıldığı yere değer döndüren fonksiyonlardır.

11 Çok Parametreli Fonksiyonlar döndürme_tipi fonksiyon_ismi (formal_parametre_listesi) Fonksiyonu çağırma cümlesi fonksiyon_ismi (gerçek_ parametre_listesi); Fonksiyon Başlığı

12 Çok Parametreli Fonksiyonlar

13 Değişken Kapsamı Değişken kapsamı, bir değişkenin tanımının programın hangi bölümünde geçerli olduğunu veya tanındığını gösterir. Yerel kapsam, değişkenin tanımlandığı fonksiyona ait olduğunu ve değişkene sadece tanımlandığı fonksiyon içinden erişilebilindiğini gösterir. Bu tip değişkenlerin tanımı fonksiyon içinde yapılır ve bu değişkenler fonksiyonun bitiminde bellekten silinirler. Genel kapsamlı bir değişken, fonksiyonların dışında tanımlanır ve tanımlamanın yapılmasından sonra yazılmış tüm fonksiyonlar tarafından tanınır ve kullanılır.

14 Değişken Kapsamı

15 f() fonksiyonu çağırıldığında f() fonksiyonu içinde Çıktı

16 Çok Fonksiyonlu Programlar Bir program birden fazla fonksiyondan oluşursa, main() fonksiyonu, istenen fonksiyonu çağırabilir veya bir fonksiyon başka bir fonksiyonu çağırabilir. #include int faktoriyel (int k); int kombinasyon (int n, int r); int main(void) { int k,s,cevap; printf(“Iki tamsayi giriniz:”); scanf(“%d%d”,&k,&s); cevap=kombinasyon(k,s); printf("Kombinasyon=%3d ",cevap); return(0); } int faktoriyel (int k) /*Faktoriyel hesabi*/ { int i, s=1; for(i=1;i<=k;++i) s*=i; return (s); } int kombinasyon (int n, int r) /*Kombinasyon hesabi*/ {int s; s=faktoriyel(n)/(faktoriyel(r)*faktoriyel(n-r)); return (s); }

17 Değişkenlerin Kullanım Hakları Global(Genel) veri tanımlamaları: –Programın en üstünde main dahil hiçbir blok içerisinde yer almayacak şekilde yapılan tüm tip tanımlamaları bütün ifadeler için globaldir. –Global değişkenler kendinden sonra kodlanan her C komutu içinde kullanılabilirler. –Global değişkenler program bellekte var olduğu sürece varlıklarını sürdürürler. –Herhangi bir fonksiyonun bu değişkene atadığı bilgiye bir diğer fomksiyon rahatlıkla ulaşabildiği için alt programlar ve fonksiyonlar arasında veri transferinde kullanılabilirler

18 Global değişken kullanım örneği float c(); //prototip int x; void a() { } int y; void b() { } float c() { } main() { } Burada verilen programda x ve y değişkenlerinin geçerliliği her fonksiyon için geçerli değildir. X değişkeni tüm fonksiyonların üstünde tanımlandığı için programın her yerinde kullanılabilirken, y değişkeni a() alt programının altında tanımlandığı için sadece b(), c() alt programları ve main için geçerlidir. a() alt programı için tanımsızdır. Prototipler sadece fonksiyona giriş/çıkış tiplerinin ne olduğunu derleyiciye bildirirken fonksiyon içinde kullanılacak değişkenler hakkında bilgiye sahip değildirler. C() fonksiyonu x ve y değişkenleinden sonra tanımlandığı için her iki değişkenide kullanabilir.

19 Lokal (Yerel) veri tanımlamaları Fonksiyonlar dahil herhangi bir blok içersinde yer alan tüm değişken tanımlamaları yerel tanımlamalardır. Bu tür değişkenler sadece tanımlandıkları blok içerisinde veya bu blok içinde yer alan diğer alt bloklar içersinde kullanılabilirler. Lokal değişkenlerin ömrü, bloğun icra edilme süresi kadardır. Lokal olarak tanımlanmış bir değişken ile global olarak tanımlanmış bir değişkenin aynı olması halinde her iki değişkende farklı bir değişken olarak ele alınır. Lokal değişkene yapılan atamalardan global değişken etkilenmez. Bloğun icrası bittiğinde lokal değişken iptal edileceğinden global değişken yine kullanım hakkını ele geçirir.

20 Lokal değişken kullanım örneği: #include int x=5;  global tanımlama void a() { int x=7;  lokal tanımlama printf(“ %d “,x); { int x=9;  blok içinde lokal değişken printf(“ %d”, x); } printf(“ %d ”,x); } main() { printf(“ %d”, x); a(); printf(“ %d \n”,x); } Program çıktısı:

21 Yerel değişkenleri varlığının korunması Belli bir bilginin sadece bir fonksiyon veya blok tarafından kullanılması fakat bloğun icrası bittiğinde değerin kaybolmayıp bloğun tekrar icrasına kadar korunması gerektiğinde değişken isminin önünde static anahtar kelimesi kullanılır. Global değişkenlerin önünde static anahtar kelimesinin kullanılması gerekmez.

22 Static anahtar kullanımına örnek #include int y=3; void a() { static int x=0; printf(" statik x \'in su anki degeri: %d dir\n",x); ++x; } main() {while (y>0) {printf("y\'nin degeri: %d dir\n",y); y--; a(); } #include int y=3; void a() { int x=0; printf(" statik x \'in su anki degeri: %d dir\n",x); ++x; } main() {while (y>0) {printf("y\'nin degeri: %d dir\n",y); y--; a(); } Ekran çıktısı: y’nin değeri 3’dir statik x’in değeri 0’dir y’nin degeri 2’dir statik x’in değeri 1’di, y’nin degeri 1’dir statik x’in degeri 2’dir Ekran çıktısı: y’nin değeri 3’dir statik x’in değeri 0’dir y’nin degeri 2’dir statik x’in değeri 0’di, y’nin degeri 1’dir statik x’in degeri 0’dir

23 Sabit tanımlama (Const) Const(sabit): değeri programın çalışması boyunca değiştirilemez const tip Belirleyici =değeri; const float PI=3.14; Tip belirtilmez ise tam sayı kabul edilir

24 Örnek: #include main() { const float PI=3.14; float r, Alan; scanf(“%f”,r); alan=PI*r*r; printf(“Alan=%f”,alan); }

25 Öz Yinemeli Fonksiyonlar (Recursive Functions) Kendini çağıran fonksiyonlardır Örneğin: Faktoriyel hesabı long fact(long i) { if( i<2) return 1; else return i* fact (i-1); } Örnegin: n=4 için fonksiyonun kendisini çağırdığı satır şöyledir: 4* fakt(3), 3*fact(2), 2*fact(1) 24=4*6  3*2  2*1


"Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu." indir ppt

Benzer bir sunumlar


Google Reklamları