ALGORİTMA VE PROGRAMLAMA II

Benzer belgeler
Ders 5: Temel Kütüphane Fonksiyonlar

Standart başlık dosyası bazı fonksiyonlar. Karakter Üzerinde İşlem Yapan Fonksiyonlar

ALGORİTMA VE PROGRAMLAMA II

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Fonksiyonlar (Altprogram)

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

Dr. Fatih AY Tel: fatihay@fatihay.net

ALGORİTMA VE PROGRAMLAMA II

Dr. Fatih AY Tel:

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

FONKSİYONLAR. [geri dönüş değeri] <fonksiyon ismi>([paramatre]) { ANABLOK }

Yrd. Doç. Dr. Caner ÖZCAN

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

ALGORİTMA VE PROGRAMLAMA I

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

ALGORİTMA VE PROGRAMLAMA I

Fonksiyonlar. Yrd.Doç.Dr.Bülent Çobanoğlu

Hafta 13 Fonksiyonlar

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ DERS 2

ALGORİTMA VE PROGRAMLAMA I

MATEMATĠKSEL ĠġLEMLER

ALGORİTMA VE PROGRAMLAMA I

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

BİL-142 Bilgisayar Programlama II

10/17/2007 Nesneye Yonelik Programlama 3.1

Rasgele Sayılar. 1.1 Bilgisayar Rasgele Sayı Üretemez! 1.2 rand() fonksiyonu

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Bölüm 2 - C ile Programlamaya Giriş

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I

YZM 2105 Nesneye Yönelik Programlama

C Programlama. Öğr. Grv. Mustafa AKSOĞAN. Akçadağ MYO

BLM 112- Programlama Dilleri II. Hafta 1 Giriş, Kapsama Kuralları ve Rasgele Sayı Üretimi

time.h 1.1 UNIX Zamanı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

ALGORİTMA VE PROGRAMLAMA I DERS#1

ALGORİTMA VE PROGRAMLAMA I

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Sınav tarihi : Süre : 60 dak.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Fonksiyonlar - Functions. Örnek. Örneğin. C dilinde 5/13/2011. ENF-102 Jeoloji

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

YZM 2105 Nesneye Yönelik Programlama

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

BİLGİSAYAR PROGRAMLAMA MATLAB

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

3. ARİTMETİK FONKSİYONLAR ~ (~ tamsayı)

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Bilgisayar programlama III Fonksiyonlar

ALGORİTMA VE PROGRAMLAMA I

COS işlevi Sözdizimi COS sayı Sayı Uyarılar Örnek 1 Formül Açıklama (Sonuç) SİN işlevi Sözdizimi SİN sayı Sayı Uyarı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

YZM 2116 Veri Yapıları

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

MATLAB MATLAB MAT LAB MAT LAB MATLAB

Laboratuvar 2 Tek Kayıt Fonksiyonları

Fonksiyonlar -Genel Test- A

BİLG Dr. Mustafa T. Babagil 1

Eln 1001 Bilgisayar Programlama I

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

YZM 3215 İleri Web Programlama

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Nesne Tabanlı Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Temel Giriş/Çıkış Fonksiyonları

Bilgisayar Programlama MATLAB

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Transkript:

ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

Genel Bakış 2 Hazır Fonksiyonlar Standart Kütüphane Fonksiyonları (stdlib.h) Matematik Kütüphanesi Fonksiyonları (math.h) Tarih/Saat Fonksiyonları (time.h)

9. BÖLÜM 3 C Programlama Hazır Fonksiyonlar

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

5 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); Bir katarı reel sayıya çevirir

Örnek 1: atox() Dönüşüm Fonksiyonları 6

7 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 int rand(void); Açıklama Sıfırdan int genişliğine kadar (32767) sayı üreten bir fonksiyondur. Moduler aritmetik ile belirli bir aralıkta tam sayı verebilir.

Örnek 2: rand() Fonksiyonu 8

9 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 void srand(unsigned seed); Açıklama 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() 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 11

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

Standart Kütüphane Fonksiyonları 13 (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();

Standart Kütüphane Fonksiyonları 14 (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.

Standart Kütüphane Fonksiyonları 15 (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 16

Matematik Kütüphanesi Fonksiyonları 17 (math.h) Matematiksel Fonksiyon Türleri Yuvarlama Fonksiyonları Mutlak Değer Fonksiyonları Logaritmik Fonksiyonlar Trigonometrik Fonksiyonlar Ters Trigonometrik Fonksiyonlar

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

Örnek 5: Yuvarlama Fonksiyonları 19

20 Matematik Kütüphanesi Fonksiyonları (math.h) Mutlak Değer Fonksiyonları Prototip int abs(int x); double fabs(double x); long labs(long x); Açıklama x tamsayısının mutlak değerini hesaplar x reel sayısını kendisinden büyük ya da eşit tamsayıya yuvarlar. 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 Prototip double log(double x); double log10(double x); Örnek: Açıklama 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. 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. log(4.0) 1.386294 log10(4.0) 0.602060

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

Örnek 6: Trigonometrik Fonksiyonlar 23

24 Matematik Kütüphanesi Fonksiyonları (math.h) Ters Trigonometrik Fonksiyonlar Prototip double asin(double x); double acos(double x); double atan(double x); Açıklama sinüs değeri x olan açıyı gönderir. Açı -pi/2 ile pi/2 arasındadır. kosinüs değeri x olan açıyı gönderir. Açı -pi/2 ile pi/2 arasındadır. 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

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

26 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 27

28 Tarih/Saat Fonksiyonları (time.h) asctime(), ctime(), localtime() Fonks. Prototip char *asctime (const struct tm *zmn_g); char *ctime (const time_t *zaman); Açıklama 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. 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. 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) */ };

30 Örnek 8: asctime() ve localtime() Fonksiyonları ile Tarih Yazdırma

31 Örnek 9: ctime() Fonksiyonu ile Tarih Yazdırma

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

Örnek 10: clock() Fonksiyonu 33

34 Tarih/Saat Fonksiyonları (time.h) difftime() Fonksiyonu Prototip double difftime (time_t zaman1, time_t zaman2); Açıklama zaman2 - zaman1 farkını saniye cinsinden hesaplar.

Örnek 11: difftime() Fonksiyonu 35

KAYNAKLAR 36 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

37 İYİ ÇALIŞMALAR Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr