Algoritma: Değişkenler
Değişken nedir, bilgisayar bilgiyi nasıl saklar? Etiketli kutu örneğiyle değer atama, işlemler, veri çeşitleri ve iyi isimlendirmeyi kod yazmadan, sıfırdan öğren.

Seri · Algoritmalar
- 1. Algoritma Nedir? — Yazılıma Sıfırdan Başlangıç
- 2. Algoritma: Akış Şemaları
- 3. Algoritma: Sözde Kod
- 4. Algoritma: Değişkenler
Önceki yazıda sözde kod yazarken sayı ← 1 ya da toplam ← 0 gibi satırlar kullandık. Ama hiç durup şunu sormadık: bu sayı, bu toplam tam olarak ne? İçine değer koyduğumuz bu küçük kutuların bir adı var: değişken.
Bu yazıda hiç kod yazmadan, değişkenin ne olduğunu en baştan, günlük örneklerle anlayacağız. Çünkü değişken, bir programın bilgiyi hatırlama biçimidir — ve yazacağın hemen her algoritmanın temelinde o vardır.
Bir hatırlama sorunu
Şöyle düşün: bir arkadaşına markette alışveriş yaptırıyorsun ve telefonda söylüyorsun. “Üç ekmek al” dedin. Arkadaşın bunu aklında tutmak zorunda, değil mi? Kafasının bir köşesine “ekmek = 3” diye not alır.
Bilgisayar da aynı şeyi yapar. Bir bilgiyi sonra kullanmak için bir yere koyması ve o yere bir ad vermesi gerekir. İşte o yer, değişkendir.
Bir değişken, içine bir bilgi koyduğumuz, üzerinde bir adı (etiketi) olan bir kutudur. Kutunun adını söyleyince, bilgisayar içindeki değeri sana getirir.
Etiketli kutu
Aklında şu resmi tut: üstünde etiket olan bir kutu.
- Kutunun adı (etiketi):
yaş - Kutunun içindeki değer:
25
Bir kâğıda şöyle çizebilirsin:
┌───────────┐│ yaş │ ← kutunun adı (etiketi)│ 25 │ ← içindeki değer└───────────┘Artık yaş dediğinde bilgisayar “25” diye anlar. Adı bir kez koyduktan sonra, değerin ne olduğunu ezberlemek zorunda değilsin; sadece adı kullanırsın.
Bir kişiyi kutularla tarif etmek
Bir tek kutu güzel, ama asıl güç birden fazlasını birlikte kullanınca ortaya çıkar. Diyelim bir kullanıcıyı tarif etmek istiyoruz. Tek bir bilgi yetmez; birkaç kutu kullanırız:
isim ← "Mehmet"yaş ← 25şehir ← "Ankara"aktif ← doğruİşte bu kadar: dört kutu, bir kişiyi anlatıyor. Bir oyundaki karakteri (can, skor, seviye), bir ürünü (ad, fiyat, stokta) ya da bir hesabı hep böyle, birkaç değişkeni bir arada kullanarak temsil ederiz. Her kutu bir parçayı tutar; hepsi birlikte bütünü oluşturur.
Kutuya bir şey koymak: atama
Bir değişkene değer koyma işine atama denir. Sözde kodda bunu sol ok (←) ile gösteriyorduk:
yaş ← 25 # "yaş" kutusuna 25 koyisim ← "Ada" # "isim" kutusuna Ada yazekmek ← 3 # "ekmek" kutusuna 3 koyBu satırları “şunu şunun içine koy” diye soldan sağa değil, sağdan sola oku: önce 25 değeri hazırlanır, sonra yaş kutusuna konur.
Bir değişkenin değerini başka bir değişkene de koyabilirsin. Bu durumda değer kopyalanır — kaynak kutu olduğu gibi kalır:
a ← 7 # a kutusunda 7 varb ← a # a'nın değeri (7) KOPYALANIP b'ye konura ← 99 # a değişti ama b hâlâ 7; çünkü b'ye değerin kopyası gitmiştiBir değişkenin hayatı
Her değişken kısa bir hayat yaşar; üç aşaması vardır:
- Doğum (oluşturma): İlk kez bir ad verip içine değer koyarsın —
skor ← 0. - Kullanım (okuma): Adını söyleyip içindeki değeri okursun —
YAZ skor. - Değişim (güncelleme): Üstüne yeni bir değer yazarsın —
skor ← skor + 10.
Bir değişkeni daha doğmadan (içine hiç değer koymadan) okumaya çalışmak tipik bir hatadır — boş bir kutudan bir şey çıkarmaya benzer. Önce koy, sonra oku.
Değişkenlerle işlem yapmak
Değişkenler sadece bilgi saklamaz; asıl güçleri, üzerlerinde işlem yapabilmendir. Sayılarla aritmetik yaparsın:
en ← 5boy ← 3alan ← en * boy # alan = 15+ topla, - çıkar, * çarp, / böl. Geçen yazıdan hatırla: MOD ise bölmeden kalanı verir (7 MOD 3 = 1). Birkaç değişkeni bir formülde birleştirebilirsin — örneğin santigrat dereceyi fahrenheite çevirelim:
celsius ← 25fahrenheit ← celsius * 9 / 5 + 32 # 77Metinleri ise birleştirebilirsin (buna birleştirme denir); genelde yine + kullanılır:
ad ← "Ada"soyad ← "Lovelace"tamAd ← ad + " " + soyad # tamAd = "Ada Lovelace"Dikkat: aradaki " " (boşluklu tırnak) olmasaydı sonuç "AdaLovelace" olurdu. Bilgisayar tam olarak ne dersen onu yapar — boşluğu bile sen koymalısın.
Neden “değişken”? Çünkü değeri değişir
İsmi tam da buradan gelir: bir değişkenin değeri değişebilir. Aynı kutuya yeni bir değer koyarsan, eski değer kaybolur:
puan ← 10 # puan kutusunda artık 10 varpuan ← 25 # eski 10 silindi; puan kutusunda artık 25 varpuan ← puan + 5 # puan = 25 + 5 = 30Son satıra dikkat et: puan ← puan + 5. Bu matematik değil! “Şu anki puan değerini al, 5 ekle, sonucu yine puan kutusuna koy” demektir. Yani kutu önce okunur, sonra üstüne yeni değer yazılır. Bir sayacı artırmanın yolu tam olarak budur.
Eski bir tanıdık: takas (swap)
İlk yazıda “iki bardağın içindekini yer değiştir” bulmacasını çözmüştük, hatırladın mı? Şimdi o bulmacanın neden o kadar önemli olduğunu görüyoruz: bir kutunun üstüne düşünmeden yazarsan, eski değer kaybolur.
İki değişkenin değerini takas etmek için bu yüzden geçici bir kutu gerekir:
geçici ← a # a'nın değerini geçici kutuya saklaa ← b # b'nin değerini a'ya koyb ← geçici # saklanan değeri b'ye koyO bulmacadaki “boş üçüncü bardak”, işte bu geçici değişkenin ta kendisiydi.
Değişkenleri takip etmek: izleme tablosu
Bir algoritmada değişkenler sürekli değiştiği için, “şu an hangi kutuda ne var?” sorusunu takip etmek zorlaşır. Programcıların bunun için kullandığı basit ama güçlü bir araç var: izleme tablosu (trace table). Her satır bir adımı, her sütun bir değişkeni gösterir; algoritmayı kâğıt üstünde “kafadan çalıştırırsın”.
Şu küçük algoritmayı izleyelim:
sayaç ← 0sayaç ← sayaç + 1sayaç ← sayaç + 1sayaç ← sayaç * 2Her satırdan sonra sayaçın değerini bir tabloya yazarız:
| Adım | sayaç |
|---|---|
sayaç ← 0 | 0 |
sayaç ← sayaç + 1 | 1 |
sayaç ← sayaç + 1 | 2 |
sayaç ← sayaç * 2 | 4 |
Tablonun sonunda sayaçın 4 olduğunu kesin olarak biliyoruz — tahmin etmedik, adım adım izledik. Bir hatan olduğunda da bu yöntem altın değerindedir: hangi adımda işlerin ters gittiğini tam olarak görürsün.
Bilgisayarın temel tipleri: ilkel (primitive) tipler
Bir kutuya ne koyduğun önemlidir, çünkü bilgisayar farklı türde bilgileri farklı biçimde saklar ve onlarla farklı işler yapar. En temel, daha küçük parçalara bölünemeyen tiplere ilkel (primitive) tipler denir — bütün programların yapıldığı tuğlalar gibi. Korkutucu görünmesinler; hepsi aslında gündelik hayattan tanıdığın şeyler.
Tam sayı (integer) — sayılabilen şeyler
Bölünmeyen, tek tek sayılan şeyler: sepetteki elma adedi, yaşın, bir binanın kat sayısı, sınıftaki öğrenci sayısı. “2,5 öğrenci” diye bir şey olmaz.
yaş ← 25 adet ← 3 kat ← 7Algoritmayla bağı: Bir döngüdeki sayaç hep tam sayıdır (1'den 5'e say); bir şeyin kaç tane olduğunu tutmak için kullanılır.
Ondalıklı sayı (float) — ölçülen şeyler
Kesirli olabilen, ölçülerek elde edilen şeyler: boyun (1.78 m), ateşin (36.6°C), bir ürünün fiyatı (9.99 TL), depodaki benzin (42.5 litre).
boy ← 1.78 fiyat ← 9.99 sıcaklık ← 36.6Algoritmayla bağı: Ortalama, oran, yüzde ve para hesapları genelde ondalık sayıyla yapılır (ortalama ← toplam / 3).
Karakter (char) — tek bir sembol
Tek bir harf, rakam ya da işaret; tek tırnak içinde yazılır: 'A'. Gündelik karşılığı: kan grubun (A, B, 0), karne harfin (A, F), bir soruya E/H cevabın.
kanGrubu ← 'A' harfNotu ← 'B' cevap ← 'E'Algoritmayla bağı: “Tek tuşla seçim” (E/H menüsü) ya da bir harfin kontrolü gibi yerlerde kullanılır.
Doğru / Yanlış (boolean) — iki durumlu şeyler
Sadece iki değeri olan bilgi: ışık açık mı kapalı mı, kapı kilitli mi, fatura ödendi mi, yağmur yağıyor mu. Açık/kapalı bir anahtar gibi.
kapıAçık ← doğru ödendi ← yanlışBu türü çoğu zaman sen yazmazsın — bir karşılaştırmanın sonucu olarak kendiliğinden ortaya çıkar:
yaş ← 20yetişkin ← yaş ≥ 18 # yetişkin kutusuna "doğru" konur (çünkü 20 ≥ 18)Algoritmayla bağı: Bütün koşulların (EĞER … İSE) yakıtı budur; geçen yazıdaki karşılaştırma operatörleri (≥, <, = …) hep bu doğru/yanlış değerlerini üretir. Bir durumu işaretleyen “bayrak” (flag) olarak da kullanılır.
Bir de: metin (string) — karakterlerin dizisi
Bir isim, bir adres, bir cümle… Aslında bir metin, yan yana dizilmiş karakterlerden oluşur: "Ada" = 'A' + 'd' + 'a'. Çift tırnak içinde yazılır.
isim ← "Ada" şehir ← "İstanbul"Algoritmayla bağı: Kullanıcının adını, bir mesajı ya da adresi saklamak için kullanılır.
Hepsini bir arada görelim:
| Tip | Gündelik karşılığı | Örnek | Algoritmada |
|---|---|---|---|
| Tam sayı (integer) | elma adedi, yaş | 25 | sayaç, adet |
| Ondalık (float) | boy, sıcaklık, fiyat | 9.99 | ortalama, oran |
| Karakter (char) | kan grubu, not harfi | 'A' | menü seçimi |
| Doğru/Yanlış (boolean) | ışık açık mı? | doğru | koşullar, bayrak |
| Metin (string) | isim, adres | "Ada" | kullanıcı girdisi |
Değişmeyenler: sabitler
Bazen bir değerin hiç değişmemesini isteriz. Bir çemberin pi sayısı her zaman 3.14159’dur; KDV oranı bir hesap boyunca sabit kalır. Böyle değerleri bir kez koyup bir daha değiştirmediğimiz kutulara sabit (constant) denir:
PI ← 3.14159KDV_ORANI ← 0.20Sabitleri genelde BÜYÜK harfle yazmak bir gelenektir; böylece koda bakan biri “buna dokunma, bu değişmez” olduğunu hemen anlar. Değişmemesi gereken bir değeri sabit yapmak, onu yanlışlıkla bozmanı engeller.
Hepsi bir arada: küçük bir örnek
Tek tek öğrendiklerimizi birleştirelim. Bir alışveriş sepetinin KDV dahil toplam tutarını hesaplayalım. Burada atama, işlem, sayı ve sabit hep birlikte çalışıyor:
KDV_ORANI ← 0.20
fiyat ← 50adet ← 3araToplam ← fiyat * adet # 150kdv ← araToplam * KDV_ORANI # 30toplam ← araToplam + kdv # 180
YAZ "Ödenecek tutar: " + toplamSatır satır oku: araToplam fiyat ile adetten hesaplanıyor, kdv ara toplam ile sabit orandan, toplam ise ikisinin toplamından. Her değişken bir öncekine dayanıyor — tıpkı bir tarifteki adımlar gibi. İşte değişkenler bir algoritmada böyle birlikte çalışır.
İyi bir değişkene iyi bir ad
Bir değişkene istediğin adı verebilirsin, ama iyi bir ad, kutunun içinde ne olduğunu tek bakışta anlatır.
# Kötü # İyix ← 25 yaş ← 25a ← "Ada" isim ← "Ada"t ← f * m toplam ← fiyat * miktarSağdaki satırları okuyunca ne yaptığını anlıyorsun; soldakilerde tahmin etmek zorunda kalıyorsun. Birkaç pratik kural:
- Anlamlı olsun — ad, içindeki değeri anlatsın (
sıcaklık,kullaniciAdi). - Boşluk kullanma — çoğu dil kabul etmez. Kelimeleri birleştir:
kullaniciAdi(buna camelCase denir) ya dakullanici_adi(buna snake_case denir). - Rakamla başlama —
2.oyuncudeğil,oyuncu2olur. - Tutarlı ol — bir projede hep camelCase ya da hep snake_case kullan, ikisini karıştırma.
Unutma: bir kodu altı ay sonra okuyan kişi çoğu zaman sensin — ve o an kendine teşekkür etmek istersin.
Sık yapılan hatalar
Kendin dene
Bir kâğıt ve kalem al ve az önce öğrendiğimiz izleme tablosu alışkanlığını kullan: her satırdan sonra her kutunun içinde ne olduğunu tabloya yaz.
Egzersiz 1 — Takip et (kolay)
elma ← 4armut ← 7elma ← elma + 2geçici ← elmaelma ← armutarmut ← geçiciEgzersiz 2 — Ortalama hesapla (orta)
Bir öğrencinin üç sınav notu var: 70, 85 ve 90. Bu notların ortalamasını bulan sözde kodu yaz.
Egzersiz 3 — Kendini tarif et (mini proje)
Kendini temsil eden değişkenleri yaz:
isim,yaş,şehir,öğrenci(doğru/yanlış). Sonrayaşını bir artır (yeni yaşına geçtiğini düşün) veşehirini değiştir.
Özet
İlgili yazılar
Sıkça sorulan sorular
Değişken nedir?
Değişken, bir bilgiyi içinde saklayan, üzerinde bir adı (etiketi) olan kutudur. İçine bir değer koyarsın (örneğin yaş = 25) ve sonra o adı kullanarak değere ulaşırsın. Bilgisayarın bir bilgiyi hatırlamasının en temel yolu budur ve fiziksel olarak bilgisayarın belleğinde (RAM) tutulur.
Değişkene değer atamak ne demek?
Atama, bir değişkenin içine bir değer koymaktır. Sözde kodda genelde sol ok (yaş ← 25) ya da eşittir (yaş = 25) ile gösterilir. "Yaş kutusuna 25 yaz" diye okunur; eşittir işareti burada matematikteki gibi "eşit mi?" sorusu değil, "şunu içine koy" komutudur.
Bir değişkenin değeri değişebilir mi?
Evet — adı zaten buradan gelir. Bir değişkenin üstüne yeni bir değer yazdığında eski değer kaybolur ve yerini yenisi alır. Bu yüzden bir değeri kaybetmeden başka bir yere taşımak için çoğu zaman geçici bir değişken kullanılır.
Değişken çeşitleri (veri tipleri) nelerdir?
Başlangıç için üç temel çeşit yeter: sayılar (tam sayı 25, ondalık 9.99), metinler/yazılar ("Ada", tırnak içinde) ve doğru/yanlış değerleri (doğru, yanlış). Farklı türde bilgiler farklı kutularda tutulur; ilerideki dillerde bunlara "veri tipi" denir.
İlkel (primitive) veri tipi nedir?
İlkel (primitive) tipler, daha küçük parçalara bölünemeyen en temel veri tipleridir: tam sayı (integer), ondalıklı sayı (float), karakter (char) ve doğru/yanlış (boolean). Gündelik karşılıkları sırasıyla sayılan şeyler (elma adedi), ölçülen şeyler (boy), tek bir sembol (kan grubu) ve iki durumlu şeylerdir (ışık açık/kapalı). Metin (string) ise karakterlerden oluştuğu için çoğu dilde ilkel sayılmaz.
İzleme tablosu (trace table) nedir?
İzleme tablosu, bir algoritmayı kâğıt üstünde adım adım çalıştırırken her değişkenin değerinin nasıl değiştiğini takip etmek için kullanılan bir tablodur. Her satır bir adımı, her sütun bir değişkeni gösterir. Hataları koda dökmeden bulmanın en pratik yoludur.
Sabit (constant) ile değişken arasındaki fark nedir?
Değişkenin değeri program çalışırken değişebilir; sabitin değeri ise baştan konur ve hiç değişmez (örneğin Pi = 3.14159 ya da KDV_ORANI = 0.20). Değişmemesi gereken değerleri sabit yapmak, yanlışlıkla değiştirilmelerini önler.
İyi bir değişken adı nasıl olur?
İyi bir ad, kutunun içinde ne olduğunu tek bakışta anlatır. "x" yerine "yaş", "toplam", "kullaniciAdi" gibi anlamlı adlar seç. Genelde boşluk kullanılmaz; kelimeler camelCase (kullaniciAdi) ya da snake_case (kullanici_adi) ile birleştirilir.