7 Mart 2017 Salı

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


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.



Örnek 7: time() Fonksiyonu


Matematik Kütüphanesi Fonksiyonları (math.h) – Ters Trigonometrik Fonksiyonlar



Örnek:
asin(0.5)        ?    0.523599
acos(0.5)        ?    1.047198
atan(0.5)        ?    0.463648



Matematik Kütüphanesi Fonksiyonları (math.h) – Logaritmik Fonksiyonlar



Örnek:

log(4.0)        ?    1.386294
log10(4.0)        ?    0.602060


Örnek:
sin(3.14)        ?    0.001593
cos(3.14)        ?    0.999999
tan(3.14)        ?    0.001593

Örnek 6: Trigonometrik Fonksiyonlar


Matematik Kütüphanesi Fonksiyonları (math.h) – Mutlak Değer Fonksiyonları



Örnek:

abs(-456)        ?    456
fabs(-145.3)    ?    145.3


Matematik Kütüphanesi Fonksiyonları (math.h)


Matematiksel Fonksiyon Türleri
Yuvarlama Fonksiyonları
Mutlak Değer Fonksiyonları
Logaritmik Fonksiyonlar
Trigonometrik Fonksiyonlar
Ters Trigonometrik Fonksiyonlar

Matematik Kütüphanesi Fonksiyonları (math.h) – Yuvarlama Fonksiyonları



Örnek 5: Yuvarlama Fonksiyonları



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.


Örnek 4: atexit() Fonksiyonu




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

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

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.

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


Örnek 3: rand() ve srand() Fonksiyonu


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.





Örnek 2: rand() Fonksiyonu