Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM.

Benzer bir sunumlar


... konulu sunumlar: "ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM."— Sunum transkripti:

1 ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM 1102

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

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

4 Standart Kütüphane Fonksiyonları (stdlib.h) 4 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

5 Standart Kütüphane Fonksiyonları (stdlib.h) - atox() 5 Katarların(string) Farklı Türlere Dönüşümü YZM 1102 – Algoritma ve Programlama II PrototipAçı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);Bir katarı reel sayıya çevirir

6 6 Örnek 1: atox() Dönüşüm Fonksiyonları YZM 1102 – Algoritma ve Programlama II

7 Standart Kütüphane Fonksiyonları (stdlib.h) - rand() 7 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 dir. YZM 1102 – Algoritma ve Programlama II PrototipAçı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.

8 8 Örnek 2: rand() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

9 Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() 9 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. YZM 1102 – Algoritma ve Programlama II PrototipAçı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.

10 Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() 10 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

11 11 Örnek 3: rand() ve srand() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

12 Standart Kütüphane Fonksiyonları (stdlib.h) – rand() ve srand() 12 Örnekler: İki sayı arasında random sayı üretmek Örn: 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

13 Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma 13 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

14 Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma 14 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

15 Standart Kütüphane Fonksiyonları (stdlib.h) – Program Sonlandırma 15 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

16 16 Örnek 4: atexit() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

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

18 Matematik Kütüphanesi Fonksiyonları (math.h) – Yuvarlama Fonksiyonları 18 YZM 1102 – Algoritma ve Programlama II PrototipAçı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.

19 19 Örnek 5: Yuvarlama Fonksiyonları YZM 1102 – Algoritma ve Programlama II

20 Matematik Kütüphanesi Fonksiyonları (math.h) – Mutlak Değer Fonksiyonları 20 YZM 1102 – Algoritma ve Programlama II PrototipAçı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

21 Matematik Kütüphanesi Fonksiyonları (math.h) – Logaritmik Fonksiyonlar 21 YZM 1102 – Algoritma ve Programlama II PrototipAçı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)  log10(4.0) 

22 Matematik Kütüphanesi Fonksiyonları (math.h) – Trigonometrik Fonksiyonlar 22 YZM 1102 – Algoritma ve Programlama II PrototipAçı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 değerini hesaplar double tan(double x);radyan cinsinden girilien x sayısının tanjant değerini hesaplar Örnek: sin(3.14)  cos(3.14)  tan(3.14) 

23 23 Örnek 6: Trigonometrik Fonksiyonlar YZM 1102 – Algoritma ve Programlama II

24 Matematik Kütüphanesi Fonksiyonları (math.h) – Ters Trigonometrik Fonksiyonlar 24 YZM 1102 – Algoritma ve Programlama II PrototipAçı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)  acos(0.5)  atan(0.5) 

25 Tarih/Saat Fonksiyonları (time.h) 25 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 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

26 Tarih/Saat Fonksiyonları (time.h) – time() Fonksiyonu 26 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

27 27 Örnek 7: time() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

28 Tarih/Saat Fonksiyonları (time.h) – asctime(), ctime(), localtime() Fonks. 28 YZM 1102 – Algoritma ve Programlama II PrototipAçı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.

29 Tarih/Saat Fonksiyonları (time.h) – asctime(), ctime(), localtime() Fonks. 29 YZM 1102 – Algoritma ve Programlama II Fonksiyonlarda kullanılan tm yapısı aşağıdaki gibidir: struct tm { inttm_sec; /* saniye, (0 - 59) */ inttm_min; /* dakika, (0 - 59) */ inttm_hour; /* saat, (0 - 23) */ inttm_mday; /* ayın günü, (1 - 31) */ inttm_mon; /* ay, (0 - 11), 0 = Ocak */ inttm_year; /* yıl */ inttm_wday; /* haftanın günü, (0 - 6), 0 = Pazar */ inttm_yday; /* yılın günü,( ) */ inttm_isdst; /* gündüz (-1/0/1) */ };

30 30 Örnek 8: asctime() ve localtime() Fonksiyonları ile Tarih Yazdırma YZM 1102 – Algoritma ve Programlama II

31 31 Örnek 9: ctime() Fonksiyonu ile Tarih Yazdırma YZM 1102 – Algoritma ve Programlama II

32 Tarih/Saat Fonksiyonları (time.h) – clock() Fonksiyonu 32 YZM 1102 – Algoritma ve Programlama II PrototipAçı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_tclock() fonksiyonunun kullandığı veri tipidir. typedef long clock_t

33 33 Örnek 10: clock() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

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

35 35 Örnek 11: difftime() Fonksiyonu YZM 1102 – Algoritma ve Programlama II

36 36 KAYNAKLAR N. Ercil Çağıltay ve ark., C DERSİ PROGRAMLAMAYA GİRİŞ, Ada Matbaacılık, ANKARA; 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 YZM 1102 – Algoritma ve Programlama II

37 37 İYİ ÇALIŞMALAR… Yrd. Doç. Dr. Emin BORANDAĞ YZM 1102 – Algoritma ve Programlama II


"ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Emin BORANDAĞ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi YZM." indir ppt

Benzer bir sunumlar


Google Reklamları