İyi Bir Programın Özellikleri

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Aşağıdakilerden hangisi iyi bir programın özelliklerinden biri değildir?

  • Kaynakların verimli kullanılması
  • Kolay kullanılabilmesi
  • Güvenilir olması
  • Yüksek karmaşıklıkta olması (correct)

Bir programın 'taşınabilir' (portable) olması ne anlama gelir?

  • Çok az bellek kullanması
  • Yüksek hızlı işlem yapabilmesi
  • Farklı bilgisayar sistemlerinde çalıştırılabilmesi (correct)
  • Farklı programlama dillerinde yazılabilmesi

Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğini en iyi tanımlar?

  • Programın güvenli olması
  • Programın hızlı çalışması
  • Programın az yer kaplaması
  • Programın farklı sistemlerde aynı şekilde çalışabilmesi (correct)

Bir programın 'doğruluğu' (correctness) hangi koşulda sağlanmış olur?

<p>Belirlenen görevleri tam olarak yerine getirdiğinde (B)</p> Signup and view all the answers

'Genişleyebilirlik' (Extendibility) özelliği bir program için ne ifade eder?

<p>İlerleyen aşamalarda yeni özelliklerin kolayca eklenebilmesi (A)</p> Signup and view all the answers

Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine bir örnektir?

<p>Bir modülün farklı projelerde kullanılabilir olması (B)</p> Signup and view all the answers

Bir programda 'kontrol edilebilirlik' (verifiability) neyi ifade eder?

<p>Hatalı durumlarda programın hatanın nedenini açıklayabilmesi (D)</p> Signup and view all the answers

'Bütünlük' (integrity) özelliği bir yazılımda neyi garanti eder?

<p>Programın ve verilerin yetkisiz erişimlere karşı korunmasını (D)</p> Signup and view all the answers

Aşağıdakilerden hangisi 'beraber çalışma' (interoperability) özelliğine bir örnektir?

<p>Bir programın başka bir programı çağırabilmesi veya çağrılabilmesi (D)</p> Signup and view all the answers

Makine dili ile yazılmış bir program nasıldır?

<p>Sadece sayılardan oluşur (A)</p> Signup and view all the answers

Assembler dili, makine dilinden hangi özelliğiyle ayrılır?

<p>Temel işlemleri kısaltmalarla ifade eder (D)</p> Signup and view all the answers

Yüksek seviyeli bir programlama dili için aşağıdakilerden hangisi doğrudur?

<p>Makine diline çevrilmesi gerekir (B)</p> Signup and view all the answers

C++ programlama dili hangi programlama dilinden türetilmiştir?

<p>C (C)</p> Signup and view all the answers

ANSI C standardı neyi ifade eder?

<p>C için dünya çapında kabul gören bir standardı (D)</p> Signup and view all the answers

C++, C'ye hangi önemli özelliği kazandırmıştır?

