Problem çözmede algoritma; değişken, atama, girdi-çıktı; akış şeması sembolleri; karar (eğer-değilse) ve döngü (tekrar) yapıları; sözde kod; algoritmanın izlenmesi (iz tablosu); EBOB (Öklid), asallık ve toplam algoritmaları; algoritmayı verimli hâle getirme.
Algoritma, değişken ve atama
Algoritma: Bir problemi çözmek için sonlu, açık ve sıralı adımlar dizisidir. Aynı girdiye her zaman aynı çıktıyı verir.
Temel kavramlar:
- Değişken: değer saklayan isimli kutu (toplam, sayaç, n)
- Atama (←): değişkene değer verme → toplam ← toplam + i
- Girdi / çıktı: “n’yi oku”, “toplamı yaz”
- Sayaç: döngünün kaç kez döndüğünü tutan değişken
Sözde kod örneği – 1’den n’e kadar toplam:
- n’yi oku
- toplam ← 0, i ← 1
- i ≤ n olduğu sürece: toplam ← toplam + i, i ← i + 1
- toplamı yaz
Akış şeması: karar ve döngü
| Şekil | Anlamı |
|---|---|
| Oval | Başla / Bitir |
| Paralelkenar | Girdi / Çıktı |
| Dikdörtgen | İşlem / atama |
| Eşkenar dörtgen | Karar (Evet / Hayır) |
Karar yapısı: Eğer koşul doğruysa A yolunu, değilse B yolunu izle.
Döngü: Karar kutusundan geri dönen ok → koşul sağlandıkça tekrar.
Örnek: Girilen yılın artık yıl olup olmadığı
- 400’e bölünüyorsa → artık yıl
- değilse 100’e bölünüyorsa → artık yıl değil
- değilse 4’e bölünüyorsa → artık yıl, değilse değil
→ 2024 ✓, 1900 ✗, 2000 ✓
Algoritmayı izleme: iz tablosu
Öklid algoritması (EBOB): a’yı b’ye böl; kalan 0 ise EBOB = b; değilse a ← b, b ← kalan ve tekrar et.
EBOB(84, 36):
| Adım | a | b | kalan |
|---|---|---|---|
| 1 | 84 | 36 | 12 |
| 2 | 36 | 12 | 0 |
→ EBOB = 12
Asallık algoritması: n’nin 2’den √n’e kadar olan sayılardan birine kalansız bölünüp bölünmediğine bak. Bölen yoksa n asaldır.
→ 97 için √97 ≈ 9,8 → 2, 3, 5, 7’ye bölünmüyor → asal (yalnızca 4 deneme!)
💡 Verimlilik: Aynı sonucu daha az adımda veren algoritma daha iyidir. 1’den 100’e kadar toplamı döngüyle 100 adımda, n(n + 1)/2 formülüyle tek adımda buluruz.
| Adım | a | b | kalan |
|---|---|---|---|
| 1 | 84 | 36 | 12 |
| 2 | 36 | 12 | 0 |
Kavramlar
- değişken
- değer saklayan isim
- atama
- değişkene değer verme (←)
- sözde kod
- algoritmanın günlük dile yakın yazımı
- iz tablosu
- değişkenlerin adım adım değerleri
- verimlilik
- daha az adımla çözme
- Algoritma: sonlu, açık, sıralı adımlar
- Atama: değişken ← değer
- Eşkenar dörtgen karar, dikdörtgen işlem, paralelkenar girdi/çıktı
- Döngü: koşul sağlandıkça tekrar
- İz tablosu ile algoritma adım adım izlenir
- Asallık için √n’e kadar bölen aramak yeterli
Örnek soru ve çözümü
x ← 3; 4 kez tekrarla: x ← 2x − 1. Algoritma sonunda x kaçtır?
3 → 5 → 9 → 17 → 33. x = 33.
Çözümlü örnekler
1. Öklid algoritmasıyla EBOB(45, 20) bulunuz. Kolay
Çözüm45 = 2·20 + 5; 20 = 4·5 + 0 → EBOB = 5.
2. 121 sayısının asal olup olmadığını anlamak için en büyük hangi sayıya kadar bölme denenmelidir? Orta
Çözüm√121 = 11 → 11’e kadar; 121 = 11 · 11 asal değildir.
3. s ← 0; i ← 1; i ≤ 10 olduğu sürece: eğer i tek ise s ← s + i; i ← i + 1. Sonunda s kaçtır? Zor
Çözüm1 + 3 + 5 + 7 + 9 = 25.
Sık yapılan hatalar
- Döngüde sayacı artırmayı unutup sonsuz döngü oluşturmak.
- Atama (←) ile eşitliği (=) karıştırmak: toplam ← toplam + i bir denklem değildir.
- Asallık için n − 1’e kadar tüm sayıları denemek (verimsiz).
Biliyor muydun?
Öklid algoritması yaklaşık 2300 yıllıktır ve bugün hâlâ internetteki şifreleme sistemlerinde kullanılır!