NESNEYE DAYALI PROGRAMLAMA VE C++



Benzer belgeler
NESNEYE DAYALI YAZILIM GELİŞTİRME

Ekle Menüsü İşlevleri ÜNİTE 3. Bu üniteyi çalıştıktan sonra; Ekle Menüsü Çizimler Grafikler Bağlantılar Metin

Ders Yazılımlarını. Seher ÖZCAN

Okunabilir Kod Yazım Standartları: Şiir Gibi Kod Yazmak

KODLAMA SİSTEMLERİNİN TANIMI :

ALGORİTMA İ VE PROGRAMLAMA

Mühendislik Ekonomisi. Prof.Dr. Orhan TORKUL

Kalite Kontrol Çemberleri (Kalite Çemberleri)

Kısmen insan davranışlarını veya sezgilerini gösteren, akılcı yargıya varabilen, beklenmedik durumları önceden sezerek ona göre davranabilen bir

Model ERP Tedarik Zinciri Yönetimi. Satınalma Yönetimi

Olasılık ve İstatistiğe Giriş-I (STAT 201) Ders Detayları

KTO KARATAY ÜNİVERSİTESİ Temel Bilgisayar 2. Hazırlayan : Erdem YAVUZ

Bölüm 1 Bilgisayar ve C Programlamaya Giriş

Bölüm 2 Algoritmalar. 2.1 Giriş

hendisliği kanı Bilgisayar MühendisliM Prof. Dr. Oya Kalıps

KALİTE ÇEMBERLERİ NEDİR?

Proses Örnekleme Yöntemleri

MATEMATİK DERSİNİN İLKÖĞRETİM PROGRAMLARI VE LİSELERE GİRİŞ SINAVLARI AÇISINDAN DEĞERLENDİRİLMESİ

Algoritmalara Giriş 6.046J/18.401J

Sağlık Kurumları Yönetimi (HAS 501) Ders Detayları

Konutta Uygulanan KDV Oranındaki Değişiklik

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ


Yaratıcılık. Yağ nereye gidiyor?

Yaz Stajı - 1 (AVM399) Ders Detayları

DERS PROGRAMI OLUŞTURMA VE ÖĞRETİM ELEMANI GÜN-SAAT AYARLARI

Bir okuma/yazma kafasının görevi adından da anlaşıldığı gibi plaka üzerinde okuma/yazma işlemlerini yapmaktır.

Stok Kısıt Tanımları. [X] Fusion Standard. [X] Entegre W3 [X] STOK.DLL, DBUPDATE. [X] DBUPDATE Programının Çalıştırılması

BÜRO YÖNETİMİ VE SEKRETERLİK DANIŞMA GÖREVLİSİ MODÜLER PROGRAMI (YETERLİĞE DAYALI)

PAPERWORK DOCFLOW Doküman&Form Akış yönetimi

Analiz Raporu. Analiz aşamasında projenin içeriği belirlenir. Çözeceğimiz problemin büyük bir problem olup olmadığını değerlendirmek,

YÖNETİM MUHASEBESİ ve Uygulamaları

Temel Bilgisayar Bilimi (Çevrimiçi) (COMPE 104) Ders Detayları

İşletmelerin rekabet avantajlarını koruyabilmeleri için sürekli olarak inovasyon yapmaları gerekir. Bunun için de ürettikleri ürünleri ve sundukları

Karlılık Faktörü. Kâr seviyesi = Satış Fiyatı Maliyet

Matematiksel Beceriler (Ortaöğretim Matematik Dersi Öğretim Programı)

FEN BİLGİSİ ÖĞRETMENİ

CUTEC etkisi: -Yüksek verimlilik -Yüksek Işlem güvenliği -Yüksek Yaşam - H7 Kalite Delik

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Özel Öğretim Yöntemleri 2 YDA

Muhasebe İlkeleri I (MGMT 203) Ders Detayları

Tüm bu problemler verilerin dijital bir sunucuda tutulması ihtiyacını oluşturdu. İhtiyacı karşılamak amaçlı hastane otomasyonu geliştirildi.

TEMEL ANTRENMAN DÖNEMİNDE SÜRAT VE SÜRATİN GELİŞİMİ. Doç. Dr. İlhan TOKSÖZ Türkiye Hentbol Federasyonu Eğitim Kurulu Üyesi

