Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

FONKSİYONLAR.

Benzer bir sunumlar


... konulu sunumlar: "FONKSİYONLAR."— Sunum transkripti:

1 FONKSİYONLAR

2 Çabuk Gözden Geçirme Fonksiyon nedir? Örnekler:
Belli bir işi gerçekleştiren bir kod modülüdür. Örnekler: İki sayıdan büyüğünü belirleyen fonksiyon Bir isim listesini sıralayan fonksiyon

3 Yönetim Benzerliği Boss Function Max Function Sort Function
Bir fonksiyon, belli görevler için kesin işleri temsil edebilir Boss Function Yönetim fonksiyonu Max Function Sort Function Sıralama fonksiyonu En büyük fonksiyonu

4 Önemli Genel Kavram #1 Bölmek ve Almak: büyük programları daha küçük fonksiyon serileri halinde bölün Karmaşıklığı yönetmeye yardım eder Büyük programlar oluşturmayı daha kolay hale getirir Program hatalarını ayıklamaya yardım eder

5 Önemli Genel Kavram #2 Soyutlama: çoğu zaman, bir fonksiyonun ne yaptığını bilmeye ihtiyaç duyarsınız, fakat gerçekten nasıl yaptığını değil. Yine karmaşıklığı yönetmeye yardım eder Nasıl çalıştığını anlamadan da başka insanların kodlarını kullanabilirsiniz,

6 Önceden-paketlenmiş Fonksiyonları Kullanmak
Standart C pek çok önceden-paketlenmiş kütüphane içerir: ctype.h: karakter işleme math.h: matematiksel fonksiyonlar stdio.h: standart giriş/çıkış stdlib.h: rastgele sayılar, hafıza işleme string.h: metin işleme time.h: tarih/saat fonksiyonları Tüm bunlar Kitapta detaylı olarak vardır.

7 Fonksiyon Tanımlaması Fonksiyon Çağrımı
Fonksiyon Kavramları Fonksiyon Prototipi Fonksiyon Tanımlaması Fonksiyon Çağrımı

8 Fonksiyon Prototipi Size fonksiyonun ne tür bir veri beklediğini ve ne tür bir veri geri döndüreceğini söyler, İki fonksiyonun “konuşmasına” imkan tanıyan bir iletişim protokolünü temsil eder. Daha önce oluşturulmuş bir fonksiyonu kullanmak isterseniz prototipleri okumasını öğrenmeye ihtiyaç duyarsınız.

9 sqrt Fonksiyonu Return data type Function argument data type
double sqrt (double); Bu fonksiyon bu yüzden bir double değeri kabul eder ve bir double değeri geri döndürür. Return data type Function argument data type Geri dönen veri tipi Fonksiyon bağımsız değikeni veri tipi

10 #include <stdio.h> #include <math.h> main () {
sqrt() kullanımı #include <stdio.h> #include <math.h> main () { double value; value = sqrt(9.0);/*function call*/ /* fonksiyon çağrımı */ printf ("%f", value); }

11 KENDİ FONKSİYONLARINIZI OLUŞTURMAK

12 Kendi Fonksiyonlarınızı Oluşturmak
#include <stdio.h> int square(int); main () { printf("%d ", square(5)); } int square(int y) return y * y; Function Prototype: must be declared at top of program. Fonksiyon Prototipi: programın en başında bildirilmeli Fonksiyon çağrımı: fonksiyonu ele alır Function Call: invokes the function Function Definition: contains the actual function code. Fonksiyon tanımlaması: gerçek fonksiyon kodlarını içerir Returns a value back up to main. Main’e bir değer geri döndürür.

13 Programı Anlamak Main Function Square function Main (Ana) Fonksiyonu
“Take this Integer!” Bu tamsayıyı al “Here’s the answer. It’s an integer!” Cevap burada. O bir tamsayı! Square function Kare fonksiyonu

