3. 4- ALGORİTMA
Program Oluşum Süreci - Adımları
ADIM-1 ) Problemin Belirlenmesi
ADIM-2 ) Problem Hakkında Veri Toplanması
ADIM-3 ) Verilerin Analiz Edilmesi
ADIM-4 ) Algoritma / Akış Diyagramı / Sözde Kod
ADIM-5 ) Herhangi bir Programlama Dilinde Kodlama
ADIM-6 ) Programın Test Edilmesi
ADIM-7 ) Lisanslama- Paketleme
4. 4- ALGORİTMA
Algoritma: Bir Problemin çözümünün , günlük konuşma diliyle adım adım yazılmasıdır.
Algoritmanın özellikleri
•Bir başlangıç noktası vardır
•Her adımda tek bir iş yapılır
•Mutlaka sonlanmalıdır
5. 4- ALGORİTMA
Algoritma sözcüğü Ebu Abdullah Muhammed İbn Musa el
Harezmi adındaki Türkistan'lı alimden kaynaklanır.
Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını
kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır.
"Hisab el-cebir ve el-mukabala kitabı dünyanın ilk cebir kitabı ve
aynı zamanda ilk algoritma koleksiyonunu oluşturur.
Latince çevirisi Avrupa'da çok ilgi görür - alimin ismini telaffuz
edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları
kullanarak aritmetik problemler çözme kuralları" manasında
kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel
kapsamda kullanılır.
http://tr.wikipedia.org/wiki/Algoritma
6. 4- ALGORİTMA
4.1 - Algoritmada kullanılacak notasyonlar:
Algoritmada kullanılacak notasyonlar:
Aritmetiksel İlişkisel Mantıksal Atama
+ topla > büyük
- çıkar >= büyük veya eşit ←
VE (AND)
* çarp < küçük VEYA (OR)
/ böl <= küçük veya eşit Örneğin :
DEĞİL (NOT)
x←5
% Mod <> farklı x ‘ e 5 atanmıştır
^ üs al = eşit
7. 4- ALGORİTMA
4.2 – Atama işlemi ve bellek modeli .
Değişken değer Atama : Bellek (RAM)
X ← 4
4 9 x
X ← X +5
İŞLEMCİ 4+5
8. 4- ALGORİTMA
Örn: Klavyeden girilecek iki sayıyı toplayıp ekrandan
yazdıran algoritmayı yazalım:
10- Başla
20- X ve Y Oku
30- Z ← X + Y
40- Yaz Z
50- Bitir
Her satıra artan sırada bir satır numarası verilir. İlk satır
BAŞLA ve son satır BİTİR olmalıdır.
9. 4- ALGORİTMA
Örn: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit
olma durumunu hesaplayıp yazdıran algoritma.
10- Başla
20- OKU X
30- Eğer(x>0) YAZ “Pozitif”
40- Eğer(x<0) YAZ “Negatif”
50- Eğer(x=0) YAZ “Sıfır”
60- Bitir
10. 4- ALGORİTMA
Örn: Klavyeden girilecek iki sayıdan büyük olanını bulup
ekrandan yazdıran algoritmayı yazalım:
10- Başla
20- X ve Y Oku
30- Eğer (X > Y) ise YAZ “Büyük” X
40- Değil ise YAZ “Büyük” Y
50- Bitir
11. 4- ALGORİTMA
4.3 – Karşılaştırma
Eğer ( x>5 ) ise işlem(ler)
Eğer ( x>5 )ise işlem-I
Değilse işlem-II
Eğer ( x>5 ve x<8 ) ise işlem(ler)
Eğer ( x>5 ve x<8 ) ise
Eğer (z > 6) işlem-I
Değilse işlem-II
Değilse işlem-III
12. 4- ALGORİTMA
4.3 – Karşılaştırma
Örnek : vize notları 1 ile 100 arasında olmalıdır.
Eğer (vize>=0 VE vize<=100 ) ise YAZ “vize geçerli”
Değilse YAZ ‘vize notu *0-100+ aralığında olmalıdır.’
Örnek : sıcaklık 30 dereceden fazla, 40 dereceden az ve pencere kapalı ise ise
pencereyi aç , pencere açık ise fanı çalıştır.
Eğer (sıcaklık>30 VE sıcaklık <=40 ) ise
Eğer (pencere kapalı) ise Pencereyi aç
Değilse Fanı Çalıştır
Eğer (sıcaklık>30 VE sıcaklık <=40 VE pencere kapalı) ise
Pencereyi aç
Değilse Eğer (pencere açık ise) Fanı Çalıştır
13. 4- ALGORİTMA
4.3 – Karşılaştırma
Eğer (x<30) ise
Eğer ( x<20)
Eğer ( x>15) YAZ “A”
Değilse YAZ “B”
Değilse YAZ “C”
Değilse YAZ “D”
Soru-1 : Yukarıdaki algoritmada x=30 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri
Soru-2 : Yukarıdaki algoritmada x=12 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri
Soru-3 : Yukarıdaki algoritmada x=20 değeri için ne Yazar ?
a)A b)B c)C d)D e) Hiçbiri
14. 4- ALGORİTMA
4.3 – Karşılaştırma
Örnek : Bir öğrencinin bir derse ait Vize ve Final notları klavyeden girilecektir.
Buna göre öğrencinin geçme notunu bulup buna göre geçip kaldığını ekrandan
yazdıran algoritmayı yazalım:
10- Başla
20- Vize ve Final Oku
30- N ← Vize * 0.3 + Final * 0.7
40- Eğer (N >= 70) ise durum ← “BAŞARILI”
Değil ise durum ← “Başarısız”
50- Yaz durum
60- Bitir
15. 4- ALGORİTMA
Örn:Vize (%30) ve Final (%70) notuna göre harf notunu hesaplayıp yazdıran algoritmayı yazınız.
10- Başla
ort >=90 ise harf not ← “AA”
20- Vize ve Final Oku 90>ort >=85 ise harf not ← “BA”
30- ort ← Vize * 0.3 + Final * 0.7 85>ort >=80 ise harf not ← “BB”
40- Eğer (ort >= 90) ise harfnot← “AA” 80>ort >=75 ise harf not ← “CB”
75>ort >=70 ise harf not ← “CC”
50- Eğer (90> ort >= 85) ise harfnot← “BA”
70>ort >=60 ise harf not ← “DC”
60- Eğer (85> ort >= 80) ise harfnot← “BB” 60>ort >=50 ise harf not ← “DD”
70- Eğer (80> ort >= 75) ise harfnot← “CB” 50>ort >=40 ise harf not ← “EF”
ort < 40 ise harf not ← “FF”
80- Eğer (75> ort >= 70) ise harfnot← “CC”
90- Eğer (70> ort >= 60) ise harfnot← “DC”
100- Eğer (60> ort >= 50) ise harfnot← “DD”
110- Eğer (50> ort >= 40) ise harfnot← “EF”
120- Eğer (ort < 40) ise harfnot← “FF”
130- YAZ harfnot
140- Bitir
16. 4- ALGORİTMA
Örn: En az üç basamaklı bir tamsayının yüzler basamağındaki rakamı bulup
ekrandan yazdıran algoritmayı yazalım:
10- Başla
sayı
20- sayı Oku 1325
30- sayı ← sayı / 100 13
40- sayı ← sayı % 10 3
50- Yaz sayı 3
60- Bitir
Çalışma: Onlar basamağındaki sayıyı bulup yazdıran algoritmayı siz yazınız ?
17. 4- ALGORİTMA
Örn: Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh),
evli ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Buna göre ay
sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız.
1- BAŞLA
2- OKU m, ms,mü
3- T ← m + ms * mü
4- OKU mh
5- Eğer (mh = “ EVLİ” ) ise
5.1- OKU eçd
5.2- Eğer ( eçd = “ ÇALIŞMIYOR”) ise
T ← T + 89
6- Yaz T
7- BİTİR
18. 4- ALGORİTMA
4.4. DÖNGÜLER (LOOPS) :
Bir koşul sağlandığı sürece, bir grup işlemin tekrarlanması.
Döngünün devam şartı başta Döngünün devam şartı sonda
ŞART SAĞLANIRSA DEVAM ET DÖNGÜ BAŞI
KOMUTLAR KOMUTLAR
DÖNGÜ BAŞINA GİT ŞART SAĞLANIR İSE BAŞA GİT
19. 4- ALGORİTMA
Örn: 1 den 5 ‘ e kadar olan sayıları sırayla ekrandan yazdıran algoritma :
10- BAŞLA EKRAN ÇIKTISI
20- X ← 1 1 2 3 4 5
30- YAZ X
40- X ← X + 1
50- EĞER ( X < 6 ) GİT 30
60- BİTİR
Soru-1 : 50. satırda GİT 30 yerine GİT 20 yaparsak ne olur ?
Soru-2 : 50. satırı , EĞER ( x <= 6 ) GİT 30 yaparsak sonuç nasıl değişir ?
20. 4- ALGORİTMA
Örn: 1 den 10 ‘ a kadar olan tek sayıların toplamını bulup ekrandan yazdıran algoritma :
10- BAŞLA
20- say ← 1 , top ← 0
30- top ← top + say
40- say ← say + 2
50- EĞER ( say <= 10 ) GİT 30
60- YAZ top
70- BİTİR
21. 4- ALGORİTMA
Örn: n! işlemini yapan algoritma :
n=3 için yani 3! = …
10- BAŞLA
20- OKU n n say fakt
30- say ← 1 , fakt ← 1 3 1 1
40- eğer (n = 0 VEYA n=1) ise fakt ← 1 1
GİT 80 2
50- fakt ← fakt * say 2*1=2
60- say ← say + 1 3
70- EĞER ( say <= n ) GİT 50 2*3=6
80- YAZ fakt 4
90- BİTİR
3!= 6
22. 4- ALGORİTMA
Örn: xy işlemini yapan algoritma :
10- BAŞLA
20- OKU x , y
30- say ← 1 , us ← 1
40- eğer (y = 0 ) ise us ← 1
GİT 80
50- us ← us * x
60- say ← say + 1
70- EĞER ( say <= y ) GİT 50
80- YAZ us
90- BİTİR
23. 4- ALGORİTMA
4.5. EN BÜYÜK veya EN KÜÇÜK Bulma:
Bir grup veri içerisinden en büyüğünü veya en küçüğünü bulma işlemidir.
EN BÜYÜK bulunurken; herhangi biri en büyük kabul edilip diğerleri ile tek tek
karşılaştırılır. Karşılaştırma esnasında elimizdekinden daha büyük bir değer bulursak
onu en büyük olarak alıp karşılaştırma işlemine kaldığımız yerden devam edilir. Tüm
veriler karşılaştırıldığında elimizdeki veri EN BÜYÜK veridir.
EN KÜÇÜK bulma işlemi de aynı şekilde yapılır. Tek fark karşılaştırma yaparken
daha küçüğü var mı diye bakılır.
24. 4- ALGORİTMA
Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayılardan en büyüğünü bulup
ekrandan yazdıran algoritma :
10- BAŞLA
20- eb ← 0
30- OKU x
40- eğer ( x > eb ) ise eb ← x
50- YAZ “Devam edilecek mi ? Evet *E+ ”
60- OKU cevap
70- EĞER ( cevap =“E” ) GİT 30
80- YAZ eb
90- BİTİR
25. 4- ALGORİTMA
4.6. SINIRI BELLİ OLMAYAN DÖNGÜLER
Döngünün kaç kez döneceği belli değildir. Döngünün devam koşulu döngü
içerisinde döngü şartını değiştirecek bir duruma bağlıdır ya da döngüye devam edilip
edilmeyeceği sorusan göre şekillenecektir.
26. 4- ALGORİTMA
Örn: Klavyeden Hayır (H) cevabı girilene kadar , klavyeden girilecek sayıların toplamını
bulup ekrandan yazdıran algoritma :
10- BAŞLA
20- YAZ “Devam edilecek mi ? Evet *E+ ”
30- OKU cevap
40- EĞER ( cevap <> “E” ) ise GİT 80
50- OKU x
60- top ← top + x
70- GİT 20
80- YAZ top
90- BİTİR
27. 4- ALGORİTMA
Örn: Sayı tahmin oyunu. Sitem rastgele bir sayı tutar. Biz bu sayıyı tahmin etmeye çalışırız.
Bunun için bir sayı gireriz. Girdiğimiz sayı ile sistemin tuttuğu sayı karşılaştırılarak AŞAĞI
veya YUKARI şeklinde bizi uyarır. Bu şekilde sistemin tutuğu sayıyı bulduğumuzda kaç kez
deneyerek bulduğumuzu ekrandan yazdırır.
10- BAŞLA
20- say ← 0
30- r ← rastgele sayı türet
40- YAZ “Tahmin Giriniz”
50- OKU tahmin
60- say ← say + 1
70- EĞER ( r > tahmin) ise YAZ “YUKARI” GİT 40
80- EĞER ( r < tahmin) ise YAZ “AŞAĞI” GİT 40
90- YAZ say “ . Tahminde buldunuz”
100- BİTİR
28. 4- ALGORİTMA
4.7. İÇ İÇE DÖNGÜLER
I- içteki döngü, dıştaki döngünün bir komut satırı gibidir.
II- Birbirlerini kesemezler
DÖNGÜ n
KOMUTLAR 1
DÖNGÜ k
KOMUTLAR 2 n kez çalışır
KOMUTLAR 3
nXk kez çalışır
29. 4- ALGORİTMA
İÇ İÇE DÖNGÜLER
DÖNGÜ n
KOMUTLAR 1
DÖNGÜ k
KOMUTLAR 2
!!!
DÖNGÜLER BİRBİRİNİ KESEMEZ
KOMUTLAR 3
30. 4- ALGORİTMA
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;
10- BAŞLA ****
****
20- satır ← 1 ****
30- sütun ← 1 ****
40- sütun ← sütun + 1
50- YAZ “ * “
60- EĞER (sütun <= 4) GİT 40
70- satırbaşı YAP (YAZ)
80- satır ← satır + 1
90- EĞER (satır <= 4) GİT 30
100- BİTİR
*
**
Soru: Ekrandaki gibi çıktı vermesi için algoritmada ne gibi
***
değişiklik yapılmalıdır.
****
31. 4- ALGORİTMA
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;
10- BAŞLA 1
20- satır ← 1 1 2
1 2 3
30- sütun ← 1 1 2 3 4
40- YAZ sütun
50- sütun ← sütun + 1
60- EĞER (sütun <= satir) GİT 40
70- satırbaşı YAP (YAZ)
80- satır ← satır + 1
90- EĞER (satır <= 4) GİT 30
100- BİTİR
1
2 2
Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl 3 3 3
değişik yada değişiklikler yapılmalıdır ? 4 4 4 4
34. 4- ALGORİTMA
ÇALIŞMA SORULARI
1- Çarpım Tablosunu veren algoritmayı yazınız .
2- Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritmayı yazınız.
3- Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir.
Buna göre 100-1000 arasındaki Armstrong sayılarını bulan algoritmayı yazınız.
4-Bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai ücreti (mü), evli olup olmadığı (mh), evli
ise eşinin çalışıp çalışmadığı (eçd), çalışmıyor ise 89 TL eş yardımı verilecektir. Evli ise çocuk sayısına
(çs) göre en çok iki çocuğa çocuk başı 15 TL verilir. Aşağıdaki kriterler de göz önüne alınarak ay
sonunda işçinin eline geçecek net miktarı bulup yazdıran algoritmayı yazınız.
Toplam >= 3000 TL ise %20 kesinti
3000>Toplam >= 2000 TL ise %15 kesinti
Toplam < 2000 TL ise % 10 kesinti
36. 4- ALGORİTMA
Klavyeden girilecek N sayısına kadar olan ASAL sayıları ekrana yazdıran algoritma.
10-Başla
20-OKU N
30-Eğer (N=2) ise YAZ N Git 130
40- k ← 3
50- asal ← true
60- y ← 2
70- Eğer( (k%y)=0 ) ise asal ← false
80- y ← y+1
90- Eğer( y < k) ise Git 70
100- Eğer( asal=true) ise YAZ k
110- k ← k+1
120- Eğer( k < N) ise Git 50
130- BİTİR
37. 4- ALGORİTMA
Üç basamaklı, basamaklarının küpleri toplamı kendisine eşit olan tam sayılara Armstrong sayı denir.
Örneğin: 371 = 3^3 + 7^3 + 1^3.
Bu program İç-içe geçmiş 3 döngü ile bütün Aramstrong sayıları bulur.
10-Başla
20- a ← 1
30- b ← 1
40- c ← 1
153
50- sayi ← 100*a + 10*b + c
370
60- kup ← a*a*a + b*b*b + c*c*c 371
70- Eğer( sayı =kup ) ise YAZ sayı
407
80- c ← c+1
90- Eğer( c <=9) ise Git 50
100- b ← b+1
110- Eğer(b<=9) ise Git 40
120- a ← a+1
130- Eğer(a<=9) ise Git 30
140- BİTİR
38. 4- ALGORİTMA
Çalışma Sorusu: Karesi sağdan n dijit, soldan n-1 dijitin toplamına eşi olan sayılara Kaprekar Sayıları
denir.
Örneğin: 92 = 81 8 + 1 = 9, 2972 = 88209 88+209=297
1 ile 1000 arasındaki tamsayılar içinde kaprekar olanlarını bulacak algoritmayı yazınız ?