Regresyon ve İnterpolasyon. Rıdvan YAKUT

Bilgisayarda Programlama. Temel Kavramlar

İSTANBUL TAHKİM MERKEZİ KANUNU HAKKINDA BİLGİ NOTU

RASYONEL SAYILARIN MÜFREDATTAKİ YERİ MATEMATİK 7. SINIF RASYONEL SAYILAR DERS PLANI

1- KONTROL ORTAMI. Eylem Kod No. Öngörülen Eylem veya Eylemler KOS 1.3-E1. verilecektir. İlgili personele eğitim. KOS 1.2-E1 verilecektir.

CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı

Öğrenim Kazanımları Bu programı başarı ile tamamlayan öğrenci;

Çağdaş İşletmecilik (MGMT 501) Ders Detayları

Otomotiv Üretimi (MFGE 426) Ders Detayları

Taşkın Tehlike Haritalandırma Çalışmaları için bir Rehber ve Genel Şartname İhtiyacı

CDD Toz Boya Çözme ve Gönderim Sistemi

MALİYET ANALİZİ. Dr. Emin KURTCEBE Denizli SMMM Odası Genel İdare Müdürü

TAM SAYILARLA İŞLEMLER

DİN KÜLTÜRÜ VE AHLAK BİLGİSİ ÖĞRETMENİ

KORELASYON VE TEKLİ REGRESYON ANALİZİ-EN KÜÇÜK KARELER YÖNTEMİ

TOPLAMADA KISAYOLLAR

SELÇUK ÜNİVERSİTESİ FEN FAKÜLTESİ MATEMATİK BÖLÜMÜ ÖĞRETİM DEĞERLENDİRME ANKETİ

Sunu: Belli bir konunun resim, grafik, metin, ses ve görüntüler kullanılarak giriş, gelişme, sonuç bölümleriyle sıralı ve düzenli bir şekilde

WORDPAD. Hızlı erişim araç çubuğu ve dosya menüsü. Kayıt, yazdırma ve sayfa yapısına yönelik işlemlerin

Horton'nun (2001) belirttiği üzere web tabanlı öğretim ortamlarında genel olarak kullanılan ders yapıları aşağıdaki gibidir:

T. C. SELÇUK ÜNİVERSİTESİ ENGELLİ ÖĞRENCİ BİRİMİ YÖNERGESİ BİRİNCİ BÖLÜM

PROJE HAZIRLAMA REHBERİ

Nicel veri toplama araçlarından anket, test ve ölçek kavramlarının birbiri yerine kullanıldığı görülmektedir. Bu 3ü farklı araçlardır.

ADDIE Tasarım Modeli Analiz Basamağı

Projelerle Öğretme. Modül 1

BÖLÜM 11 Z DAĞILIMI. Şekil 1. Z Dağılımı

Çocuk, Ergen ve Genç Yetişkinler İçin Kariyer Rehberliği Programları Dizisi

T.C. ÇALIŞMA VE SOSYAL GÜVENLİK BAKANLIĞI İŞ SAĞLIĞI VE GÜVENLİĞİ GENEL MÜDÜRLÜĞÜ ACİL DURUM PLANI HAZIRLAMA

İktisada Giriş I (ECON 101T) Ders Detayları

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

Tebliğ. Kapsam Madde 2 Borçlanma maliyetlerine ilişkin Türkiye Muhasebe Standardının kapsamı ekli TMS 23 metninde yer almaktadır.

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

3. ÜNİTE TEKNİK RESİMDE KULLANILAN ÇİZGİ VE YAZILAR

T.C. SOSYAL GÜVENLİK KURUMU. Hizmet Sunumu Genel Müdürlüğü GSS Yazılımları Daire Başkanlığı Kasım 2011

Gerçekleştirme Raporu

Tasarım Raporu. Grup İsmi. Kısa Özet. Tasarım Hakkında Ne Biliyorsunuz? Tasarım Amacı Nedir?

İÇİNDEKİLER TOPLAMA YOLUYLA SAYMA YÖNTEMİ ÇARPMA YOLUYLA SAYMA YÖNTEMİ FAKTÖRİYEL

T.C. SAĞLIK BAKANLIĞI SAĞLIĞIN GELİŞTİRİLMESİ GENEL MÜDÜRLÜĞÜ

