TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag @cbu.tr
-
Upload
claudia-barrera -
Category
Documents
-
view
66 -
download
7
description
Transcript of TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag @cbu.tr
![Page 1: TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag @cbu.tr](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/1.jpg)
TEMEL BİLGİSAYAR PROGRAMLAMAYrd. Doç. Dr. Emin BORANDAĞ
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/2.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/3.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/4.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/5.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/6.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/7.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/8.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/9.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/10.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/11.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/12.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/13.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/14.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/15.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/16.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/17.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/18.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/19.jpg)
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](https://reader030.fdocument.pub/reader030/viewer/2022013103/568132f7550346895d99b66b/html5/thumbnails/20.jpg)
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