Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Slides:



Advertisements
Benzer bir sunumlar
Fonksiyonlar - Functions
Advertisements

STRİNG FONKSİYONLARI.
Fonksiyonlar.
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
C Programlama Diline Giriş
Atama ve Girdi/Çıktı Komutları
String Kütüphanesindeki Arama Fonksiyonları
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
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Fonksiyonlar.
4. HAFTA Mart 2010.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
FONKSİYONLAR.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Fonksiyonlar –Programı modüler hale getirir –Yerel değişkenler,
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
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
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
C PROGRAMLAMA FONKSİYONLAR Hazır fonksiyonlar (math, rand) Kullanıcı Tanımlı Fonksiyonlar Değer ile Çağırma.
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
Java.lang.math.
HESAPLAMA FONKSIYONLARI
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Java.lang.math
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1.
Örnek Adam asmaca oyununun programının yazılması.
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
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
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.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Elektronik Tablo Programı Formüller ve Fonksiyonlar
BİLGİSAYAR programlama II
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
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.
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.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
YAPISAL PROGRAMLAMA Hafta-5
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
MATEMATIKSEL IŞLEMLER
Bölüm 2 C Dilinin Temelleri
YAPISAL PROGRAMLAMA Hafta-6
BİLGİSAYAR programlama II
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
4. HAFTA.
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Algorİtma ve Programlama II Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

YZM 1102 – Algoritma ve Programlama II Genel Bakış… Hazır Fonksiyonlar Standart Kütüphane Fonksiyonları (stdlib.h) Matematik Kütüphanesi Fonksiyonları (math.h) Tarih/Saat Fonksiyonları (time.h) YZM 1102 – Algoritma ve Programlama II

C Programlama Hazır Fonksiyonlar 9. BÖLÜM C Programlama Hazır Fonksiyonlar YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) Temel Fonksiyon Türleri  Veri dönüşümü Bazı matematiksel işlemler Program sonlandırma Diğer işlemler  YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) - atox() Katarların(string) Farklı Türlere Dönüşümü Prototip Açıklama int    atoi(*char); Bir katarı tam sayıya çeviri float  atof(*char); Bir katarı reel sayıya çevirir long atol(*char); Bir katarı uzun tam sayıya çevirir double  atod(*char); YZM 1102 – Algoritma ve Programlama II

Örnek 1: atox() Dönüşüm Fonksiyonları *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) - rand() rand() fonksiyonu rasgele sayı üretmek için kullanılır. Rasgele sayı üretimi genelde simülasyonlarda ve istatiksel hesaplamalarda kullanılır. Sembolik sabit RAND_MAX, stdlib.h içinde tanımlanmıştır ve değeri 215-1 dir. Prototip Açıklama int rand(void); Sıfırdan int genişliğine kadar (32767) sayı üreten bir fonksiyondur. Moduler aritmetik ile belirli bir aralıkta tam sayı verebilir. YZM 1102 – Algoritma ve Programlama II

Örnek 2: rand() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() rand() fonksiyonu rasgele sayı üretmeye bir başlangıç değeri ile başlanır buna seed value (tohum değeri) denir. rand() fonksiyonu her çağırıldığında aynı seed değerinden başlayacağı için aynı sayı zinciri elde edilir. srand() fonksiyonu ise bu seed değerini değiştirmeye yarar. Prototip Açıklama void srand(unsigned seed); Sıfırdan int genişliğine kadar (32767) sayı üreten bir fonksiyondur. Moduler aritmetik ile belirli bir aralıkta tam sayı verebilir. YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() Bir programın her çalışmasında farklı bir sayı zincirinin elde edilmesi için srand() fonksiyonunun rasgele sayı üreticisinin seed değerini programın her çalışmasında farklı bir değer yapması gerekir. Bunun için çoğu zaman standard time() fonksiyonundan faydalanılır. Aşağıdaki ifade ile program her defasında farklı bir sayı üretecektir. srand(time(0)); YZM 1102 – Algoritma ve Programlama II

