ALGORİTMA VE PROGRAMLAMA I · PDF fileALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] Celal Bayar Üniversitesi Hasan Ferdi Turgutlu YZM 1101 Teknoloji

  • Upload
    vucong

  • View
    239

  • Download
    4

Embed Size (px)

Citation preview

  • ALGORTMA VE PROGRAMLAMA I

    Yrd. Do. Dr. Deniz KILIN

    [email protected]

    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