BİL-142 Bilgisayar Programlama II

Benzer belgeler
BİL-142 Bilgisayar Programlama II

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

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

BTEP243 Ders 3. class Yazım Kuralı:

C++ Dersi: Nesne Tabanlı Programlama

NESNEYE YÖNELİK PROGRAMLAMA

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

Öğr. Gör. Serkan AKSU 1

Pointer Kavramı. Veri Yapıları

C#(Sharp) Programlama Dili

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

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ü

Nesne Yönelimli Programlama

Sunum İçeriği. Programlamaya Giriş

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Ders 8: Metotlar. barisgokce.com

Göstericiler (Pointers)

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

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

PROGRAMLAMAYA GİRİŞ DERS 2

C++ Dersi: Nesne Tabanlı Programlama

C Programlama Dilininin Basit Yapıları

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

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

#ifndef COMPLEX_H #define COMPLEX_H

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

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

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

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

Hafta 13 Fonksiyonlar

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

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

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

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

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

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

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

Nesneye Yönelik Programlama (OOP) 7.Hafta

BİL-141 Bilgisayar Programlama I (Java)

Diziler (Arrays) Çok Boyutlu Diziler

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

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ü

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

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

C++ Dersi: Nesne Tabanlı Programlama

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

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

WebInstaller. 1. Kurulum Đçin Gereksinimler

Nesne Yönelimli Programlama

SIMAN KULLANIM KILAVUZU

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

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

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Karma C/C + + Kodlama

Internet Programming II

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

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

Temel Giriş/Çıkış Fonksiyonları

Nesneye Dayalı Programlama

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Lecture 11: Generics

Operatörlerin Aşırı Yüklenmesi

public static int Toplam int x, int y

Diziler İndisli Değişkenler

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

NESNE MODELLERİ : SINIFLAR

YZM 2105 Nesneye Yönelik Programlama

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

1. SINIFLAR Sınıf (Class) Mantığı

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

Programlama Dili Prensipleri. Lab Notları 8 ve 9

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

İnternet Programcılığı Dersi 2.Dönem Ders Notu

BMH-303 Nesneye Yönelik Programlama

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Linux Assembly Programlamaya Giriş

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Nesne Tabanlı Programlama

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

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

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Yrd. Doç. Dr. Caner ÖZCAN

Nesne Yönelimli Programlama

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

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

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ş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 1

Giriş Bir program main() fonksiyonuyla bir veya daha fazla sınıftan oluşabilir. Her sınıf veri üyeleri ve fonksiyon üyelerine sahiptir. Bir sınıf kendisiyle ilişkili tüm veriler ve fonksiyonları içerir. 3 Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 2

Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Bir sınıf yapılan işlemleri fonksiyonları kullanılarak gerçekleştirir. Fonksiyonlar gerekirse veri üyelerini (data member) kulanabilir. Sınıf üzerinde çalışan kullanıcı fonksiyonların yaptığı işin karmaşıklığından etkilenmez. Kullanıcı bir sınıfın tanımlanmış arayüzüne (interface) erişir. Bir sınıftan birçok nesne (object) üretilebilir. Her nesne kendisine ait özellikler ve fonksiyonlara sahip olur. 5 Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 3

Sınıf ve Fonksiyon Üyeleri 7 Sınıf ve Fonksiyon Üyeleri Satır 9-17 arasında GradeBook adlı bir sınıf tanımlanıyor. Satır 13-16 arasında ekrana mesaj yazan dislaymessage() adlı bir fonksiyon tanımlanıyor. main() fonksiyonu GradeBook sınıfından mygradebook adlı bir örnek (instance, object) oluşturmaktadır. mygradebook nesnesinin displaymessage() fonksiyonu çağırılarak ekrana mesaj yazdırılmaktadır. public anahtar kelimesi (erişim belirleyicisi-access specifier) bu üyeye herkes tarafından ulaşılacağını ifade eder. (gelecek derslerde ayrıntılı görülecektir.) 8 4

Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları 10 5

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları 11 Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları 12 6

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Ekran çıktısı 13 Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Satır 15-40 arasında GradeBook adlı bir sınıf tanımlanıyor. public ve private olarak iki kısımdan oluşmaktadır. private üyelere sadece GradeBook sınıfının fonksiyon üyeleri (setcoursename, getcoursename, displaymessage) tarafından erişilebilir. Private bir üyeye dışarıdan erişmek istendiğinde (mygradebook.coursename) aşağıdaki hata oluşur: cannot access private member declared in class 'GradeBook' Satır 45 teki string değişkeni <string> header file içinde tanımlıdır. 14 7

Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Satır 54 teki getline fonksiyonu birden fazla boşluk içeren girişleri almak için kullanılır. (cin ilk boşluğa kadar alır. cin >> nameofcourse) Satır 19, setcoursenamefonksiyonu coursename değişkenine değer atar. Satır 25, getcoursenamefonksiyonu coursename değişkeninin değerini geri döndürür. Satır 31, displaymessage fonksiyonu ekrana mesaj metni yazar. Satır 36, endl satır sonu yapmak için kullanılır. 15 Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 8

Nesneleri Başlatma ve Constructor Fonksiyonu Bir sınıftan oluşturulan nesneye ilk tanımlandığında başlangıç değeri atanabilir. Başlangıç değeri atamak için kullanılan fonksiyonun (constructor) adı sınıf adıyla aynıdır Constuctor bir veya birden fazla data member veya function member çağırabilir. 17 Nesneleri Başlatma ve Constructor Fonksiyonu 18 9

