Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

C++ Ders Notları 1.Ders (Programlamaya Giriş)

Benzer bir sunumlar


... konulu sunumlar: "C++ Ders Notları 1.Ders (Programlamaya Giriş)"— Sunum transkripti:

1 C++ Ders Notları 1.Ders (Programlamaya Giriş)
Yrd. Doç. Dr. Musa Ataş

2 Dersin Amacı C++ dersi ile: Bu dersin sonundaki kazanımlarınız:
Bilgisayar bilimlerinde ve C++ programlama dilinde geçen kavramlar. Program geliştirme safhaları. Nesneye Dayalı Analiz ve Programlama. Bu dersin sonundaki kazanımlarınız: Algoritma geliştirme yeteneği. Nesneye dayalı programlama bilgisi. C++ programlama tecrübesi. Code::Blocks geliştirme editörü ve MingW derleyicisi tecrübesi.

3 Soyutlama (Abstraction)
Soyutlamanın amacı karmaşıklıkla başa çıkmaktır. Bir nesnenin veya olayın sadece belli özelliklerini alıp, diğerlerini göz ardı etme yeteneğidir. (Different Viewpoints, projection) Bilgisayar programları genellikle n boyutlu gerçek dünya problemlerinin (real world problems), m boyutlu başka bir uzayda (programlama ve mantık uzayı) çözümlenmesi için araçlar sunar. Zor ve karmaşık bir problemi çözmenin en etkin ve kolay yolu problemi soyutlamaktır, yani; problemi en genel ana hatlarıyla çerçevelendirip detayları ile ilgilenmeden kuş bakışı bir çözüm geliştirmektir. Örn-1: Yabancı bir ülkeye veya şehre gittiğinizi düşünelim. O belde hakkında kısa süre içerisinde fikir sahibi olmak için ne yapardınız? (helikopter turu, harita, rehber tutma)

4 Soyutlama (Abstraction) Örnekleri
İskelet Sistemi Kas Sistemi Sinir Sistemi

5 Soyutlama:Katman/Bileşen Mimarisi
Etrafımızdaki nesnelere/objelere dikkat edilirse katmanlar şeklinde inşa edilmiş olduğu görülür. Her katman birbiriyle etkileşim halindeki bileşenlerden meydana gelmiştir. Katman ve bileşen mimarisine göre her bileşen daha alt bileşenlerin zarfı şeklinde düşünülebilir. Bize verilen soyutlama kabiliyeti ile istediğimiz katmana ve bileşene konsantre olabiliyoruz. (Multiresolution && Scale-Space in Computer Vision, Different Viewpoints in System Engineering, Granularity in Software Engineering) Mesela insan vücudunu ele alırsak, atomik boyutta (atom uzayında) trilyonlarca atomdan meydana gelmiş bir kitle olarak görülebildiği gibi, hücre uzayında milyonlarca hücrelerden meydana gelmiş karmaşık bir sistem olarak ta görülebilir. Biraz daha yukarı seviyelere çıktığımızda, doku uzayından meseleyi incelediğimizde tamamen ayrı bir katmanda çalıştığımız görürüz. Katman ve bileşen/alt bileşen mimarisi aslında soyutlamanın bir çeşididir. Detaylarda boğulmak yerine sadece bizi ilgilendiren kısımlara konsantre olmamız o katmanla ilgili genel bir fikir edinmemiz açısından yeterli gelecektir.

6 Soyutlama: Görsel Örnekler-1

7 Soyutlama: Görsel Örnekler-2

8 Bilgisayarda Katmanlı Mimari
Bilgisayar da katmanlı mimari ile inşa edilmişlerdir. Her katman (Layer), bir alt katmanın karmaşıklığını (complexity) gizlemektedir. En altta fiziksel katman yer almaktadır, bu katmanda elektrik yüklerinin ortam içerisinde akışı bulunmaktadır. Onun bir üzerinde elektronik devre elemanlarının katmanı bulunur. Bu katmanda bilgisayar sistemi milyonlarca mikro ölçekte transistör ve ilgili bileşenler ve yolları barındırmaktadır. Onun üzerinde mantıksal kapıların olduğu katman yer almaktadır. Bir üstte mantıksal kapılar ve elektronik bileşenlerden meydana gelmiş donanım katmanı bulunur. (CPU, RAM, Anakart, BIOS) Bunun üzerinde işletim sistemi (OS) katmanı yer alır. İşletim sistemin sağladığı servislerden (API) faydalanan programlama dili katmanı ile, programcı düşük seviye sistem çağrıları ile uğraşma zahmetinden kurtulur. Dolayısıyla programlama dili katmanı programcıyı, alt katmanlardaki karmaşıklıktan izole ederek daha etkin kod yazmasını sağlar. Bir üst seviyede uygulama programları katmanı yer alır. Bu katmanda bildiğimiz birçok uygulama programı, word, excel, hesap makinesi, web browser, ve belirli bir iş için geliştirilen uygulama yazılımları yer almaktadır. En üst seviyede ise insan kullanıcısı bulunmaktadır.

9 Bilgisayarda Katmanlı Mimari (Grafik)
Kullanıcı ve/veya Programcı Seviyesi Programlama Dilleri İşletim Sistemleri Donanım aygıtları Elektronik Entegre Sistemleri Fiziksel Katman

