BİL-142 Bilgisayar Programlama II

Benzer belgeler
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ü

BİL-142 Bilgisayar Programlama II

10/17/2007 Nesneye Yonelik Programlama 3.1

Yrd. Doç. Dr. Caner ÖZCAN

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

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

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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

Yrd. Doç. Dr. Caner ÖZCAN

11- FONKSİYONLAR (FUNCTIONS)

Göstericiler (Pointers)

Özyineleme (Recursion)

C++ Dersi: Nesne Tabanlı Programlama

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

Pointer Kavramı. Veri Yapıları

BİL-142 Bilgisayar Programlama II

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

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

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

Hafta 13 Fonksiyonlar

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Nesne Yönelimli Programlama

PROGRAMLAMAYA GİRİŞ DERS 2

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

BİLG Dr. Mustafa T. Babagil 1

Fonksiyonlar -Genel Test- A

C Programlama Dilininin Basit Yapıları

BİLGİSAYAR PROGRAMLAMA DERSİ

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Dr. Fatih AY Tel: fatihay@fatihay.net

Bölüm 9. Altprogramlar ISBN

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C++ Dersi: Nesne Tabanlı Programlama

Nesne Yönelimli Programlama

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA I

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Özyineleme (Recursion)

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

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

Pointers (İşaretçiler)

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

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Fen ve Mühendislik Uygulamalarında MATLAB

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

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

ALGORİTMA VE PROGRAMLAMA II

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Zeki Optimizasyon Teknikleri

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

ALGORİTMA VE PROGRAMLAMA I

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I

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

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

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

VERİ TABANI ve YÖNETİMİ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Bölüm 7. İfadeler ve atamalar ISBN

C++ Dersi: Nesne Tabanlı Programlama

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

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

Pascal Programlama Dili

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

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

GÖRÜNTÜ İŞLEME MATLAB DERS-4

C++ Dersi: Nesne Tabanlı Programlama

Fonksiyonlar (Altprogram)

Adım Adım C-II. Eksik kalmış konular

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Dr. Fatih AY Tel:

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Bilgisayar Programlama

YZM 2105 Nesneye Yönelik Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Bilgisayar programlama III Fonksiyonlar

Sunum İçeriği. Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMA II

Lambda İfadeleri (Lambda Expressions)

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

C++ Dersi: Nesne Tabanlı Programlama

Transkript:

BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 1

Giriş Büyük programları geliştirmenin en iyi yolu, programı küçük ve basit bileşenlerle yapılandırmaktır. Her bileşenin geliştirilmesi için ayrı ayrı fonksiyon kullanılmalıdır. Fonksiyonlar girişler alıp çıkışlar oluşturur. C++ kullanıcılara matematiksel hesaplamalar, string işlemleri, karakter işlemleri, giriş/çıkış işlemleri için çok sayıda hazır fonksiyon sunar. Fonksiyonlar programlarda reusability artırır. 3 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 2

math Kütüphane Fonksiyonları <cmath> kütüphanesi çok sayıda hazır fonksiyonu kullanıcılara sunar. 5 math Kütüphane Fonksiyonları 6 3

Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) Çok Parametreyle Fonksiyon Tanımı Fonksiyon için örnek. 8 4

Çok Parametreyle Fonksiyon Tanımı 9 Çok Parametreyle Fonksiyon Tanımı 10 5

Çok Parametreyle Fonksiyon Tanımı 11 Çok Parametreyle Fonksiyon Tanımı 12 6

Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) Fonksiyon Prototipleri Fonksiyon prototipleri derleyiciye fonksiyonun adını, geri döndürdüğü veri türünü, fonksiyonun aldığı değişken sayısını ve herbirinin türünü bildirir. Fonksiyonun implementation kısmında parametreler aynı sırada ve aynı türde kullanılmalıdır. Tür değişimlerinin type casting ile yapılması gerekir. Tür değişimlerinde aşağıdaki temel türü yukarıdaki temel türe dönüştürürken veri kaybı olur. Yukarıdaki temel türü aşağıdaki türe dönüştürmek için type casting yapılmalıdır. 14 7

Fonksiyon Prototipleri 15 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 8

