Bu çalışma materyali, sağlanan ders kaydı ve kopyalanmış metin kaynaklarından derlenmiştir.
C++ Yazılım Geliştirme Ortamları ve Temelleri 📚
Giriş
Bu çalışma materyali, C++ programlama dilinin geliştirme ortamlarını, programların nasıl derlenip çalıştırılacağını ve temel programlama kavramlarını kapsamaktadır. C++, genel amaçlı ve nesne yönelimli (object-oriented) bir programlama dilidir. C dilinin birçok özelliğini barındırmakla birlikte, kullanıcılara nesne yönelimli programlama yetenekleri sunar. Bu bölümde, C++ programlarının nasıl ve nerede geliştirileceği, yazılan programın derleyici üzerinde derlenip hata denetiminin yapıldıktan sonra nasıl çalıştırılacağı detaylı bir şekilde incelenecektir.
Anahtar Kavramlar
- Derleyici (Compiler) 📚: Yazılan kaynak kodu (insan tarafından okunabilir kod) makine koduna (bilgisayarın anlayabileceği kod) çeviren yazılım.
- Hata Denetimi ⚠️: Programdaki sözdizimi (syntax) ve mantıksal hataların tespit edilmesi ve düzeltilmesi süreci.
- Çalıştırılabilir (Executable) Dosyalar ✅: Derleme işlemi sonucunda oluşan, doğrudan işletim sistemi tarafından çalıştırılabilen program dosyaları (örn:
.exe).
Öğrenme Hedefleri
Bu bölümü tamamladıktan sonra öğrenci:
- C++ programlarını nasıl ve nerede geliştireceğini bilir.
- Yazmış olduğu programları nasıl derleyeceğini ve çalıştırmaya hazır hale getireceğini öğrenir.
- Yazmış olduğu programın hata denetimini nasıl yapacağını bilir.
- Yazmış olduğu programı çalıştırmasını ve sonuçları yorumlamayı bilir.
1. C++'a Genel Bakış
C++, Windows, Linux, Unix, Mac gibi birçok platformda çalışabilen genel amaçlı bir programlama dilidir. Nesne yönelimli programlama (NYP) özellikleriyle öne çıkar. C++ ile programlamaya başlamadan önce, yazılan programları derlemek (compile) ve çalıştırmak (run) için kullanılan bilgisayarın ve işletim sisteminin özelliklerine uygun bir yazılım geliştirme platformunun (IDE) veya derleyicinin kurulması gerekmektedir. Eğer yerel bilgisayara bir C++ yazılım geliştirme platformu kurmak istenmiyorsa, çevrimiçi olarak kodları derleyen ve çalıştırmaya izin veren ortamlar da mevcuttur.
2. C++ Yazılım Geliştirme Ortamlarının Kurulumu
C++ yazılım geliştirme ortamlarının kurulumu, kullanılan işletim sistemine göre farklılık gösterir.
2.1. Linux Ortamında GCC Kurulumu
Linux işletim sistemi kullanıcıları, GCC (GNU Compiler Collection) derleyicisini bilgisayarlarına kurmak için aşağıdaki komutları kullanabilirler:
- Terminal ekranını açınız.
- Sırasıyla aşağıdaki komutları giriniz:
sudo apt-get update✅ (Paket listelerini günceller)sudo apt-get install gcc✅ (C derleyicisini kurar)sudo apt-get install g++✅ (C++ derleyicisini kurar)- Sisteminizden kaynaklı olarak bazı durumlarda ek olarak aşağıdaki komutun kullanılması gerekebilir:
sudo apt-get install build-essential✅ (Gerekli kütüphaneleri ve geliştirme araçlarını yükler)
- Kurulum esnasında herhangi bir hata oluşmadığından emin olmak için
g++ --versionkomutunu kullanabilirsiniz.
2.2. Windows Ortamında C++ Derleyicisinin Kurulumu (Cygwin)
Windows ortamında C++ programlarını yazmak, derlemek ve çalıştırmak için birçok farklı IDE veya derleyici kullanılabilir. Bu materyalde Cygwin derleyicisi ele alınmıştır. Cygwin, Windows'ta Linux dağıtımına benzer işlevsellik sağlayan bir GNU ve açık kaynak araçları ortamıdır.
- Kurulum: Cygwin kurulum dosyalarına ve yönergelerine resmi web sitesinden ulaşılabilir.
- Terminal Kullanımı: Kurulum sonrasında Cygwin terminal ekranı açıldığında, temel Linux/DOS komutları kullanılarak klasörler arasında geçiş yapılabilir.
cd ..💡: Bir üst klasöre geçiş yapar.cd klasör_adı💡: Belirtilen klasöre geçiş yapar. (cdkomutu "change directory" kelimelerinin kısaltmasıdır.)ls💡: Bulunduğunuz klasördeki dosyaları listeler.
3. C++ Programlarının Derlenmesi ve Çalıştırılması
Yazılan C++ programını derlemek ve çalıştırmak için aşağıdaki adımlar izlenir:
- Programı Yazma: Bir metin dosyasına C++ kodları yazılır ve dosyanın uzantısı
.cppolarak belirlenir (örn:ilkprogram.cpp). - Klasöre Gitme: Bir terminal (Linux için normal terminal, Windows için Cygwin terminali) açarak programın oluşturulduğu klasör içerisine gidilir.
- Derleme: Programı derlemek için
g++komutu kullanılır:g++ ilkprogram.cpp1️⃣: Bu komut,ilkprogram.cppdosyasını derler ve herhangi bir hata alınmaması durumunda, çalıştığınız klasör altında varsayılan olaraka.exeadında çalıştırılabilir bir dosya oluşturur.- Özel İsimle Derleme: Çalıştırılabilir dosyaya özel bir isim vermek istenirse:
g++ ilkprogram.cpp -o yeniisim2️⃣: Bu komut,ilkprogram.cppdosyasındanyeniisim.exeadında çalıştırılabilir bir dosya oluşturur.
- Çalıştırma: Derleme işlemi hatasız tamamlandığında, programı çalıştırmak için:
./a.exe3️⃣: Varsayılan isimle oluşturulan dosyayı çalıştırır../yeniisim.exe3️⃣: Özel isimle oluşturulan dosyayı çalıştırır. Programın çıktısı terminal ekranında görüntülenir.
4. Temel C++ Program Yapısı ve Kod Analizi 💡
Basit bir C++ programı ve kod analizi:
#include <iostream> // Girdi/çıktı işlemleri için kütüphane
using namespace std; // Standart isim alanını kullanma
int main() { // Programın başlangıç noktası
cout << "Ankara Üniversitesine Hoş Geldiniz"; // Ekrana mesaj yazdırma
return 0; // Programın başarıyla tamamlandığını belirtme
}
#include <iostream>📚: Bu komut, yazılan programa standart veya kullanıcı tanımlı bir dosya eklemek için kullanılır ve çoğunlukla bir C++ programının başında yer alır.<iostream>kütüphanesi, program içerisindeki girdi-çıktı (input-output) servislerinin kullanılması için gereklidir. Örneğin, karekök alma gibi matematiksel işlemler için#include <cmath>gibi başka kütüphaneler eklenebilir.using namespace std;📚: Bu komut ilestd(standart) adında bir isim alanının programda kullanılacağı belirtilir.cout,cingibi girdi-çıktı fonksiyonları bu isim alanı içinde tanımlıdır. Eğer bu tanımlama yapılmazsa, her fonksiyon öncesistd::cout,std::cingibistd::önekinin kullanılması gerekir.int main()📚: Derleyicinin ilk bağlantı kurduğu bölümdür. Her C++ programının birmainfonksiyonu olmak zorundadır.intifadesi, fonksiyonun tamsayı türünde bir değer döndüreceğini belirtir. Parantezler()fonksiyonun parametrelerini içerir (bu örnekte parametre yoktur).{}📚:mainfonksiyonundan hemen sonra açılıp programın sonunda kapatılan küme parantezleri, fonksiyonun etkili olduğu alanı (scope) tanımlar. Küme parantezleri içerisinde yazılan kodlar sadece ilgili fonksiyonun kullanımı içindir.cout <<📚:coutfonksiyonu ekrana bir şey yazdırmak için kullanılır.<<operatörü, "stream insertion" (akış ekleme) operatörü olarak bilinir vecoutile birlikte kullanıldığında veriyi ekrana yönlendirir. Tırnak işaretleri""içerisindeki ifadeler doğrudan metin (string literal) olarak ekrana yazdırılır.return 0;📚: Program bu komut satırını gördüğünde, programın sorunsuz bir şekilde tamamlandığı anlamına gelir. C++'ta isteğe bağlı olmakla birlikte, profesyonel yazılımcılar tarafından yaygın olarak kullanılır.;(Noktalı Virgül) ⚠️: C++'ta komut satırları noktalı virgül karakteri ile sonlandırılmak zorundadır. Aksi halde derleme zamanında hata alınır.
5. Hata Denetimi ⚠️
Program geliştirme sürecinde sözdizimi (syntax) ve mantıksal hatalarla karşılaşılabilir.
5.1. Sözdizimi Hataları (Syntax Errors)
Sözdizimi hataları, programlama dilinin kurallarına uyulmamasından kaynaklanır ve derleyici tarafından kolaylıkla tespit edilebilir. Derleyici, hatanın yeri ve türü hakkında bilgi verir.
-
Örnek 1: Eksik Noktalı Virgül
#include <iostream> using namespace std; int main() { cout << "Ankara Universitesine Hos Geldiniz" // Noktalı virgül eksik! return 0; }Bu durumda derleyici,
returnkomutundan önce noktalı virgül beklendiğine dair bir hata mesajı verecektir. -
Örnek 2: Yanlış Operatör Kullanımı
#include <iostream> using namespace std; int main() { cout >> "Ankara Universitesine Hos Geldiniz"; // '<<' yerine '>>' kullanıldı return 0; }coutile çıktı almak için<<operatörü kullanılırken,>>operatörünün kullanılması derleme hatasına yol açar. Derleyici,std::ostreamsınıfından>>operatörünün türetilemediğine dair bir hata mesajı gösterecektir. -
Örnek 3: Eksik Kütüphane Dahil Etme
// #include <iostream> satırı eksik using namespace std; int main() { cout << "Ankara Universitesine Hos Geldiniz"; return 0; }Bu durumda derleyici,
coutifadesinin bildirilmediğini vecoutkomutununiostreambaşlık dosyasında tanımlı olduğunu belirten bir hata mesajı verecektir.
5.2. Mantıksal Hatalar (Logical Errors)
Mantıksal hatalar, programın sözdizimsel olarak doğru olmasına rağmen beklenen çıktıyı üretmemesi durumunda ortaya çıkar. Bu tür hatalar derleyici tarafından tespit edilemez ve programın çalışması sırasında yanlış sonuçlar üretmesine neden olur. Örneğin, toplama işlemi yapılması gereken bir yerde çıkarma işleminin yapılması mantıksal bir hatadır. Bu hataların tespiti, programın çıktılarının dikkatli bir şekilde incelenmesini ve kodun adım adım takip edilmesini gerektirir.
6. Terminal Ekranından Veri Girişi (cin) 📊
C++'ta kullanıcıdan terminal ekranı aracılığıyla veri almak için cin komutu kullanılır.
- Örnek: İki Sayının Toplanması
Kod Analizi:#include <iostream> using namespace std; int main() { int a; // a adında tamsayı değişken tanımlama int b, c; // b ve c adında tamsayı değişken tanımlama cout << "İlk Sayıyı Giriniz: "; // Kullanıcıya mesaj gösterme cin >> a; // Kullanıcıdan a değişkenine değer alma cout << "İkinci Sayıyı Giriniz:\n"; // Kullanıcıya mesaj gösterme, '\n' ile yeni satır cin >> b; // Kullanıcıdan b değişkenine değer alma c = a + b; // a ve b'yi toplayıp c'ye atama cout << "Toplam=" << c << endl; // Sonucu ekrana yazdırma, 'endl' ile yeni satır return 0; }//💡: Tek satırlık açıklama satırları için kullanılır./* ... */ise birden fazla satırı açıklama haline getirmek için kullanılır. Derleyici tarafından işlenmezler.int a;,int b, c;📚:int(integer) türünde değişken tanımlamalarıdır.a,b,cdeğişken isimleridir. Değişkenler, programın hafızada veri saklamasını sağlar.cin >> a;📚:cinkomutu, kullanıcının terminal ekranından programa bir değer girmesine olanak tanır.>>operatörü, "stream extraction" (akış çıkarma) operatörü olarak bilinir vecinile birlikte kullanıldığında veriyi klavyeden alıp değişkene atar.\nveendl💡: Her ikisi de yeni satıra geçmek için kullanılan escape (kaçış) ifadeleridir.\nbir karakterken,endlbir manipülatördür ve aynı zamanda çıktı akışını temizler (flush).
Bölüm Özeti
Bu bölümde, C++ programlama dilinin temel geliştirme ortamlarının kurulumu (Linux'ta GCC, Windows'ta Cygwin), programların derlenmesi ve çalıştırılması süreçleri detaylı bir şekilde incelenmiştir. Ayrıca, programlama esnasında karşılaşılabilecek sözdizimi hataları ve bunların nasıl giderileceği örneklerle açıklanmıştır. Kullanıcıdan veri girişi alma (cin), değişken tanımlama ve temel programlama kavramları (#include, using namespace std, main, cout, return, ;, \n, endl) üzerinde durularak, C++ ile yazılım geliştirmeye yönelik kapsamlı bir başlangıç rehberi sunulmuştur. Bu bilgiler, C++ programlama yetkinliğinin temelini oluşturmaktadır. ✅








