Professional Documents
Culture Documents
Algoritmalar
Algoritmalar
BÖLÜM 2: ALGORİTMALAR
Algoritmaların yazım dili çok farklı olabilir. Günlük konuşma diline yakın bir dil
olabileceği gibi daha simgesel de olabilir. Algoritmaların özel geometrik şekillerle
gösterilmesi de akış diyagramı olarak tanımlanır. Akış diyagramları geleneksel
olarak kullanılan bir yapı olup algoritmayı yazarken farklı anlamlar taşıyan değişik
şekillerdeki kutulardan yararlanılır. Yine aynı amaç için programlama diline yakın
bir pseudocode (sözde kod) da kendimize özgü olarak kullanılabilir.
7
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
Karşılaştırma İşlemleri
İşlem sembolü Anlamı
= veya == Eşittir
<> veya != Eşit değildir
> Büyüktür
< Küçüktür
>= veya => Büyük eşittir
<= veya =< Küçük eşittir
8
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
1. Değişken (Variable)
Değişken isimlerinde:
1. İngiliz alfabesinin A-Z arası büyük ve küçük 26 harfi kullanılabilir.
2. 0–9 arası rakamlar kullanılabilir.
3. Alt çizgi ( _ ) dışında özel karakter kullanılmaz.
4. Mutlaka bir harf ile başlamalıdır.
Değişken adının yerini aldığı ifadeye çağrışım yapacak şekilde olması programın
anlaşırlılığı açısından önemlidir.
9
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
2. Aktarma
Herhangi bir bilgi alanına bilgi yazma, veri yazma, herhangi bir ifadenin sonucunu
başka bir değişkende gösterme gibi görevlerde aktarma işlemi kullanılır.
Aktarma operatörü
A B C Eski T Yeni T
3 - - 0 0+3=3
- 4 - 3 3+4=7
- - 5 7 7+5=12
10
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
3. Döngü (Loop)
Örneğin 1 ile 1000 arasındaki tek sayıları toplamak için T=1+3+5+7+ … + 999
şeklinde uzun uzun yazmak yerine 1 den başlayıp 2’şer 2’şer artan bir döngü ile
bu işlem kolayca yapılabilir.
11
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
4. Ardışık Toplama
5. Ardışık Çarpma
12
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
1. T=0 ve i=1
2. i<=100 olduğu sürece tekrarla
2.1. T = T + i
2.2. i = i + 1
3. T'nin değerini yaz
4. Dur
Döngü Gösterimi:
Tekrarlanan adımlar
Adım x. Koşul sağlandığı sürece
x.1 ...
x.2 ...
Tekrarlanan adımlar
…
x.n ...
1. a, b ve c katsayılarını al.
2. Delta = b * b - 4 * a * c
3. Eğer Delta < 0 ise Git 8
4. x1 = (-b + sqrt(delta)) / (2 * a)
5. x2 = (-b - sqrt(delta)) / (2 * a)
6. Yaz (x1, x2)
7. Git 9
8. Yaz “Gerçel kök yoktur”
9. Dur
1. a ve b sayılarını oku
2. c = 0
3. b > 0 olduğu sürece tekrarla
3.1. c = c + a
3.2. b = b - 1
4. Yaz (c)
5. Dur
13
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
1. N değerini oku
2. F = 1
3. N >1 olduğu sürece tekrarla
3.1. F = F * N
3.2. N = N - 1
4. Yaz (F)
5. Dur
1. a ve b değerlerini oku
2. m=0
3. a >= b olduğu sürece tekrarla
3.1. a = a - b
3.2. m = m + 1
4. Yaz kalan (a) ve bölüm (m)
5. Dur
14
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
Koşul Gösterimi:
Adım x. Koşul doğru ise
x.1 ...
x.2 ...
işlenen adımlar
…
x.n ...
aksi halde
x.1 ...
x.2 ...
işlenen adımlar
…
x.n ...
Sorular:
1. Girilen üç sayıdan en büyüğünü bulan algoritmayı yazınız.
2. Tamsayılarda üs alma işlemini gerçekleştiren algoritmayı yazınız ( a b ).
3. 1–100 arasında tutulan bir sayıyı tahmin eden algoritmayı yazınız.
4. Girilen N adet sayının;
a) Toplamını, b) Tek olanlarının toplamını, c) Çift olanların toplamını
d) En küçüğünü ve e) En büyüğünü bulan algoritmayı yazınız.
15
Bölüm 2, Yrd. Doç. Dr. A. Kadir YALDIR (akyaldir@pamukkale.edu.tr), PAÜ Bilgisayar Mühendisliği Bölümü
Sorular:
Aşağıdaki soruların pseudocode çözümlerini yapınız
16