Nesneleri Başlatma ve Constructor Fonksiyonu 19 Nesneleri Başlatma ve Constructor Fonksiyonu Ekran çıktısı 20 10

Nesneleri Başlatma ve Constructor Fonksiyonu Satır 17-20 GradeBook sınıfının constructor ını tanılamaktadır. Yeni bir nesne oluşturulduğunda constructor da belirlenen parametreler verilir (satır 49-50). Constructor lar herhangi bir değer döndürmezler. O yüzden return kullanılmaz. 21 Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 11

Sınıflar ve Ayrı Dosyalarda Kullanılması Bir sınıfı, main() fonksiyonu ile birlikte oluşturduğumuzda başka programlarda include yaparak kullanamayız. Derleyici iki tane main() fonksiyonu olduğu için hata mesajı verir. Header file tanımlayarak başka programlarda include ederek kullanabiliriz. Bir header file.h uzantılıdır vemain() fonksiyonu bulundurmaz. Bir header file run yapılmaya çalışılırsa derleyici hata aşağıdaki gibi bir mesaj verir. undefined reference to 'main' 23 Sınıflar ve Ayrı Dosyalarda Kullanılması 24 12

Sınıflar ve Ayrı Dosyalarda Kullanılması // Header file tanımı sonu. 25 Sınıflar ve Ayrı Dosyalarda Kullanılması 26 13

Sınıflar ve Ayrı Dosyalarda Kullanılması Header file <> yerine ile gösterilir. Header file satırına geldiğinde derleyici önce programın source code unun bulunduğu dizine bakar. Orda yoksa library file (<> ile gösterilen) dizinine bakar. Header file ların program kaynak koduyla aynı dizinde olması veya library file dizininde yer almalıdır. Header file kullanımı ile reusability artmaktadır. 27 Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme 14

Interface ve Implementation Header file sadece bir sınıfın prototipini belirleyebilir. Sınıfın tüm fonksiyon üyelerinin kodu ayrı bir kaynak kodu ile oluşturulabilir. Header file interface, diğer kaynak kod ise implementation kısmını oluşturur. Kaynak kodun adı ile header file ın adı aynıdır, uzantısı farklıdır (.h,.cpp). 29 Interface ve Implementation Prototip sınıf tanımlaması fonksiyonların yaptığı işlerin farklı kullanıcılar tarafından değiştirilmesine olanak sağlar. Prototip içinde fonksiyon tanımlamaları sonuna ; konulur. Prototip sınıf tanımlamalarında fonksiyonların değişken adlarının yazılması opsiyoneldir. 30 15

Interface ve Implementation Prototip sınıf tanımlaması 31 Interface ve Implementation Fonksiyon üyelerin tanımlaması -1 32 16

Interface ve Implementation Fonksiyon üyelerin tanımlaması -2 33 Interface ve Implementation Tanımlanan sınıfın kullanılması 34 17

Ekran çıktısı Interface ve Implementation 35 Compile ve link işlemi 36 18

Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri Sınıf ve Veri Üyeleri, Get ve Set Fonksiyonları Nesneleri Başlatma ve Constructor Fonksiyonu Sınıflar ve Ayrı Dosyalarda Kullanılması Interface ve Implementation Set Fonksiyonuyla Veri Geçerleme Set Fonksiyonuyla Veri Geçerleme Bir sınıfın data üyelerinin değerlerinin geçerliliği set fonksiyonları tarafından yapılabilir (validation). Atama işlemi yapılırken istenen şartlar kontrol edilir. İstenen şartlar sağlanmıyorsa kullanıcıya mesajla uyarı verilebilir. 38 19

Set Fonksiyonuyla Veri Geçerleme Sınıf prototip tanımı 39 Set Fonksiyonuyla Veri Geçerleme Sınıf fonksiyonlarının tanımı -1 40 20

Set Fonksiyonuyla Veri Geçerleme Sınıf fonksiyonlarının tanımı -2 41 Set Fonksiyonuyla Veri Geçerleme Sınıf fonksiyonlarının tanımı -3 42 21

Set Fonksiyonuyla Veri Geçerleme length() fonksiyonu bir string içindeki karakter sayısını verir. substr() fonksiyonu bir string içinden bir kısmı almak için kullanılır. setcoursename() fonksiyonu name değişkeninin karakter sayısını kontrol eder. name değişkeninin karakter sayısı 25 ten büyükse ilke 25 karakteri alır. Aşağıdaki satırla karakter sayısı 25 ten büyükse kullanıcıya mesaj verilir. 43 Set Fonksiyonuyla Veri Geçerleme Tanımlanan sınıfın kullanılması -1 44 22

Set Fonksiyonuyla Veri Geçerleme Tanımlanan sınıfın kullanılması -2 45 Ekran çıktısı Set Fonksiyonuyla Veri Geçerleme 46 23

Ödev Bir hesap makinesi sınıfı oluşturunuz. Hesap makinesi sınıfını prototip ve kaynak kodla geliştiriniz. Bir program ile include yaparak çalıştırınız. Hesap makinesi i toplama, çıkarma, çarpma ve bölme işlemleri l i yapacaktır. İşlemler aşağıdaki gibi ardarda girilen iki sayı kullanılarak yapılacaktır. 1.sayıyı giriniz:20 2.sayıyı giriniz:10 İki sayı girildikten sonra ekrana aşağıdaki işlem menüsü gelecek ve yapılan girişe göre işlem yapılarak sonuç ekrana yazılacaktır. 1- Toplama 2- Çıkarma 3- Çarpma 4- Bölme İşlem türünü seçiniz (1,2,3,4) : 2 İşlem sonucu = 10 47 24