14 Fonksiyon Kalıbı Programınıza fonksiyonlar eklerken bu kalıbı kullanın. geri dönecek-değer-tipi fonksiyon-adı (parametre-listesi); { değişken tanımlamaları çalışma deyimleri; geri döndürme deyimi (seçmeli bu dersin dışında); } Function Prototype: must be declared at top of program. Fonksiyon prototipi: programın en başında bildirilmelidir. Function Definition: contains the actual function code. Fonksiyon Tanımları: gerçek fonksiyon kodlarını içerir.

15 Fonksiyonlar Gözden Geçirme

16 Hızlı Gözden Geçirme Fonksiyon nedir?
Belli bir işi gerçekleştiren bir kod modülüdür.

17 Fonksiyonların Faydaları
Deneyimler göstermektedir ki büyük programlar geliştirmek ve bakımını sağlamak için en iyi yol onu daha küçük bileşenler veya modüllerden inşaa etmektir. C’de bu tür modüller fonksiyonlar olarak bilinir Her modül, genel olarak programın bütününden daha basit ve daha yönetilebilirdir. Bu kavram Böl ve Al olarak aynı zamanda bileşimde gizleme olarak bilinir

18 Böl ve Al Böl ve Al: büyük programları daha küçük fonksiyon serileri halinde bölün Karmaşıklığı yönetmeye yardım eder Büyük programlar oluşturmayı daha kolay hale getirir Program hatalarını ayıklamaya yardım eder

19 Gizlemek Soyutlama: çoğu zaman, bir fonksiyonun ne yaptığını bilmeye ihtiyaç duyarsınız, fakat gerçekten nasıl yaptığını değil. Yine karmaşıklığı yönetmeye yardım eder Nasıl çalıştığını anlamadan da başka insanların kodlarını kullanabilirsiniz,

20 Gizlemek Bir kereden daha fazla kullanılabilecek kodlarınız varsa, onu bir fonksiyon içine koyabilir ve fonksiyonu birçok kere çağırabilirsiniz. Kod uzunluğunu ve karmaşıklığını azaltır Kod içindeki hata olasılığını azaltır

21 Fonksiyon Kavramları (yeniden gözden geçirme)
Fonksiyon Prototipi Fonksiyon Tanımlaması Fonksiyon Çağrımı

22 PROTOTİPLEME KURALLARI

23 Tanımlamaya karşı Fonksiyon Prototipleme
Fonksiyon prototipi ve fonksiyon tanımı aynı veri tiplerini içermelidir. Bununla birlikte, Prototip: parametrelerin isimlerini dahil etmeye ihtiyaç duymazsınız, fakat parametre veri tiplerini dahil etmelisiniz. e.g. int square (int); Tanım: Tüm parametrelerin isimlerini veri tiplerini dahil etmelisiniz. e.g. int square (int y)

24 Fonksiyonlarınızı isimlendirmek
Değişkenlerde olduğu gibi fonksiyonların isimlendirilmesi önemlidir Fonksiyonunuza, fonksiyonun ne yaptığını açıkça anlatan bir isim vermelisiniz hata ayıklamaya yardım eder başkalarının kodunuzu okumasına yardım eder İlk harfi ve ek kelimelerin başlangıcını büyütün E.g. float CalculateTax( int iIncome ) ;

25 Fonksiyonlarla iyi programlama
Bir fonksiyon bir ve yalnızca bir yararlı işi gerçekleştirmeldir Fonksiyonunuz için birden fazla işi belirten isimler görürseniz onu birbirinden ayrı fonksiyonlara ayırma zamanıdır, örneğin; CalculateTaxAndPrintReturnAndSaveFile(); - ugh VergiyiHesaplaVeYazGeriDöndürVeDosyayıKaydet(); -offf Bir programda birşeyleri bir kereden fazla yapıyorsanız, o iş için fonksiyon yazmalısınız

26 Daha İyi Programlama Bir projede birşeyler yapması için bir fonksiyon yazdıysanız ve aynı işin bir başka projede de yapılmasını istiyorsanız, fonksiyonu yeniden kullanmalısınız. Fonksiyonda, program veya projenin başka bir kısmında bulunan veriye bağlı olarak iç çalışma yapmayın (fonksiyon veriyi yalnızca parametreleri yoluyla almalıdır)

27 Geri Döndürülen Değer Tipleri
Bir fonksiyondan yalnızca bir değer geri döndürebilirsiniz (bunun bizim üzerinde durmayacağımız bazı yolları vardır) Eğer bir geri döndürme tipi dahil etmediyseniz varsayılan değer tamsayıdır. Örnek: max (int, int); Benzerdir: int max (int, int); Genellikle net olması en iyisidir. Ben burada ikincisini öneririm.

28 void: hiçbir şey demektir
Boşluk geri döndürmek void: hiçbir şey demektir Bu nedenle boşluk geri döndüren fonksiyon hiçbir şey geri döndürmez. Bu yüzden, burada bir geri döndürme deyimine ihtiyaç yoktur. Örnek: void PrintIntro (int);

29 Parametre Veri Tipleri
Geri dönüş değerlerinden farklı olarak, istediğiniz kadar parametre verebilirsiniz. Parametre listesinde bir veri tipi bulundurmuyorsanız varsayılan değer tamsayıdır. Örneğin; negate (); Benzeri: int negate (int); Yine, ben daha açık olan ikincisini öneriyorum.

30 Uyarı Değişkenleri bildirmekten farklı olarak, tamsayılardan farklı olan çoklu değişkenler için açıkça tip belirtilmelidir. For example TakeInTwoFloats( float x, y ) ; x için bir gerçel sayı ve y için tamsayı (varsayılan) bekleyecektir! Bu veri kaybıyla sonuçlabacaktır (gerçelden tamsayıya) Bunun yerine şöyle yazmalısınız: TakeInTwoFloats(float x, float y);

31 Void’leri geçmek Example:
Parametre listesinde void’i kullanırsanız, fonksiyon hiç parametre almaz. Example: void printIntro (void);

32 Bir Başka Örnek #include <stdio.h> int maximum(int, int, int); main() { printf("Maximum is: %d\n", maximum(5, 7, 3)); } int maximum(int x, int y, int z) int max = x; if (y > max) max = y; if (z > max) max = z; return max; Fonksiyon prototipi: bu fonksiyon üç tamsayıyı alır ve bir tamsayı geri döndürür. Function Prototype: this function takes three ints, and returns one int. Fonksiyon tanımlaması Function Definition Geri dönüş deyimi Return statement

33 BAĞIMSIZ DEĞİŞKEN ZORLAMASI

34 Bağımsız Değişken Zorlaması
Veri otomatik olarak prototipte tarif edilen veri tipine uymaya zorlanır. Bu veri kaybına neden olabilir. (Yukarıdaki , TakeInTwoFloats örneğine bakın) Bir çeşit kalıba dökme gibi çalışır. Bu genellikle iyi bir şey değildir, bu nedenle prototipe bağlılık! Fonksiyonun beklediği veri tipine geç!

35 Örnek: Bağımsız Değişken Zorlaması
Aşağıdaki fonksiyon prototipi verilmiştir: int square(int); Ve, biz fonksiyonu bir gerçel değerle çağırıyoruz: printf("%d ", square(5.7)); Bağımsız değişken zorlaması olduğu için, 5.7 değeri 5 olarak kesilmiştir. Bu yüzden bir veri kaybına sahip oluyoruz.

36 FAALİYET ALANINI ANLAMAK

37 Bir programda değişkene nerede başvurulabileceğini belirler.
Faaliyet Alanı Bir programda değişkene nerede başvurulabileceğini belirler. Faaliyet alanını anlayarak programlarınızı: daha modüler hataları daha kolay tespit edilebilen bir hale getirebilirsiniz. Genellikle globallere karşı local değişkenler tartışmalarında ortaya çıkarlar.

38 Globallere karşı Lokal Değişkenler
Herhangi bir fonksiyonun dışında bildirilmiş bir değişkendir. Program içinde herhangi bir fonksiyon tarafından başvurulabilir Local: Bir fonkiyonun içinde bildirilmiş bir değişkendir. Yalnızca o fonksiyon tarafından başvurulabilirler. Bir fonksiyon içinde bir lokal değişkeniniz ve aynı isimde bir global değişkeniniz varsa, lokal olan kullanılır.