C++ Standart Kütüphaneleri C++ çok sayıda standart kütüphane sağlamaktadır. Her bir kütüphane kendi içinde bir grup sınıf ve fonksiyona sahiptir. 17 C++ Standart Kütüphaneleri 18 9

C++ Standart Kütüphaneleri 19 C++ Standart Kütüphaneleri 20 10

Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) Örnek: Rastgele Sayı Üreteci <cstdlib> kütüphanesi içerisindeki rand() fonksiyonu 0-RAND_MAX arasında rastgele bir sayı üretir. RAND_MAX değeri GNU C++ için 214748647, Visual Studio için 32767 dir. Her bir kütüphane kendi içinde bir grup sınıf ve fonksiyona sahiptir. rand() fonksiyonun üreteceği sayı için aralıktaki tüm sayılar eşit olasılığa sahiptir. 22 11

Örnek: Rastgele Sayı Üreteci 23 Örnek: Rastgele Sayı Üreteci 6.000.000 kez zar atma sonucunda sayıların sıklıkları. 24 12

Örnek: Rastgele Sayı Üreteci 6.000.000 kez zar atma sonucunda sayıların sıklıkları. 25 Örnek: Rastgele Sayı Üreteci 6.000.000 kez zar atma sonucunda sayıların sıklıkları. Program tekrar çalıştırıldığında aynı sonucu oluşturacaktır. 26 13

Örnek: Rastgele Sayı Üreteci srand() fonksiyonu bir işaretsiz integer değer alır ve rand() fonksiyonunun farklı sonuçlar üretmesini sağlar. srand() fonksiyonuna sürekli yeni değer girilmesi genellikle bilgisayarın zaman fonksiyonu ile yapılır. Random üretilen sayı shift edilebilir ve ölçeklenebilir. 27 Örnek: Rastgele Sayı Üreteci 28 14

Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) Scope Kuralları Her değişken tanımlandığı blok (scope) içerisinde geçerlidir. C++ ile function scope, file scope, block scope, function-prototype scope, class scope ve namespace scope oluşturulabilir. Aynı değişken adı farklı seviyelerdeki scope larda kullanılabilir. Bir değişken, default olarak kendisine en yakın scope kullanılarak belirlenir. Bir üst seviyedeki değişken adına :: operatörü ile ulaşılabilir. 30 15

Scope Kuralları 31 Scope Kuralları 32 16

Scope Kuralları 33 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 17

Unary Scope Resolution Operator Unary scope resolution operator (::) aynı isimdeki global değişkene ulaşımı sağlar. 35 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 18

Call-by-Value ve Call-by-Reference Bir fonksiyon aldığı parametrelerin değişen değerlerini aynı değişkenle geri gönderebilir. Call-by-reference, fonksiyona gönderilen parametrelerin fonksiyondan çıkarken son değerlerinin geri gönderilmesini sağlar. Call-by-value, fonksiyona gönderilen parametrelerin değerlerini geri göndermez. Call-by-reference şeklinde parametre gönderildiğinde değişkenin ş e eski değeri değişir. ş Call-by-value, default çalışma şeklidir. const ile yapılan tanımlamalarda değişkenin değeri değişmez. 37 Call-by-Value ve Call-by-Reference 38 19

Call-by-Value ve Call-by-Reference 39 Call-by-Value ve Call-by-Reference Bir değişken başka bir değişkenle referans gösterilebilir. Bir değişkenin referansı & işareti ile gösterilir ve değişkenin adresini saklar. Referans göstermek için kullanılan değişkenin başlangıç değerinin atanması gereklidir. Aşağıdaki örnekte &cref değişkeni count değişkenini referans gösterir. &cref değişkenin ğ ş değeri ğ değiştiğinde ğ ş ğ count değişkeninin de değeri değişir. 40 20

Call-by-Value ve Call-by-Reference 41 Call-by-Value ve Call-by-Reference Başlangıç değeri atanmayan referans değişkeni için hata oluşur. 42 21

Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) Default Parametreler Fonksiyonlarda tanımlanan parametrelere başlangıç değeri atanabilir. Başlangıç değerleri fonksiyonun prototip tanımlaması yapılırken verilir. Birden fazla parametre kullanılırsa, fonksiyon çağırıldığında default değer yerine verilen değerler soldaki parametreden başlanarak aktarılır. 44 22