10 Programlama Dilleri Katmanı
Düşük Performans Öğrenmesi Kolay Yüksek seviyeli script diller (matlab, simulink, actionscript) Nesne tabanlı diller OOP, (C++, Java, C#, Delphi, vb) Yapısal Diller C++, Pascal, Delphi, C Orta Seviyeli Diller C / C++ Assembly Dili Makine Dili 0,1 Yüksek Performans Öğrenmesi Zor

11 C++ Geliştirme Ortamı: Code::Blocks
Bu dersin kapsamında C++ programlarını geliştirmek için CodeBlocks IDE’sini (Integrated Development Environment) kullanacağız. CodeBlocks geliştirme editörü internet üzerinden free olarak indirlebilen açık kaynak kodlu bir editördür. CodeBlocks editörü kendi içerisinde cross-platform (platformlar arası) çalışabilen Mingw C/C++ derleyicisini barındırmaktadır. CodeBlocks yüklendiğinde otomatik olarak Mingw derleyicisi de kurulacaktır ve gerekli ayarlamalar yapılacaktır. Internetten CodeBlocks editörünü indirmek için

12 Code::Blocks Kurulumu ve Çalıştırılması-1
codeblocks-10.05mingw-setup.exe yi biligsayarınıza download ettikten sonra çift klikleyip, gelen pencerelerde next butonuna basarak kurulumu tamamlıyoruz. Yükleme bittikten sonra CodeBlocks ı açmaya çalıştığınızda karşınıza çıkan ekranda siteminizde yüklü diğer C/C++ derleyicileri listelenecektir. Eğer yukarıda yazdığımız setup exe yi indirmişseniz MingW aslında GCC derleyicisini sisteme yüklemiş olacaktır. En üstte bulunan GNU GCC yi seçip açılan pencereyi kapatıyoruz.

13 Code::Blocks Kurulumu ve Çalıştırılması-2
Açılan ana geliştirme formunda ortadaki create a new project linkine veya File-New-Project e geldiğimizde açılan ekrandan Console Application a ardından çıkan ekranda ise C++ ı seçip ….

14 Code::Blocks Kurulumu ve Çalıştırılması-3
Project title yazan yere türkçe karakter ve boşluk içermeyecek bir şekilde proje ismi girmemiz gerekiyor. Örn: Hafta_2_3_Ogrenci_Islemleri Dikkat edilirse Proje Büyük harfle başlanmış, kelimeler arası alt çizgi ile bağlantı yapılmış ve türkçe karakter kullanılmamıştır. Folder to Create project in yazan yere de uygun bir path (klasör) ismi yazıp next butonuna tıklıyoruz.

15 Code::Blocks Kurulumu ve Çalıştırılması-4
Gelen ekranda eğer derleyiciyi değiştirmeyeceksek hiçbir yeri değiştirmeden Finish butonuna basıyoruz.

16 Code::Blocks Kurulumu ve Çalıştırılması-5
Açılan Editör penceresinde sol tarafta bulunan projemizin altınaki Sources yazan klasörün önündeki artıya tıklayıp açılmasını sağlayarak içerisindeki main.cpp ye çift tıklıyoruz. Şablon C++ kodları editörde açılacaktır. Bu kodlar minimal düzeyde çalıştırılabilir ve konsolda “Hello World!” mesajını görebiliriz. Bunun için F9 a basıyoruz veya editörde Build and Run yazan simgeye tıklıyoruz.

17 Code::Blocks Kurulumu ve Çalıştırılması-6

18 Code::Blocks Hata Ayıklama/Debug Modu-1
Program geliştirme sürecinde bazan programcılar yazdıkları kodları satır satır analiz ederek hataları ve değişkenlerin o anki durumlarını ve değerlerini kontrol etmek isteyebilirler. Bu işleme debugging denilmektedir. Code::Blocks editörü programcının debug etmesine yardımcı olacak bir takım araçlar ve bileşenler içermektedir. Bu iş için ilkönce editörün sol tarafında kod satır numaralarının hemen sağında istediğimiz bir satıra gelerek mouse ile bir kez tıklıyoruz. Aşağıdaki şekilde görüldüğü gibi kırmızı bir nokta ile beraber ilgili satırın gri renkle seçildiğini göreceğiz. Kırmızı noktaya breakpoint da denilmektedir. F8 e bastığımızda debugger çalışıp ilk kırmızı noktada program çalışması durdurulacaktır.

19 Code::Blocks Hata Ayıklama/Debug Modu-2
Program kodlarının içerisindeki değişkenleri izleyebilmek için Watches menüsünü aktif etmemiz gerekir. Eğer isterseniz bu pencereyi sola sürükleyerek bir frame altına yerleştirebilirsiniz. Bu şekilde editörünüz daha derli toplu görünecektir. Not: Eğer istenirse açılan menuden diğer önemli bileşen pencereleri de görüntülenebilir. Mesela: CPU daki registerlerin o anki durumları gibi.

20 Code::Blocks Hata Ayıklama/Debug Modu-3
Debug modunda bir alt satıra geçmek için F7 tuşuna basmamız gerekmektedir. Şayet bir fonksiyona çağrı yapılıyorsa ve o fonksiyonun içerisine de girip satır satır çalıştırmak istiyorsak Shift+F7 tuşlarına basmamız gereklidir. Debug modundan çıkmak için Menuden – Debug oradan da stop debugger a tıklamalıyız. Bazan, uzun bir döngü içerisinde satır satır ilerlemek çok güç olabilir ve çok zaman alır. Bunun yerine döngüden sonra başka bir breakpoint atıp arayı ctrl+F7 ile (“continue”) geçmemiz gerekir.

21 C++ kaynakları Türkçe İngilizce
Arama motorlarında “C++ dersleri”, “C++ örnekleri”, “C++ kodları”, “C++ öğreniyorum”, “C++ tutorial”, “C++ programming”, “C++ projects”, “C++ source codes” kelimeleri ile aramalar yapıldığı takdirde birçok siteden bilgi edinilebilir. Örnek olması açısından birkaç site aşağıda verilmiştir. Türkçe İngilizce


"C++ Ders Notları 1.Ders (Programlamaya Giriş)" indir ppt

Benzer bir sunumlar


Google Reklamları