Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


... konulu sunumlar: "C++ Ders Notları 1.Ders (Programlamaya Giriş) Yrd. Doç. Dr. Musa Ataş 1."— Sunum transkripti:

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

2 Dersin Amacı  C++ dersi ile:  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. 2

3 Soyutlama (Abstraction) 3  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 4 Kas SistemiSinir Sistemi İ skelet Sistemi

5 Soyutlama:Katman/Bileşen Mimarisi 5  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 6

7 Soyutlama: Görsel Örnekler-2 7

8 Bilgisayarda Katmanlı Mimari 8  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) 9 Kullanıcı ve/veya Programcı Seviyesi Programlama Dilleri İ şletim Sistemleri Donanım aygıtları Elektronik Entegre Sistemleri Fiziksel Katman

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

11 C++ Geliştirme Ortamı: Code::Blocks 11  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 12  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 13 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 14  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 15  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 16  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 17

18 Code::Blocks Hata Ayıklama/Debug Modu-1 18  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 19  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 20  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ı 21  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ş) Yrd. Doç. Dr. Musa Ataş 1." indir ppt

Benzer bir sunumlar


Google Reklamları