4- algorİtma...4- algorİtma Örn: bir işçinin maaşı (m), mesai saati (ms) , bir saatlik mesai...
TRANSCRIPT
4- ALGORİTMA
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- 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
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
4- ALGORİTMA
Algoritmada kullanılacak notasyonlar:
Aritmetiksel İlişkisel Mantıksal Atama
+ topla- çıkar* çarp/ böl% Mod^ üs al
> büyük>= büyük veya eşit
< küçük<= küçük veya eşit
<> farklı= eşit
VE (AND)VEYA (OR)DEĞİL (NOT)
←
=
Örneğin :x ← 5x = 5x ‘ e 5 atanmıştır
4.1 - Algoritmada kullanılacak notasyonlar:
4- ALGORİTMA
Değişken değer Atama :
X ← 4
X ← X + 5
Bellek (RAM)
x
4 + 5İŞLEMCİ
4 9
4.2 – Atama işlemi ve bellek modeli .
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.
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
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
4- ALGORİTMA
Eğer ( x>5 ) ise işlem(ler)
4.3 – Karşılaştırma
Eğer ( x>5 )ise işlem-IDeğilse işlem-II
Eğer ( x>5 ve x<8 ) ise işlem(ler)
Eğer ( x>5 ve x<8 ) iseEğer (z > 6) işlem-I
Değilse işlem-IIDeğilse işlem-III
4- ALGORİTMA
Örnek : vize notları 1 ile 100 arasında olmalıdır.
4.3 – Karşılaştırma
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
4- ALGORİTMA
Soru-1 : Yukarıdaki algoritmada x=30 değeri için ne Yazar ? a)A b)B c)C d)D e) Hiçbiri
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-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
4- ALGORİTMA
Ö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
40- Eğer (N >= 70) ise durum ← “BAŞARILI”Değil ise durum ← “Başarısız”
50- Yaz durum
60- Bitir
30- N ← Vize * 0.3 + Final * 0.7
4.3 – Karşılaştırma
4- ALGORİTMA
ort >=90 ise harf not ← “AA”90>ort >=85 ise harf not ← “BA”85>ort >=80 ise harf not ← “BB”80>ort >=75 ise harf not ← “CB”75>ort >=70 ise harf not ← “CC”70>ort >=60 ise harf not ← “DC”60>ort >=50 ise harf not ← “DD”50>ort >=40 ise harf not ← “EF”
ort < 40 ise harf not ← “FF”
10- Başla
20- Vize ve Final Oku
40- Eğer (ort >= 90) ise harfnot← “AA”
130- YAZ harfnot
140- Bitir
30- ort ← Vize * 0.3 + Final * 0.7
Örn:Vize (%30) ve Final (%70) notuna göre harf notunu hesaplayıp yazdıran algoritmayı yazınız.
50- Eğer (90> ort >= 85) ise harfnot← “BA”
60- Eğer (85> ort >= 80) ise harfnot← “BB”
70- Eğer (80> ort >= 75) ise harfnot← “CB”
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”
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
20- sayı Oku
40- sayı ← sayı % 10
50- Yaz sayı
60- Bitir
30- sayı ← sayı / 100
1325
sayı
13
3
3
Çalışma: Onlar basamağındaki sayıyı bulup yazdıran algoritmayı siz yazınız ?
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
4- ALGORİTMA
4.4. DÖNGÜLER (LOOPS) : Bir koşul sağlandığı sürece, bir grup işlemin tekrarlanması.
KOMUTLAR
DÖNGÜ BAŞI
ŞART SAĞLANIR İSE BAŞA GİT
KOMUTLAR
ŞART SAĞLANIRSA DEVAM ET
DÖNGÜ BAŞINA GİT
Döngünün devam şartı sondaDöngünün devam şartı başta
4- ALGORİTMA
Örn: 1 den 5 ‘ e kadar olan sayıları sırayla ekrandan yazdıran algoritma :
10- BAŞLA
20- X ← 1
30- YAZ X
40- X ← X + 1
50- EĞER ( X < 6 ) GİT 30
60- BİTİR
1 2 3 4 5
EKRAN ÇIKTISI
Soru-2 : 50. satırı , EĞER ( x <= 6 ) GİT 30 yaparsak sonuç nasıl değişir ?
Soru-1 : 50. satırda GİT 30 yerine GİT 20 yaparsak ne olur ?
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
4- ALGORİTMA
Örn: n! işlemini yapan algoritma :
10- BAŞLA
20- OKU n
30- say ← 1 , fakt ← 1
40- eğer (n = 0 VEYA n=1) ise fakt ← 1
70- EĞER ( say <= n ) GİT 50
80- YAZ fakt
90- BİTİR
GİT 80
50- fakt ← fakt * say
60- say ← say + 1
n say fakt
3 1 1
1
2
2*1=2
3
2*3=6
4
3!= 6
n=3 için yani 3! = …
4- ALGORİTMA
Örn: xyişlemini yapan algoritma :
10- BAŞLA
20- OKU x , y
30- say ← 1 , us ← 1
40- eğer (y = 0 ) ise us ← 1
70- EĞER ( say <= y ) GİT 50
80- YAZ us
90- BİTİR
GİT 80
50- us ← us * x
60- say ← say + 1
EN BÜYÜK bulunurken; herhangi biri en büyük kabul edilip diğerleri ile tek tekkarşılaştırılır. Karşılaştırma esnasında elimizdekinden daha büyük bir değer bulursakonu en büyük olarak alıp karşılaştırma işlemine kaldığımız yerden devam edilir. Tümveriler 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 yaparkendaha küçüğü var mı diye bakılır.
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.
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
70- EĞER ( cevap =“E” ) GİT 30
80- YAZ eb
90- BİTİR
50- YAZ “Devam edilecek mi ? Evet *E+ ”
60- OKU cevap
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 edilipedilmeyeceği sorusan göre şekillenecektir.
4- ALGORİTMA
4.6. SINIRI BELLİ OLMAYAN DÖNGÜLER
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
70- GİT 20
80- YAZ top
90- BİTİR
50- OKU x
60- top ← top + x
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”
70- EĞER ( r > tahmin) ise YAZ “YUKARI” GİT 40
90- YAZ say “ . Tahminde buldunuz”
100- BİTİR
50- OKU tahmin
60- say ← say + 1
80- EĞER ( r < tahmin) ise YAZ “AŞAĞI” GİT 40
4- ALGORİTMA
4.7. İÇ İÇE DÖNGÜLERI- içteki döngü, dıştaki döngünün bir komut satırı gibidir.II- Birbirlerini kesemezler
KOMUTLAR 2
DÖNGÜ n
DÖNGÜ k
KOMUTLAR 1
n kez çalışır
n X k kez çalışırKOMUTLAR 3
4- ALGORİTMA
İÇ İÇE DÖNGÜLER
KOMUTLAR 2
DÖNGÜ n
DÖNGÜ k
KOMUTLAR 1
DÖNGÜLER BİRBİRİNİ KESEMEZ
!!!KOMUTLAR 3
4- ALGORİTMA
* * * * * * * * * * * ** * * *
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;
10- BAŞLA
20- satır ← 1
40- sütun ← sütun + 1
50- YAZ “ * “
80- satır ← satır + 1
90- EĞER (satır <= 4) GİT 30
100- BİTİR
60- EĞER (sütun <= 4) GİT 40
70- satırbaşı YAP (YAZ)
30- sütun ← 1
Soru: Ekrandaki gibi çıktı vermesi için algoritmada ne gibi değişiklik yapılmalıdır.
* * * * * * * * * *
4- ALGORİTMA
11 2 1 2 31 2 3 4
Örn: Yandaki şekildeki gibi bir ekran çıktısı verebilecek algoritma ;
10- BAŞLA
20- satır ← 1
40- YAZ sütun
50- sütun ← sütun + 1
80- satır ← satır + 1
90- EĞER (satır <= 4) GİT 30
100- BİTİR
60- EĞER (sütun <= satir) GİT 40
70- satırbaşı YAP (YAZ)
30- sütun ← 1
12 2 3 3 34 4 4 4
Soru : Ekran çıktısı yandaki şekildeki gibi olması için algoritmada nasıl değişik yada değişiklikler yapılmalıdır ?
4- ALGORİTMA
Soru işaretidir
4- ALGORİTMA
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.
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 kesinti3000>Toplam >= 2000 TL ise %15 kesintiToplam < 2000 TL ise % 10 kesinti
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- ALGORİTMAÇarpım Tablosu .
10-Başla
20- a ← 1
30- b ← 1
40- YAZ a*b
50- b ← b+1
80- a ← a+1
60- Eğer(b<=9) ise Git 40
90- Eğer(a<=9) ise Git 30
1 2 3 4 5 6 7 8 91 1 2 3 4 5 6 7 8 92 2 4 6 8 10 12 14 16 183 3 6 9 12 15 18 21 24 27...9 9 18 27 36 45 54 63 72 81
100- BİTİR
70- Satırbaşı Yap
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
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
50- sayi ← 100*a + 10*b + c
60- kup ← a*a*a + b*b*b + c*c*c
70- Eğer( sayı =kup ) ise YAZ sayı
80- c ← c+1
90- Eğer( c <=9) ise Git 50
100- b ← b+1
120- a ← a+1
110- Eğer(b<=9) ise Git 40
130- Eğer(a<=9) ise Git 30
153 370 371 407
140- BİTİR
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 ?