Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Fonksiyon nedir? Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona.

Benzer bir sunumlar


... konulu sunumlar: "Fonksiyon nedir? Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona."— Sunum transkripti:

1

2 Fonksiyon nedir? Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren değişkenleri (argümanları) vardır. Genel olarak bir fonksiyonun görevi aşağıdaki şekilde gösterilmiştir.

3 Fonksiyon tanımlama Fonksiyonların girdilerine parametreler yada argumanlar denir. Bir fonksiyon bu parametreleri alıp bir işleme tabi tutar ve bir değer hesaplar. Bu değer, çıktı veya geri dönüş değeri (return value) olarak adlandırılır. Bir fonksiyonun kaç girişi olursa olsun sadece bir çıkışı vardır. C dilinde hazırlanan bir fonksiyonun genel yapısı şöyledir: DönüşTipi FonksiyonAdı(argüman listesi) argümanların tip bildirimleri { Yerel değişkenlerin bildirimi... fonksiyon içindeki deyimler veya diğer fonksiyonlar... return geri dönüş değeri; }

4 Fonksiyon Tanımlama-2 Dönüş_tipi: fonksiyon tarafından döndürülen değerin tipini belirtir. Bu, int, double gibi bir aritmetik tip veya gösterge olabilir. Dönüş_tipi olarak void anahtar sözcüğü kullanıldığında, fonksiyondan hiçbir değer döndürülmeyeceği belirtilmiş olur. void fonksiyonlar FORTRAN’daki SUBROUTINE’ler veya Pascal’daki procedure’ların karşılığıdır. Fonksiyon_adı: bir tanıtıcı sözcüktür. Argüman Listesi: virgülle ayrılmış ve önüne tipleri yazılmış biçimsel argüman veya parametre isimleri listesidir. Diğer bir fonksiyon tarafından çağrıldığında bu fonksiyona geçirilecek olan argümanların sayısını, sırasını ve tipini belirtir. Aynı zamanda, parametrelere, sadece fonksiyonun gövdesini oluşturan blok’un içinde anlamlı olan, isimler verir. Hiç parametresi olmayan bir fonksiyon da olabilir. Bu durum, parantezler içine void yazılarak açıkça gösterilir. Return: Kontrolün çağırana geri dönmesini sağlar. return deyiminden sonra gelen deyimler yerine getirilmez ve fonksiyon hemen çağrıldığı yere “geri döner”.

5 Tanımlama Örneği Örneğin iki sayının toplamını hesaplayacak bir fonksiyon şöyle tanımlanabilir: /* 1. yöntem*/ int topla(x,y) int x,y { int sonuc; sonuc = x + y; return sonuc; } /* 2. yöntem*/ int topla(int x,int y) { int sonuc; sonuc = x + y; return sonuc; } /* 3.yöntem*/ int topla(int x,int y) { return (x+y); } int topla( int x, y ) şeklindeki yazım hata verir.

6 Fonksiyon Çağrılması Bir fonksiyonu ana programdan çağırmak için genellikle bir değişkene değer döndürme şeklinde yapılır.Örneğin öndeki slaytta yer alan fonksiyonu ana programdan çağırmak için şöyle bir tanımlama yapılabilir. toplam=topla(5,4) Bu işlem satırında fonksiyona 5 ve 4 değerleri gönderiliyor. Geri dönen sonuç ise toplam değişkenine aktarılıyor.

7 Fonskiyon Çağırma şekli

8 Fonksiyon bildirimi Bir fonksiyonun bildirimi iki türlü yapılır: Ana programdan önce:... int topla(int x,int y) /* fonksiyon */ {... }... main() {... } Ana programdan sonra: Bu durumda fonksiyon prototipi ana programdan önce bildirilmelidir... int topla(int x, int y); /* fonksiyon örneği... main() {... }... int topla(int x, int y) /* fonksiyon */ {... } int topla(int, int); şeklinde de yazılabilir.

9 Örnek: 2 sayının toplanıp ekrana yazdırılması işleminin fonksiyon yardımıyla yapılması. #include int topla(int, int); /*** fonksiyon prototipi ***/ main(){ int toplam,a,b; printf("Iki sayi girin : "); scanf("%d %d",&a,&b); /* fonksiyon çağırılıp, a ve b değerleri parametre olarak aktarılıyor.*/ toplam = topla(a,b); printf("%d ve %d nin toplami %d dir.\n", a,b,toplam); getchar(); } /*** fonksiyon tanımlanması ***/ /* Bu fonksiyon iki tamsayıyı toplar */ int topla( int x, int y ){ int sonuc; sonuc = x + y; return sonuc; } Programda, klavyeden okunan a ve b değişkenleri fonksiyonuna parametre olarak aktarılmıştır. Bu değişkenlerin isimleri ile topla fonksiyonunda kullanılan değişkenlerin (x ve y) isimleri aynı olması zorunlu değildir. Burada a ve b değişkenleri sırasıyla x ve y değişkenleri yerine konmuştur.

