Upload
dr-enis-karaarslan
View
227
Download
0
Embed Size (px)
Citation preview
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
1/48
PROBLEM ZME(PROBLEM SOLVING)
Algoritma Temelleri
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
2/48
Kaynak: ALGORTMA VEPROGRAMLAMAYA GRProf.Dr.Mustafa ERGN
Tasarm deiiklikleri ve ierikte ekleme-dzeltme/gncellemeler (Bkz. Kaynaklar)
(Dr. Enis KARAARSLAN)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
3/48
Bilgisayar, sadece
programcnn kendisinesyledii eyi nasl
yapacan bilir.
Bundan dolay programc
bilgisayara problemi nasl
zeceini bildirmelidir.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
4/48
Bilgisayara nasl i yaptracak,nasl iletiim kuracaksnz?
Bir Program ile. Bilgisayarlarprogram olmadan almazlar.
Bilgisayarla, bir mantkaraclyla iletiim kurabiliriz.
Bu da algoritma (talimat,rutin, reete) ile olur.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
5/48
Program yazma, zlm bir
problemin bir bilgisayar diliile kodlarn yazmaktr
(kodlama). Bu, en son itir.Kodlamadan nce
ALGORTMAyazlmaldr.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
6/48
Problem zme dngs(Problem Solving Cycle)
1. Problemi anlama (Understanding, Analyzing),
2. Bir zm yolu gelitirme (Designing),
3. Algoritma ve program yazma (Writing),
4. Tekrar tekrar test etme (Reviewing)
Polya, George (1957) How To SolveIt, Princeton University Press, 2nd
Edition
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
7/48
1. Gereken Analizi (Requirements Analysis):Problemi btn boyutlar ile tanma ve neyaplmas istendiini net olarak anlama,problem zlebilir mi?
2. Tasarm (Design): Bir zm yolu gelitirmeve algoritmasn yazma.
3. Uygulama (Implementation): zmalgoritmasn uygun bir program dilineevirme
4. Test etme, hatalardan ayklama, kurmave bakmn yapma (Testing, debugging,installing and maintenance)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
8/48
Elinde bulunan veriler(Girdi-Input)
Sonunda elde edilmekistenen
(kt-Output)
Girdileri hedeflenen
ktya dntrecekilem (process) belirlenir
rnek: 2 saatte 190
km yol alanarabann ortalamahz nedir?
Output: saatteortalama hz
Input: gidilenmesafe ve sre
Process: orthz =mesafe/sre
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
9/48
Problem zme olgusunun
grafiksel gsterimi
Girdi-lem-kt trne en iyirnekler yemek tarifleridir.
Malzemeler ve miktarlar, hazrlama -piirme ve sonunda istenen yemek!
Girdi
(Input)
lem
(Processing)
kt
(Output)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
10/48
El-Harizmi.Kitab el-cebr
vel-mukabele(Cebir
denklemlerinizmeninkurallar)
Algoritma
Algoritma (el-Harizmi teknii -Algorithm)
Bir problemin zm admlarnn
(ilemlerin) belirlemesi
http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritma7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
11/48
Algoritma
Algoritma, matematikte ve bilgisayar
biliminde bir ii yapmak iin tanmlanan,bir balang durumundan baladnda,
aka belirlenmi bir son durumundasonlanan, sonlu ilemler (admlar)kmesidir.
http://tr.wikipedia.org/wiki/Algoritma
http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritma7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
12/48
Algoritmann SalamasGereken Kriterler
1. Girdi: Sfr veya daha fazla deerdardan verilmeli.
2. kt: En azndan bir deer retilmeli. 3. Aklk: Her ilem (komut) ak olmal
ve farkl anlamlar iermemeli.
4. Sonluluk: Her trl olaslk iin
algoritma sonlu admda bitmeli. 5. Etkinlik: Her komut kiinin kalem ve
kat ile yrtebilecei kadar basitolmaldr.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
13/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
14/48
Kullancnn girdii drt saynn ortalamasngrntleyen algoritma
1. Bala
2. Saya = 0 (Saya'n ilk deeri 0 olsun)
3. Sayy kullancdan al
4. Toplam = Toplam + Say (Toplama sayy ekle)5. Saya = Saya + 1 (Saya'a 1 ekle)
6. Saya < 4 ise 3. adma git. (Eer saya 4'ten kkse3.adma git.)
7. Ortalama = Toplam / 4 (Ortalama iin Toplam 4'e bl)8. Ortalama deerini ekrana yazdr.
9. Dur
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
15/48
Algoritma
Algoritma sadece bilgisayarprogramlamada kullanlmaz.
Bir fabrika retimininalgoritmas,
bir bro alma dzenininalgoritmas,
bir planl gezinin algoritmas...
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
16/48
ay Yapma Algoritmas
1-Bala2-aydanla Su Doldur.3-aydanl Ocaa Koy.4-Su kaynad m?(Hayr ise 4.Adm
tekrardan sor.)5-ay Demle(Yani demlikteki ayn iinekaynam su kat)6-ay Demlendi mi?(Hayr ise 6.Admtekrardan sor.)7-Bitir
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
17/48
Algoritma Gsterim ekilleri
Ak diyagram (Flowcharts): Bir ii yapanmantksal admlar ve admlar aras geileringrafiksel gsterimi. Szde kod / Satralgoritma (Pseudocode):
Programn ana hatlarn ve admlarn gsteren ksakomutlar.
Sradzeni grafii (Hierarchy charts): Programnfarkl paralarnn birbirleriyle ilikilerini gsterir.
Bunlar, kullanlacak programlama
dilinden bamszdr..
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
18/48
Ak diyagram iaretleri
Balama /Bitirme
Okuma
Data
Aritmetik,mantk
ilemi
art -KararVer
me
Dng
Bilgigsterme
Elle verigirii
Balama /Bitirme Yazma
Elle ilem
Balant
Gidiyn
Dier
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
19/48
Bl ve Ynet Metodu
ok byk problemleri paralaraayrarak daha kolay zeriz.
zlecek kadar klttlen
paralar mantkl bir sraya koyulur. Her para, ayr modller olarak
zlr ve birbirine balanr
(integration)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
20/48
fade yaplar
Sral (Sequence) yaplar ilem hisatr atlamadan dorusal bir sra ileolur
Karar (Decision) yaplar indeevet-hayr sorular soran ve cevabagre farkl ynde farkl ilem yapanyaplar
Eer koul doruysa bunu yapKoul salanmyorsa unu yap
( if then else)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
21/48
fade yaplar
Dng (Looping) yaplar Bir artgerekleinceye kadar tekrar tekraryaplan ilemler. rnek: 100 adet say girilinceye kadar Ortalama deer 80 oluncaya kadar
( for, while .. Vb)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
22/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
23/48
Szde Kod rnek 1
Ak diyagram Program: Girilen ikisaynn tek ve iftolduunu belirleyipyazma
Pseudocodeki Say Al
Eer say ift ise
ift yazDeilse (say tek ise)
Tek yaz
Bala
ki say al
Hayr Evet
FT
YAZ
TEK
YAZ
Say iftmi?
Biti
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
24/48
Genel tler Ak diyagramlar
hazrlanmas zaman alc vegncellenmesi zordur.
Programlama eitiminde mantksal
ak vermekte kullanlr, Profesyonel programclar szde kodlama
ve eitli yazlm mhendisliiyntemlerini tercih ederler.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
25/48
Szde Kod (Pseudo Code)
Gerek kodlar yazlmadan nce taslakszde kodlarla oluturulur.
Ayrntlara girilmeden, her programlama
diline uygun bir yazmdr. rnein mili kilometreye dntren
szde kod:Input MilesKilometers = Miles * 1.609Output Kilometers
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
26/48
Deikenler
Programda verileri tutmak iinkullanlan en basit veri yaplardr.
rn: x, y, sayac, toplam
Deikenlere deer atanr
X = 5 ( x deikenine 5 deerini ata)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
27/48
RNEKLER
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
28/48
1. Klavyeden Girilen ki SaynnToplamn Bulan Prog
rnein klavyeden girilen iki saynntoplamn bulan ve sonucu ekranayazdran programn algoritmas ve
ak diyagram istenseydi. Deikenler
birinci say: x
ikinci say :y iki saynn toplam:toplam
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
29/48
Algoritma
Adm 1 :Bala
Adm 2:Birinci sayy oku ve x deikenineaktar.
Adm 3:ikinci sayy oku ve y deikenineaktar.
Adm 4:x ve y saylarn topla sonucu
toplam deikenine aktar. Adm 5:Toplam deerini ekrana yazdr.
Adm 6:Dur
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
30/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
31/48
2. Baba oul ya problemi
Bir baba ve olunun yalar farknbulan programn algoritmasn veak diyagramn tasarlaynz.
Deikenler babann ya: b
olunun ya: o
yalar fark: fark
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
32/48
Algoritma
Adm 1: Bala
Adm 2: Babann yan gir.(b)
Adm 3: Olunun yan gir.(o) Adm 4: fark=b-0 ilemini yap
Adm 5: fark deikenini ekrana yaz.
Adm 6: Bitir
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
33/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
34/48
3. Girilen 2 saydan byk olanekrana yazdran program
Girilen iki saydan byk olan ekranayazdran program
Deikenler lk say: x
kinci say: y
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
35/48
Algoritma
Adm 1: Bala
Adm 2:Birinci sayy kullancdan al.(x)
Adm 3:kinci sayy kullancdan al.(y)
Adm 4:Eer x>y ise ekrana 1. saybyktr yaz. Adm 7ye git.
Adm 5:Eer y>x ise ekrana 2. say
byktr yaz. Adm 7ye git. Adm 6:Ekrana saylar birbirine eittir yaz.
Adm 7:Bitir
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
36/48
4 Girilen bir saynn tek mi ift
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
37/48
4. Girilen bir saynn tek mi iftmi olduunu tespit eden prog
Bir saynn 2 ye blnd zaman 0kalann verirse say ift 1 kalannverirse say tek olduu bilgisini
hatrlatmamz lazm. 5 says tek mi ift mi?
5 i 2 ye blersek kalan 1 - Tek
18 says tek mi ift mi ? 18 i 2 ye blersek kalan 0 ift
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
38/48
Bilgiler
Bir saynn blmden kalann bulanmatematiksel bir fonksiyonmevcuttur. Birok programlamadilinde de bu fonksiyontanmlanmtr. Mod fonksiyonu:
6 mod 2 (6nn 2 ye blmnden
kalan verir)
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
39/48
Algoritmas
Adm 1:Bala
Adm 2:Herhangi bir say giriniz.(x)
Adm 3:Eer x mod 2 =0 ise ekranaift yaz deilse tek yaz.
Adm 4:Bitir
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
40/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
41/48
5. Suyun Halleri
Girilen scaklk deerine gre birsuyun kat, sv ve gaz olmadurumunu gsteren programn
algoritmasn ve ak emasntasarlaynz.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
42/48
Bilgiler
imdi soruyu zmeden nce kimyakonularn biraz hatrlayalm. Su sfr derecenin altnda kat,
0-100 derece arasnda ise sv, 100 dereceden fazla ise gaz halinde
bulunur.
Dolays ile bu soruda kullanc suscakln girdikten sonra belirlikarlatrmalar yaparak kararvermemiz lazm.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
43/48
Algoritma
Adm 1:BalaAdm 2:Scaklk deerini giriniz.(t)Adm 3: Eer t0 ve t
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
44/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
45/48
6. lk 100 saynn Toplam
1. Bala2. Sayac=1 : Toplam=0 :
Aritmetik_Orta=0
3. Eer Sayac=100 ise Git 64. Toplam=Toplam+Sayac
5. Sayac=Sayac+1 : Git 3
6. Aritmetik_Orta=Toplam/100
7. Aritmetik_Orta deerini yaz
8. Dur.
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
46/48
7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
47/48
Kaynaklar
http://www.dahiweb.com/algoritma-nedir
http://tr.wikipedia.org/wiki/Algoritma
http://www.ozgurlukicin.com/atolye/algori
tma-ve-akis-diyagramlari-1/ http://cyber-
warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwx
http://www.dahiweb.com/algoritma-nedirhttp://tr.wikipedia.org/wiki/Algoritmahttp://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedir7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR
48/48
Sorular?