3. BÖLÜM. İş Analizi ve Tasarımı

ÇOCUK VE KİTAP Çocuk ve kitap, birbirini bütünleyen ve birbirine çok yakışan, iki değerli kelime... Çocuklara okul öncesi çağlarında kitapları tanıtma

GRAFİK TEMELLERİ. Grafik ve Animasyon. Coşkun CANLI Bilişim Teknolojileri Öğretmeni

Şekil1. Dönüşümleri yapılmış raster hazır

T.C. MALİYE BAKANLIĞI STRATEJİ GELİŞTİRME BAŞKANLIĞI İNOVASYON FİKİRLERİ YÖNETİM PROGRAMI PROJE FORMU

ARAŞTIRMA YAKLAŞIM - DESEN ve YÖNTEMLERİ

ODTÜ Bilgisayar Mühendisliği. Tanıtım Günleri Temmuz 2005

ULUDAĞ ÜNİVERSİTESİ MÜHENDİSLİK - MİMARLIK FAKÜLTESİ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ

Kesirler ve İşlemler Ondalık Kesirler ve İşlemler, Yüzdeler, Oran. Yrd. Doç. Dr. Nuray Çalışkan-Dedeoğlu Matematik Eğitimi

ÖLÇME VE DEĞERLENDĠRMEDE TEMEL ĠSTATĠSTĠKĠ HESAPLAMLAR ĠSTATĠSTĠK? İstatistik, verileri analiz ve organize etmekle uğraşan bir disiplindir.

Corpus. ''14 Yıllık Tecrübe ve Birikim'' Corpus Nedir?

Mühendislik Ekonomisi (IE 315) Ders Detayları

Diferansiyel Denklemler (MATH 276) Ders Detayları

Sağlık Politikaları ve Planlaması (HAS 502) Ders Detayları

TEKNİK RESİM. Ders Notları: Mehmet Çevik Dokuz Eylül Üniversitesi. Ölçülendirme

Malzeme Gereksinim Planlaması (MRP)

Bilişim Teknolojilerini Kullanarak İletişim Kurma, Bilgi Paylaşma ve Kendini İfade Etme

YER DEĞİŞTİRME VE DEĞER DÖNÜŞTÜRME ÖZELLİĞİNE SAHİP GÖRÜNTÜ ŞİFRELEME ALGORİTMALARININ ANALİZİ

Transkript:

NESNEYE DAYALI PROGRAMLAMA VE C++ İstanbul Teknik Üniversitesi 1.1

Dersin Amacı: GİRİŞ Nesneye Dayalı Programlama (Object-Oriented Programming) ve Üretken Programlama (Generic Programming) yöntemlerini tanıtmak. Bu yöntemlerin iyi bir program yazmak için etkin bir biçimde nasıl kullanılacağını C++ ile göstermek. Neden C++: Kaliteli program yazmaya yönelik özellikleri Sahip olduğu program arşivleri Bu konuda yazılmı ş yüzlerce kitap ve dergi Yaygın kullanım Sistem Programları: İşletim sistemleri sürücü programları Ticari programlar: Bankacılık, sigorta uygulamaları Grafik programları Bilgisayar ağları üzerinde iletişim programları 1.2

C++ ile Programlama Öğrenirken Dikkat Edilmesi Gereken Noktalar: Konuşma dillerinin gramer kurallarına benzer şekilde bilgisayar programlama dilleri de çeşitli yapısal kurallar içerirler. Programlama dilinin teknik ayrıntılarını ve kurallarını iyi bilmek iyi program yazmak için yeterli değildir. Bir programlama dili öğrenilirken dilin kuralları ve teknik ayrıntılarından önce o dilin desteklediği programlama yöntemi ve düşünce biçimi iyice anlaşılmalıdır. Özellikle C++ konusunda daha zor olan ve daha çok zaman alan aşama programlama yönteminin öğrenilmesidir. C++ öğrenirken ilk amacınız, program yazmak için yeni sentaks (gramer) kuralları öğrenmek değil, program geliştirmek için yeni ve daha etkin bir yöntem öğrenmek olmalıdır. 1.3

