Category: CPP

  • CPP 039 – Arrays & Pointers

    Dynamic memory allocation konusu işlediğimize göre şimdi boyutları değişebilen bir array oluşturabiliriz. Kendi kullanım amacınıza göre farklı şekillerde yazabilirsiniz. Kesin bir kuralı yok. Tabi bu tip temel şeyleri zamanın %99’unda biz yazmıyoruz. std::vector gibi hazır sınıfları kullanıyoruz. Fakat en azından daha derinlerde olayın nasıl gerçekleştiği hakkında bir fikir vereceğini umuyorum.

  • CPP 038 – Dynamic Memory Allocation

    Bellekte yer ayırmak için kullanıyoruz. Eeee daha önce bunu yapmıyor muyduk? Evet, OS bize bahçeli bir köy evi verdi. Ne güzel değil mi? Fakat artık biz bitki yetiştirmek istiyoruz ve dolayısıyla evin bahçesi bu iş için pek uygun değil. Dolayısıyla bize daha büyük alan lazım. Gidiyoruz OS’e diyoruz ki “Eyyy operating system bana tarla ver…

  • CPP 037 – Enumeration 

    Durumları tutmak için enum kullanıyoruz. Örneğin hava durumunu tutmak istersek şöyle bir enum kullanabiliriz: Peki nasıl kullanacağız? Tıpkı normal değişkenleri kullandığımız gibi kullanıyoruz. Enumlar aslında tıpkı bir integer gibi sayıdır. Sayı olarak durumları tutmak yerine böyle kelime olarak tutmak biz programcılar için çok daha kullanışlı ve anlamlı. Bir de enum class larımız vardır. Farkı: An enum just…

  • CPP 036 – main function & command-line arguments

    Şimdi kadar main fonksiyonumuzu int main() şeklinde gördük ama aslında bir alternatif kullanımı da var: Yani iki tane argüman alıyor. Bunlardan biricisi aldığı parametre sayısını, ikincisi ise bir parametreleri string olarak tutan bir array argcAn integer that contains the count of arguments that follow in argv. The argc parameter is always greater than or equal to 1. argvAn…

  • CPP 035 – Array Of Pointers Vs Pointer To An Array

    Pointerları tutan bir array ile bir array’i referans eden pointerın farkını göreceğiz. Pointerları tutan array – Array Of Pointers Nasıl birden fazla değişken kullanmak yerine array kullanıyorsak. Birden fazla pointer kullanmamız gereken durumlarda da array kullanabiliriz. Array’i referans eden pointer Bunda ise pointerlar nasıl int, string, bool, … gibi çeşitli değişkenleri referans edebiliyorsa, gösteriyorsa aynı…

  • CPP 034 – Pass by value, reference, pointer

    Bir fonksiyona parametre atarken nasıl davranması gerektiğini belirliyebiliriz. Temel olarak şey yapabiliriz. Değişkenin kopyasını oluşturduğumuzda fonksiyon içinde yapılan işlemler kopyanın üzerinde yapılacağı için ana değşikeni etkilemez. Reference ile attığımızda ise direk olarak ana değişkeni gönderdiğimiz için fonksiyon içinde yapılan işlemler ana değişkeni etkiler. Bir de pass by pointer seçeneğimiz var. Bu aslında 3. bir seçenek…

  • CPP 033 – Function Call Stack

    Bu konu hakkında diyecek çok bi şey yok aslında. Sadece mantıksal olarak kavramanız yeterli. Her fonksiyon çağrısında gerekli olan veriler belleğe kaydedilir. Bunlar üst üste gelerek bir yığın (stack) oluşturur. Fonksiyonlar geri dönerken bu stacktaki bilgileri kullanarak kaldığı yerden işlemine devam eder. Anlamamız gereken temel şey

  • CPP 032 – Function Overloading

    Farklı değişkenler alan temelde aynı işi yapan aynı isimli fonksiyonlar. Örneğin: Eskiden bu olmadığı için mantıksal olarak aynı işi yapan farklı isimlerde fonksiyonları görmek mümkündü. Artık böyle bir şeye gerek kalmadı. Bir takım bilinmesi gereken hususlar var:

  • CPP 031 – Go To

    goto diye bir keywordümüz var. Bunu normalde görmezsiniz, genel olarak kullanılmaz ve kullanılması durumunda kodu karman çorman hale getirdiği için sakıncalıdır. (bkz. https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf) Nasıl çalışıyor? çok fazla iç içe döngü varsa birden hepsinden çıkmak için kullanabiliriz: https://learn.microsoft.com/tr-tr/cpp/cpp/goto-statement-cpp?view=msvc-170

  • CPP 030 – Struct

    Birden fazla değişkenin kompakt bir hale getirilmesi için kullanıdığımız yapı. Örneğin lisede öğrenmiş olduğumuz vektörler konusunu hatırlayalım. B Lisede öğrenmiş olduğumuz vektörler konusunu hatırlayalım. Uzayda büyüklüğü ve yönü olan geometrik bir objedir. 3 boyutlu uzayda bir vektörün x, y, z olmak üzere üç adet komponenti vardır. Şimdi biz bu üç komponenti nasıl tutabiliriz? Peki birden…

  • CPP 029 – Do While

    Bazı durumlarda bir kod yazılır, sonra while döngüsü yazılıp aynı kod bir de while döngüsünün içine yazılır Bu saçmalığı engellemek için do-while döngüsü var Peki nasıl çalışıyor? Yani bildiğimiz Laz usulü while döngüsü. https://www.programiz.com/cpp-programming/do-while-loop

  • CPP 028 – Pointers

    Ne hikmetse çok zor olduğu düşünülen aslında zor olmayan sadece arada bir karıştılmaya müsait adres tutan değişkenlere pointer diyoruz. Point etmek aşağı yukarı işaret etmek anlamına geliyor. Bildiğin işaret parmağıyla işaret etmek olara düşünebilirsiniz. Arrayleri de işin içine katabiliriz burada fonksiyona array’in adresini atıyoruz. Array’i [] olmadan yazdırırsak direk bize başlangıç adresini yani ilk elemanının…

  • CPP 027 – Bubble Sort

    Bu dersimizde bir sıralama algoritması olan bubble sort algoritmasını kodlayacağız. Bu algoritma en basit sıralama algoritmalarından biri. Arrayin başından başlayarak karşılaştırıyor. Eğer 2. eleman 1. elemandan küçükse birbirinin yerlerini değiştiriyor (swap). Değilse direk sonraki elemanlara bakıyor. Bu şekilde ikili ikili giderek array’in sonuna kadar gidiyor. Array sıralı bir hale gelene kadar bu devam ediyor. Sıralı…

  • CPP 026 – Prefix Postfix ++ —

    Daha önce CPP 004 – Mod & Increment dersinde increment durumundan bahsetmiştik ama ufak bir nüansı atlamıştık. Şimdi o nüansa gelelim. ++ ve — değişkenin başına veya sonuna geldiğinde farklı şekillerde çalışıyor. Aslında yaptığı işlem aynı ama ufak bir fark var. Postfix Öncelikle değişken kullanılır. Sonra artırma işlemi yapılır: a değişkenimizin değeri 5. a++ yapıldığında…

  • CPP 025 – Range Based For Loop

    For loop’unun daha sadeleştirilmiş hali. std::vector gibi container’ların tüm elemanları üzerinden tek tek geçer. Daha anlaşılır bir örnek: Genelde auto keyword’ü ile kullanıyoruz. Bu keyword değişkenin tipinin otamatik olarak kullanılmasına sağlıyor. Çıktı almak için çok güzel olsa da bu şekliyde vector’deki elemanları değiştiremeyiz. Çünkü aslında ekrana basılanlar, vector’deki elemanların birer kopyası. Peki bu durumda ne…

  • CPP 024 – References

    En basit şekilde tanımlamak gerekirse başka bir değişkenin işaret eden değişken. Yani başka bir diyişle bir değişkeni başka bir adla kullanmak gibi bir şey. Buna benzer bir tane daha yapımız var ona pointer diyoruz. Şuanlık konumuz o değli. Neden biz böyle bir şey yaptık? a değişkenini direk aynı şekilde kullanamaz mıydık? Bu örnek için evet…