Category: CPP

  • 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…

  • CPP 023 – std::vector

    Array’lerin yakın kardeşleri. C++’ın nimetlerinden biri olan vector’lere bakacağız. Diğer bazı fonksiyonlarını içeren ufak bir örnek yapalım: vector sınıfına ait fonksiyonlar bunlarla sınırlı değil diğer fonksiyonlara bir göz gezdirip ne işe yaradığını anlamaya çalışabilirsiniz.

  • CPP 022 – Arrays

    Normalde her değişkende bir değer saklayabiliriz. Birden fazla değişkeni saklamak için array kullanıyoruz. Array, bellekte ard arda dizilmiş değişkenlerdir. 5 öğrencilik bir sınıftaki not ortalamalarını hesaplayan bir program yazalım: Çok güzel fakat 5 kişi yerine 30 kişi yapmak isteseydik ne yapacaktık? Fazladan 25 tane daha değşken mi tanımlayacaktık? Şimdi aynı örneği array ile yapalım: Biraz…

  • CPP 021 – Scope & Local/Global Variables

    Scope Belli bir alan, gövde, kapsam olarak düşünebiliriz. { ile başlar } ile biter. Bir scope içinde olan o scope içinde kalır. Aslında bunu tarlaları çevreleyen çit olarak, ülkelerin sınırı olarak da düşünebilirsiniz. int main(){ /* buralar hep çimendi */ } Local/Global Variables Bir değişken bir fonksiyonun daha doğrusu scope’un içinde olduğunda o scope a…

  • CPP 020 – Escape Sequence

    Normal karakterlerle ifade edemediğimiz satır atlama, boşluk bırakma gibi şeyleri ifade edebilmek için escape sequence kullanıyoruz. Buna ek olarak “tırnak içinde \” tırnak yazabilmek gibi şeyler için de kullanıyoruz.” Örnek: Zil çalan daha eğlenceli şeyler de mevcut: Simple escape sequences \’ single quote byte 0x27 in ASCII encoding \” double quote byte 0x22 in ASCII encoding \? question mark…

  • CPP 019 – Whitespace

    Boşluk, satır atlama vb şeylere whitespace diyoruz. C++ için ne kadar white space kullandığınızın bir önemi yoktur. İsterseniz bir isterseniz on boşluk bırakın. Önemli olan şey: sıralamasının doğru bir şekilde olması. Örnek: Yukarıdaki kodla aşağıdaki kodun compiler açısından hiçbir farkı yoktur.

  • CPP 018 – Fonksiyonlara Giriş

    Şuana kadar tüm kodlarımızı main fonksiyonuna yazdık. Diğer fonksiyonlar da aslında aynı mantıkla çalışıyor. Öncelikle fonksiyonumuzu tanımlıyoruz sonra çağırıyoruz. Fonksiyonumuz yapısına bakarsak Aslında biz bunu daha önce görmüştük: şimdi fonksiyona bir değişken atalım. & operatörü ile bir değişkenin adresini yazabiliriz. Burada main fonksiyonun içindeki a değişkeniyle merhaba fonksiyonunun içindeki a değişkeni aslında farklı değişkenlerdir ve…

  • CPP 017 – Switch Case

    Önünüzde kapılar, elinizde bir anahtar tek tek deniyorsunuz. Eğer anahtar kapıyı açarsa ne âlâ, açılmazsa yolunuza devam ediyorsunuz. İşte switch case de tam olarak bu mantıkla çalışır. break ifadeleri switch’den çıkmamızı sağlar. flowchart’a bakarsak: Örnek Hangi ay? Verilen sayıya göre yılın hangi ayına karşılık geldiğini söyleyen bir program yazınız: Menu 4 işlem için bir switch-case’i…

  • CPP 016 – Değişkenler

    Programı ve verileri bellekte 0 ve 1’ler halinde tutuyoruz. Bu 0 ve 1 leri kullanabilmek için öncelikle onlara bir anlam yüklemeliyiz, onları tanımlamalı, isimlendirmeliyiz. İşte değişkenler tam da bu işe yarıyor. Biraz bellek hakkında konuşalım. Bellek tek sütundan oluşan upuzun bir tablodur. Her satırında 1 byte’lık veri vardır. 1 byte 1 byte 1 byte 1…