Default Parametreler 45 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 23

Function Overloading C++ aynı isimde farklı parametreler alan ve farklı sonuçlar geri döndüren fonksiyonlar tanımlamaya olanak verir. Function overloading farklı parametrelere sahip olan aynı isimde birden fazla fonksiyon tanımlamayı ifade eder. 47 Function Overloading 48 24

Function Overloading Farklı nümerik veri türleri için (float toplama, integer toplama, double toplama) aynı isimle kullanılan matematiksel işlem yapan fonksiyonlar kullanılabilir. Overload yapılan fonksiyonları aynı parametre listesi ve farklı dönen değerle tanımlamak compile hatası oluşturur. 49 Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon Prototipleri C++ Standart Kütüphaneleri Örnek: Rastgele Sayı Üreteci Scope Kuralları Unary Scope Resolution Operator Call-by-Value ve Call-by-Reference Default Parametreler Function Overloading Özyineleme (Recursion) 25

Özyineleme (Recursion) Bazı problemlerin çözümünde fonksiyonların kendi kendisini çağırması daha uygundur. Bir recursive function doğrudan yada dolaylı olarak kendisini çağıran fonksiyondur. Bir problem birbirine benzeyen basit parçalar halinde ifade edilirse her parça ayrı ayrı çözülebilir. Her parçanın çözümünde aynı işlemlerin tekrar edilmesi için aynı fonksiyon tekrar tekrar çağırılabilir. Recursive çağırmada tüm paçalar için fonksiyon kendi kendisini çağırır. 51 Özyineleme (Recursion) Faktöriyel işlemi recursive fonksiyon çağırma kullanılarak çözülebilir. n! = n(n-1)(n-2).....1 Iterative bir şekilde çözüm aşağıdaki gibi yapılabilir: Recursive şekilde problem aşağıdaki gibi ifade edilir: n! = n(n-1)! 52 26

Özyineleme (Recursion) Recursive çalışmaya için örnek aşağıda görülmektedir. 53 Özyineleme (Recursion) 54 27

Özyineleme (Recursion) fibonacci (0) = 0 fibonacci (1) = 1 fibonacci (n) = fibonacci (n-1) + fibonacci (n-2) 55 Özyineleme (Recursion) 56 28

Özyineleme (Recursion) Iterative faktöriyel hesabı 57 Ödev f(x) = ax 3 + bx 2 + cx + d şeklinde bir fonksiyonun a, b, c ve d katsayıları dışarıdan giriliyor. Bu eşitliğin f(x) = 0 olduğu bir x değerini bisection, secant ve newton metodlarıyla f(x) = ±0,001 aralığında bulan bir program yazınız. Program ilk çalıştığında aşağıdaki ekran gelecektir. a katsayısını giriniz = 1 b katsayısını giriniz = -3 c katsayısını giriniz = 0 d katsayısını giriniz = 1 1- Bisection 2- Secant 3- Newton 4- Yeni katsayı girişi Metodu seçiniz (1, 2, 3, 4, Çıkış için 0 giriniz) : 1 Hesaplama sırasında her adımda, adım sırası, x ve y değerleri ekrana yazılacaktır. Menüden 4 seçilirse yeni bir fonksiyon için katsayı girişi yapılacaktır. 1-3 arası seçimlerde girilen fonksiyon için seçilen metod uygulanacaktır. Her metod seçiminden sonra ekran temizlenerek menüye dönülecektir. 58 29

Ödev Aşağıdaki örnek çıktı y = x 3-3x 2 + 1 fonksiyonu ve Bisection metodu için verilmiştir. Bisection ************* i xi yi ****** ****** ****** 1 0,5000 0,3750 2 0,7500-0,2656 3 0,6250 0,0722 4 0,6875-0,0930 5 0,6562-0,0093 6 0,6406 0,0317 7 0,6484 0,0112 8 0,6523 0,00090009 Press any key to continue... 59 30