20
TEMEL BİLGİSAYAR PROGRAMLAMA Yrd. Doç. Dr. Emin BORANDAĞ [email protected] Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi BIL 1306

TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag @cbu.tr

Embed Size (px)

DESCRIPTION

TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag @cbu.edu.tr. Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi. BIL 1306. Genel Bakış…. Giriş Esnek Argümanlı Fonksiyonlar main() Fonksiyonuna Parametre Aktarımı. 9 . BÖLÜM. - PowerPoint PPT Presentation

Citation preview

Page 1: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

TEMEL BİLGİSAYAR PROGRAMLAMAYrd. Doç. Dr. Emin BORANDAĞ

[email protected]

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu

Teknoloji FakültesiBIL 1306

Page 2: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

2

• Giriş

• Esnek Argümanlı Fonksiyonlar

• main() Fonksiyonuna Parametre Aktarımı

Genel Bakış…

Page 3: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

3

9. BÖLÜM

Esnek Argümanlı Fonksiyonlar ve main() Fonksiyonuna Parametre Aktarımı

Page 4: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

4

Giriş

• Aşağıdaki gibi üçüncü dereceden bir polinomu ele alalım:

P(x) = a + bx + cx2 + dx3

• a, b, c, d katsayıları gerçel sayı sabitleridir.

• x ise gerçel sayı türündeki bir değişkendir.

Bu polinomu temsil eden basit bir fonksiyonu nasıl tanımlarız?

Page 5: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

5

Esnek Argümanlı Fonksiyonlar

P(x) = a + bx + cx2 + dx3

float p(float x, float a, float b, float c, float d)

{

float p = a + b*x + c*x*x + d*x*x*x;

return p;

}

Page 6: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

6

Esnek Argümanlı Fonksiyonlar (devam….)

• Buna göre, x = 1.7'de,

P(x) = 1 - 2x

değerini hesaplamak için bu fonksiyon aşağıdaki gibi çağırılmalıdır:

sonuc = p(1.7, 1.0, -2.0, 0.0, 0.0);

• Burada, kullanılmayan katsayılar için 0.0 değeri mutlaka fonksiyona geçirilmelidir.

Page 7: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

7

Esnek Argümanlı Fonksiyonlar (devam….)

• Kullanılmayan argümanlar geçirilmeden de fonksiyonu çağırmak mümkündür.

• C Programlama dili, kullanıcılarına argümanları esnek olarak geçirme imkanı verir.

• Bunun anlamı, belli kurallar sağlandığında, p() fonksiyonunun aşağıdaki gibi çağrılabilmesidir:

/* x a b */

sonuc = p(1.7, 1.0, -2.0);

Page 8: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

8

Esnek Argümanlı Fonksiyonlar (devam….)

• Esnek argümanlar için 2 temel kural vardır:

1. Esnek argüman kullanımı isteğe bağlıdır.

2. Esnek argümanları oluşturan küme ardışık olarak listeye eklenmelidir.

• Bu türden argümanlar, aşağıdaki gibi, fonksiyonun parametre listesi kısmında ... (3 nokta) ile belirtilir.

double p(double x, int n, ...)

{

}

Page 9: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

9

Esnek Argümanlı Fonksiyonlar (devam….)

• Esnek argümanlı fonksiyon tanımlaması yapabilmek için stdarg.h kütüphanesinde üç tane makro fonksiyon tanımlanmıştır.

Tip / Fonksiyon Açıklama

va_list ardışık esnek argümalar için tip belirleyici

va_start(ap, n)va_list tipinde bildirilmiş ap göstericisi için

bellekten n elemanlı yer ayırır.

va_arg(ap, tip)Veri tipi tip ile belirlenmiş küme elemanlarına

erişimi sağlar.

va_end(ap)va_list tipinde bildirilmiş ap göstericisi için

bellekten bölgeyi boşaltır.

 

Page 10: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

10

Örnek-1: n Tane Sayının Toplamı

• Öyle bir fonksiyon yazalım ki istediğimiz kadar sayıyı fonksiyona girdi (argüman) olarak verebilelim ve sonucunda bu sayıları toplasın.

• Kaç sayı olacak? – 3 sayı? – 5 sayı ?

• Normalde bu bilgi önemli mi?

Cevap: Evet

• Ancak Esnek argümanlı fonksiyon ile argüman sayısı önemsiz hale gelecek.

Page 11: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

11

Örnek-1: n Tane Sayının Toplamı (devam…)

Page 12: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

12

Örnek-2: n Tane Sayının En Küçüğünü Bulan Fonksiyon

• Öyle bir fonksiyon yazalım ki istediğimiz kadar sayıyı fonksiyona girdi (argüman) olarak verebilelim ve geriye değer olarak bu sayılardan en küçüğünü dönsün.

Page 13: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

13

Örnek-2: n Tane Sayının En Küçüğünü Bulan Fonksiyon (devam…)

Page 14: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

14

main() Fonksiyonuna Parametre Aktarımı

• Ana programa yani main() fonksiyonuna parametre aktarımı, derlenmiş (çalıştırılabilir) bir program komut satırından (işletim sistemi ortamından) çalıştırılacağı zaman yapılır.

• Parametre aktarımı, programın adı yazılıp bir boşluk bırakıldıktan hemen sonra yapılır.

• Parametreler, komut satırından sayısal olarak girilse bile program içinde karakter topluluğu (string) olarak gelir.

• Bu durumda, bu ifadeleri sayısal değerlere çeviren (atoi(), atol(), atof() gibi) fonksiyonlar kullanılır.

Page 15: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

15

main() Fonksiyonuna Parametre Aktarımı (devam…)

int main(arguman_sayısı, arguman_vektörü) int arguman_sayısı; char *arguman_vektörü[]; {

….. if(arguman_sayısı < ...){ printf("Eksik parametre !\n"); exit(1); } if(arguman_sayısı > ...){ printf("Cok fazla parametre !\n"); exit(1); } . ... arguman_vektörü[0] ... /* 1. eleman program adı */ ... arguman_vektörü[1] ... /* 2. eleman 1. parametre */ }

Page 16: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

16

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı

Run veya Ctrl+F10

Page 17: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

17

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı (devam…)

Page 18: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

18

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı (devam…)

Run veya Ctrl+F10

Page 19: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

19

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı (devam…)

• Ya da Windows işletim sistemi için DOS komutu satırına geçilir ve ilgili exe uygulaması bulunarak aşağıdaki gibi program çalıştırılabilir:

Page 20: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr.  Emin BORANDAĞ emin.borandag @cbu.tr

20

KAYNAKLAR

• N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; 2009.

• Milli Eğitim Bakanlığı "Programlamaya Giriş ve Algoritmalar Ders Notları", 2007

• http://tr.wikipedia.org/wiki/Code::Blocks

• http://www.codeblocks.org

• http://www.AlgoritmaveProgramlama.com

• http://www1.gantep.edu.tr/~bingul/c