Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Advertisements

Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Makine Müh. & Jeoloji Müh.
Bilgisayar Programlama Güz 2011
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Göstericiler (Pointers)
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 2 C Dilinin Temelleri
String Diziler(Katarlar)
C Programlama Diline Giriş
C Programlama Dili.
Atama ve Girdi/Çıktı Komutları
Bölüm 2: Program Denetimi
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
VERİ TABANI ve YÖNETİMİ
Bölüm 10 Yapılar ve Birleşimler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Program Kontrol İfadeleri
Fonksiyonlar.
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
Paralel Programlamaya Giriş
FONKSİYONLAR.
Akış Kontrol Mekanizmaları
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Temel Giriş/Çıkış Fonksiyonları
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
DİZİLER Arrays.
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
Fonksiyonlar.
String Diziler(Katarlar)
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
C Programlama Dili Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
YAPISAL PROGRAMLAMA Hafta-6
YAPISAL PROGRAMLAMA Hafta-7
C ile Programlamaya Giriş
Sunum transkripti:

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi TEMEL BİLGİSAYAR Programlama Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr BIL 1306 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Genel Bakış… Giriş Esnek Argümanlı Fonksiyonlar main() Fonksiyonuna Parametre Aktarımı

Esnek Argümanlı Fonksiyonlar ve main() Fonksiyonuna Parametre Aktarımı 9. BÖLÜM Esnek Argümanlı Fonksiyonlar ve main() Fonksiyonuna Parametre Aktarımı

Bu polinomu temsil eden basit bir fonksiyonu nasıl tanımlarız? 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?

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; }

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.

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

Esnek Argümanlı Fonksiyonlar (devam….) Esnek argümanlar için 2 temel kural vardır: Esnek argüman kullanımı isteğe bağlıdır. 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, ...) { }

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.

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

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

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

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

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.

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"); . ... arguman_vektörü[0] ... /* 1. eleman program adı */ ... arguman_vektörü[1] ... /* 2. eleman 1. parametre */

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı Run veya Ctrl+F10

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

Örnek-1: Komut Satırından Girilen 2 Sayının Toplamı (devam…) Run veya Ctrl+F10

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

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