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

Benzer belgeler
Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 13 Fonksiyonlar

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

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

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

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

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ü

Dr. Fatih AY Tel: fatihay@fatihay.net

BİL-142 Bilgisayar Programlama II

ELN1001 BİLGİSAYAR PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Yrd. Doç. Dr. Caner ÖZCAN

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

ALGORİTMA VE PROGRAMLAMA II

10/17/2007 Nesneye Yonelik Programlama 3.1

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

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

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

Dr. Fatih AY Tel: fatihay@fatihay.net

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 4 Döngü Yapıları

Yrd. Doç. Dr. Caner ÖZCAN

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

Hafta 12 Karakter Tutan Diziler

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

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

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

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

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

Yrd. Doç. Dr. Caner ÖZCAN

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

Yrd. Doç. Dr. Caner ÖZCAN

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

ALGORİTMA VE PROGRAMLAMA I

Bilgisayar programlama III Fonksiyonlar

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Özyineleme (Recursion)

Eln 1002 Bilgisayar Programlama II

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

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Dr. Fatih AY Tel:

Özyineleme (Recursion)

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Hafta 11 Çok Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

HSancak Nesne Tabanlı Programlama I Ders Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Fonksiyonlar (Altprogram)

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

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

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

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

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

BİYOİSTATİSTİK Olasılıkta Temel Kavramlar Yrd. Doç. Dr. Aslı SUNER KARAKÜLAH

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

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

YZM 2105 Nesneye Yönelik Programlama

Programlama Dilleri III 1

Ders 5: Temel Kütüphane Fonksiyonlar

Temel Bilgisayar Programlama

Bölüm 10. Altprogramların gerçeklenmesi ISBN

Hafta 5 Algoritma Örnekleri ve Analizi

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

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Programlama Dillerinde Kullanılan Veri Tipleri

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

PROGRAMLAMAYA GİRİŞ DERS 2

Eln 1001 Bilgisayar Programlama I

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

HSancak Nesne Tabanlı Programlama I Ders Notları

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Sunum İçeriği. Programlamaya Giriş

Transkript:

BLM-112 PROGRAMLAMA DİLLERİ II Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/

Saklama Sınıfları Nesne kendi bloğu içinde oluşturulur ve yok edilir auto: yerel değişkenler için ön tanımlıdır auto double x, y; register: değişkeni yüksek hızlı kaydedicilere yerleştirmeye çalışır register int counter= 1; 2

Saklama Sınıfları Statik Saklama Değişken tüm programın çalışması sürecinde var olur. Ön tanımlı değeri sıfırdır. static: fonksiyonlar içinde tanımlanan yerel değişkenlerdir. Fonksiyon sonlandıktan sonra değişken değeri saklanır Sadece tanımlandıkları fonksiyonda geçerlidirler 3

Saklama Sınıfları Dosya kapsama alanı Bir fonksiyon dışında tanımlanan bir tanımlayıcı dosya kapsama alanına sahiptir. Böyle bir tanımlayıcı tanımlandıkları noktadan itibaren dosya sonuna kadar tüm fonksiyonlar içinde geçerlidir Global değişkenler, fonksiyon tanımlamaları hep dosya kapsama alanına sahiptir. 4

Saklama Sınıfları Blok Alanı Blok içinde tanımlanan tanımlayıcılar Blok alanı tanımlandığı noktadan başlar sağ kırlangıç paranteze kadar devam eder. Değişkenler, yerel değişkenler ve fonksiyonlar için kullanılır. Dış bloklar eğer iç blokta aynı isimle değişken varsa iç bloktan gizlenirler. 5

Saklama Sınıfları 6

Saklama Sınıfları 7

Rasgele Sayı Üretimi rand fonksiyonu <stdlib.h> kütüphanesi yüklenmelidir 0 ile RAND_MAX (en düşük 32767- maks değeri 16 bit tamsayı) RAND_MAX <stdlib.h> içinde tanımlanmış sembolik sabittir. 0 ve RAND_MAX arasındaki her sayı seçilmek için eşit olasılığa sahiptir. Rand ile üretilecek rasgele sayı aralığı uygulama ihtiyacına göre değişir. 8

Rasgele Sayı Üretimi Yazı tura programı sadece yazı için 1 tura için 0 a ihtiyaç duyar. Zar kullanan bir program 1 ile 6 arasında rasgele sayı üretmelidir. ölçekleme Rand tarafından üretilen değerler daima 0 ile RAND_MAX arasındadır. 0 rand ( ) RAND_MAX 0 ile 5 arasında sayı üretmek için rand fonksiyonu ile % kalan operatorü kullanılır. Buna ölçekleme denir. rand( ) % 6 9

