14
VERİ YAPILARI VE ALGORİTMALAR DERS NOTU VYA01: Algoritma Mantığı Öğr. Gör. Gökhan GÜVEN

VYA01

Embed Size (px)

DESCRIPTION

zomoa

Citation preview

  • VER YAPILARI VE ALGORTMALAR

    DERS NOTU

    VYA01: Algoritma Mant

    r. Gr. Gkhan GVEN

  • GR _____________________________________________________________________ 1

    VER NEDR? _______________________________________________________________ 1

    Verilerin Snflandrlmas _________________________________________________________ 2

    ALGORTMA NEDR? _________________________________________________________ 2

    AKI EMALARI ___________________________________________________________ 3

    VER VE ALGORTMA LKS __________________________________________________ 5

    PROGRAMLAMA DLLER _____________________________________________________ 6

    Sabitler _______________________________________________________________________ 7

    Deikenler ____________________________________________________________________ 8

    Deiken Tanmlama Kurallar _____________________________________________________ 8

    Mantksal Snamalar _____________________________________________________________ 9

    Dngler _____________________________________________________________________ 10

    ALGORTMA RNEKLER _____________________________________________________ 10

    KURT, KUZU, OT ALGORTMASI ___________________________________________________ 10

    SAYI TAHMN OYUNU ___________________________________________________________ 11

    SAYALI SAYI TAHMN OYUNU ___________________________________________________ 11

    HASTALIK BELRLEME ALGORTMASI _______________________________________________ 11

    FIBONACCI ALGORTMASI _______________________________________________________ 12

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    1

    GR Kullanlan bilgisayar teknikleri asndan bakldnda letme, ktisat ve Maliye disiplinleri dier sosyal bilim dallarndan farkl dnlmelidir. Bu alanlarda kullanlan saysal analizlerin birou zel bilgisayar programlar tarafndan gerekletirilmektedir. ou zaman bu zel bilgisayar programlar analiz yapmak iin yeterli gelmemekte, duruma zel yazlmlara ihtiya duyulmaktadr.

    lkemizde yllardan beridir sosyal alanlarda yaplan almalarda saysal analizlere yeterince yer verilmedii kolaylkla grlebilir. Beeri bilimlerde yaplan greceli olarak az saydaki saysal alma iin ya hazr bir paket program kullanlmakta ya da programlama dillerine hkim yazlmclarn yardmyla bir neticeye ulalmaya allmaktadr. Lisans dzeyinde programlamaya yeterince ya da hi nem verilmemesi, buna bal olarak mezun rencilerin ileride yapacaklar almalarda saysal tekniklerden faydalanmamas, toplumda sosyal bilimlere olan gvenin azalmasna yol amaktadr.

    Bilgisayarlarn metin yazma arac olmann ok tesinde bir deer tadnn rencilere gsterilmesi asndan bu ders nemlidir. Yine bu ders bat toplumlarnda yllardr yaplan ekonometri, yneylem aratrmas vs. gibi alanlarda yaplan analizlerin anlalmasn ve gelitirilmesini de kolaylatracaktr. Sonuta bu dersi alan her rencinin programc olmas beklenmese de, en azndan kendi alannda gz dolduran almalara daha ok katk salayabilecei beklenebilecektir. nk bilgisayar programlarnn alma mantn renmi bir iktisat, iletmeci ya da maliyeci, bilgisayarlar araclyla neler yaplabileceini daha iyi kestirebilecektir.

    Trkiyenin en byk sorunlarndan birisi ekonomi ve iletme alannda aratrmaclarn gvenebilecei ya da alabilecei verilerin bulunamamasdr. Bu verilerin bulunamama sebepleri ok eitlidir, ancak ilk sebep belki de bu verilere olan talebin yetersiz olmasdr. Kantitatif almalarn saysnn azl ya da sadece belli alanlara younlam olmas niin bu verilere olan talebin az olduunu aklayabilir. Sosyal bilimler alannda saysal almalarn saysn artrmann en basit yolu lisans dzeyindeki rencilerin ilgisini bu tarafa ekmek olabilir. Bunu da zellikle bilgisayar destekli analiz derslerine arlk vererek yapmak gereklidir.

    Algoritma bilgisayarlarla ilgili deildir. Nasl mzik insan ruhuna hitap eden evrensel bir dilse, algoritma da meselelerin zm iin kullanlan evrensel bir dildir. Algoritma dn admlarnn ortaya konmasdr. Bir algoritmann gelitirilmesi ya da deitirilmesi iin o algoritmay tasarlayan kiinin kltrne, diline ya da hayat anlayna bakmak gerekmez. nk yaps gerei algoritma insan dncesini ifade etmek iin kullanlan bilgisayar geometrisidir.

    VER NEDR? Enformasyon aklayc ifadeler btn olarak tanmlanr. Veri ise enformasyona kaynak tekil eden her trl say, metin, renk, ekil vs. olarak tanmlanabilir. Enformasyon elde edilebilmesi iin verilerin anlaml ekilde bir araya getirilmesi gerekir. Verilerin anlaml olarak bir araya getirilebilmesi iin ilk nce snflamaya tabi tutulmas ve daha sonra bu snflama iinde bir araya getirildiinde anlaml olacak veriler aranmaldr. Temel olarak bilgisayarlarn veri ilerken yapt ilem budur.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    2

    rnein Ali, yeil, araba gibi ifadeler veri ise, Alinin arabas yeildir ifadesi enformasyondur. Bu verilere daha sonra 2009 yl eklenirse enformasyon Alinin yeil arabas 2009 modeldir eklinde gelitirilebilir. Hangi veri neyi ifade ediyor? sorusu aklnza gelmi olabilir. te bu noktada verinin snflandrlmas meselesinin nceden halledilmi olmas gerekliliiyle kar karyayz. Enformasyonu gelitirirken kullandmz 2009 says acaba bir tarihi mi, bir ly m, yoksa bir hesaplama sonucunu mu ifade etmektedir? 2009 eer km cinsinden verilmi olsayd enformasyonu Alinin yeil arabas 2009 km kullanlmtr. eklinde dnlmeyecek miydi? Daha da aarsak, eer 2009un tarih olduunu biliyorsak bu neyin tarihidir? Satn alma tarihi olabilir, sat tarihi olabilir ya da bu tarih arabay deil Aliyi niteliyor olabilir. Yani enformasyon Ali yeil arabasn 2009 ylnda almtr, Ali yeil arabasn 2009 ylnda satmtr ya da 2009 doumlu Alinin arabas yeildir eklinde enformasyonlara ulama ihtimali doar.

    rnekten de anlalaca gibi verinin ok iyi snflandrlmas doru enformasyona ulalmas iin vazgeilmezdir.

    Verilerin Snflandrlmas Veri, metin, say, tarih, resim, video, ses veya zamandr. Bunlarda kendi iinde ayrca snflandrlr. Algoritmalarda her verinin ne olduunun nceden bildirilmesi yanl enformasyona ulalmasn engelleyecektir. ou st dzey programlama dilinde her verinin ne olduunun deklare edilmesi zorunluluktur.

    Metin Veriler: Alfanmerik olarak da isimlendirilirler. Temel olarak alfabedeki harfleri ieren veri trleridir ancak bununla snrl deildir. Her trl zel karakter de bunun iine dahildir. Bir veri say ieriyor olsa bile eer metin olarak deklare edilmise oradaki sayy say olarak dnemeyiz. nk sadece say grnml bir metindir. Dolaysyla hesap yapamazsnz. rnein Ali verisini ikiyle arpmann bir anlam yoktur, arpamazsnz. Metin olarak deklare edilmi 12 gibi bir ifadeyi de ikiyle arpamazsnz. Bunun Ali ifadesinin ikiyle arplmasndan bir fark yoktur.

    Say Veriler: Byklk ifade eden her trl verilerdir. Kendi ierisinde baka dallara ayrlr. Bir say verisini tam, ondalk, karmak vs. gibi ayrca snflamak gerekebilir.

    Tarih ve Zaman Verileri: Bu tr verilerin farkl gsterimleri olabilir. Gn, ay, yl, saat, dakika, saniye ifade eden verilerdir.

    Multimedya Veriler: Video, resim, ses vs. gibi verileri ifade etmektedir.

    ALGORTMA NEDR? Algoritma kelimesi matematik, astronomi ve corafya alanlarnda alm Trk dnr Ebu Abdullah Muhammed bin Musa el-Harezmi (Ab Abdullh Muhammad ibn Ms al-Khwrizm) Latince (Algoritmi) isminden tretilmitir. IX. yzylda Badatta yaam olan El-Harezmi dijital elektroniin temelini oluturan ikilik sayma sistemini (binary) ve sfr bulmutur.

    Algoritma ksaca zm admlardr. Farknda olmasak da hayatn her annda algoritma kullanrz. Evden okula ulamak iin ulam algoritmasn, almz gidermek iin yemek algoritmasn tercih ederiz. Ama okula ulamak ya da doymak ise algoritmadaki bir hata olduka can skc olabilir. Okula ulama algoritmasn ele alalm. Her algoritmada Bala ve Bitir ifadelerine yer verilir.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    3

    1. Bala 2. Otobs durana git. 3. niversiteye giden otobs bekle. 4. Otobse bin. 5. Biletini okut. 6. niversite duranda in. 7. Okula gir. 8. Bitir

    Basit gibi grnen bu algoritma zerinde bir hata yapalm. rnein 3 numaral adm atlayalm. Eer yeterince ansl isek doru sonuca ulaabiliriz (Yani niversiteye giden otobse binebiliriz). Ama byk ihtimalle ilk gelen otobse bindiimiz iin ehrin niversiteden uzak bir semtine gideceimizden sonuncu adm asla gerekletiremeyeceiz. Hergn yaptmz ama yaparken dnmediimiz birka eylem iin algoritmay yukardaki gibi kurmak algoritma kurma prensiplerini anlamay kolaylatracaktr.

    Algoritma kurulurken dikkat edilecek hususlar unlardr;

    1. Mutlaka bir balangc ve sonu olmaldr. Sonu olmayan bir algoritmann test edilmesinin mmkn olmad aktr.

    2. Bir algoritmadaki ifadeler kesin olmaldr. Belirsizlikler algoritma ile ulalmak istenen sonucun elde edilememesine neden olur.

    3. Algoritma snrl sayda belirli kurallarla kurulmaldr. Ve bu belirli kurallar takip edecekleri bir sraya sahip olmaldrlar.

    AKI EMALARI ak emalar kurulan algoritmalar zerinde almay kolaylatran yaplardr. Ayn zamanda algoritmann baka gelitiriciler tarafndan kolaylkla anlalmasn da salarlar. Kurulan bir algoritmann i ak emasna aktarlmas olduka kolay bir itir. ak emas ne kadar ayrntlysa kurulan algoritma zerindeki hatalarn giderilmesi ve gelitirilmesi de o derece kolaydr.

    ak emalarnda algoritmadaki her ilemi gstermek iin farkl ekiller kullanlr. Genel olarak kullanlan ekillerden birka unlardr;

    Elips: Bala ve Bitir ifadeleri iin kullanlr.

    Paralel Kenar: Algoritmadaki veri girii ve ilemlerden sonra elde ktlar gsterir.( Oku, Yaz)

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    4

    Dikdrtgen Deer atama ve matematiksel ilemleri gstermek iin kullanlr.(x=x-y, fiyat=1500 vs..)

    Ekenar Drtgen Mantksal snama ifadelerini gstermek iin kullanlr. (Eer sonucy ise ekrana Birinci say byktr yaz.

    5. Eer x

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    5

    VER VE ALGORTMA LKS Ortada bir sorun ya da ama yoksa insann dnmesine de gerek yoktur. Bu iddial ifade algoritmalar iin de geerlidir. Bir sorunu zmek ya da herhangi bir amaca ulamak iin algoritma kurarz. Veri algoritmann hammaddesidir ve algoritmann girdisidir. zm ya da beklenen ama ise algoritmann ktsdr. Algoritmada i ak srecine sokulan her veri mutlaka bir ilemin tetikleyicisi olur. Veri algoritmaya ya elle girilir ya da nceden dijital ortama girilmi verilerden faydalanlr. ou zaman birka veri eitli ilemlerden sonra biraraya getirilerek sre boyunca kullanlacak yeni bir veri elde edilir.

    BALA

    Saylar Giriniz (Birinci Say, kinci Say)

    Birinci Say > kinci Say

    ki Say Birbirine Eittir.

    Birinci Say ikinci

    saydan byktr

    Birinci Say ikinci

    saydan kktr

    BTR

    Birinci Say < kinci Say

    EVET

    EVET

    HAYIR

    HAYIR

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    6

    Algoritma iindeki verilerin hangi tre ait olduunun en bata bildirilmesi i ak srecinin ilerdeki safhalarnda karklklarn ortadan kaldrlmasna yardmc olacaktr. Temel matematik kural algoritmalar iin de geerlidir. Sadece ayn tr veriler ile ilem yaplabilir. Baz zel durumlarda farkl trler birbirine evrilebilir. Hangi tr veri tr ile ilgili ilem yaplmsa sonu ayn trdr. Yani iki metin zerinde ilem yaplmsa sonu yine metindir. ki zaman zerinde ilem yaplmsa sonu zamandr. ki say zerinde ilem yaplmsa sonu saydr vs..

    PROGRAMLAMA DLLER Bilgisayarlarn temel bileeni olan CPUnun yapta transistrdr. Transistrn elektronik devre iindeki grevi ise devreyi ap kapamaktr. Dolaysyla devre akken 0, devre kapalyken 1 deerini alrlar. Basite bir CPU iinde bulunan milyonlarca hatta milyarlarca transistorn hangisinin ak hangisinin kapal olmas gerektiini belirlemeye programlama diyoruz. Bu aklamadan da anlalaca gibi bilgisayar 0 ve 1 lerden ibarettir ifadesinin dayand prensip budur.

    Eer bilgisayar programlamadan bahsediyorsak programlama dillerine deiniyoruz demektir. Temel snflamada iki eit programla dili vardr; alt dzey (low-level), st dzey (high-level) programlama dilleri.

    Bilgisayarlarn dorudan anlayabildii tek dil makine dilidir. st dzey programlama dillerinde yazlan programlar zel derleyicilerle makine diline evrilerek altrlrlar. Makine dili, sadece 0 ve 1lerden oluur ve bul dilde program yazmak olduka zaman alc ve karmak bir itir.

    Assembly dili makine dilinden daha kolay olmasna karn yine de yazmas zor ve skcdr. ngilizceden tretilmi ksaltmalarn kullanld bu dil dk dzey programlama dilidir. Assemblers ad verilen evirici yazlmlar yardmyla assembly dilinde yazlan programlar makine diline evrilir. st dzey programlama yapan uzman yazlmclar assemblye hkim olunmas gerektiini bilir.

    st dzey programlama dilleri belirli bir gramer ve sz dizim kurallar kullanlarak program yazmaya yarayan ara yzlerdir. st dzey programlama dillerinde yazlan programlarn tek bana alabilmesi iin derleyiciler (compiler) yardmyla makine diline evrilmesi gerekir. st dzey programlama dillerinin alt dzey programlama dillerine gre ne kan avantajlar anlamann, yazmann ve yeniden dzenlemenin ok daha kolay olmasdr. Dzinelerce st dzey programlama dili saylabilir. Bunlardan en nlleri ise unlardr; BASIC, COBOL, C, C++, FORTRAN, LISP, Pascal, Prolog, Java. letim sistemlerinin GUI (Graphical User Interface) desteini vermesi, programlama dillerinin de grsel olarak zenginlemesini salamtr. Artk yazlm gelitiriciler grsel elementleri kullanarak program gelitirir olmulardr. Gnmzde birok programlama dilini ayn anda destekleyen editrler yardmyla program yazmamz salayan editr programlar kullanlmaktadr.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    7

    Hangi dzey programlama dili olursa olsun tamam algoritma mantn aynen kullanr. Deien sadece yazm kurallardr. Algoritmalar gz nne alndnda bir programlama dilinin bir dierine stnl sz konusu deildir. Ancak st dzey programlama dilleri arasnda stnlk ayrm yapanlar, yazm kurallarnn basitliine, parametre saysna ve derleyici hzna bakarak yorum yapmaktadrlar.

    Algoritma kurmay daha basit hale getirmek iin kendi banza bir dil oluturabilirsiniz. Nihayetinde algoritma programlama dillerinden bamszdr. Algoritma kurma mantn anladnzda geriye sadece kurduunuz algoritmay yazm kurallarna gre ilgili programlama diline geirmek kalacaktr.

    imdi saynn ortalamasn bulduran bir algoritmay, kendi uydurduumuz bir programlama diliyle yazalm;

    1. Bala 2. Gir; Birinci Say 3. Gir; kinci Say 4. Gir; nc Say 5. Hesapla ve Ortalama Diye Adlandr {(Birinci Say+kinci Say+nc Say)/3} 6. Ekrana Ortalama deerini yaz 7. Bitir

    Programlamay yeni renenler herhangi bir programlama dili ile balamas gerektiini dnr. Ama programlamaya balamann en doru yolu algoritma renmektir. yi algoritma, zm en kestirme yoldan bulan algoritmadr. Kurulan algoritmann almas her zaman yeterli olmayabilir. Unutulmamaldr ki kurulan algoritma kstl kaynaklar bulunan bir cihaz zerinde altrlacaktr.

    Sabitler Algoritma iindeki her tr alfabetik, saysal ya da zamansal deerlere sabit denir. Alfabetik sabitlere alfasaysal sabit de denir. Alfasaysal sabitler trnak iinde gsterilirler. Alfasaysal sabitlerle aritmetik ilem yaplamaz. Bir say algoritma iinde trnaklar iinde gsterilmise artk say nitelii tamaz. Sadece sayya benzeyen alfasaysal bir deerdir ve aritmetik ilem iinde kullanlamaz. Her sabit algoritmaya dahil edeceiniz bir veridir. Buradan her sabitin algoritma iin bir girdi olduu sonucuna ulamanz yanl olmayacaktr.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    8

    Deikenler En basit tanmyla deiken, bir deerin saklanmas iin hafzada ayrlan yerdir. Daha ak ifadeyle bir deeri gsterin semboldr. Deiken kullanm matematikle ayndr. Bir deikenin deeri hangi tr veriyi ieriyorsa deikende o tr bir deikendir. Yani metin ieren bir deiken iin metin deiken, say ieren bir deiken iin say deiken, tarih ya da zaman ieren bir deiken iinse tarih ya da zaman deiken isimleri kullanlr.

    Deiken Tanmlama Kurallar Aslnda kendi oluturduumuz dilde byle kurallara ihtiya yoktur. Ancak kurulacak algoritmann bir ekilde programa dntrlmesi gerekir. Alkanlk haline gelmesi bakmndan kendi uyduracamz dil iin yaayan programlama dillerinde kullanlan deiken tanmlama kurallarn kullanmak faydal olacaktr. Deiken tanmlama kurallar unlardr;

    1. Deikenler isimlendirilirken rakam ile balanmaz. Deiken isminin ilk karakteri mutlaka bir harf olmaldr. Daha sonra rakamlar kullanlabilir.

    2. Deikenler ngiliz alfabesinin karakterleri kullanlarak adlandrlrlar. Trke alfabede yer alan , , , , , , , , , , , harfleri deiken ismi iinde yer alamazlar.

    3. Deiken isimlerinde boluk ve :,*, /, +, }, ], ! vs. gibi zel karakterler bulunmaz.

    saynn ortalamasn almak iin kullandmz algoritmada bu tr kurallara dikkat edilmemiti. imdi akladmz bu kurallara gre algoritmamz yeniden yazalm.

    1. Bala 2. Gir; BirinciSayi 3. Gir; IkinciSayi 4. Giri; UcuncuSayi 5. Hesapla ve Ortalama Diye Adlandr {(BirinciSayi+kinciSayi+UcuncuSayi)/3} 6. Ekrana Ortalama deerini yaz 7. Bitir

    Algoritmay gerekletirmek iin kullanacamz programlama diline gre kurallarda ufak tefek deiiklikler olabilir. Ancak st dzey programlama dillerinin genelinde yukarda bahsettiimiz deiken tanmlama kurallarna uymanz gereklidir. Algoritmada kurma mant gerei belirsizlikten zellikle kanlr. Bundan dolay algoritma iinde kullanlacak deikenler daha admlarn en banda trleriyle birlikte belirtilir (deklare edilir). saynn ortalamasn alan algoritmamz bu kurala uygun hale getirelim.

    1. Bala 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama say ierecek deikenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Hesapla ve Ortalama Diye Adlandr {(BirinciSayi+kinciSayi+UcuncuSayi)/3} 7. Ekrana Ortalama deerini yaz 8. Bitir

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    9

    Bir deiken iine mutlaka bir sabit yerletirilir. Bu ie atama ilemi denir ve genellikle = iareti kullanlarak gerekletirilen bir ilemdir. rnein renk deikenine, yeil ifadesini atamak istiyorsak; renk=yeil yazmamz genellikle yeterlidir.

    Algoritmamz bu yeni kuralara gre yeniden dzenleyelim;

    1. Bala 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama say ierecek deikenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Ekrana Ortalama deerini yaz 8. Bitir

    Mantksal Snamalar Algoritmann temelini mantksal snamalar oluturur. Mantksal snamalar deikenler arasnda byklk, kklk, eitlik snamas yapmak iin kullanlr. Snamann sonucu ya dorudur ya da yanltr. ak emasnda snama sonucu doruysa Evet okunun gsterdii yne, yanlsa Hayr okunun gsterdii yne doru ilerlenir. Algoritmamza bir mantksal snamalar yerletirelim.

    1. Bala 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama say ierecek deikenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Eer Ortalama deeri 1den bykse ekrana saylarn toplam 3den byk deilse Saylarn

    toplam 3den kk yaz. 8. Eer Ortalama deeri 1e eitse Saylarn toplam 3tr 9. Ekrana Ortalama deerini yaz 10. Bitir

    Algoritmamz basitletirmek iin matematikte kullanlan eitli operatrlerden faydalanmak doru olacaktr.

    > iareti sadakinin soldakinden byk olup olmadn snamak iin kullanlr.

    < iareti sadakinin soldakinden kk olup olmadn snamak iin kullanlr.

    = iareti eitlik durumu olup olmadn kontrol etmek iin kullanlr. Eittir iaretinin ayn zamanda bir deikene deer atamak gibi bir grevi vardr. Mantksal snama iinde ise eitlik testi yapmak iindir.

    >= Byk eittir.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    10

    Algoritmamz yeniden dzenleyelim.

    1. Bala 2. BirinciSayi, IkinciSayi, UcuncuSayi, Ortalama say ierecek deikenlerdir. 3. Gir; BirinciSayi 4. Gir; IkinciSayi 5. Giri; UcuncuSayi 6. Ortalama= {(BirinciSayi+IkinciSayi+UcuncuSayi)/3} 7. Eer Ortalama > 1 ise ekrana saylarn toplam 3den byk deilse Saylarn toplam 3den

    kk yaz. 8. Eer Ortalama = 1 ise Saylarn toplam 3tr 9. Ekrana Ortalama deerini yaz 10. Bitir

    Yukardaki algoritmann 6. Satrnda eittir iareti ortalama deikenine deer atamak iin kullanlmtr. 8. Satrda ise mantksal snamann iinde kullanlan = iaretinin eitlik testi yapmak iin kullanldna dikkat ediniz. kisi de ayn iaret gibi grnse de amalar tamamen farkldr.

    Dngler Algoritma iindeki bir admn ya da admlar grubunun istenilen sayda tekrar tekrar yaplmasn salayan yaplardr. Kullanmlarna dikkat edilmelidir. Eer bir ekilde dngden klamyorsa bu byk bir hatadr ve kurulan algoritma asla sonu vermez. Bu duruma da ksr dng denir. lemlerin kesin olarak belirli bir sayda yaplmas isteniyorsa dng iinde saya deiken adn verdiimiz deikenler kullanlr. Bu deikenler dng ierisinde mutlaka deiiklie maruz kalrlar. Eer saya deikenlerde bir deiiklik olmazsa dng ksr dng haline gelir.

    ALGORTMA RNEKLER

    KURT, KUZU, OT ALGORTMASI Sizden kurt, kuzu ve otu, sadece bir tanesini yannza alabileceiniz bir sandalla nehrin br yakasna geirmeniz isteniyor. Siz olmadan kurtla kuzu yan yana kalamyor kuzu ile de ot yan yana kalamyor. Dolaysyla kuzu ile otu, kurt ile kuzuyu tek balarna nehrin herhangi bir yakasnda brakamazsnz. lgili algoritmay yazalm.

    1. Bala 2. Kuzuyu al karya geir. 3. Nehrin dier yakasna dn. 4. Kurtu al karya geir. 5. Kuzuyu yanna al nehrin dier yakasna dn. 6. Kuzuyu brak otu al nehrin kar yakasna geir. 7. Nehrin dier yakasna dn. 8. Kuzuyu al karya geir. 9. Bitir.

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    11

    SAYI TAHMN OYUNU 1. Bala 2. tahmin, z deikenleri tam say ieren deikenlerdir. 3. z deikeni iin 1 ile 100 arasnda rastgele bir say olutur (Bilgisayar tarafndan yaplyor) 4. Gir; tahmin 5. Eer z > tahmin ise ekrana Tuttuum say daha byk yaz ve drdnc adma git. 6. Eer z < tahmin ise ekrana Tuttuum say daha kk yaz ve drdnc adma git. 7. Ekrana Tebrikler tuttuum say buydu yaz. 8. Bitir

    SAYALI SAYI TAHMN OYUNU 1. Bala 2. tahmin, z, sayac tamsay ieren deikenlerdir. 3. Kafadan z deikeni iin 1 ile 100 arasnda bir say tut 4. Sayac deikenin deerini 0 olarak belirle. 5. Gir; tahmin 6. Sayac deikenin deerini 1 artr. 7. Eer z > tahmin ise ekrana Tuttuum say daha byk yaz ve beinci adma git. 8. Eer z < tahmin ise ekrana Tuttuum say daha kk yaz ve beinci adma git. 9. Ekrana Tebrikler tuttuum say buydu yaz. Sayac deikenin deerini ekrana yaz ve peine

    denemede bildiniz yazsn ekle. 10. Bitir

    HASTALIK BELRLEME ALGORTMASI Aada baz hastalklarn belirtileri verilmitir. Bu belirtilerden faydalanarak hangi hastala kiinin yakalandn bulan algoritmay kurunuz.

    Verem; ksrk, Yksek Ate, Halsizlik, Yorgunluk, kusma.

    Nezle; ksrk, Halsizlik

    Tansiyon; Ba dnmesi, Yldzlar gryor musunuz?

    Zehirlenme; Kusma, Halsizlik.

    1. Bala 2. oksuruk, yuksekates, halsizlik, yorgunluk, kusma, basdonmesi, yildiz, hastalik metin

    deikenlerdir. 3. Ekrana ksrk var m? (E/H) yaz, Gir; oksuruk 4. Ekrana Yksek ate var m? (E/H) yaz, Gir; yuksekates 5. Ekrana Halsizlik var m? (E/H) yaz, Gir; halsizlik 6. Ekrana Yorgunluk var m? (E/H) yaz, Gir; yorgunluk

  • Veri Yaplar ve Algoritmalar r. Gr. Gkhan GVEN

    12

    7. Ekrana Kusma var m? (E/H) yaz, Gir; kusma 8. Ekrana Ba dnmesi var m? (E/H) yaz, Gir; basdonmesi 9. Ekrana Yldzlar gryor musunuz? (E/H) yaz, Gir; yildiz 10. Eer oksuruk =E ve halsizlik=E ve yuksekatesE ve yorgunlukE ve kusmaE ise

    hastalik=Nezle 11. Eer kusma=E ve halsizlik=E yuksekatesE ve yorgunlukE ve oksurukE ise

    hastalik=Zehirlenme 12. Eer oksuruk = E ve yuksekates =E ve halsizlik=E ve yorgunluk=E ve kusma=E ise

    hastalik=Verem 13. Eer basdonmesi=E ve yildizlar=E ve kusmaE ve halsizlikE yuksekatesE ve

    yorgunlukE ve oksurukE ise hastalik=Tansiyon 14. Eer basdonmesiE ve yildizlarE ve kusmaE ve halsizlikE yuksekatesE ve

    yorgunlukE ve oksurukE ise hastalik=Tehis konulamad 15. Ekrana hastalik deerini yaz. 16. Bitir.

    FIBONACCI ALGORTMASI Fibonacci dizisi saylar: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, eklinde devam eder. Her say kendisinden nce gelen iki saynn toplamdr. Klavyeden girilen nci fibonacci saysn bulmak iin bir algoritma kuralm.

    1. Bala 2. a, ad, sayac, n, x tam sayl deikenlerdir. 3. a=1, ad=0, sayac=0 4. Gir; n 5. x=a+ad 6. ad=x 7. a=x-a 8. sayac=sayac+1 9. Eer sayacn ise 5. Satra git 10. Ekrana x deerini yaz. 11. Bitir

    GRVER NEDR?Verilerin Snflandrlmas

    ALGORTMA NEDR? AKI EMALARIVER VE ALGORTMA LKSPROGRAMLAMA DLLERSabitlerDeikenlerDeiken Tanmlama KurallarMantksal SnamalarDngler

    ALGORTMA RNEKLERKURT, KUZU, OT ALGORTMASISAYI TAHMN OYUNUSAYALI SAYI TAHMN OYUNUHASTALIK BELRLEME ALGORTMASIFIBONACCI ALGORTMASI