10 Örnek: Faktöriyeli fonksiyonda hesaplayan program. #include int fakt (int n) { int i = 1,top=1; while (i<=n) { top *= i; i++; } return top; } main(){ int sayi = 4; printf("%d! = %d\n", sayi, fakt(sayi)); getchar(); } Fonksiyon aşağıdaki şekilde de yazılabilir. int fakt (int n) { int i = n; while (--n) i *= n; return i; }

11 Dizinin Fonksiyona Gönderilmesi Fonsiyonun bildirimi int fonk(int a[5]) //yada int fonk(int a[]) { işlemler} Dizinin gönderilmesi int dizi[5] fonk(dizi)

12 5 elemanlı bir dizinin elamanlarının toplamını fonksiyon yardımıyla hesaplayan program #include int topla (int sayi[],int eleman_sayi) { int toplam=0,i; for(i=0;i<5;i++) toplam+=sayi[i]; return toplam; } main(){ int sayi[5] = {4,3,2,5,6}; int eleman_sayi=5; printf("%d", topla(sayi,eleman_sayi)); getchar(); } Eğer dizinin boyutu fonksiyona gönderilmeyip, fonksiyonda boyutu hesaplanırsa kod aşağıdaki gibi yazılır. #include int topla (int sayi[]) { int toplam=0,i; for(i=0;i<=sizeof(sayi);i++) toplam+=sayi[i]; return toplam; } main(){ int sayi[5] = {4,3,2,5,6}; printf("%d", topla(sayi)); getchar(); }

13 Örnek 5 elemanlı bir dizi içindeki en büyük elemanı bir fonksiyon yardımıyla, en küçük elemanı başka bir fonksiyon yardımıyla bulup, bulunan bu en büyük ve en küçük elemanları da 3. bir fonksiyon yardımıyla ekrana yazan program.

14 Cevap #include int enb(int sayi[]) { int bul=sayi[0],i; for(i=1;i<5;i++) if(bulsayi[i]) bul=sayi[i]; return bul; } int yaz(x,y) { printf("En büyük=%d\nEn Küçük=%d",x,y); } main(){ int sayi[5] = {4,3,2,5,6}; int eb,ek; eb=enb(sayi); ek=enk(sayi); yaz(eb,ek); getchar();getchar (); }

15 Özyinemeli(Recursive) Fonksiyonlar Fonksiyonlar tekrarlama yapılarına göre temel olarak iki türlü düşünülebilir. Buna göre bir fonksiyonun içinde yine kendisinden bir parça bulunuyorsa bu fonksiyonlara özyinelemei (recursive) fonksiyon denilirken, fonksiyonun kendisini tekrar etmemesi durumunda döngülü (iterative) fonksiyon ismi verilir. Teorik olarak bütün döngülü (iterative) fonksiyonlar özyinelemeli (recursive) fonksiyon olarak yazılabilir (tersi de doğrudur).

16 Özyinemeli(Recursive) Fonksiyonlar En basit açıklama yöntemi olarak faktoriyel hesaplama fonksiyonu gösterilebilir. faktoriyel() { x=0 ise sonuç sıfırdır x=1 ise sonuç birdir x=n için ise sonuç n çarpı fonksiyon(n-1) dir. } Bu örnekteki gibi girilen değer sıfır yada bir olmadığı sürece fonksiyon sıfır yada bir ile karşılaşana kadar düzenli olarak n sayısından bir çıkartarak kendisini çağırmaktadır.

17 Klavyeden girilen sayıya kadar olan sayıları recursive fonksiyon yardımıyla toplayan program #include int topla(int a){ if(a==1) return 1; return a+ topla(a-1); } main() { int sayi; printf("sayı giriniz"); scanf("%d",&sayi); printf("sayıların toplamı:%d",topla(sayi)); getchar(); getchar(); }

18 Bir sayının faktöriyelini recursive fonksiyon ile bulan program int fakt(int n) { if (n==0) return 1 ; return n*fakt(n-1); } main(){ int sayi=4; printf("%d", fakt(sayi)); getchar(); }

19 Örnek:Kendini çağıran fonksiyon kullanarak, kullanıcıdan alınan bir sayı kadar tek sayıların toplamını bulan program. Örneğin; kullanıcı 4 girerse; nin toplamını bulup ekrana yazıyor. #include int topla(int n) { return ((n==1) ? 1 : (2*n-1)+topla(n-1)); } main() { int sayi; printf("sayı giriniz"); scanf("%d",&sayi); printf("Tek sayıların toplamı:%d",topla(sayi)); getchar(); getchar(); }

20 Klavyeden girilen bir metin içerisindeki büyük harfleri recursive fonksiyon ile yazan program #include recursive (char*,int,int); main() { char dizi[40],*ptr; int i,adet,x; ptr=dizi; printf("\n Bir Karakter Katari Giriniz \n\n "); gets(ptr); adet=strlen(ptr); x=0; printf("\n\n Girilen Metindeki Buyuk Harfler ==> "); recursive(ptr,adet,x); getch(); } recursive(char *ptr_1,int adet1,int i ) { if(adet1==0) return 1; if(isupper(ptr_1[i])) printf("%c",ptr_1[i]); recursive(ptr_1,adet1-1,i+1); }


"Fonksiyon nedir? Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona." indir ppt

Benzer bir sunumlar


Google Reklamları