C++ temelleri
C’nin üzerine kurulu, hızlı ve yaygın C++’ı sıfırdan öğrenir; g++ ile derler, standart kütüphaneyle küçük programlar yazarsın.
Seviye 101 · 19 ders · 18 pratik lab
Dersler
Başlarken
- g++ ile ilk program: g++ ile C++ dosyasını derler, çalıştırır ve iostream ile ekrana yazarsın.
- Derleyici hata mesajlarını okumak
- Değişkenler, türler ve auto: Temel türleri, sabitleri ve auto ile tür çıkarımını kullanır, başlatma biçimlerinin farkını öğrenirsin.
- İşleçler ve öncelik: Aritmetik, karşılaştırma ve mantıksal işleçleri kullanır, tamsayı bölmesi gibi tuzakları bilirsin.
- cin ve cout ile giriş-çıkış: Kullanıcıdan veri okur, biçimlendirerek yazdırır ve hatalı girdiyi cin durumuyla yakalarsın.
- std::string ile metin işleme: C dizgilerinin aksine kendini yöneten string sınıfıyla birleştirir, arar ve keser, taşma riskinden kurtulursun.
- Kısa görev: komut satırı hesap makinesi
Akış denetimi ve işlevler
- Koşullar ve döngüler: if, switch, for, while ve aralık tabanlı for ile akışı denetlersin.
- İşlevler, aşırı yükleme ve varsayılan argümanlar: Aynı adlı işlevleri farklı parametrelerle yazar ve varsayılan argümanlarla çağrıları kısaltırsın.
- Başvurular (reference) ve const: Büyük nesneleri kopyalamadan const başvuruyla işlevlere geçirirsin.
- Diziler ve std::vector: Büyüyebilen vector’ü kullanır, at() ile sınır denetimli erişimi ve [] arasındaki farkı öğrenirsin.
- İsim alanları ve başlık dosyaları: Kodu başlık ve kaynak dosyalarına böler, isim çakışmalarını namespace ile önlersin.
- Kısa görev: menülü not defteri
Veri, hata ve dosyalar
- struct ve enum class ile veri gruplamak: İlişkili alanları struct’ta toplar, güvenli seçenek kümelerini enum class ile tanımlarsın.
- Hata yönetimi: try, catch ve throw: Hataları fırlatır ve yakalar, standart hata sınıflarını ve kendi hata türünü kullanırsın.
- Dosya akışları: ifstream ve ofstream: Dosyaları akışlarla okuyup yazar, açılamayan dosyayı denetler ve akışı otomatik kapatırsın.
- stringstream ile satır ayrıştırmak
- Kısa görev: CSV dosyasındaki tutarları topla
Bitirme
- Bitirme görevi: günlük dosyası özet programı: Günlüğü okuyan, olayları vector ve map ile sayan, hataları yakalayan ve özet yazan programı geliştirirsin.
Pratik lablar
- Yakıt maliyetini hesaplamak: Mesafe, tüketim ve litre fiyatını cin ile okuyup yol maliyetini iki ondalıkla yazdıran programı yaz.
- Tam sayı bölmesiyle bozulan ortalamayı düzeltmek: Not ortalamasını hep aşağı yuvarlayan programda tam sayı bölmesini ve auto ile çıkarılan yanlış türü bul, düzelt ve testleri geçir.
- Hatalı girişte takılan menüyü onarmak: Sayı yerine harf girilince sonsuz döngüye giren menüde akış hata durumunu temizle, kalan girdiyi at ve yeniden sor.
- Ad soyaddan baş harfleri çıkarmak: std::string işlevleriyle tam addan baş harfleri büyük harf olarak üreten fonksiyonu yaz; birden çok boşluğu da doğru işle.
- Anahtar=değer satırını ayrıştırmak: Ayar satırlarını stringstream ile anahtar ve değere ayır; baştaki ve sondaki boşlukları kırp, yorum satırlarını atla.
- Tüm geçişleri değiştiren fonksiyonu onarmak: Yeni metin aranan metni içerdiğinde sonsuz döngüye giren değiştirme fonksiyonunu düzelt ve rastgele metinlerle testleri geçir.
- Aydaki gün sayısını switch ile bulmak: Yıl ve aya göre gün sayısını döndüren fonksiyonu switch ile yaz; artık yıl kuralını doğru uygula.
- Alan hesabını aşırı yüklemeyle yazmak: Kare, dikdörtgen ve daire için aynı adlı aşırı yüklenmiş alan fonksiyonlarını yaz ve belirsiz çağrı hatası veren kullanımı düzelt.
- Gereksiz kopyaları const başvuruya çevirmek: Büyük vektörleri değerle alan fonksiyonları const başvuruya çevir; değiştirmesi gerekenleri ayır ve kopya sayacı testini geç.
- Ölçümlerin en küçük ve en büyüğünü bulmak: Sıcaklık ölçümlerini tutan vektörde en küçük, en büyük değeri ve aralarındaki farkı döndüren fonksiyonu yaz; boş vektörü de ele al.
- Çoklu tanım hatasını başlıkla çözmek: Tek dosyadaki yardımcıları başlık ve kaynak dosyasına ayır; koruma makrosu ekle ve bağlayıcının çoklu tanım hatasını gider.
- Döngüde silme hatasını onarmak: İndisle gezerken eleman silen ve bazı kayıtları atlayan stok temizleme döngüsünü düzelt; ardışık silinecek kayıt testlerini geç.
- Sipariş durumunu enum class ile tutmak: Dizgi ile tutulan sipariş durumunu enum class'a çevir ve durumu metne dönüştüren fonksiyonu yaz.
- CSV'deki tutarları bozuk satırları atlayarak toplamak: Turnalı Perakende'nin satış dosyasındaki tutar sütununu topla; sayı olmayan satırları say ve satır numaralarıyla raporla.
- İstisnada yarım kalan dosyayı önlemek: Yazma sırasında istisna çıkınca bozuk çıktı bırakan dışa aktarıcıyı geçici dosyaya yazıp sonunda yeniden adlandıracak şekilde düzenle ve hata testini geç.
- Sıralı vektöre yerinde ekleme yapmak: Ölçümleri sıralı tutan vektöre her yeni değeri doğru konuma ekleyen fonksiyonu yaz; kapasiteyi önceden ayır ve yinelenen değerleri ekleme.
- Dosyaya yazmadan önce açılışı denetlemek: Ölçüm listesini ofstream ile dosyaya satır satır yaz; dosya açılamazsa anlaşılır bir ileti verip sıfır olmayan kodla çık.
- Döngüsel başlık bağımlılığını çözmek: Birbirini içeren iki başlık yüzünden derlenmeyen projeyi başlık korumaları ve ön bildirimlerle düzelt; her başlık tek başına derlenebilsin.
Kurs hakkında
C’nin üzerine kurulu, hızlı ve yaygın C++’ı sıfırdan öğrenir; g++ ile derler, standart kütüphaneyle küçük programlar yazarsın.
Ne öğreneceksin
- Başlarken
- Akış denetimi ve işlevler
- Veri, hata ve dosyalar
- Bitirme
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.