39 Örnek Aynı isimde bir lokal değişkeniniz ve bir global değişkeniniz varsa lokal olan kullanılır. If you have a local variable and a global variable with the same name, the local one is used. /* This program demonstrates global variables and scope */ /* Bu program global değişkenleri ve kullanım alnlarını göstermektedir */ #include <stdio.h> void a (void); void b (void); int x = 1; /* Global Variable */ /* Global Değişken */ main () { printf ("In main, x equals: %d\n", x); a(); b(); return 0; } void a (void) { int x = 100; printf ("In function (a), x equals: %d\n", x); void b (void) { printf ("In function (b), x equals: %d\n", x++); In main, x equals: 1 In function (a), x equals: 100 In function (b), x equals: 1 In main, x equals: 2 main’de, x eşittir: 1 fonksiyon (a)’da, x eşittir: 100 fonksiyon (b)’de, x eşittir: 1 main’de, x eşittir: 2

40 Global Değişkenlerden Sakının!
Şimdi global değişkenleri biliyorsunuz, onları asla kullanmayın! Neden? Bir global değişken kullanırsanız, herhangi bir fonksiyon onu değiştirebilir Bu problemleri izleyerek bulmayı son derece zorlaştırır. Programınızın modülaritesini yıkar.

41 değer geçişi C’de bir parametre bir fonksiyona geçtiğinde ve değişken bu fonksiyon tarafından değiştirildiğinde, fonksiyonun çağrıldığı yere geri dönüldüğünde değer değişmez (bununla ilgili geçiş dizileri ve geçiş işaretçi tipleri ile ilgili istisnalar vardır) Bu bütün programlama dillerinde geçerli değildir.

42 Fonksiyonlarınızı Belgeleyin (gerekli!)
Kabul edilebilir bir yol tanımlamaların aşağıdaki gibi önceden verilmesi: /**************************************** * Name: CalculateTax (İsim: CalculateTax (vergi hesaplama)) * Params: floats for Income, Tax Rate(Parametreler:Income(gelir), Tax Rate(vergi oranı) için gerçel sayılar * Action: calculates tax based on given income and tax rate(İş: verilen gelir ve vergi oranına bağlı olarak vergi hesaplar) * Returns: float for the tax due (Geri dönenler: gerekli vergi için gerçel) ***********************************************/ float CalculateTax( float fIncome, float fTaxRate ) { … code…. } /* end function CalculateTax */ /* CalculateTax fonksiyonu sonu */

43 İyi Programlama Alışkanlıkları
Fonksiyonun ne yaptığını ve döndürdüğünü güçlü, tam anlamıyla ve anlaşılır olarak tarif eden fonksiyon isimleri seçin. Ör: fiil-artı-nesne veya geri döndürülen değerin tanımı Aktif parametrelerinizin (fonksiyona geçirdiğiniz aktif veri gibi) fonksiyonun beklediği veri tipleri ile denk olduğundan emin olun Fonksiyonunuzdaki bütün parametreleri kullanıp kullanmadığınızdan emin olun, kullanmadıklarınızı kaybedersiniz. Parametrelerinizle ilgili tüm durumları belgeleyin.

44 Daha Fazla İyi Programlama Alışkanlığı
Bir fonksiyonun parametrelerini yaklaşık olarak yedi ile sınırlayın. Araştırmalar insanların yedi parçadan daha fazla bilgiyi bir kerede takip edemediğini göstermiştir. (ör: bu nedenle telefon numaraları 7 haneli)

45 Daha Fazla İyi Programlama Alışkanlığı
Giriş parametrelerini değişkenlerle çalışır gibi kullanmayın onları direk olarak değiştirmeyin - bunun yerine fonksiyonda bir başka değişken tanımlayın, bunu giriş değişkenine eşitleyin ve bunun yerine yeni değişkeni kullanın Eğer fonksiyon bir değer geri döndürecekse, birşeyleri olası tüm koşullar altında döndürdüğünden emin olun.


"FONKSİYONLAR." indir ppt

Benzer bir sunumlar


Google Reklamları