9. Sınıf · Algoritma ve Bilişim
Algoritmik Düşünme ve Problem Çözme
Algoritma ve Bilişim teması, bir problemi bilgisayarın da izleyebileceği biçimde adım adım çözmeyi öğretir. Bu derste algoritma kavramını, bir algoritmanın taşıması gereken özellikleri, akış şeması elemanlarını, koşul (eğer–ise) ve döngü (tekrar) mantığını öğreneceğiz. Algoritmik düşünme yalnızca kodlama için değil; her matematik probleminde "önce ne, sonra ne?" sorusunu netleştirmek için işine yarar. Bol örnek ve "Sıra Sende" alıştırmalarıyla pekiştireceğiz.
1. Algoritma Nedir?
Algoritma, bir problemi çözmek için izlenen, sonlu ve sıralı adımların tümüdür. İyi bir algoritma şu özellikleri taşır:
- Belirli (kesin): her adım tek anlamlıdır, yoruma yer bırakmaz.
- Sonlu: belirli sayıda adımda sona erer.
- Sıralı: adımlar belli bir düzende uygulanır.
- Girdi / çıktı: baştaki veriden (girdi) sonuca (çıktı) ulaşır.
Günlük bir örnek: "çay demlemek" de bir algoritmadır — su koy, kaynat, çayı ekle, demlenmesini bekle, servis et.
İki sayının aritmetik ortalamasını bulan algoritmayı adımlarla yazınız.
- Başla.
- Birinci sayıyı al:
a. - İkinci sayıyı al:
b. - Toplamı hesapla:
t=a+b. - Ortalamayı hesapla:
o=\dfrac{t}{2}. odeğerini yaz.- Bitir.
7 adımlık sıra bir algoritmadır.2. Akış Şeması Elemanları
Algoritmalar akış şeması ile görselleştirilir. Temel semboller:
| Sembol | Şekil | Anlamı |
|---|---|---|
| Başla / Bitir | oval | algoritmanın başı ve sonu |
| İşlem | dikdörtgen | bir hesaplama veya atama (t=a+b) |
| Karar | eşkenar dörtgen | koşul sorusu (Evet/Hayır dallanır) |
| Akış oku | ok | adımların yönü |
Karar sembolünden iki ok çıkar: koşul doğruysa "Evet" yolu, yanlışsa "Hayır" yolu izlenir.
Bir sayının pozitif mi negatif mi olduğunu belirleyen algoritmanın karar adımını yazınız.
- Sayıyı al:
x. - Karar: "
x>0mı?"- Evet ise: "Pozitif" yaz.
- Hayır ise: "Pozitif değil" yaz.
x>0 koşulunu sorar; iki dala ayrılır.3. Koşul (Eğer – İse)
Bir algoritma, duruma göre farklı işlem yapması gerektiğinde koşul kullanır:
Eğer (koşul doğruysa) ise A işlemini yap, değilse B işlemini yap.
Koşul, bir karşılaştırma içerir: =,\ \neq,\ <,\ >,\ \le,\ \ge.
Bir öğrencinin notu 50 ve üzeriyse "Geçti", değilse "Kaldı" yazan algoritmayı yazınız.
- Notu al:
n. - Eğer
n\ge 50ise "Geçti" yaz. - Değilse "Kaldı" yaz.
n\ge 50; sağlanırsa "Geçti", sağlanmazsa "Kaldı".n\ge 50 doğruysa "Evet" yolu (Geçti), yanlışsa "Hayır" yolu (Kaldı). İki yol sonda tek bir akışta birleşip Bitir'e ulaşır.4. Döngü (Tekrar)
Aynı işlem birden çok kez yapılacaksa döngü kullanılır: bir koşul sağlandığı sürece adımlar tekrarlanır.
1'den 5'e kadar olan sayıların toplamını bulan algoritmayı, döngü kullanarak yazınız.
Bir toplam değişkenini 0'dan başlat; bir sayaç 1'den 5'e kadar ilerlerken her adımda sayacı toplama ekle.
toplam=0,\;sayac=1.sayac\le 5olduğu sürece tekrarla:toplam=toplam+sayac,sayac=sayac+1.
- Döngü bitince
toplam'ı yaz. - İzleme: adımlarda
toplamsırayla1,\ 3,\ 6,\ 10,\ 15olur.
15'tir.1'den 5'e kadarki sayıların toplamını veren döngünün akış şeması. Karara her dönüşte "sayac\le 5 mı?" sorulur: Evet ise gövde işletilip (toplama ekle, sayacı artır) ok geri döner; Hayır olunca döngü kırılır ve toplam yazılır. Geri dönen ok, döngünün "tekrar" özünü gösterir.Çözümlü Örnekler
Bir dikdörtgenin alanını hesaplayan algoritmayı adımlarla yazınız.
- Başla.
- Uzun kenarı al:
a. - Kısa kenarı al:
b. - Alanı hesapla:
A=a\cdot b. A'yı yaz. Bitir.
5 işlem adımı; çıktı A=a\cdot b.Aşağıdaki algoritmanın çıktısı nedir?
x=3 al; \;y=2x+1 hesapla; \;y'yi yaz.
x=3.y=2\cdot 3+1=7.
7'dir.Bir sayının çift mi tek mi olduğunu belirleyen algoritmanın koşulunu yazınız. (x'in 2'ye bölümünden kalan k ile gösteriliyor.)
k=x'\text{in }2\text{'ye bölümünden kalan}.- Eğer
k=0ise "Çift" yaz, değilse "Tek" yaz.
k=0 ise çift, değilse tek.sayac=1, \;\text{çarpım}=1 ile başlayan ve "sayac\le 4 olduğu sürece \text{çarpım}=\text{çarpım}\cdot sayac, sayac=sayac+1" döngüsünü çalıştıran algoritmanın çıktısı nedir?
- Adımları izle:
\text{çarpım}sırasıyla1\to 1\cdot 1=1\to 1\cdot 2=2\to 2\cdot 3=6\to 6\cdot 4=24. - Döngü
sayac=5olunca durur.
24'tür (=4!).Alıştırmalar — Sıra Sende
Önce kendin çözmeyi dene; sonra çözümü açıp karşılaştır.
Şu algoritmanın çıktısı kaçtır? a=5 al; \;b=a-2 hesapla; \;c=b\cdot 3 hesapla; \;c'yi yaz.
a=5,\;b=5-2=3,\;c=3\cdot 3=9.
9.Bir sayının mutlak değerini veren algoritmanın karar adımını yaz.
- Eğer
x\ge 0ise sonuçx, değilse sonuç-x.
x\ge 0; sağlanırsa x, sağlanmazsa -x.t=0, \;s=2 ile başlayan, "s\le 8 olduğu sürece t=t+s, s=s+2" döngüsünün çıktısını bul.
sdeğerleri2,4,6,8;tsırasıyla2,6,12,20.s=10olunca döngü durur.
20'dir.Üç sayının en büyüğünü bulan algoritmanın ilk karşılaştırmasını yaz (a,b,c için).
- Eğer
a\ge bise büyük=a, değilse büyük=b. - (Sonra "büyük" ile
ckarşılaştırılır.)
a\ge b koşuludur.Şu algoritmanın çıktısı kaçtır? a=12, \;b=8 al; eğer a>b ise f=a-b, değilse f=b-a; \;f'i yaz.
a=12,b=8;a>bkoşulu doğru.- O hâlde
f=a-b=12-8=4.
4 (bu algoritma iki sayının farkının mutlak değerini verir).x=1, \;\text{adim}=1 ile başlayan, "x\le 16 olduğu sürece x=x\cdot 2, \;\text{adim}=\text{adim}+1" döngüsünün çıktısı olan son x değeri ve döngünün kaç kez döndüğü nedir?
- İzle:
xbaşta1. Koşul1\le 16doğru →x=2(adım2).2\le 16→x=4.4\le 16→x=8.8\le 16→x=16.16\le 16→x=32. - Artık
32\le 16yanlış → döngü durur. Toplam5tur döndü; sonx=32.
x=32; döngü 5 kez döndü.n=0, \;t=0 ile başlayan şu döngünün çıktısını bul: "t<20 olduğu sürece n=n+1, \;t=t+n." Döngü bittiğinde n kaçtır?
Her turda önce n artar, sonra t'ye eklenir; yani t, 1+2+3+\dots biçiminde birikir. t, 20'ye ulaşıp ya da geçip koşulu bozduğu anda dur.
- Tur tur izle:
n{=}1,\ t{=}1→n{=}2,\ t{=}3→n{=}3,\ t{=}6→n{=}4,\ t{=}10→n{=}5,\ t{=}15→n{=}6,\ t{=}21. - Koşul her turun başında kontrol edilir:
t=15<20doğruyken bir tur daha işlenipt=21olur. Sonraki kontrolde21<20yanlış → durur.
t=21; döngü bittiğinde n=6.Aşağıdaki algoritma bir n doğal sayısı için ne hesaplar? Başla; s=0, \;k=n; "k>0 olduğu sürece s=s+(k\bmod 10), \;k=k\div 10 (tam bölüm)"; \;s'yi yaz. n=4729 için çıktıyı da bulun. (k\bmod 10, k'nin 10'a bölümünden kalandır.)
k\bmod 10 son rakamı verir, k\div 10 ise son rakamı atar. Her turda bir rakam ele alınır.
- Döngü, sayının rakamlarını toplar: her turda son rakam
s'ye eklenir, sonra sayıdan atılır. n=4729için izle:k{=}4729,\ s{=}9→k{=}472,\ s{=}11→k{=}47,\ s{=}13→k{=}4,\ s{=}17→k{=}0, dur.k=0olunca koşul bozulur.
4729 için 9+2+7+4=22.Sık Yapılan Hatalar
- Adımları belirsiz bırakmak. "Sayıyı işle" gibi bir adım algoritmaya uygun değildir; her adım tek anlamlı olmalı.
- Karar sembolünden tek ok çıkarmak. Karardan her zaman iki yol çıkar: Evet ve Hayır.
- Döngüde sayacı artırmayı unutmak. Sayaç güncellenmezse koşul hep doğru kalır ve döngü sonsuza gider.
- Atama (
=) ile eşitlik koşulunu karıştırmak.t=t+sbir atamadır (yeni değer); koşuldaki=ise karşılaştırmadır. - Döngünün son turunu yanlış saymak. Koşul her turun başında denetlenir: koşul sağlandığı sürece gövde bir kez daha işler, ancak ondan sonra kontrol koşulu bozar. Çıktıyı bulurken son turu eksik ya da fazla saymamak için tabloyu sona kadar yürüt.
Not: Bir döngüyü anlamak için adım adım izle (trace): değişkenlerin her turdaki değerini bir tabloya yaz. Çıktıyı tahmin etmenin en güvenli yolu budur.