<p>Nesne Yönelik Programlama (OOP) (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi C++ programlama dilinin temel yapı taşlarından değildir?

<p>Package (paket) (C)</p> Signup and view all the answers

C++ Standart Kütüphanesi hangi özelliği sunar?

<p>Tüm programcıların kullanabileceği zengin bir sınıf ve fonksiyon koleksiyonu (B)</p> Signup and view all the answers

Bir C++ programının geliştirme aşamaları sırasıyla düşünüldüğünde, 'derleme' (compilation) aşamasından önce hangi aşama gelir?

<p>Önişleme (preprocessing) (A)</p> Signup and view all the answers

C++'da '#include ' ifadesi ne işe yarar?

<p>Giriş/çıkış işlemlerini gerçekleştirmek için gerekli başlık dosyasını ekler (B)</p> Signup and view all the answers

C++'da 'std::cout' ifadesi neyi temsil eder?

<p>Standart çıktı akışı (D)</p> Signup and view all the answers

C++'da kaçış (escape) karakterleri ne amaçla kullanılır?

<p>Özel karakterleri yazdırmak (C)</p> Signup and view all the answers

Aşağıdaki kaçış karakterlerinden hangisi bir sonraki tab noktasına gitmeyi sağlar?

<p>\t (A)</p> Signup and view all the answers

Aşağıdaki C++ ifadelerinden hangisi 'x' değişkeninin 'y' değişkeninden büyük veya eşit olup olmadığını kontrol eder?

<p>x &gt;= y (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel bir özelliğidir?

<p>Veri ve kodu tek bir birimde birleştirmesi (B)</p> Signup and view all the answers

'Paketleme' (Encapsulation) OOP'de ne anlama gelir?

<p>Bir nesnenin iç yapısının dışarıdan erişilemez hale getirilmesi (D)</p> Signup and view all the answers

'Soyutlama' (Abstraction) OOP'de neyi ifade eder?

<p>Nesnenin gereksiz detaylarının gizlenerek sadece gerekli özelliklerin sunulması (C)</p> Signup and view all the answers

'Kalıtım' (Inheritance) OOP'de ne demektir?

<p>Bir nesnenin özelliklerini başka bir nesneye aktarması (C)</p> Signup and view all the answers

'Çok biçimlilik' (Polymorphism) OOP'de ne anlama gelir?

<p>Farklı nesnelerin aynı arayüzü kullanarak farklı şekillerde yanıt verebilmesi (D)</p> Signup and view all the answers

Bir sınıfta (class) 'public' olarak tanımlanan bir üye için aşağıdakilerden hangisi doğrudur?

<p>Sınıfa erişilebilen her yerden erişilebilir. (D)</p> Signup and view all the answers

C++'da 'struct' yapısı ne için kullanılır?

<p>Farklı tipteki değişkenleri bir arada tutmak için (C)</p> Signup and view all the answers

C++'da bir 'struct' içindeki üyelere nasıl erişilir?

<p>'.' operatörü ile doğrudan veya '-&gt;' operatörü ile pointer üzerinden (B)</p> Signup and view all the answers

C++'da bir sınıfın (class) 'private' bölümünde tanımlanan bir değişkene nasıl erişilebilir?

<p>Sadece sınıfın kendi üye fonksiyonları aracılığıyla erişilebilir. (B)</p> Signup and view all the answers

C++'da bir sınıfın 'constructor' fonksiyonu ne işe yarar?

<p>Sınıftan bir nesne oluşturulduğunda otomatik olarak çalışır ve nesnenin başlangıç değerlerini atar. (A)</p> Signup and view all the answers

C++'da 'destructor' fonksiyonunun temel amacı nedir?

<p>Nesne yok edilmeden önce yapılması gereken işlemleri yapmak (C)</p> Signup and view all the answers

C++'da '::' (scope resolution) operatörü ne için kullanılır?

<p>Sınıfın üye fonksiyonlarına erişmek için (C)</p> Signup and view all the answers

'Class scope' ve 'file scope' arasındaki temel fark nedir?

<p>'Class scope' sınıfın veri ve fonksiyon üyelerine aitken, 'file scope' üye olmayan fonksiyonlara aittir. (A)</p> Signup and view all the answers

C++'da erişim belirteçlerinden hangisi (public, private, protected) hiçbir şey belirtilmezse varsayılan olarak kullanılır?

<p>private (D)</p> Signup and view all the answers

C++'da 'friend' fonksiyonlar ne işe yarar?

<p>Sınıfın 'private' üyelerine dışarıdan erişebilir. (C)</p> Signup and view all the answers

C++'da bir sınıfın arayüzü (interface) ile gerçekleştirimi (implementation) neden ayrılır?

<p>Kodun daha kolay anlaşılması ve değiştirilmesi için (B)</p> Signup and view all the answers

C++ programlama dilinde yapısal programlama yaklaşımı ile ilgili olarak aşağıdakilerden hangisi doğrudur?

<p>Anlaşılması, test edilmesi ve değiştirilmesi kolay programlar yazmayı teşvik eder. (A)</p> Signup and view all the answers

Aşağıdakilerden hangisi iyi bir programda bulunması gereken özelliklerden biridir?

<p>Genişleyebilme (A)</p> Signup and view all the answers

Bir programın 'güvenilir' (robust) olması ne anlama gelir?

<p>Beklenmedik durumlarda çalışmaya devam edebilmesi (C)</p> Signup and view all the answers

Aşağıdakilerden hangisi 'tekrar kullanım' (reusability) ilkesine uygun değildir?

<p>Bir programın sadece bir iş için tasarlanıp başka işlerde kullanılamaması (D)</p> Signup and view all the answers

Aşağıdakilerden hangisi 'uygunluk' (compatibility) özelliğinin bir parçası değildir?

<p>Programın kullandığı donanımın enerji tüketimi (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi bir programın 'kaynak kullanımının verimliliği' (efficiency) ile doğrudan ilişkilidir?

<p>Programın kullandığı bellek miktarı ve işlemci süresi (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi 'makine dili' için doğrudur?

<p>Tüm komutlar sayılar şeklindedir. (A)</p> Signup and view all the answers

Assembler dilinde yazılmış bir programı makine diline çevirmek için ne kullanılır?

<p>Çevirici (Assembler) (D)</p> Signup and view all the answers

Aşağıdakilerden hangisi yüksek seviyeli bir programlama dilinin avantajlarından biridir?

<p>İnsan tarafından daha kolay anlaşılabilir olması (B)</p> Signup and view all the answers

C++ dilinin tarihçesi düşünüldüğünde, 'Nesne Yönelik Programlama (OOP)' yetenekleri hangi programlama diline kazandırılmıştır?

<p>C (A)</p> Signup and view all the answers

C++ programlama dilinin temelinde hangi kavram bulunur?

<p>Nesne yönelimli programlama (B)</p> Signup and view all the answers

C++ programlama dilinde 'class' (sınıf) yapısı neyi ifade eder?

<p>Nesnelerin özelliklerini ve davranışlarını tanımlayan bir şablonu (D)</p> Signup and view all the answers

C++'da bir sınıfın (class) içinde tanımlanan fonksiyonlara ne ad verilir?

<p>Üye fonksiyon (C)</p> Signup and view all the answers

C++'da geliştirilen bir programın çalıştırılabilir hale gelmesi için hangi adımlar gereklidir?

<p>Yazım, önişleme, derleme, bağlama, yükleme ve çalıştırma (A)</p> Signup and view all the answers

C++ programlama dilinde, aşağıdaki ifadelerden hangisi ekrana bir metin yazdırmak için kullanılır?

<p><code>std::cout</code> (B)</p> Signup and view all the answers

C++'da '\n' kaçış karakteri ne işe yarar?

<p>Yeni bir satır oluşturur (C)</p> Signup and view all the answers

C++ dilinde aşağıdaki karşılaştırma operatörlerinden hangisi 'küçük veya eşit' anlamına gelir?

<p>&lt;= (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) temel prensiplerinden biri değildir?

<p>Fonksiyonel ayrıştırma (Functional decomposition) (A)</p> Signup and view all the answers

Nesne yönelimli programlamada (OOP) 'paketleme' (encapsulation) ne anlama gelir?

<p>Veri ve kodun bir araya getirilmesi ve dışarıdan erişimin sınırlandırılması (B)</p> Signup and view all the answers

Aşağıdakilerden hangisi nesne yönelimli programlamada (OOP) 'soyutlama' (abstraction) kavramını en iyi açıklar?

<p>Karmaşık detayları gizleyerek sadece gerekli bilgileri gösterme (C)</p> Signup and view all the answers

Nesne yönelimli programlamada kalıtım'(Inheritance) ne anlama gelir?

<p>Mevcut bir sınıftan yeni sınıflar türetme (A)</p> Signup and view all the answers

Aşağıdakilerden hangisi nesne yönelimli programlamanın (OOP) önemli bir özelliği olan 'çok biçimlilik' (polymorphism) kavramını ifade eder?

<p>Bir nesnenin farklı türlerde davranabilmesi (A)</p> Signup and view all the answers

C++'da bir 'struct' ve 'class' arasındaki temel fark nedir?

<p>'struct' varsayılan olarak 'public', 'class' ise 'private' erişim belirtecine sahiptir. (B)</p> Signup and view all the answers

C++'da bir sınıfın (class) içinde tanımlanan 'private' bir değişkene doğrudan nasıl erişilir?

<p>Sadece aynı sınıfın 'public' fonksiyonları aracılığıyla erişilebilir. (C)</p> Signup and view all the answers

C++'da bir sınıfın 'constructor' fonksiyonu için aşağıdakilerden hangisi doğrudur?

<p>Sınıftan bir nesne oluşturulduğunda otomatik olarak çağrılır. (D)</p> Signup and view all the answers

C++ programlama dilinde, bir sınıfın 'destructor' fonksiyonu hangi durumda otomatik olarak çağrılır?

<p>Sınıfın bir nesnesi bellekten silindiğinde veya kapsam dışına çıktığında (D)</p> Signup and view all the answers

C++'da '::' (scope resolution) operatörünün temel kullanım amacı nedir?

<p>Sınıf veya namespace içindeki bir üyeye erişmek (D)</p> Signup and view all the answers

C++'da bir sınıfın 'private' ve 'public' bölümleri arasındaki temel fark nedir?

<p>'private' bölümdeki üyelere sadece sınıf içinden, 'public' bölümdeki üyelere ise her yerden erişilebilir. (C)</p> Signup and view all the answers

Flashcards

Doğruluk (Correctness)

Verilen görevin tam olarak yerine getirilmesidir. Yazılımdan beklenenlerin belirtilmesi gerekir.

Güvenilirlik (Robustness)

Beklenmedik nedenlerden programın çalışmasının kesilmemesi, yanlış işlemler yapmamasıdır.

Genişleyebilme (Extendibility)

İleri aşamalarda görevlerin değiştirilmesi veya yenilerinin eklenmesi kolay olmalıdır.

Tekrar kullanım (Reusability)

Yapılan tasarımın başka programlar içinde kullanılabilmesidir, modüllerin tekrar kullanımı.

Signup and view all the flashcards

Uygunluk (Compatibility)

Farklı bilgisayar sistemlerinde aynı ortak özelliklere sahip olunmasıdır.

Signup and view all the flashcards

Kaynakların kullanımı (Efficiency)

Bilgisayarın sahip olduğu tüm ekipmanları en iyi şekilde kullanmaktır.

Signup and view all the flashcards

Taşınabilirlik (Portability)

Yazılımın farklı bilgisayar ortamlarına taşınarak çalıştırılabilmesidir.

Signup and view all the flashcards

Kontrol Edilebilirlik (Verifiability)

Yazılım hatalı durumlar ile karşılaştığında yeterli bilginin kullanıcılara ve programcıya verilebilmesidir.

Signup and view all the flashcards

Bütünlük (Integrity)

İstenmeyen erişimlere karşı program, veri ve benzeri yazılım öğelerinin korunmasıdır.

Signup and view all the flashcards

Kolay Kullanım (Easy use)

Kullanıcının yazılımı kolayca öğrenmesi, kullanabilmesi ve sorunsuz bir şekilde hataları düzeltebilmesidir.

Signup and view all the flashcards

Beraber çalışma (Interoperability)

Bir yazılımın ihtiyaç duyduğu diğer bir yazılımı çağırabilmesi veya diğer yazılım tarafından çağrılabilmesidir.

Signup and view all the flashcards

Makine Dili

Tüm komutların sayılar şeklinde olduğu dildir.

Signup and view all the flashcards

Assembler

Temel bilgisayar işlemlerinin kısaltmalarla ifade edildiği dildir.

Signup and view all the flashcards

Yüksek Seviyeli Diller

Komutların konuşma diline yakın olduğu dildir.

Signup and view all the flashcards

Class (Sınıf) ve Function (Fonksiyon)

C++ programlarının temel yapı taşlarıdır.

Signup and view all the flashcards

C++

C ve C++ platformlarında taşınabilir kodlar üretir.

Signup and view all the flashcards

Yorum Satırları

Programda açıklama eklemek için kullanılan satırlardır.

Signup and view all the flashcards

Önişlemci Komutu

Ön işlemci direktiflerini belirtir.

Signup and view all the flashcards

main() Fonksiyonu

Programın çalışmaya başladığı özel fonksiyondur.

Signup and view all the flashcards

std::cout

Ekrana çıktı vermek için kullanılan standart nesnedir.

Signup and view all the flashcards

\n (Yeni Satır Karakteri)

Yeni bir satıra geçmek için kullanılan karakterdir.

Signup and view all the flashcards

'escape' Karakteri

Özel karakterleri yazdırmak için kullanılan karakterdir.

Signup and view all the flashcards

Operatörü

Büyüklük karşılaştırması yapar.

Signup and view all the flashcards

< Operatörü

Küçüklük karşılaştırması yapar.

Signup and view all the flashcards

== Operatörü

Eşitlik karşılaştırması yapar.

Signup and view all the flashcards

!= Operatörü

Eşitsizlik karşılaştırması yapar.

Signup and view all the flashcards

Nesne Yönelimli Programlama (OOP)

Dünyayı düşündüğümüz doğallıkla programlama yapabilmemizi sağlar.

Signup and view all the flashcards

Nesne

Belirlenmiş bir işlevi yerine getirebilecek altyapıyı sağlayan yapıdır.

Signup and view all the flashcards

Soyutlama (Abstraction)

Nesnenin fonksiyonlarının nasıl işlev göstereceğinin belirtilmemesidir, sadece nasıl kullanılacağı belirtilir.

Signup and view all the flashcards

Paketleme (Encapsulation)

İstenilen fonksiyonların nasıl bir işlev göstereceği belirtilmeden sadece nasıl kullanılacağının ifade edilmesidir.

Signup and view all the flashcards

Kalıtım (Inheritance)

Yeni bir nesnenin, var olan bir nesnenin özelliklerini devralmasıdır.

Signup and view all the flashcards

Çoklubenzeşim (Polymorphism)

Nesneler arasındaki benzer özellikleri ifade eder. Aynı isimde farklı nesne üyelerinin olmasını sağlar.

Signup and view all the flashcards

Yapısal Programlama (Structured-Programming)

Anlaması, test etmesi, değiştirmesi kolay programlar yazmayı teşvik eder.

Signup and view all the flashcards

Veri ve Fonksiyonların Saklanması

Veri ve fonksiyonlar sınıf paketlerinin içine saklanır.

Signup and view all the flashcards

Struct Yapısı

Diğer veri tiplerini birleştirerek yeni bir veri tipi oluşturur.

Signup and view all the flashcards

Struct Üye Adları

Struct yapısındaki her üyenin adı farklı olmalıdır.

Signup and view all the flashcards

Struct Veri Tipi

Yeni bir değişken tipi oluşturur.

Signup and view all the flashcards

Constructor

Sınıf yapısının özel bir fonksiyonudur.

Signup and view all the flashcards

Destructor

Sınıf örneği yok edilmeden önce yapılması gerekenleri yapar.

Signup and view all the flashcards

‘Binary scope resolution’ Operatörü (::)

Sınıfın üyelerine erişirken sınıf isminin de kullanılabilmesini sağlar.

Signup and view all the flashcards

‘Class scope’

Sınıfın veri ve fonksiyon üyelerinin ait olduğu alandır.

Signup and view all the flashcards

‘File scope’

Üye olmayan fonksiyonların tanımlandığı alandır.

Signup and view all the flashcards

‘Function Scope’

Bir üye fonksiyon içinde tanımlanan değişkenlerin sadece tanımlandıkları fonksiyon tarafından bilinmesidir.

Signup and view all the flashcards

Public

Bu bölümdeki veri ve fonksiyonlara erişilebilir.

Signup and view all the flashcards

Private

Bu bölümdekilere sadece üye yada friend fonksiyonlar üzerinden erişilebilir.

Signup and view all the flashcards

Hizmet fonksiyonları

Nesnenin yapması gereken işleri bu özel fonksiyonlar yapar.

Signup and view all the flashcards

Erişim fonksiyonları

Nesnenin özel fonksiyon ve verilerine bir ara yüz oluşturan ve bu erişimin güvenli ve kolay olmasını sağlayan fonksiyonlardır.

Signup and view all the flashcards

Study Notes

İyi Bir Programın Özellikleri

  • Doğruluk (Correctness), bir programın verilen görevi tam olarak yerine getirmesi anlamına gelir
  • Yazılımdan beklenenler, yazmaya başlamadan önce belirtilmelidir
  • Program çıktıktan sonra belirlenen özelliklerin sağlanması önemlidir
  • Güvenilirlik (Robustness), programın beklenmedik durumlarda çalışmasının kesilmemesi ve yanlış işlemler yapmaması demektir
  • Programcı hatalarından kaynaklanan kesintilerin önlenmesi için tedbirler alınmalıdır

İyi Bir Programın Diğer Özellikleri

  • Genişleyebilme (Extendibility), programın ilerleyen aşamalarda kolayca değiştirilebilir veya yeni özellikler eklenebilir olmasıdır
  • Basit tasarımlar karmaşık tasarımlardan kaçınarak buna yardımcı olur
  • Tekrar Kullanım (Reusability), tasarımın aynı program içinde veya farklı programlarda tekrar kullanılabilir olmasıdır
  • Örneğin, bir projede kullanılan elemanlar veya modüller yeni projelerde tekrar değerlendirilebilir

İyi Bir Programın Ek Özellikleri ve Kaynak Kullanımı

  • Uygunluk (Compatibility), programın farklı bilgisayar sistemlerinde aynı ortak özelliklere sahip olmasını ifade eder
  • Çeşitli standartların kabul edilip uygulanması gerekir
  • Veri dosyası formatının, veri yapılarının ve kullanıcı arayüzünün uyumluluğu önemlidir
  • Kaynakların Kullanımı (Efficiency), bilgisayarın tüm ekipmanlarının en iyi şekilde kullanılması anlamına gelir
  • Kaynakları eksik kullanmamak ve diğer programların kullanımını engellememek önemlidir

Program Taşınabilirliği

  • Taşınabilirlik (Portability), bir yazılımın geliştirildiği ortamdan farklı bir bilgisayar ortamında çalıştırılabilmesidir
  • Kaynak uyumlu (Source Compatible) programlar farklı bir sistemde tekrar derlenebilir
  • İkili kod uyumlu (Binary Compatible) programlar, derlenmiş bir dosyayı farklı bir ortama taşıyarak çalıştırabilir
  • Kaynak kodun taşınabilirliği, yazılım geliştirme açısından önemlidir

Program Kontrol Edilebilirliği ve Bütünlüğü

  • Kontrol Edilebilirlik (Verifiability), programın hatalı durumlarda kullanıcıya ve programcıya yeterli bilgi sağlamasıdır
  • Bütünlük (Integrity), yazılımın istenmeyen erişimlere ve değişikliklere karşı korunmasıdır
  • Programın veri veya indeks dosyalarının kaybolmasını tespit edip raporlaması bir örnektir

Kullanım Kolaylığı ve Birlikte Çalışabilirlik

  • Kolay Kullanım (Easy use), yazılımın kullanıcı tarafından kolayca öğrenilmesi, sorunsuz kullanılması ve hataların düzeltilebilmesidir
  • Beraber Çalışma (Interoperability), bir yazılımın ihtiyaç duyduğu diğer yazılımları çağırabilmesi veya diğer yazılımlar tarafından çağrılabilmesidir
  • Bu, iki programın veri alışverişinde bulunabilmesini ifade eder

Programlama Dilleri

  • Makine Dili: Tüm komutlar sayılarla ifade edilir (+1300042774, +1400593419, +1200274027)
  • Assembler: Temel bilgisayar işlemleri kısaltmalarla ifade edilir (LOAD BASEPAY, ADD OVERPAY, STORE GROSSPAY)
  • Yüksek Seviyeli Diller: Komutlar konuşma diline benzer ve genel matematik notasyonunu kullanır (grossPay = basePay + overTimePay)

C++'ın Tarihçesi

  • C++, C dilinden geliştirilmiştir
  • ANSI C, C için dünya çapında kabul gören bir standarttır
  • C++, C'ye Nesneye Yönelik Programlama (OOP) yetenekleri eklemiştir
  • Bu, programların daha kolay anlaşılmasını ve düzeltilmesini sağlar

C++'ın Tarihsel Gelişimi

  • 1979 (Mayıs): C with Classes ile ilgili çalışmalar başladı
  • 1979 (Ekim): İlk "C with Classes" derleyicisi yazıldı
  • 1983 (Ağustos): İlk C++ derleyicisi oluşturuldu
  • 1983 (Aralık): Dil C++ adını aldı
  • 1989: ANSI X3J16 komitesi oluşturuldu
  • 1994: ANSI/ISO standart taslağı hazırlandı
  • 1996: ANSI/ISO tarafından 2. standart taslağı onaylandı
  • 1998: ISO C++ dil standartları kabul edildi

C++'ın Yapısı

  • C++ programları, class (sınıf) ve function (fonksiyon) adı verilen parçalardan oluşur
  • C++ Standart Kütüphanesi, programcıların kullanabileceği geniş bir sınıf ve fonksiyon koleksiyonu sunar

Bir Programın Aşamaları

  • Bir programın aşamaları şunlardır: Yazım, Önişleme, Derleme, Bağlama, Yükleme ve Çalıştırma
  • Bu aşamalar Editor, Preprocessor, Compiler, Linker, Loader ve CPU gibi araçlar kullanılarak gerçekleştirilir
  • Örnek komutlar: g++ -c test.cpp, g++ -o test test.o -lm, ./test

C++ Programlamaya Giriş

  • C++, C ve C++ platformları arasında taşınabilir kodlar oluşturur
  • Nesne yönelimli programlama yeteneklerinin yanı sıra yapısal ve disiplinli programlama özellikleri sunar

Bir C++ Programı Örneği

  • Programda yorum satırları ve önişlemci komutları bulunur
  • main() fonksiyonu, programın ana bölümüdür ve fonksiyon { ile başlar, } ile biter
  • std::cout << "Welcome to C++!\n"; komutu, karakter dizisini ekrana yazdırır ve satır sonu ekler
  • return 0; ile fonksiyondan çıkılır

Karşılaştırma Operatörleri

  • >: büyüktür
  • <: küçüktür
  • >=: büyük veya eşittir
  • <=: küçük veya eşittir
  • ==: eşittir
  • !=: eşit değildir

Nesne Yönelimli Programlama (OOP)

  • OOP, dünyayı düşündüğümüz doğallıkla programlama yapabilmemizi sağlar
  • OOP ile geliştirilen programlar daha güvenilir, dayanıklı ve kolay geliştirilebilir
  • Nesne, belirlenmiş bir işlevi yerine getirebilecek altyapıyı hazırlayan ve çeşitli fonksiyonlar içeren bir yapıdır

Nesne Nedir?

  • Gerçek dünyadaki nesnelere benzeyen, tekrar kullanılabilir yazılım parçalarıdır (zaman, ses, video nesnesi gibi)
  • Daha anlaşılır ve değiştirilmesi kolay bir yapı sunarlar
  • Belirlenmiş işlevleri yerine getiren ve değişkenleri bünyesinde barındıran bu yapı, fonksiyonları bünyesinde bulundurmalıdır; bu özelliğe Paketleme (Encapsulation) denir
  • Paketlenecek fonksiyonların nasıl bir işlev göstereceği belirtilmeden, sadece nasıl kullanılacağının belirtilmesine Soyutlama (Abstraction) adı verilir
  • Paketleme ve Soyutlama, bir nesneyi tanımlamak için yeterli iki özelliktir

Nesne: Türeme ve Kalıtım

  • Türeme (Derivation), bir nesnenin başka bir nesneden (taban nesne) özelliklerini almasıdır
  • Kalıtım (Inheritance), türeyen nesnelerin taban nesnenin özelliklerini devralmasıdır
  • Türeyen nesneler, yeni özellikler ekleyebilir veya devraldığı özellikleri geliştirebilir

Nesne: Benzerlik (Çoklubenzeşim/Polymorphism)

  • Nesneler arasında benzer özellikler olabilir ve bu özellikler aynı isimle anılır
  • Çoklubenzeşim (Polymorphism), benzer isimde fakat farklı nesnelerin üyesi olan üyelerin ortaya çıkmasına neden olur ve nesneler arasındaki benzerlikleri yansıtır

Nesne Özellikleri ve Davranışları

  • Nesnelerin özellikleri (renk, şekil, boyut, genişlik, yükseklik vb.) vardır
  • Nesnelerin davranışları (Behaviors, Actions) vardır; her nesnenin kendine özgü davranışları vardır (top yuvarlanır, ağaç yanar)
  • Yeni nesneler Mirasla birlikte eski (parent) nesnelerin bazı özellik ve yöntemlerine sahip olurlar

Nesne Özellikleri: Bilgi Gizleme, Soyutlama, Sınıflar

  • Bilgiler Gizlenebilir: Nesnenin iş görmesi için diğer nesneler hakkında bilgi sahibi olması şart değildir
  • Soyutlama (Abstraction) sayesinde bir nesne, spesifik tanımlamalar ve sadece o nesneye ait detaylardan kaçınarak, ayrıntılarda boğulmadan kullanılabilir
  • Sınıflar (Class) nesnelerin temelini oluşturur

Yapısal Programlama (Structured-Programming)

  • Anlaması, test etmesi, değiştirmesi kolay programlar yazmayı teşvik eder ve kolaylaştırır
  • Her zaman sadece bir girişi, bir çıkışı olan program yapıları kullanır
  • Kuralları: En basit şema (flowchart) ile başla, her hangi bir işlem birbirini takip eden iki işlem şeklinde yazılabilir, her hangi bir işlem bir kontrol yapısı (döngü, koşul, komut bloğu vb.) ile değiştirilebilir, kural 2 ve 3, birçok kere tekrarlanabilir)

Yapısal Programlama Bölümleri ve OOP Bağlantısı

  • Tüm programlar komut bloğu, koşul (if, if/else, switch) veya döngü (for, while, do/while) parçalarına bölünebilir
  • OOP'de: Veri ve Fonksiyonlar Sınıf (Class) paketlerinin içine saklanır
  • Class' lar mimari planlara benzer, tekrar tekrar kullanılabilirler.
  • Class kullanılarak yeni nesneler oluşturulur ve planlarda değil, evlerde oturulur

Nesne Yönelimli Programlama (OOP) İpuçları

  • Veri (attributes) ve Fonksiyonlar (behavior) Sınıf olarak adlandırılan paketler içinde korunurlar
  • Veriler ve Fonksiyonlar birbirleri ile son derece sıkı ilişki içindedirler

Struct Yapısı

  • Diğer data tiplerini birleştirerek yeni bir data tipi oluşturur
  • struct Time { int hour; int minute; int second; };

Struct Özellikleri

  • Bir struct yapısındaki her üyenin adı farklı olmalıdır
  • İki farklı struct yapısı aynı üyelere sahip olabilir
  • Struct tanımı mutlaka ';' ile bitirilir
  • Kendisini üye olarak alan bir struct yazılabilir ve genelde liste, stack vb. yapılar programlamada kullanılır

Struct Değişkenleri ve Pointer Erişimi

  • Struct yeni bir değişken tipi oluşturur; bu tipte değişkenler kullanılarak başka değişken tanımlayabilirsiniz
  • Normal üyelere erişirken . kullanılır; pointer üyelere erişirken -> operatörleri kullanılır
  • Time timeObject, timeArray[ 10 ], *timePtr, &timeRef = timeObject;

Struct Örneği ve Üye Erişimi

  • timeObject struct yapısının hour üyesine erişirken cout << timeObject.hour; kullanılır
  • Pointer ile erişim: timePtr = &timeObject; cout << timePtr->hour;
  • timePtr->hour ile (*timePtr).hour tamamen aynıdır

Sınıf Deklarasyonu

  • Sınıf '{}' işaretleri arasında tanımlanır ve tanım ';' işareti ile sonlandırılmalıdır
  • Public: veya Private: erişim kontrolü içindir
  • setTime, printMilitary ve printStandard üye fonksiyonlardır
  • Time ise constructor' dür

Üye Erişim Kısıtlamaları

  • Sınıf lar kendi veri ve fonksiyonlarına dışarıdan erişimi sınırlandırabilirler
  • Public: sınıfa erişilen her yerden bu üyelere erişilebilir
  • Private: sadece sınıfın kendi üye fonksiyonları bu üyeye erişebilir
  • Protected: private' a benzerdir

Constructor

  • Sınıf yapısının özel bir fonksiyonudur
  • Sınıf' la aynı isimdedir, sınıf'tan bir nesne oluşturulurken çalıştırılır ve sınıf üyelerini hazırlar
  • Geri dönüş değeri olmaz ama parametre alabilir
  • Bir kez sınıf tanımlanınca, bir değişken tipi gibi kullanılır; dizi, pointer yada normal bir değişken tanımlanabilir

Constructor' de "::" Operatörü

  • :: operatörü class' ların fonksiyonlarına erişmek için kullanılır

Erişim Alanı (Scope)

  • 'Class scope': Bir sınıfın veri ve fonksiyon üyeleri bu sınıf alanına aittir
  • 'File scope': Üye olmayan fonksiyonlar bu alanda tanımlanır
  • Erişim alanı (scope) içinde iken üye fonksiyonlara adları ile erişilebilir
  • Erişim alanı dışında ise üye fonksiyonlara başka bir nesne yada pointer aracılığı ile ulaşılır

Erişim Alanı (Scope) - Devamı

  • 'Function Scope': Bir üye fonksiyon içinde tanımlanan değişkenler sadece tanımlandıkları fonksiyon tarafından bilinirler, fonksiyon çağırıldığında oluşturulup, fonksiyondan çıkışta yok edilirler
  • Üyelere erişim aynı struct yapısındaki gibidir. Normalde '.', Pointer' larla ise '->' operatörleri kullanılır: t.hour yada timePtr->hour gibi

Üye Değişkenler için İpuçları

  • public üye değişkenler çok nadiren kullanılır
  • Genelde gizlenen değişkenlere public fonksiyonlar ile erişim tercih edilerek bilgi gizlenir; bu sayede nesne soyutlanır

Arayüz (Interface) ve Gerçekleme (Implementation) Bölümlerinin Ayrılması

  • Sınıf yapısının tanımlanması bir başlık dosyasında (header file) yapılır
  • Üye fonksiyonlar, program dosyasında tanımlanır
  • Bu programların değiştirilmesini kolaylaştırır

Başlık Dosyası ve Fonksiyon Tanımlama Örneği

  • Başlık dosyası (header file) ile fonksiyon tanımlarını ayrı ayrı tutmak kod okunabilirliğini artırır
  • Başlık dosyasında #ifndef, #define, #endif yapıları kullanılarak aynı dosyanın tekrar tekrar yüklenmesi engellenir
  • Program dosyasında fonksiyonların içeriği yazılır ve bu fonksiyonlar başlık dosyasında tanımlanır

Erişim Kontrolü

  • Public: Bu bölümdeki veri ve fonksiyonlara erişilebilir
  • Private: Bu bölümdekiler

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser