C++ Part2: Temel Yapılar

C++ Dilinde Değişkenler

Bilgisayar programları veriyi işlerler. Değişkenler, bu işlem için verinin bir kısmını saklamak için kullanılırlar. Değişken olarak adlandırılmasının sebebi ise saklanan verinin sonradan değiştirilebilmesidir. Değişkenler, bir veya birden fazla kelimeden oluşabilirler. Birden fazla kelimeden oluşuyorsa ilk kelime küçük harf ile başlarken diğer kelimeler büyük harf ile başlar. Kelimeler arasında boşluk bırakılmaz.

  • Değişkenin yaptığı göreve uygun anlamlı isimler seçilmelidir.
  • a, b, c, d, i1, j99 gibi anlamsız isimler kullanılmamalıdır.
  • Koordinat eksenini belirten x, y, z ve indis belirten i ve j harfleri dışında tek harfler kullanılmamalıdır.
  • Değişkenler program içerisinde yalnızca bir kere tanımlanabilir.
  • Değişken türü program içerisinde değiş
  • Genelde değişkenlerin programın en başında diğer işlemlerden önce tanımlanması en uygun olanıdır.

1.png

Örneğin main bloğunun içerisinde okunabilirliği yüksek olması açısından ilk olarak tanımlamaları yaparız. toplam ve i adlı değişkenler int tipinde tanımlanırken ortalama adlı değişken double tipinde tanımlandı. Değişkenleri tanımlarken bir başlangıç değeri verebiliriz.

 

Temel Değişken Tipleri

Tam Sayılar: C++ şu tam sayı türlerini destekler: char, short, int, long, long long. İşaretli ve işaretsiz olmak üzere toplam 10 tam sayı tipi vardır.

Karakterler: char tipinde karakterler tutulur (örneğin ‘a’, ‘Z’ , ‘9’). Örneğin ‘A’ karakteri ASCII kodlarına göre hafızada 65 (onluk tabanda) ya da 61H (onaltılık tabanda) olarak saklanır.

Kayan Noktalı Sayılar: 3 tane kayan noktalı sayı tipi vardır: float, double ve long double. Bunların arasında kapsadıkları aralık farkı vardır.

Bool Sayıları: bool adlı özel bir tip vardır. Sadece bir değer alır: true ya da false.

Temel Aritmetik İşlemler

Operatör Anlamı Örnek
                + Toplama x+y
                 – Çıkarma x-y
                 * Çarpma x*y
                 / Bölme x/y
                 % Mod Alma x%y
                ++ Artırma ++x veya x++
                 — Azaltma –x veya x–

 

Mod alma, birinci sayı ikinci sayıya bölündüğünde çıkan sonuçtaki kalanı bulma işlemidir.

Örneğin 10%3 işleminin cevabı 1’dir.

++x ve x++ işlemlerinin her ikisi de x değişkeninin değerini 1 artırır. Birbirlerinden farkı ise ++x işlemi yazdırıldığında önce x’in değerini 1 artırır sonra yazdırır, x++ işlemi yazdırıldığında ise önce x’i yazdırır sonra değerini 1 artırır.

Döngüler

1’den 100’e kadar olan tüm sayıları toplamak istediğimizi varsayalım. Hepsini tek tek yazarsak en az 100 satırlık bir program gerekecektir. Döngüler, tekrar eden görevleri yerine getirmek için kullanılırlar. İşlemlerin yapılış sırasına göre değişen 3 tane döngü vardır. For, while ve do-while. Bu döngüleri tanıtmadan önce karşılaştırma ve mantıksal operatörlerden biraz bahsedelim:

Operatör Anlamı Örnek
                == Eşittir x==y
                 != Eşit değildir x!=y
                 > Büyüktür x>y
                 < Küçüktür x<y
                 >= Büyük veya eşittir x>=y
                <= Küçük veya eşittir x<=y
                 && Mantıksal VE (x>1 && x<100)
                  || Mantıksal VEYA (x>1 || x<100)
                  ! Mantıksal DEĞİL !(x==8)

 

Bir sayının 1 ile 100 arasında (yani 1<x<100) olup olmadığını kontrol etmek istediğimizi varsayalım. Burada iki basit koşul vardır: x>1 ve x<100. Programlamada 1<x<100 yazılamaz ancak bunun yerine iki koşul arasına VE operatörü (&&) getirilerek aynı sonuç çıkarılabilir.

DEĞİL operatörü (!) çıkan sonucun tersini alır. Örneğin !(x==8) ifadesi eğer x 8’e eşitse 0 değerini, x 8’den farklıysa 1 değerini döndürecektir. Çünkü bilindiği gibi bilgisayar sisteminde 1 doğru sonuçları, 0 ise yanlış sonuçları temsil eder.

For Döngüsü:

2.png

Yukarıdaki gibi kullanılır. i indisi ya önceden int i; yazılarak tanımlanmalı ya da döngünün içerisinde tanımlanmalı. Ama döngünün içinde tanımlanan indisin döngünün dışında kullanılamayacağı unutulmamalıdır. Çünkü o tanımlama sadece döngü için geçerlidir. Tekrar kullanmak için döngüden sonra bir tanımlama daha yapılabilir.

i=1’den başlayarak i=100 olana kadar döngü devam eder. Döngünün her başa dönmesinde i’nin değeri 1 artar (i++’dan dolayı). Toplam 100 adım vardır. Eğer i=0; i<100; i++ şeklinde yazılsaydı i=0’dan başlayarak i=99 olana kadar döngü devam ederdi. Yine toplam 100 adım olurdu ama 100 sayısını toplama dahil etmezdi.

1’den 100’e kadar olan tüm sayıları toplayarak toplam değişkeninde tutar. Gördüğünüz gibi 100 satır kullanmak yerine sadece 2 satır kullanarak işlemi gerçekleştirdik.

While Döngüsü:

3.png

İndisin tanımlaması daima döngüden önce yapılır. Başlangıç değeri atanmak zorundadır. Aksi takdirde program çalışma zamanı hatası verecektir. Eğer while içerisindeki şart sağlanıyorsa program döngünün içerisine girer. Sağlanmıyorsa döngünün dışından kaldığı yerden devam eder. Yani i değişkeninin değeri 100 sayısından küçük veya eşitse döngünün içerisindeki toplama işlemini yaparak i’nin değerini 1 artırır ve tekrar koşulu kontrol eder. Değilse döngüye girmeden devam eder.

Do-While Döngüsü:

4.png

While döngüsüne çok benzer. Farkı ise do-while döngüsü önce işlemleri yapar sonra koşulu kontrol eder. Koşul sağlanıyorsa tekrar işlemleri yapar. Sağlanmıyorsa döngünün dışından devam eder. While döngüsü ise açıkladığımız gibi önce koşulu kontrol eder sonra işlemleri yapar. Do-while döngüsünde koşuldan sonraki noktalı virgülün koyulması zorunludur.

If-Else Yapısı

If-else yapıları karar yapılarıdır. Bir koşulun sağlanıp sağlanmadığını kontrol etmek için kullanılır. Koşul sağlandığında bir işlem yapar sağlanmadığında ise farklı bir işlem yapar. Döngüler gibi değildir. Kontrolü sadece bir kere yapar ve sonraki işlemlere devam eder.

5.png

else if bloğu yerine sadece else bloğu da yazılabilirdi. Çünkü sayılar 2’ye ya tam bölünür (kalan sıfırdır) ya da tam bölünmez (kalan birdir).

6

Yukarıdaki örnek programı incelediğimizde 1’den 100’e kadar olan sayıların bir for döngüsü ile toplanarak ortalamalarının alındığını ve yazdırıldığını görüyoruz. toplam değişkeninin başlangıç değeri sıfır olarak atanmıştır çünkü herhangi bir değer atanmasaydı döngü içerisinde toplam+=i (toplam=toplam+i) ifadesinde toplam değişkeninin bir başlangıç değeri olmadığı için hata olacaktı.

Bir önceki yazıda da değindiğimiz üzere tam sayı olan bir sonuca tip dönüşümü uygulayarak kayan noktalı sayı halinde görebiliyorduk.

  • toplam/100 sonucu; tam sayının tam sayıya bölünmesinden dolayı tam sayı çıkacaktır.
  • toplam/(double)100 sonucu; 100 sayısının double tipine dönüştürülmesi ve tam sayının double sayıya bölümünün sonucunun double sayı olmasından dolayı sonuç double olacaktır.
  • toplam/100.0 sonucu; bir önceki ile aynıdır çünkü (double)100 yazmak ile 100.0 yazmak aynı anlama gelmektedir.
  • double (toplam/100) sonucu; toplam/100 işleminin sonucu tam sayı olacaktır. double tipine çevrildiğinde sonucun değişmediğini sadece noktalı olarak yazdırıldığını görürüz. (Ekran çıktısında kayan noktadan sonra sıfır sayısı olduğu için ondalıklı şekilde çıkmamış.)

7

Sonraki yazılarda görüşmek dileği ile.

Ayşenur BURAK

 

Categories: C++

Yorum bırakın