FONKSİYONLAR.

Slides:



Advertisements
Benzer bir sunumlar
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Advertisements

Prof. Dr. Ahmet Arıkan Gazi Ü niversitesi Gazi Eğitim Fakültesi OFMAE Bölümü Matematik Eğitimi Anabilim Dalı.
Hafta 7: Öz Türleri ve Fonksiyonları BBY 306 Dizinleme ve Öz Hazırlama.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
AKRAN DESTEKLİ ÖĞRENME
BÖLÜM 1 TEMEL KAVRAMLAR. BÖLÜM 1 TEMEL KAVRAMLAR.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
BÖLÜM 4 PROGRAMLAMA DİLLERİ. PROGRAMLAMA DİLLERİNDE KULLANILAN VERİ TİPLERİ Bilgisayarda işlenen veriler iki türdür: Sayısal Alfasayısal.
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
Bağlama ve Kapsam Kavramları
Sevgili 8.sınıf öğrencisi; Kendi yeteneklerin, ilgilerin, değerlerin hakkında bilgi sahibi olmak ve daha doğru lise tercihi yapabilmek için lütfen öncesinde.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
KONULAR BÖLÜM: Kesirler, Ondalık Kesirler, Yüzde
FONKSİYONLAR.
EĞiTiMDE iLETiŞİM VE EĞiTiM ARAÇLARI
Algoritma ve Programlamaya Giriş
C’de Fonsiyonlar Aslı Ergün.
PROGRAMLI ÖĞRETİM Tanımı:
Basit ve Kısmi Korelasyon Dr. Emine Cabı
1. Bernoulli Dağılımı Bernoulli dağılımı rassal bir deneyin sadece iyi- kötü, olumlu-olumsuz, başarılı-başarısız, kusurlu-kusursuz gibi sadece iki sonucu.
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
İleri Algoritma Analizi
PPT 6 Kapsayıcı bir eğitim için nasıl bir sınıf yönetimi yaklaşımı benimsemeliyim? Sınıfında Yabancı Uyruklu Öğrenci Bulunan Milli Eğitim Bakanlığı Öğretmenlerinin.
Algoritma ve Programlamaya Giriş
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Hürriyet Anadolu Lisesi
İNTERNETTE ARAMAYI ÖĞRENİYORUM
Bilgisayarlara komut verme Remzi ÖZ
PROBLEM ÇÖZME VE ALGORİTMALAR
3.hafta METODLAR.
PARAMETRİK HİPOTEZ TESTLERİ
Bölüm 7 İfadeler ve atamalar.
BİLGİSAYAR programlama II
Bu konudaki her şeyi okuyun Microsoft SharePoint Haberler
NİŞANTAŞI ÜNİVERSİTESİ
Arduino Programlama Dili
NİŞANTAŞI ÜNİVERSİTESİ
ANALİTİK KİMYA DERS NOTLARI
Doğrusal Mantık Yapısı İle Problem Çözme
Evren-Örneklem, Örnekleme Yöntemleri 2
Bilgisayar Bilimi Koşullu Durumlar.
Sonlu Özdevinirlere Giriş
Bilgisayar II 8 Mart Mart
?: KARŞILAŞTIRMA OPERATÖRÜ
NİŞANTAŞI ÜNİVERSİTESİ
Fonksiyonlar ve Alt Programlar
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Programlama Yapısı.
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
Kesikli Olay benzetimi Bileşenleri
PROBLEM ÇÖZME TEKNİKLERİ
Bilimsel Araştırma Yöntemleri
Örgüt Kuramı, Örgüt Tasarımı ve Örgütsel Değişim
Bilimsel bir Bildiri veya Makale Nasıl Yazılır ve Yayımlanır?
Sunum transkripti:

FONKSİYONLAR

Ç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 05.04.2019

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 05.04.2019

Ö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 05.04.2019

Ö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, 05.04.2019

Ö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. 05.04.2019

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

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. 05.04.2019

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 05.04.2019

#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); } 05.04.2019

KENDİ FONKSİYONLARINIZI OLUŞTURMAK

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. 05.04.2019

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 05.04.2019

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. 05.04.2019

Fonksiyonlar Gözden Geçirme

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

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 05.04.2019

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 05.04.2019

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, 05.04.2019

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 05.04.2019

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

PROTOTİPLEME KURALLARI

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) 05.04.2019

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 ) ; 05.04.2019

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 05.04.2019

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) 05.04.2019

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. 05.04.2019

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); 05.04.2019

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. 05.04.2019

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); 05.04.2019

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

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 05.04.2019

BAĞIMSIZ DEĞİŞKEN ZORLAMASI

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ç! 05.04.2019

Ö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. 05.04.2019

FAALİYET ALANINI ANLAMAK

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. 05.04.2019

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. 05.04.2019

Ö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 05.04.2019

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. 05.04.2019

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. 05.04.2019

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 */ 05.04.2019

İ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. 05.04.2019

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) 05.04.2019

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. 05.04.2019