Programlama Nedir? İnsanlar günlük hayatta kullandıkları konuşma dilleri ile çeşitli kavramları birbirlerine anlatmaya çalışırlar. Benzer şekilde bilgisayar programcıları da çözülmesi gereken problemlerle ilgili kavram ve varlıkları, kullandıkları programlama dili ile bilgisayarda ifade etmeye çalışırlar. Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarda ifade edilmesidir. Bunu yapabilmek için, kodlamaya geçilmeden önce tasarım aşamasında, problemi oluşturan varlıkların bilgisayarda ifade edilebilecek şekilde modellerinin oluşturulması gerekmektedir. Problem Uzayı Soyutlama Modelleme Gerçekleme Programlama Dili Çözüm Uzayı Gerçek Dünya Programcı Bilgisayar 1.4

Dr. Sanem Sarıel'in OOP notlarından alınmistir. 1.5

Bir Yazılımın Kalitesi Bir yazılım istenen işi doğru olarak yapmalıdır. Program kolay kullanılabilir olmalıdır. Program uygulamanın gerektirdiği kadar hızlı çalışmalıdır. Program, sistem kaynaklarını (işlemci, bellek, disk, iletişim ağı vb.) gerektiğinden daha fazla kullanmamalıdır. Yazılım sağlam olmalıdır. Yazılım yeterli dokümantasyona (kullanım klavuzu) sahip olmalıdır. Yazılımı güncellemek kolay olmalıdır. kullanıcı Programın kaynak kodu kolay okunabilir ve anlaşılır olmalıdır. Programın yapısı bağımsız modüllerden oluşmalı, modüller arasındaki iletişim ve etkileşim mümkün olduğu kadar az olmalıdır. Yazılımın bakımı kolay olmalıdır. Yazılım projesi yeterli bir süre içinde tamamlanmalıdır. Yazılımın modülleri yeni projelerde tekrar kullanılabilmeli. Yazılımı geliştirme maliyeti düşük tutulabilmelidir. Yazılım geliştiren Yazılım, tasarım aşamalarını açıklayan dokümantasyona sahip olmalıdır. Nesneye dayalı programlama yukarıdaki maddelerde belirtilen kalite kriterlerini sağlamak üzere ortaya konmu ş bir yöntemdir. Tasarım yapılırken ve bu tasarım C++ ile programa dönüştürülürken kalite kriterleri sürekli göz önünde bulundurulmalıdır. 1.6

Yazılım Geliştirme Aşamaları Problem Çözümleme/Planlama Tasarım/Modelleme Nesneye Dayalı Düşünce Dokümantasyon Kodlama C++ Test Ürün (Yazılım) 1.7

Çözümleme (Analiz): Belirsizlik kalmayacak şekilde çözülmesi istenen problem anlaşılır ve yazılımın gerçekleştirilmesine yönelik hazırlıklar yapılır. Tasarım: Bu aşamada amaç, gerçek dünyadaki problemin bilgisayarda temsil edilebilecek soyut bir modelinin oluşturulmasıdır. Çözümün hangi unsurlardan oluşacağı ve bu parçaların nasıl modelleneceği tamamiyle programlama yöntemine bağlıdır. Tasarım sonrası ortaya çıkacak olan yazılımın kalitesini doğrudan etkilediğinden bu aşamada iyi ve doğru bir çözümün oluşturulması çok önemlidir. Bu nedenle kodlamaya geçilmeden önce kurulan modelin sağlamasının (verification) yapılması gerekir. Kodlama: Tasarım aşamasında oluşturulan model, bir programlama dili ile bilgisayara bu aşamada aktarılır. Dokümantasyon: Yazılım projesinin her aşamasında yapılan işleri açıklayan dokümanlar hazırlamak gereklidir. Sınama: En son aşamada programın olası giri ş değerleri için nasıl davrandığı incelenir. 1.8

İşleve Dayalı (Procedural) Programlama Yöntemi Basic, Fortran, Pascal, C gibi programlama dillerinin desteklediği bu yöntemde öncelikle gerçeklenmek istenen sistemin yapması gereken i ş belirlenir. Büyük boyutlu ve karmaşık işler, daha küçük ve basit işlevlere (fonksiyon) bölünerek gerçeklenirler. Ana program Fonksiyonlar ORTAK (GLOBAL) VERİLER 1.9