Rasgele Sayı Üretimi 6 sayısı ölçekleme faktörüdür. Aralığı kaydırmak için sonuca 1 eklenir. randnumber = 1 + rand ( ) % 6 1 randnumber 6 aralığında sayılar üretir. Genel kural: n = a + rand ( ) % b ; a kaydırma değeridir. b ölçekleme faktörüdür 10

Rasgele Sayı Üretimi 11

Rasgele Sayı Üretimi Örnek Program: 6000 kere zar atma 1 den 6 ya kadar tamsayılar yaklaşık olarak 1000 defa seçilmelidir. 12

Rasgele Sayı Üretimi 13

Rasgele Sayı Üretimi 14

Rasgele Sayı Üretimi Rand fonksiyonu gerçekte sahte rasgelelik üretir. rand fonksiyonunu defalarca çağırmak rasgleymiş gibi görünen bir sayı dizisi oluşturur. Ancak, bu sayı dizisi her program çalıştırıldığında kendi kendini tekrarlar. Her program çalışmasında farklı dizilimde gerçek rasgele sayılar üretebilmek için srand fonksiyonu kullanılır. srand argüman olarak bir tamsayı alır. srand rand fonksiyonunun programın her çalışmasında farklı dizilimde sayılar üretilmesini sağlar. 15

Rasgele Sayı Üretimi 16

Rasgele Sayı Üretimi 17

Rasgele Sayı Üretimi Her seferinde seed değeri girmeden rasgele sayı üretmek için srand ( time (NULL)); Sistem saati otomatik olarak seed değeri elde etmek için kullanılır. time fonksiyonu 1970 Ocak ayı gece yarısından itibaren kaç saniye geçtiğini döndürür. time fonksiyonu için <time.h> kütüphanesi kullanılır. 18

Şans Oyunu: Craps Kurallar: İki zar atılır Zarların toplamı hesaplanır İlk atışta 7 veya 11 gelirse oyuncu kazanır İlk atışta 2, 3 veya 12 gelirse oyuncu kaybeder İlk atışta 4,5,6,8,9,10 gelirse bu oyuncunun puanı oluyor. Oyuncu 7 atmadan önce kendi puanını tutturmalıdır. 19

Özyineleme (Rekürsif) Özyinelemeli fonksiyonlar Kendi kendini çağıran fonksiyonlar Eğer fonksiyon temel durum ile çağırılırsa bir sonuç döndürür. Eğer fonksiyon daha karışık bir problem ile çağırılırsa fonksiyon fonksiyon problemi iki kavramsal parçaya böler; Birincisi: fonksiyonun işi nasıl yapacağını bildiği kısım İkincisi: fonksiyonun işi nasıl yapacağını bilmediği kısım İkinci kısım orijinal probleme benzemelidir. Fonksiyonun bilmediği kısmı çözebilmek için kendisinin bir kopyasını çalıştırır Sonunda temel durum çözülür 20

Özyineleme (Rekürsif) 21

Özyineleme (Rekürsif) 22

Özyineleme (Rekürsif) Faktöriyel probleminin rekürsif tanımlaması aşağıdaki tanımlamayla yapılır. n! = n. (n-1)! Örneğin: faktöriyel 5! = 5. 4. 3. 2. 1 Dikkat edin 5! = 5. 4! 4! = 4. 3!... Faktöriyel hesabı rekürsif olarak hesaplanabilir. Temel durumu çöz ( 1! = 0! =1) daha sonra 2! = 2. 1! = 2*1 = 2 3! = 3. 2! = 3*2 = 6 23

Özyineleme (Rekürsif) 24

Özyinelemeli Faktöriyel Hesabı 25

Özyinelemeli Faktöriyel Hesabı 26

Özyinelemeli Fibonacci Sayıları Fibonacci serisi: 0, 1, 1, 2, 3, 5, 8... Her bir sayı kendinden önceki iki sayının toplamıdır Temel durum: Fib(0) = 0 Fib(1) = 1 Rekürsif olarak çözülebilir : Fib (n) = Fib(n-1) + Fib(n-2) 27

Özyinelemeli Fibonacci Sayıları 28

Özyinelemeli Fibonacci Sayıları n. Fibonacci sayısını bulma 29

Özyinelemeli Fibonacci Sayıları 30

Kaynaklar Paul J. Deitel, C How to Program, Harvey Deitel. Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002. 31