Örnek 3: rand() ve srand() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() Örnekler: İki sayı arasında random sayı üretmek Örn: 20-100 arasında… Zat atma: Atılan her zar sonrası değerini bulan program Barbut oyunu: Oyuncu sayısı girilerek her kişi için atılan zar değerini yazan program Sayısal Loto: Müşteri için otomatik sayısal loto dolduran program YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma Normal şartlarda main() fonksiyonu içerisinde alt programlar ve/veya fonksiyonlar çağırılır ve main programda return satırına ulaşıldığında veya “}” karakteri ile karşılaşıldığında uygulama sonlandırılır. Standart kütüphane bize üç farklı fonksiyon ile program sonlandırma imkanı verir: exit(); abort(); atexit(); YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma exit(0); Programın normal biçimde sonlandırılmasını sağlar. Fonksiyon girdi olarak 0 parametresi alarak kullanıldığında programın başarılı sonlandığını, farklı bir parametre alarak kullanıldığında ise başarısız sonlandığını işletim sistemine bildirir. abort(); Programın beklenmedik bir şekilde sonlandırılması durumlarında kullanılır. POSIX sinyal olan SIGABRT gönderir. YZM 1102 – Algoritma ve Programlama II

Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma atexit(0); Esasında programı sonlandıran bir komut değildir. Fakat ana program sonlandığında işletilecek programı verir. 32 adet programı sıralar ve en son girilen program ilk önce çalışır. YZM 1102 – Algoritma ve Programlama II

Örnek 4: atexit() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Matematik Kütüphanesi Fonksiyonları (math.h) Matematiksel Fonksiyon Türleri  Yuvarlama Fonksiyonları Mutlak Değer Fonksiyonları Logaritmik Fonksiyonlar Trigonometrik Fonksiyonlar Ters Trigonometrik Fonksiyonlar YZM 1102 – Algoritma ve Programlama II

Matematik Kütüphanesi Fonksiyonları (math.h) – Yuvarlama Fonksiyonları Prototip Açıklama double floor(double x); x reel sayısını kendisinden küçük ya da eşit tamsayıya yuvarlar. double ceil(double x); x reel sayısını kendisinden büyük ya da eşit tamsayıya yuvarlar. YZM 1102 – Algoritma ve Programlama II

Örnek 5: Yuvarlama Fonksiyonları *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Matematik Kütüphanesi Fonksiyonları (math.h) – Mutlak Değer Fonksiyonları Prototip Açıklama int abs(int x); x tamsayısının mutlak değerini hesaplar double fabs(double x); x reel sayısını kendisinden büyük ya da eşit tamsayıya yuvarlar. long labs(long x); long tipindeki x tamsayısının mutlak değerini hesaplar Örnek: abs(-456)  456 fabs(-145.3)  145.3 YZM 1102 – Algoritma ve Programlama II

Matematik Kütüphanesi Fonksiyonları (math.h) – Logaritmik Fonksiyonlar Prototip Açıklama double log(double x); Verilen x değerinin e tabanına göre doğal logaritmasını hesaplar. Matematikte ln(x) olarak bilinir ve logaritması alınan değerler sıfır ve sıfırdan küçük olamaz. double log10(double x); Verilen x değerinin 10 tabanına göre logaritmasını hesaplar. Yine bu fonksiyonun x değerleri sıfır ve sıfırdan küçük olamaz. Örnek: log(4.0)  1.386294 log10(4.0)  0.602060 YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Matematik Kütüphanesi Fonksiyonları (math.h) – Trigonometrik Fonksiyonlar Prototip Açıklama double sin(double x); radyan cinsinden girilien x sayısının sinüs değerini hesaplar double cos(double x); radyan cinsinden girilien x sayısının kosinüs double tan(double x); radyan cinsinden girilien x sayısının tanjant Örnek: sin(3.14)  0.001593 cos(3.14)  0.999999 tan(3.14)  0.001593 YZM 1102 – Algoritma ve Programlama II

Örnek 6: Trigonometrik Fonksiyonlar *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Matematik Kütüphanesi Fonksiyonları (math.h) – Ters Trigonometrik Fonksiyonlar Prototip Açıklama double asin(double x); sinüs değeri x olan açıyı gönderir. Açı -pi/2 ile pi/2 arasındadır. double acos(double x); kosinüs değeri x olan açıyı gönderir. Açı -pi/2 ile pi/2 arasındadır. double atan(double x); tanjant değeri x olan açıyı gönderir. Açı -pi/2 ile pi/2 arasındadır Örnek: asin(0.5)  0.523599 acos(0.5)  1.047198 atan(0.5)  0.463648 YZM 1102 – Algoritma ve Programlama II

Tarih/Saat Fonksiyonları (time.h) Yazılım uygulamaları içerisinde tarih ve saatle ilgili işlemleri sıkça yaparız. C dilinde, tarih ve saat fonksiyonlarının bildirimleri, sembolik sabitler ve standart yapılar <time.h> başlık dosyasında tanımlanmıştır. Bu fonksiyonlar üç temel işlevi yerine getirir:  Takvim (Tarih) bilgileri Yerel Saat Saat Dilimleri YZM 1102 – Algoritma ve Programlama II

Tarih/Saat Fonksiyonları (time.h) – time() Fonksiyonu time() fonksiyonu 01/01/1970 tarihinden, programın çalıştığı tarihe ve saate kadar geçen sürenin saniye cinsinden değerini gönderir. Genel bildirimi aşağıdaki gibidir: time_t time(time_t *zaman); time_t sayısal bir tip (genellikle long int) olup zaman bilgisini temsil eder. zaman tarih bilgisini tutan işaretçi tipinde bir değişkendir. YZM 1102 – Algoritma ve Programlama II

Örnek 7: time() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Tarih/Saat Fonksiyonları (time.h) –asctime(), ctime(), localtime() Fonks. Prototip Açıklama char *asctime (const struct tm *zmn_g); zmn_g işaretçisinin işaret ettiği veriyi, daha anlaşılabilir bir formatla katar bilgisine çevirir. zmn_g işaretçisi, gmtime() ve localtime() fonksiyonlarının döndürdüğü, tm yapısını gösterir. Geri döndürelen katarın genel formatı: Www Mmm dd hh:mm:ss yyyy şeklindedir. Www haftanın günü, Mmm ay, dd ayın günü hh:mm:ss saat bilgisini ve yyyy yıl bilgisidir. char *ctime (const time_t *zaman); Geriye anlaşılır formatta yerel zamanı tutan bir katar döndürür. zaman, time_t tipinde bir uzun tamsayıdır. Katarın formatı: Www Mmm dd hh:mm:ss yyyy şeklindedir. struct tm *localtime (const time_t *zaman); zaman'ı tm yapısına (yerel saat cinsinden) çevirir. zaman genellikle time() fonksiyonu ile döndürülür. YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II Tarih/Saat Fonksiyonları (time.h) –asctime(), ctime(), localtime() Fonks. Fonksiyonlarda kullanılan tm yapısı aşağıdaki gibidir: struct tm { int tm_sec; /* saniye, (0 - 59) */ int tm_min; /* dakika, (0 - 59) */ int tm_hour; /* saat, (0 - 23) */ int tm_mday; /* ayın günü, (1 - 31) */ int tm_mon; /* ay, (0 - 11), 0 = Ocak */ int tm_year; /* yıl - 1900 */ int tm_wday; /* haftanın günü, (0 - 6), 0 = Pazar */ int tm_yday; /* yılın günü,(0 - 365) */ int tm_isdst; /* gündüz (-1/0/1) */ }; YZM 1102 – Algoritma ve Programlama II

Örnek 8: asctime() ve localtime() Fonksiyonları ile Tarih Yazdırma *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Örnek 9: ctime() Fonksiyonu ile Tarih Yazdırma *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Tarih/Saat Fonksiyonları (time.h) –clock() Fonksiyonu Prototip Açıklama clock_t clock(void); Zaman tik-tak bilgisini döndürür. CLK_TCK (clock ticks per second) makro sabit. Zaman tik-takları ve zamanın saniye cinsinden karşılığı arasında ilişkiyi tanımlar. clock_t clock() fonksiyonunun kullandığı veri tipidir. typedef long clock_t YZM 1102 – Algoritma ve Programlama II

Örnek 10: clock() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

Tarih/Saat Fonksiyonları (time.h) –difftime() Fonksiyonu Prototip Açıklama double difftime (time_t zaman1, time_t zaman2); zaman2 - zaman1 farkını saniye cinsinden hesaplar. YZM 1102 – Algoritma ve Programlama II

Örnek 11: difftime() Fonksiyonu *karisik işaretçisine dikkat edelim… YZM 1102 – Algoritma ve Programlama II

YZM 1102 – Algoritma ve Programlama II 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 C Programlama Dili, Şerafettin ARIKAN Problem Solving and Program Design in C, Hanly, Koffman http://www.AlgoritmaveProgramlama.com YZM 1102 – Algoritma ve Programlama II

İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Emin BORANDAĞ emin.borandag@cbu.edu.tr YZM 1102 – Algoritma ve Programlama II