If you can't read please download the document
Upload
vucong
View
239
Download
4
Embed Size (px)
Citation preview
ALGORTMA VE PROGRAMLAMA I
Yrd. Do. Dr. Deniz KILIN
Celal Bayar niversitesi Hasan Ferdi Turgutlu
Teknoloji FakltesiYZM 1101
1. Blm: Algoritmaya Giri
Problem zme
Algoritma Nedir?
Algoritma Gsterim ekilleri
Dz yaz
Szde kod
Ak emas
Mantksal Yaplar
lemler ve Operatrler
Algoritmada Kullanlan Terimler
Genel Bak2
YZM 1101 Algoritma ve Programlama I
2. Blm: Programlamaya Giri
Program
Programlama
IDE (Integrated Development Environment, Tmleik Gelitirme Ortam)
Derleyici (Compiler)
Yorumlayc (Interpreter)
Balayc (Linker)
altrma (Execution)
Hata Trleri
Debug
Genel Bak3
YZM 1101 Algoritma ve Programlama I
1. BLM
ALGORTMAYA GR
4
YZM 1101 Algoritma ve Programlama I
YAZILIM MHENDSL
RENCLERNN DKKATNE !!!
SZLER BLGSAYARCI DELSNZ
SZLER PROGRAMCI DELSNZ
SZLER YAZILIM MHENDSLERSNZ
5
YZM 1101 Algoritma ve Programlama I
EVRENZDE MESLENZ NE KADAR
SAVUNURSANIZ MEZUN OLDUUNUZDA
TBARINIZ O KADAR YKSEK OLUR.
nsanlar srekli dnr ve problem zerler. Birok
problem, az ya da hi dnlmeden zlebilir.
Problem zme6
YZM 1101 Algoritma ve Programlama I
Problem: Bugn evden karken ne giymeliyim?
zm: Bunun iin muhtemelen pencereden
darya baklr. Hava yamurlu ise mevsime
gre giyinmenin yan sra darya karken bir
de emsiye alnmas gerekir. Hava gneli ve
scak ise daha ince giyinilerek darya klr.
Bylece problemin zm kendiliinden
oluturulan bir kararla salanr.
Bilgisayar, sadece yazlmcnn kendisine syledii eyi nasl yapacan bilir.
Sonu olarak yazlmc bilgisayara problemi nasl zeceini bildirmelidir.
Problemi Kim zecek?7
YZM 1101 Algoritma ve Programlama I
Bilgisayara nasl i
yaptracak, nasl iletiim kuracaksnz?
Bir Program ile. Bilgisayarlar
program olmadan almazlar.
Bilgisayarn dili makine dilidir. Onunla makine
mant ile iletiim kurabiliriz.
Bu da Algoritma
(talimat, rutin, reete) ile
olur.
Problem zme (devam)8
YZM 1101 Algoritma ve Programlama I
1. Problemi anlama (Understanding, Analyzing),
2. Bir zm yolu gelitirme (Designing),
3. Algoritma ve program yazma (Writing),
4. Tekrar tekrar test etme (Reviewing)
Problem zme Sras9
YZM 1101 Algoritma ve Programlama I
Polya, George (1957) How To Solve It,
Princeton University Press, 2nd Edition
Problemi anlamak iin kk paralara ayrmamz ve sorusormamz lazm.
Salk sektrnde eczanecilik nasl iliyor?
la giri-k sreleri nasl geekleiyor?
Satacak rnm bitince Depodan nasl mal alrm?
Mterilere sat nasl yaplyor?
Reetesiz rnlerin satnda fark var m?
Salk Bakanl e-recete entegrasyonu nasl?
Barkod okuma nasl gerekleiyor?
Sorular sorduka sreleri anlayacaksnz. Belki de iinyanl yapldn greceksiniz.
Piyasada buna "At Gzl Takmak" diyoruz.
rnek: Bana bir Eczane program lazm?
10
YZM 1101 Algoritma ve Programlama I
?
Problem zme
Aamas
Problemin tanmlanmas
zmn ana hatlarnn ortaya konulmas
Ana hatlara bal bir algoritma gelitirilmesi
Algoritmann doruluunun sralanmas
Gerekletirim Aamas
Algoritma kodlar belirli bir programlama diline dntrlr.
Program bilgisayarda altrlr.
Program belgelemesi ve bakm yaplr.
Problem zme Farkl Bak11
YZM 1101 Algoritma ve Programlama I
Problem zmede, soruna hemen girimek yerine, dikkatli ve
sistematik yaklam ilke olmaldr. Problem iyice anlalmal
ve mmkn olduu kadar kk paralara ayrlmaldr.
Descartesin "Discourse on Method" isimli kitabnda
problem zme teknikleri u drt madde ile zetlenir:
1. Doruluu kesin olarak kantlanmadka, hibir eyi doru olarak
kabul etmeyin; tahmin ve nyarglardan kann.
2. Karlatnz her gl mmkn olduu kadar ok paraya bln.
3. Dzenli bir biimde dnn; anlalmas en kolay olan eylerle
balayp yava yava daha zor ve karmak olanlara doru ilerleyiniz.
4. Olaya baknz ok genel, hazrladnz ayrntl liste ise hibir eyi
darda brakmayacak kadar kusursuz ve eksiksiz olsun.
Problem zme - Descartes12
YZM 1101 Algoritma ve Programlama I
Algoritma Nedir?13
YZM 1101 Algoritma ve Programlama I
Basit tanm: Belirli bir grevi yerine getiren sonlu saydaki
ilemler dizisidir.
Geni tanm: Verilen herhangi bir sorunun zmne
ulamak iin uygulanmas gerekli admlarn hi bir yoruma
yer vermeksizin ak, dzenli ve sral bir ekilde sz ve
yaz ile ifadesidir. Algoritmay oluturan admlar zellikle
basit ve ak olarak sralandrlmaldr.
19.yy da ranl Musaolu Horzumlu Mehmet (Alharezmi adnAraplar takmtr) problemlerin zm iin genel kurallaroluturdu. Algoritma Alharezmi'nin Latince okunuudur.
Algoritmaya Dair14
YZM 1101 Algoritma ve Programlama I
Algoritmann etkin bir ekilde oluturulmas Program
yazma admndan ok daha nemlidir.
Hazrlanan algoritmann programlama diliyle yazlmas
iin basit ksmdr.
Tasarladnz algoritma iyi deilse, kullandnz dilin
hibir nemi yoktur (C, C++, C#, Java, Visual Basic vb.)
Bir sorunun zm iin birbirinden farkl birden fazla
sayda algoritma hazrlanabilir. Bu da gsteriyor ki
herhangi bir problemin zm iin birbirinden farkl
yzlerce bilgisayar program yazlabilir.
Algoritma Trlerine rnekler
15
YZM 1101 Algoritma ve Programlama I
Arama algoritmalar
Bellek ynetimi algoritmalar
Bilgisayar grafii algoritmalar
Evrimsel algoritmalar
Genetik algoritmalar
Kriptografik algoritmalar
Optimizasyon algoritmalar
Sralama algoritmalar
Veri sktrma algoritmalar
Veri Madencilii algoritmalar
Zekas algoritmalar
Astronomi algoritmalar
Dinamik Programlama
algoritmalar
Salk bilimleri algoritmalar
Fizik algoritmalar
Veritaban algoritmalar
letim sistemi algoritmalar
Algoritmalarn Sahip Olmas Gereken
Genel zellikler16
YZM 1101 Algoritma ve Programlama I
Giri/k bilgisi,
Sonluluk,
Kesinlik,
Etkinlik,
Baarm ve performans.
Algoritmalarn Sahip Olmas Gereken
Genel zellikler (Devam)17
YZM 1101 Algoritma ve Programlama I
Giri/k Bilgisi
Algoritmalarda giri ve k bilgileriolmaldr. Dardan gelen verilere giribilgisi denir. Bu veriler algoritmada ilenir vek bilgisini oluturur. k bilgisi heralgoritmada mutlaka vardr. Algoritmalarntemel amac giri bilgisini ileyerek kbilgisi oluturmaktr. Ancak her durumda biralgoritmann k bilgisi istenenleri tamolarak karlayamaz. Byle durumlarda ilkalgoritmann rettii k bilgisi baka biralgoritmaya giri bilgisi olarak gnderilir vebylece kullanc istedii bilgiye sahip olmuolur.
Algoritmalarn Sahip Olmas Gereken
Genel zellikler (Devam)18
YZM 1101 Algoritma ve Programlama I
Sonluluk
Her trl olaslk iin algoritma sonlu admda bitmelidir.
Algoritma sonsuz dngye girmemelidir.
Algoritmalarn Sahip Olmas Gereken
Genel zellikler (Devam)19
YZM 1101 Algoritma ve Programlama I
Kesinlik
Her komut, kiinin kalem ve kat ile
yrtebilecei kadar basit olmaldr.
Algoritmann her adm anlalr, basit
ve kesin bir biimde ifade edilmi
olmaldr.
Kesinlikle yorum gerektirmemeli ve
belirsiz ifadelere sahip olmamaldr.
Algoritmalarn Sahip Olmas Gereken
Genel zellikler (Devam)20
YZM 1101 Algoritma ve Programlama I
Etkinlik
Yazlan algoritmalar etkin ve dolaysyla gereksiz tekrarlardan uzak
oluturulmaldr. Bu algoritmann temel zelliklerinden birisidir.
Ayrca algoritmalar genel amal yazlp yapsal bir ana algoritma
ve alt algoritmalardan oluturulmaldr. Bylece daha nce yazlm
bir algoritma daha sonra baka ilemler iin de kullanlabilir.
Buna rnek vermek gerekirse eer elimizde, verilen n adet saynn
ortalamasn bulmakta kullandmz algoritma varsa bu algoritma,
bir snfta rencilerin ya ortalamasn bulan bir algoritma iin de
kullanlabilmelidir.
Algoritmalarn Sahip Olmas Gereken
Genel zellikler (Devam)21
YZM 1101 Algoritma ve Programlama I
Baarm ve Performans
Ama donanm gereksinimi (bellek kullanm gibi), alma sresi
gibi performans kriterlerini dikkate alarak yksek baarml
programlar yazmak olmaldr. Gereksiz tekrarlar ortadan
kaldrlmaldr. Bir algoritmann performans deerlendirmesinde
aadaki temel kriterler gz nnde bulundurulur.
Birim lem Zaman
Veri Arama ve Getirme Zaman
Kyaslama Zaman
Aktarma Zaman
rnek: ay Demleme Algoritmas
22
YZM 1101 Algoritma ve Programlama I
Mutfakta deilsen mutfaa git.
ay kontrol et, ay yoksa?
Markete git, ay al.
aydanla bak, dolu deilse su doldur.
Oca yak ve aydanl atein stne koy.
Suyun kaynamasn bekle.
Su kaynadktan sonra ay brak ve stne suyu dk.
Yine demlie biraz daha su ilave ederek bekle.
Su kaynadnda biraz dinlendirerek atei kapat.
ay bardan al ayn doldur.
ayna istediin kadar eker at (ya da atma) ve kartr.
Geldiin odaya geri dn.
Ve ay i.
Yazlm Gelitirme Yaam Dngsnde
Algoritma Nerede?23
YZM 1101 Algoritma ve Programlama I
Analiz
Tasarm
Algoritma ve
Ak emalar
Kodlama
Test (Snama)
Bakm
Derleme
(Compile)
Balama