İşleve Dayalı Programlama Yönteminin Değerlendirmesi Böl ve yönet prensibine dayanır. Amaç büyük programları küçük parçalara bölerek yazılım geliştirme işini kolaylaştırmaktır. Ancak yazılımların karmaşıklıkları sadece boyutlarından kaynaklanmaz. Küçük problemler de karmaşık olabilir. Gerçek dünyadaki sistemler sadece fonksiyonlardan oluşmaz. Sistemin gerçeğe yakın bir modelini bilgisayarda oluşturmak zordur. Tasarım aşamasında verilerin göz ardı edilip fonksiyonlara ağırlık verilmesi hatalar nedeniyle verilerin bozulma olasılığını arttırır. Programcılar kendi veri tiplerini yaratamazlar Programı güncellemek gerektiğinde, yeni öğeler eklemek ve eski fonksiyonları yeni eklenen unsurlar için de kullanmak zordur. İşleve dayalı yöntemi de kullanarak kaliteli programlar yazmak mümkündür. Ancak nesneye dayalı yöntem kaliteli programların oluşturulması için programcılara daha çok olanak sağlamaktadır ve yukarıda açıklanan sakıncaları önleyecek mekanizmalara sahiptir. 1.10

Nesneye Dayalı (Object-Oriented) Programlama Yöntemi Gerçek dünya nesnelerden oluşmaktadır. Çözülmek istenen problemi oluşturan nesneler, gerçek dünyadaki yapılarına benzer bir şekilde bilgisayarda modellenmelidir. Nesnelerin yapıları iki bölümden oluşmaktadır: 1. Nitelikler (özellikler ya da durum bilgileri), 2. Davranış lar (yetenekler) Tasarım yapılırken sistemin işlevi değil, sistemi oluşturan veriler esas alınır. Bu nedenle tasarım yapılırken sorulması gereken soru, Bu sistem ne i ş yapar? değil, Bu sistem hangi nesnelerden oluş ur? olmalıdır. Hangi unsurların nesne olarak modellenebilir: İnsan kaynakları ile ilgili bir programda; memur, işçi, müdür, genel müdür. Grafik programında; nokta, çizgi, çember, silindir. Matematiksel işlemler yapan programda; karmaşık sayılar, matris. Kullanıcı arayüzü programında; pencere, menü, çerçeve. 1.11

Nesne Örneğ i: Grafik Programındaki nokta Düzlemdeki bir noktanın özellikleri; x-y koordinatlarıdır. Davranışları ise, noktanın düzlemde yer değiştirmesi, renginin değişmesi, ekranda görünmesi ve ekranda kaybolmasıdır. Buna göre, örnek olarak düşünülen Nokta modeli şu bölümlerden oluşacaktır: x ve y koordinatları için iki adet tamsayı değişken: x, y Noktanın koordinatlarını değiştirerek düzlemde yer değiştirmesini sağlayan fonksiyon: hareket, Noktanın ekranda görünmesini sağlayan bir fonksiyon: gorun, Noktanın ekrandan silinmesini sağlayan bir fonksiyon: kaybol. Model bir defa oluşturulduktan sonra, ana programda bu modelden bir çok nesne yaratılabilir. Nokta nokta1, nokta2, nokta3; : nokta1.hareket(50,30); nokta1.gorun(); 1.12

Bir Nesne Modeli: Veriler (nitelikler) kaybol x gorun Fonksiyonlar (davranışlar) y hareket Nesneye Dayalı Bir Programın Yapısı: Ana program mesaj Nesneler mesaj mesaj mesaj mesaj 1.13

Yöntemin Değerlendirmesi: Gerçek dünya nesnelerden oluştuğundan bu yöntem ile sistemin daha gerçekçi bir modeli oluşturulabilir. Program daha anlaşılır olur. Nesne modellerinin içindeki veriler sadece üye fonksiyonların erişebileceği şekilde düzenlenebilirler. Veri saklama ( data hiding) adı verilen bu özellik sayesinde verilerin herhangi bir fonksiyon tarafından bozulması önlenir. Programcılar kendi veri tiplerini yaratabilirler. Bir nesne modeli oluşturduktan sonra bu modeli çeşitli şekillerde defalarca kullanmak mümkündür (reusability). Programları güncellemek daha kolaydır. Nesneye dayalı yöntem takım çalışmaları için uygundur. 1.14