You are on page 1of 38

Programlamaya Giri ve Algoritmalar Ders Notlar

Revizyon ve Bask Bilgisi 69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

indekiler
indekiler...................................................................................................................................2 Genel Programlama Bilgisi.........................................................................................................3 Tanmlar......................................................................................................................................5 Bilgisayar Nedir?................................................................................................................5 Bilgisayar Organizasyonu?.................................................................................................5 Bilgisayarn Tarihesi..........................................................................................................6 Bilgisayar Trleri................................................................................................................7 Problem Nedir?...................................................................................................................7 Problem zm.................................................................................................................7 Program Nedir?...................................................................................................................8 Programlama Nedir?...........................................................................................................8 Algoritma Nedir?................................................................................................................8 Ak izgesi Nedir?............................................................................................................8 Programlama Dili Nedir?....................................................................................................8 Derleyici Nedir?..................................................................................................................9 Yorumlayc Nedir?.............................................................................................................9 Yazlm Gelitirme....................................................................................................................10 Hata Yakalama ve Ayklama.....................................................................................................13 Algoritmalar..............................................................................................................................15 Ak izgeleri...........................................................................................................................18 Aritmetik ve Mantksal ifadeler................................................................................................21 Aritmetik fadeler..................................................................................................................21 Aritmetik Operatr............................................................................................................21 Aritmetik Operand............................................................................................................22 Deer Aktarma deyimi......................................................................................................22 Mantksal ifadeler.................................................................................................................22 Karlatrma Operatr....................................................................................................22 Mantksal Operatr...........................................................................................................22 Deiken ve Dizi Tanmlama....................................................................................................24 Sabit Nedir?...........................................................................................................................24 Tam Say Sabitleri.............................................................................................................24 Kesirli Say Sabitleri.........................................................................................................24 Dizgi Sabitleri...................................................................................................................24 Deiken Nedir?....................................................................................................................24 Dizi Nedir? ...........................................................................................................................24 Algoritma altrma.................................................................................................................26 Say Sistemleri..........................................................................................................................27 Tabandan Tabana evrim......................................................................................................27 kili Say isteminden onlu say sistemine evrim..............................................................27 Onlu Say isteminden ikili say sistemine evrim.............................................................27 Dier Say Sistemleri........................................................................................................28 Veri leme................................................................................................................................29 Algoritma rnekleri ve Sorular................................................................................................30

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Genel Programlama Bilgisi


Bir Programcnn Program yazabilmesi iin yapmas gereken almalar ve bilmesi gereken n bilgilere ihtiyac vardr. nk bir problemin bilgisayar ortamnda zlmesi maalesef hazrlksz olarak ve hzl bir ekilde gerekleemez. Her eyden nce programlama bir sretir ve programn yazlp bitmesi ile bitmez ounlukla programn yaad sre ierisinde deiik ekillerde devam eder. Bu nedenle Program yazlmadan veya problem zlmeye balamadan nce baz admlar salam atmak gerekir. Bir ok zaman bu admlar raporlarla belgelendirilir. nk yazlmn yaam dngs boyunca bu raporlara veya balang admlarna ihtiya duyulabilir. Bunu salayabilmek ve salam temelli programlar yazabilmek iin mutlaka n almalar kat zerinde gerekletirilir ve elde edilen donelere gre program yazlr. Ancak programlamaya yeni iseniz hemen program yazmanz olduka zor olacaktr. ncelikle programlama mantn ve problem zme n sezisini edinmeniz gerekecek. te bu ders notlar siz rencilerin bu sezgiyi kazanmanz ve bu mant oluturmanz salayacak bilgiler sunmaktadr. Ne var ki bu ders notu sadece temel bilgileri verir. Bahsettiimiz mantk ve sezgiler program yazdka geliir. Bir ok kii tarafndan programlama yeteneinin tanr vergisi olduu sylense bile (ki gerekte dorudur) bu yetenei edinmek resim yapma yeteneini edinmekten ya da gzel sanatlara kar bir yetenei edinmekten ok daha kolaydr. Bu ders notlar her trl programlama dilinden bamsz olarak hazrlanmaya allmtr. Gerekli grld yerlerde dillere ait detay veya farkllk bilgileri verilmitir. Ancak esas olan Programlama dilinin zerinde temel programlama mantna sahip olmanzdr. nk bu sizin Programlamac sfatnz iin temel tekil edecek bilgiler sunmaktadr. Programlama dilleri zaman ierisinde gelimi, deimi, kaybolmu veya yenileri kmtr. Bu nedenle programlama bilginizi asla bir programlama diline bal tutmayn. Eer Programlama mantnz ve n sezileriniz olduka iyi gelimise, Algoritmalar kolay kurup alglayabiliyorsanz, ok karmak sorunlar zerinde fikir yrtp zm retebiliyorsanz bildiiniz programlama dilinin fazlaca bir nemi kalmamaktadr. nk ounlukla 12 hafta gibi bir srede bir programlama dilini orta dzeyde renebilirsiniz. En dorusu da tabii ki her derde zm olabilecek temel bir programlama dilini ok iyi bir ekilde renip her zme uyarlayabilmeniz. Ancak nemli olan Programlama mantn iyi kapm olmanz.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Dikkat ettiyseniz Programlama dilinde alternatiflerden bahsettik ancak Programlamann alternatifi bulunmamaktadr. Yani bir program yazlacaksa mutlaka programlamann kurallarna gre yazlmaldr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Tanmlar
Bu ders notlarnn daha iyi anlalabilmesi iin u tanm ve kavramlarn bilinmesinde fayda bulunmaktadr.

Bilgisayar Nedir?
Verileri leyerek zet bilgiler ekline sokabilen, bu veri ve bilgileri yksek kapasitelerde saklayp baka ortamlara iletebilen elektronik cihazlardr. Bu ilemleri yaparken ok yksek hzlarda ve bkmadan-usanmadan tekrarl olarak ayn ileri yapan bir cihazdr. Ancak tek bana bir Bilgisayar donanm bu ileri gerekletirecek durumda deildir. Bu ilemler donanm tarafndan yaplsa da asl i yazlmlar tarafndan gerekletirilmektedir.

Ancak Yukardaki izimde grlen her bir admn gerekletiren yazlmdr.

Bilgisayar Organizasyonu?
Bir Elektronik Bilgisayar yukar ekildeki gibi temel birimlere sahiptir. Bu ekilde bir nceki konuda bahsettiimiz giri, k ilemleri, veri ileme ve veri saklama ilemleri gerekletirilir. Klavye, Fare, mikrofon, kamera vb. cihazlardan biri veya daha fazlasndan oluur. Veri ve komutlarn bilgisayara yollanmasn salar. Veri, komut ve programlarn sakland donanmlar temsil eder. Bellek Birimi Ana Bellek ounlukla RAM olarak anlr ve SIMM gibi donanmlarla belirlenir. Yan veya kincil bellek ise Floppy ve sabit diskleri ifade eder ve bilgilerin daha kalc saklanmasn salayan alanlar temsil eder.
69/17.10.2007 01:51:28 PM 5

Giri Birimi

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik-Mantk Birimi C P U

Bilgisayardaki tm Aritmetik ve Mantksal ilemlerin yapld birimdir. Tm ilemleri yapan ana birimdir. Bilgisayar programnn almasn denetleyen, programda yaplan hesaplamalara gre hangi ilerin yaplacana karar veren birimdir. Makine diline evrilmi bir programda komutlar teker teker ve srayla Ana ilem birimine getirip yorumlar ve sonuta komutu altrr. Bilgisayar ortamnda oluan verilerin d ortama verilmesini salayan birimlerdir. Ekran, yazc gibi birimlerdir.

Denetim Birimi

k Birimi

Bir Programc genel olarak bu birimlerin hangilerinin ne ie yaradn ve neleri temsil ettiini bilmelidir. zellikle Aritmetik-Mantk ilem birimi ve Denetim birimi Bir bilgisayarn beynini oluturduu iin nasl davrandn iyi bilmek zorundadr.

Bilgisayarn Tarihesi
Bu konuda ok deiik ve eitli kaynaklar bulmak mmkn olabilir ancak yle basit bir kronolojik sra gemek mmkndr M.. 500 1642 1827 1941 1944 1945-54 1955-64 1965-71 1971-90 Abaks Pascaln Mekanik Toplama Makinesi Babbage'in karma makinesi kili>kili Mekanik Hesaplayc (Zuse) Ondalk Elektromekanik Hesaplayc (Aiken) lk Kuak Vakum Tpler ve nlar kinci Kuak Tranzistrler ve Manyetik Bellekler nc Kuak Tmleik Devreler Drdnc Kuak VLSI Devreler

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

1982 1984 1990lar

IBM Pc & MS-DOS MAC Paralel lemciler, Yapay Zeka, nternet ve WWW

Bilgisayar Trleri
Bilgisayarlar kullanm amalarna gre byklk ve kapasite bakmnda u ekilde snflandrlabilirler. Sper Bilgisayarlar Mainframe tipi Bilgisayarlar Workstation tipi Bilgisayarlar ( stasyonlar) Mikro Bilgisayarlar Kiisel Bilgisayarlar

Problem Nedir?
Bir ilemin, otomasyonun yada bilimsel hesaplamann bilgisayarla zlmesi fikrinin ortaya kmasna problem denir. Bu tip fikirlerde insanlarn bu sorunlar beyinle zmeleri ya imkanszdr ya da ok zor ve zaman alcdr. Bu tip bir sorunu bilgisayarla zebilme fikrinin ortaya kmas bir bilgisayar probleminin ortaya kmasna neden olmutur. Bazen de bir iletme veya ynetimin otomasyonunu salamak amac ile bu tip problemler tanmlanr.

Problem zm
Problemi zebilmek iin ncelikle sorunun ok net olarak programc tarafndan anlalm olmas gerekir. Tm ihtiyalar ve istekler belirlenmelidir. Gerekiyorsa bu ilem iin birebir grmeler planlanmal ve bu grmeler gerekletirilmelidir. Problemin zmne ilikin zihinsel altrmalar yaplr. Bu altrmalarn Bilgisayar zmne yakn olmas hedeflenmelidir. Bir sorunun tabii ki birden fazla zm olabilir. Bu durumda bilgisayar ile en uygun zm seilmelidir. nk bazen pratik zmler bilgisayarlar iin uygun olmayabilir. Oluturulan zm Algoritma dediimiz admlarla ifade edilmelidir. Bu algoritmann daha anlalabilir olmas iin Ak izgesi oluturulmaldr. Uygun bir programlama dili seilmeli ve oluturulan algoritma ve ak izgesi bu programlama dili aracl ile bilgisayar ortamna aktarlmaldr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Oluturulan program bir takm verilerle ve mmknse gerek ortamnda test edilir. Oluabilecek sorunlar ilgili ksmlar tekrar gzden geirilerek dzeltilir. Bu admlar defalarca gerekletirilmek zorunda kalnabilir.

Program Nedir?
Problem zm ksmnda anlatlan admlar uygulandktan sonra ortaya kan ve sorunumuzu bilgisayar ortamnda zen rne Program denir. Baz durumlarda bu rne yazlm denebilir.

Programlama Nedir?
Problem zmnde anlatlan admlarn tmne birden programlama denilebilir. Ancak gerekte ilk paragrafta anlatlan ksm ounlukla sistem analizi veya sistem zmleme olarak anlatlr. Dier admlar Programlama diye tanmlanabilir. Ancak Son paragrafta anlatlan adma ksaca test aamas da denir. ounlukla ok iyi tanmlanm bir sorunun zmne dair admlar ile zmn oluturulup bunun bir programlama dili ile bilgisayar ortamna aktarlmas Programlama diye adlandrlabilir.

Algoritma Nedir?
Bir sorunu zebilmek iin gerekli olan sral mantksal admlarn tmne denir. Doal dille yazlabilecei iin fazlaca formal deildir. Bir algoritma iin aadaki ifadelerin mutlaka dorulanmas gereklidir. Her adm son derece belirleyici olmaldr. Hi bir ey ansa bal olmamaldr. Belirli bir sayda adm sonunda algoritma sonlanmaldr. Algoritmalar karlalabilecek tm ihtimalleri ele alabilecek kadar genel olmaldr.

Ak izgesi Nedir?
Bir algoritmann daha grsel gsterimidir. izgiler, Drtgen, daire vb. geometrik ekillerle algoritmann gsterilmesini salar. Doal dille yazlmad iin daha formal olduu dnlebilir.

Programlama Dili Nedir?


Bir Problemin Algoritmik zmnn Bilgisayara anlatlmasn salayan, son derece sk-skya kurallar bulunan kurallar dizisidir.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Derleyici Nedir?
Bir programlama dili ile bilgisayara aktarlan programn bilgisayarn anlayabilecei Makine Diline evirmeyi salayan ve yazlan programda sz dizim hatalarnn olup olmadn bulan olup olmadn bulan yazlmlardr. Her Programlama dili iin bir derleyici olmas gerekmektedir.

Yorumlayc Nedir?
Derleyici gibi alan ancak yazlm programlar o anda Makine diline eviren yazlmlardr. Bu tr bir yazlmda Programn Makine dili ile oluturulmu ksm bilgisayarda tutulmaz. Programn her altrlmasnda her adm iin Makine dili karlklar oluturulur ve altrlr.

69/17.10.2007 01:51:28 PM

Programlamaya Giri ve Algoritmalar Ders Notlar

Yazlm Gelitirme
Yazlm Gelitirilirken Bir Programc ve Yazlm Gurubunun takip edecei admlar u ekildedir.

Bu izgeden anlalaca gibi admlardan birinde bir sorunla karlalrsa bu sorunu zebilmek iin bir nceki adma geri dnmek gerekecektir. Bu geri dn bazen bir ka adm olabilir.
69/17.10.2007 01:51:28 PM 10

Programlamaya Giri ve Algoritmalar Ders Notlar

Sistem Analizi : Sorunun zlebilmesi iin tamamen anlalmasn salayan almalardr. Tasarm : steklerle ilgili olarak belirlenen bir takm zmlerin tanmlanmasdr. Programlama Stili : Her yiidin yourt yiyii farkldr. Ayn ekilde her programc programndaki mant farkl kurar bu her programcnn kendine zgn bir stili var anlamna gelir. Ancak bunun yannda Her programcnn programn sal bakmndan dikkat etmesi gereken eyler vardr. rnein kodlar ak olmaldr. Kullanlan deikenler kullanldklar amac anlatr tarzda isimlendirilmelidir. Program ii dokmantasyona mutlaka nem verilmelidir. Algoritma : zmn admlarla ifade edilmesidir. Ak izgesi : Algoritmann ekillerle ifade edilmesidir. Programlama Dili Seimi : zmn netlemesinden sonra yaplacak ilemleri kolay bir ekilde bilgisayar ortamna aktaracak dilin seilmesidir. nemli olan bu dilin zelliklerinin programc tarafndan iyi bilinmesidir. Programn Yazlmas : Seilen Programlama dilinin kurallar kullanlarak program yazlmaya balanr. bu amala ounlukla sade bir metin editr kullanlr. Baz durumlarda Syntax highlighting denilen bir zellie sahip olan daha akll editrler de kullanlabilir. Bazen de editr ile Programlama dilinin derleyicisinin, balaycsnn hatta hata ayklaycsnn i ie bulunduu IDE (Integrated Development Environment) denilen trde derleyiciler kullanlr. Derleme : Programlama Dili ile yazlm programn yazm hatalarnn olup olmadnn kontrol edilmesini ve ara kod olarak Obje kodun retilmesini salama admdr. Balama : Derlenmi ara kod dier ktphane ve para programlarla birletirilerek Makine dilinde programn oluturulmas admdr. Ancak baz IDE ortamlarda ve derleyicilerde Derleme ve Balama bir btndr ve beraberce halledilirler. Programcnn ayrca bir balama ilemi yapmas gerekmez ilemi yapmas gerekmez. altrma : Oluturulan Makine dili Programnn altrlmas admdr. Yukardaki admlarn hepsi yolunda gittiyse program sorunsuz olarak alabilmelidir. Test : Programn Mantksal olarak test edilmesini salar ve ierik olarak her ihtimal iin doru sonular retip retmediini kontrol etmenizi salar.

69/17.10.2007 01:51:28 PM

11

Programlamaya Giri ve Algoritmalar Ders Notlar

Yaam Dngsnn Salanmas : Yukardaki Ak izgesi dikkat edilirse aslnda bir dngdr. Hatta test aamasnda sorun kmazsa bile Sorunun tanmnda yani ihtiyalarda baz deiiklikler olursa admlar batan aa tekrar incelenmek zorunda kalnr. Bu izgeye bir Yazlmmn Yaam Dngs de denilebilir. Bu izimde Yazlmn Bakm sreci gz nne alnmamtr.

69/17.10.2007 01:51:28 PM

12

Programlamaya Giri ve Algoritmalar Ders Notlar

Hata Yakalama ve Ayklama

Bir Programn bilgisayar banda geen gelitirme sreci yukardaki gibidir. Bu izimde krmz-turuncu renkle gsterilen ksmlar hata durumlarn gstermektedir. Syntax Error : Yazlan programda programlama dili kurallarna aykr bir takm ifadelerden dolay karlalabilecek hatalardr. Dzeltilmesi son derece basit hatalardr. Hatann bulunduu satr derleyici tarafndan rapor edilir. Hatta baz derleyiciler hatann ne olduunu ve nasl dzeltilmesi gerektiini dahi bildirebilirler. Bazen Syntax Error tipi hatalar Balama zamannda da ortaya kabilir. Eer bir derlemede Syntax Error alnd ise obje kod retilememitir demektir. Soru: Bir Derleyici hatann nasl dzeltileceini bildirebildiine gre kendisi niin dzeltmemektedir? Run-time Error : Programn altrlmas srasnda karlalan hatalardr. Programcnn ele almad bir takm aykr durumlar ortaya ktnda programn iletim sistemi tarafndan kesilmesi ile ortaya kar. Bu tip hatalarda hata mesaj ounlukla alan iletim sisteminin dili ile verilir. Eer bu tip hatalar kullanc ele almsa, program programcnn verecei mesajlarla ve uygun ekilde sonlandrlabilir. Bu tip hatalarn nerelerde ve hangi artlarda ortaya kabileceini bazen kestirmek zor olabilir. ounlukla iletim sistemi ve donanm kaynaklar ile ilgili sorunlarda bu tip hatalar ortaya kar demitik. rnein olamayan bir dosya amaya almak, var olan bir dosyann zerine yazmaya almak, olmayan bir bellek kaynandan bellek ayrtmaya almak, olmayan bir donanma ulamaya almak vs. vs. vs. Logical Error : Karlaabileceiniz en tehlikeli hatadr. Programlama mantnda bir takm eylerin yanl dnlmesinden kaynaklanr. Hata test aamasnda ortaya kar. Hesaplanmas gereken veya bulunmas

69/17.10.2007 01:51:28 PM

13

Programlamaya Giri ve Algoritmalar Ders Notlar

gereken deerlerin eksik veya yanl hesaplanmas ile tespit edilir. Bu sorunun giderilebilmesi iin Tasarm hatta zmleme aamasna geri dnlmesi gerekebilir. Bazen bu hatann nereden kaynaklandn bulabilmek ok zor olmaktadr. Bug : Logical Error diyebileceimiz Mantksal hatalara verilen adlar bug yani bcek diye de tanmlanm olabilir. Bu tip hatalar eer ok net deil ve zamanla ortaya kabiliyor ise veya nedeni ok net olarak anlalamamsa bug diye adlandrlr. Gerek serbest yazlm gerek ticari yazlmlarn tmnde bug dediimiz mantksal hatalar bulunur. nk hatasz program yazabilmek ok zordur. lk seferde yazlan bir programn tamamen hatasz olmasn beklemek son derece hataldr. Gnmzde en mehur yazlm firmalar bile yazlmlarnda bug olduunu kabul eder ve zaman zaman bu buglar giderebilmek iin ya yazlmlarna yama yazlm retirler yada o yazlmn yeni bir versiyonunu piyasaya srerler. Debug : Mantksal hatalar giderebilmek ve yazlmdaki bug'lar bulabilmek iin yaplan ilemin addr. Genellikle yazlan programn adm adm ve denetim altnda altrlmasdr. Programn her admnda ilgili deikenlerin hangi deere sahip olduunu grmeyi salar. ve anormal bir durumu daha kolay izleyip bulmanz salar. Bu ilemi gerekletirebilmek iin baz IDE ortamlarnda debugger dediimiz yardmc komut veya yaz

69/17.10.2007 01:51:28 PM

14

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritmalar
Bir bilgisayar program aslnda sra dzensel olarak tanmlanm bir dizi komuttan baka bir ey deildir. Bu adan bizim yazmaya alacamz programda bir dizi komut yani eylem topluluudur. Her programda bu eylemler yazldklar srada gerekletirilir veya altrlrlar. Aslnda bizim gnlk hayattaki yaant tarzmz dahi dzenli olarak bir takm ilemlerin sra ile yaplmas eklindedir. Yani bir i yapabilmek iin bir takm alt i veya olaylar pe pee gerekletiririz. Algoritmann tanmn daha nce vermitik burada bu tanm tekrar etmek faydal olacaktr. Bir sorunu zebilmek iin gerekli olan sral mantksal admlarn tmne algoritma denir. Bir algoritmadan beklenen bir takm zellikler olduunu da yine daha nceki tanmlar blmnde bahsetmitik. Biz imdi mmkn olduu kadar bu tanm ve zelliklerden yola karak rneklerle bir ka algoritma vermeye alacaz. ncelikle bir ev hanmnn pasta yapmak istediini varsayalm. Bu pastann yaplabilmesi iin gerekli bir takm ilemler ve alt admlar bellidir. bir ev hanm da sra ile bu admlar uygulayarak bu pastay yapar. yle ki: 1. 2. 3. 4. 5. 6. 7. 8. Pastann yapm iin gerekli malzemeleri hazrla Ya bir kaba koy ekeri ayn kaba yan zerine koy Ya ve ekeri rp Karmn zerine yumurtay kr Tekrar rp Kvama geldi mi diye kontrol et a. Kvaml ise 9. adma devam et b. Deilse 6. adma dn. 9. Karma un koy 10.Karma vanilya, kabartma tozu vb. koy 11.Karm Kvama gelinceye kadar rp 12.Pastay Kek kalbna koy 13.Yeteri kadar snan frna pastay koy 14.Piimi diye kontrol et 15. a. Pimi ise 16. adma devam et b. Deilse 14. adma dn 16.Keki frndan kart 17.Frn kapat 18.Kekin kapat 19.Kekin soumasn bekle 20.Keki servis edebilirsin.

69/17.10.2007 01:51:28 PM

15

Programlamaya Giri ve Algoritmalar Ders Notlar

Bu algoritma gnlk hayattan bir rnek. Gerekte biz her iimizi algoritmik olarak yaparz ancak bunu farkna varmayz. Yukardaki algoritmay inceleyecek olursak bir kekin yaplmas iin gerekli tm admlar sra ile yer alm durumda. Geri algoritma anlatacamz konularn daha iyi anlalabilmesi iin biraz farkl ele alnmtr ama gerek bir Pasta yapm aamasn ierir. Bu algoritma ve dier tm algoritmalar iin bilmemiz gereken baz konular bulunmaktadr: Her adm son derece belirleyici olmaldr. Hi bir ey ansa bal olmamaldr. Belirli bir sayda adm sonunda algoritma sonlanmaldr. Algoritmalar karlalabilecek tm ihtimalleri ele alabilecek kadar genel olmaldr. Algoritmada algoritmann genel ileyiini etkileyebilecek hi bir belirsizlik olmamaldr. (Bu rnekte yle bir belirsizlik var. Bir frnn yeteri kadar sna bilmesi hangi koula baldr, bu frn ne zaman alm olmaldr ve ka dereceye ayarlanm olmaldr. gibi...) Algoritmada baz admlar yer deitirebilir . Ancak bir ok admn kesinlikle yer deitiremeyeceini bilmeliyiz. Yanl sradaki admlar algoritmann yanl almasna neden olacaktr. (9 ve 10. adm deitirilebilir. 2-3. admlar yer admlar yer deitirebilir.) Ancak 13-16. admlar kesinlikle yer deitiremezler. Peki Bilgisayarda zlecek bir sorunu nasl algoritma ile ifade ederiz? Bunun iin ncelikle bir sorun tanmlayalm. Balang ta basit olmas iin yle bir problem zerinde dnelim: Bilgisayara verilecek iki sayy toplayp sonucu ekrana yazacak bir program iin algoritma gelitirmek isteyelim. Sorun son derece basit ancak sistem tasarmnn net yaplabilmesi iin sorun hakknda anlalamayan tm belirsiz noktalar akla kavuturulmaldr. rnein saylar bilgisayara nereden verilecek, Klavye, Dosya veya belki baka bir ortam. Bu ve buna benzer soru ve tereddtleriniz varsa sorun sahibine bunlar sormal ve sistem analizi yapmalsnz. Sonra bulacamz zm algoritma haline dntrebiliriz. 1. 2. 3. 4. 5. BALA A saysn oku B saysn oku TOPLAM=A + B ilemini yap TOPLAM deerini ekrana yaz

6. SON

69/17.10.2007 01:51:28 PM

16

Programlamaya Giri ve Algoritmalar Ders Notlar

Biraz daha karmak bir sorun yle olsun: Klavyeden girilecek iki saydan byk olanndan kk olann karp sonucu ekrana yazacak program iin bir algoritma gelitiriniz. A. B. C. D. BALA A saysn oku B saysn oku Eer A byktr B SONUC=A-B Deilse SONUC=B-A E. SONUC deerini ekrana yaz F. SON Gerekte bir algoritma genellikle ana blmden oluur. Bunlar : Algoritmann giri ve ilk ilemlerinin yapld blm Dngsel bir blmn olduu kesim. Bu blm iterasyonlarla bir ilemin srekli tekrar edilerek sonuca ulamay salayan blmdr. Son ilemlerin yapld blmdr. Bu blm elde edilen sonularn ekrana yazlmasn salayan blmdr.

rnein birden Klavyeden girilen bir n deerine kadar saylar toplayan ve sonucu ekrana yazan bir algoritmay gelitirelim. 1. 2. 3. 4. 5. 6. 7. BALA N OKU T=0 X=1 T=T+X X=X+1 EER X<=N SE 5. ADIMA GT

8. T YAZ Bu algoritmalar olduka basit algoritmalar olup algoritma kavramnn yerlemesini salayan rneklerdir.

69/17.10.2007 01:51:28 PM

17

Programlamaya Giri ve Algoritmalar Ders Notlar

Ak izgeleri
Bir algoritmann ekillerle grsel gsterimidir. Dikkat edildiyse algoritma doal dille yazld iin herkes tarafndan anlalamayabilir ya da istenmese de baka anlamlar karlabilir. Ancak ak izgelerinde her bir ekil standart bir anlam tad iin farkl yorumlanp anlalamamas mmkn deildir. Bir algoritmann ifade edilebilmesi iin kullanlan ekiller ve anlamlar unlardr:

Bir algoritmann balad konumu gstermektedir. Tek kl bir ekildir.

Bir algoritmann bittii konumu gstermektedir. Tek girili bir ekildir.

Bir algoritmada aritmetik ilem yaplmasn salayan ekildir. Bu drtgen kutu ierisine yaplmak istenen ilem yazlr. Tek girili ve tek kl bir ekildir.

Algoritmada bir bilginin ekrana yazlaca konumu gsteren ekildir. Ekrana yazlacak ifade ya da deiken bu ekil ierisine yazlr.

Bir algoritmada baka bir yerde tanmlanm bloun yerletii konumu gsteren ekildir. Kutu ierisine bloun ad yazlabilir.

Klavyeden Bilgisayara bilgi girilecek konumu belirten ekildir. Girilecek bilginin hangi deikene okunacan kutu ierisine yazabilirsiniz.

69/17.10.2007 01:51:28 PM

18

Programlamaya Giri ve Algoritmalar Ders Notlar

Giri k komutunun kullanlaca yeri belirler ve kutu ierisine hangi deikeni ve OKU mam YAZ m yaplacan belirtmeniz gerekir

Bilginin Yazcya yazlaca konumu gsteren ekildir.

Bir algoritmann birden fazla alana yaylmas durumunda balant noktalarn gsteren ekildir. Tek girili veya tek kl olarak kullanlrlar. Bir ilemin belli bir sayda veya belli bir koul doru olduu srece tekrar edilmesini salayan dng komutunu gsteren ekildir. Bu dngde altgen ierisine ya koul yada dngnn balang, adm ve sonlanma deerlerini belirtebilirsiniz. DNG olarak belirlenen blokta da tekrar edilmek istenen komutlar yer almaktadr.

Bir algoritmada bir kararn verilmesini ve bu karara gre iki seenekten birinin uygulanmasn salayan ekildir. burada ekenar drtgen ierisine kontrol edilecek mantksal koul yazlr. Program ak srasnda koulun doru olmas durumunda "Evet" yazlan ksma Yanl olmas durumunda "Hayr" yazlan ksma saplr. Tek girili ve ift kl bir ekildir.

Programn bittii yer ya da yerleri gsteren bir ekildir.

69/17.10.2007 01:51:28 PM

19

BALA
Programlamaya Giri ve Algoritmalar Ders Notlar

N Bu ekiller kullanlarak algoritma ile oluturulan zmler ak izgelerine evrilir. Bu ekiller herkes tarafndan anlalabilir ve doru olarak X=1 yorumlanabilir bir zellik arz ederler. T=0 BALA A=1

T=T+X

X=X+1

B=1

X<=N H T

C=A+B

C>100 H C

SON

SON A=B

B=C

Bu rnekte 1den N deerine kadar saylar toplayp ekrana yazan bir ak izgesi izilmitir.

100e kadar saylardan fibonecci dizisinin elemanlarn listeleyen ak izgesidir.

69/17.10.2007 01:51:28 PM

20

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik ve Mantksal ifadeler


Bir takm ilemlerin yaplabilmesi iin aritmetik ilemlerin nasl tanmlandn bilmeniz gerekecek. Program aknn doru bir ekilde salanabilmesi iin baz yerlerde karar verilmesi gereklidir. Bu kararlarn verilmesini salayacak Mantksal ifadeler bilgisayarlar tarafndan yaplabilmelidir.

Aritmetik fadeler
Bir programn istenilen ileri yerine getirebilmesi iin hesap yapabilmesi ve bu hesaplar sonucunda elde edilen deerleri saklayabilmesi gerekmektedir. Genel olarak tm programlama dillerinde aritmetik ilemler u ekilde tanmlanmtr: Deer|Deiken {aritmetik operatr} Deer|Deiken Bu tip bir gsterimde Deer denilen kesim sabit bir deeri temsil eder. Deiken ise ierisinde her an farkl bir deer tutabilecek bir tanm ifade eder. Aritmetik Operatr ise aritmetik ilemin zn oluturan bir iletir.

Aritmetik Operatr
Ksaca drt ilem olarak da ifade edebileceimiz ilelerdir. ounlukla drt tanedirler ve cebirde kullanlan ncelikleri ayn ekilde kullanrlar. * / + arpma ilemini gsteren iletir. Blme ile e nceliklidir. Blme ilemini gsteren iletir. arpma ile e nceliklidir. Toplama ilemini gsteren iletir. karma ile e nceliklidir. karma ilemini gsteren iletir. Toplama ile e nceliklidir.

Temel olarak bu ileler her programlama dilinde bulunur. ncelikleri yukardaki srada olduu gibidir. E ncelikli aritmetik ifadeler bulunursa bu ifadelerde ilem soldan saa doru yaplr. Bu ilem nceliklerini deitirmek iin her programlama dilinde "(", ")" (Parantez a-kapa) ifadelerini bulabilirsiniz. Bunlardan hari olarak bazen z alma operatrlerinden bahsedilebilir. bazen de mod operatr ve tam blme operatr gibi deiik ve standart olmayan operatrler yar alabiliyor.

69/17.10.2007 01:51:28 PM

21

Programlamaya Giri ve Algoritmalar Ders Notlar

Aritmetik Operand
Aritmetik ifadelerde ileme giren taraflarn her birine aritmetik operand yani aritmetik ilenen denir. yukardaki tanmda Deer|Deiken ikilisinin her biri ilenen yani operand tanmn salar. Bir aritmetik ifade de bir ift operand ve bir operatr minimum olmas gereken ifadelerdir. Ancak daha fazla aritmetik ilenen ve ile olabilecektir. rnein A * B + (12 + B) ilemi de bir aritmetik ifadedir.

Deer Aktarma deyimi


Genellikle bir aritmetik ifade ile hesaplanan deer baka bir deikene aktarlr. Bu ilem ounlukla "=" sembol ile gerekletirilir. Ancak baka bir komut, sembol veya ifade ile de bu deer aktarlmas yaplabilir.

Mantksal ifadeler
Bir deerin baka bir deer ile karlatrlmas sonucu doru veya yanl sonu elde edebilen ifadelerdir. Mantksal operatrler ve karlatrma operatrlerinin deiik alternatiflerle bir araya gelmesinden oluur ve u ekilde ifade edilir: Deer|Deiken|Aritmetik ifade {Karlatrma Operatr} Deer|Deiken|Aritmetik ifade Karlatrma Deimi {Mantksal operatr} Karlatrma Deimi

Karlatrma Operatr
ki deer veya aritmetik ifadeyi bir biriyle karlatrmay salayan sembollerdir. = >, >= <, <= <> ki deerin eit olup olmad karlatran iletir. ki deerden soldakinin sadakine oranla byk olup olmadn veya byk eit olup olmad kontrol eden operatrdr. ki deerden soldakinin sadakine oranla kk olup olmadn veya kk eit olup olmad kontrol eden operatrdr. ki deerin farkl olup olmadn karlatrlan iletir.

A>=8 ifadesi a deikeni iindeki deeri 8 den byk m diye karlatrr. A<>12 ifadesi a deikeni iindeki deer 12den farkl m diye karlatrr.

Mantksal Operatr

69/17.10.2007 01:51:28 PM

22

Programlamaya Giri ve Algoritmalar Ders Notlar

Birden fazla mantksal karlatrma deyiminin birletirilmesini salayan ilelerdir. VE, VEYA gibi ifadelerdir. Bu operatrler mantksal ifadelerden iki veya daha fazlasnn mantksal doruluk tablolarna gre birletirilmesini salar. VEYA iin doruluk tablosu P D D Y Y VE iin doruluk tablosu P D D Y Y D Y D Y Q D Y Y Y P VE Q Q D Y D Y P VEYA Q D D D Y

Son mantksal operatr DEL operatr olup tek ilenen alr ve ald ilenenin mantksal deilini alr. Yani doru olan deeri yanla yanl olan deeri doruya evirir. P D Y DEL(P) Y D

rnein bir deiken iindeki deerin 1 ile 10 arasnda olup olmadn kontrol eden ifade u ekildedir: (A>=1 VE A<=10). Bu tr ifadeler yazlrken dikkat edilmelidir rnein (A>=1 VE A<=10) yerine yanllkla (A>=1 VEYA A<=10) yazlmas her zaman doru sonu retecektir. Yada (A=3 VE A=8) gibi bir ifade de asla doru olamayacaktr.

69/17.10.2007 01:51:28 PM

23

Programlamaya Giri ve Algoritmalar Ders Notlar

Deiken ve Dizi Tanmlama


Bilgisayarda yaplacak hesaplar sonucu elde edilecek deerleri ve dardan bilgisayara girilecek deerler deikenlerde tutulur. Deikenler ilerinde tuttuklar deerlerin trlerine gre snflandrlr. Bu deikenler bazen basit ekilde olmaz kayt yapsnda ya da dizi yapsnda olabilirler.

Sabit Nedir?
Programn her yerinde ayn deeri ifade eden deerlerdir. Deikenlerde olduu gibi sabitler de tr kavramna sahiptir. Yazl tarzna bakarak sabitin trn anlamak mmkndr.

Tam Say Sabitleri


Sadece rakamlardan oluan ifadelerdir. Bu tip saylarn ierisinde sadece rakam ve gerekiyorsa iaret sembol olabilir. Aritmetik ilemlere girebilirler. (12, 1233, -3422 gibi)

Kesirli Say Sabitleri


Rakam ve ondalk ayrac olarak . (nokta) sembol kullanlabilir. ayrca iaret sembol olarak (-) kullanlabilir. Aritmetik ilemlere girebilirler. (3.14, 2.41. -2.11221 gibi)

Dizgi Sabitleri
Trnak ierisinde yazlan her ifade dizgi sabiti olarak alglanr. Programlama dillerinde farkl trnak sembolleri kullanlabilir. ounlukla " sembol tercih edilir. Aritmetik ilemlere giremez. ('Malatya', "Merhaba", "Dnya", "12322" gibi).

Deiken Nedir?
Her seferinde farkl deerler ierebilen yapdr. Programlarda deikenleri kutu olarak sembolize ederek zmlemek mmkndr. Deikenler de sabitlerde olduu gibi trlere sahiptir. Sabitlerdeki trler aynen geerlidir.

Dizi Nedir?
Baz durumlarda kullanm amac ayn olan birden fazla hatta olduka fazla sayda deikene ihtiya bulunur. Bu tip bir durumda bu deikenler tek tek tanmlanmak yerine bir ad altnda indisle tanmlanrlar. bu tanma dizi denir. Baz sorunlarn zm iin bu tanmlar zorunludur. Mesela 1000

69/17.10.2007 01:51:28 PM

24

Programlamaya Giri ve Algoritmalar Ders Notlar

sayy sralamak iin basit deiken tanmlama ilemi baarsz olacaktr. Veya bir snf listesinin tmn bilgisayarda tutmak isterseniz basit deikenler uygun deildir. ounlukla bu tip bir tanmda dizinin bir ad vardr. Erimek istediiniz dizinin eleman indis deeri ile bu dizi ierisinde istediiniz elemana ulaabilirsiniz. A dizisi A(1) A(2) A(3) A(4) A(5) A(6) A(7) A(8) A(9) A(10)

Bir dizi bu ekilde dnlebilir. Her bir eleman yukardaki gibi isimlendirilir. Bunun bize salayaca avantaj indis deerlerinin deikenlerle ifade edilebilmesinde yatmaktadr. Yani tek bir satr komut ile tm dizi elemanlar mesela ekranda yazdrlabilir.

69/17.10.2007 01:51:28 PM

25

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritma altrma
Bazen Bir takm algoritmalarn ne ie yaradn anlamak veya algoritmann doru alp almadn test etmek iin algoritmay altrmak gereklidir. Algoritmay altrmak demek algoritmann admlarn sra ile uygulamak, oluan deiken deerlerini bir tablo zerinde gstermek demektir. 1. BALA 2. A OKU 3. B OKU 4. C OKU 5. TOP=0 6. SAY=A 7. TOP = TOP+SAY 8. SAY=SAY+C 9. EER SAY<=B SE 7. ADIMA GT 10.TOP YAZ 11.SON eklinde verilmi bir algoritmamz olsun. Bu algoritma iin A3, B12 ve C2 deerleri girilince SAY ve TOP deikenlerinde hangi deerlerin oluacan algoritmay admlayarak gsterelim. Deikenlerin Her birinin Deeri Aklama A B C TOP SAY 3 12 2 0 3 6. adma kadar programn ilk altrlnda deikenlerin elde ettii deer 3 5 7. ve 8. admlarn altrlmasndan sonraki deerler 8 7 7. ve 8. deerler tekrar altrlyor 15 9 9<=12 olduu iin 7. ve 8. tekrar altrlyor. 24 11 11<=12 olduu iin 7. ve 8. tekrar altrlyor. 35 13 13<=12 olmad iin algoritma 10. satrdan almaya devam edecektir. Ve 10. satrdaki ifadeden dolay ekrana 35 deeri yazlacaktr.

69/17.10.2007 01:51:28 PM

26

Programlamaya Giri ve Algoritmalar Ders Notlar

Say Sistemleri
Bir Bilgisayar sisteminde tm bilgi kaytlar ve ilemleri elektriksel devreler zerinden gerekletii iin tek bilinen gerek elektrik akmnn varl veya yokluudur. Bu da matematiksel ve mantksal olarak ikili say sistemine karlk gelir. ounlukla ikili say sistemindeki 0 deeri elektrik olmadn 1 deeri ise bir elektriksel gerilimin olduunu anlatr. Bu iki saysal deer (0 ile 1) ikili say sisteminin rakamlardr. Ve bilgisayarda oluan tm deer ve sonular gerekte bu rakamlar ile anlatlabilirler. Ancak bizim bu saysal deerleri anlamamz zor olduu iin saysal olarak onluk say sistemini kullanrz.

Tabandan Tabana evrim


Byle olunca saylarn gerektii durumlarda tabandan tabana evrilebilmesi gereklidir. lkrenim dzeyinde grm olabileceiniz yntemlere burada bir deinmekte fayda bulunmaktadr. Bu rakamlarn her biri bilgisayar da bit denilen alanlarda tutulmaktadr.

kili Say isteminden onlu say sistemine evrim


Elimizdeki ikili saynn en sandaki basamak sfrnc basamak olmak kaydyla tm basamaklarmz sola doru numaralandrlr. Sonra her basamaktaki saysal deeri 2basamak deeri ile arpar ve bulunan tm deerleri toplarz.

7 1

6 0

5 0

4 1

3 1

2 0

1 1

0 1

=1*20 + 1*21 + 0*22 + 1*23 + 1*24 + 0*25 + 0*26 + 1*27 =1 + 2 + 0+ 8 + 16 + 0 + 0 + 128 =155

Onlu Say isteminden ikili say sistemine evrim


Eldeki onlu say srekli 2 deerine blnerek ilem yaplr. Blme ilemi en son blmn 0 olduu noktaya kadar devam eder. Elde edilen blme

69/17.10.2007 01:51:28 PM

27

Programlamaya Giri ve Algoritmalar Ders Notlar

tablosunda en son kalanlar sondan baa doru yan yana yazlr ve saynn ikilik tabandaki karl bulunmu olur. rnein elimizde 156 gibi saysal bir deer olsun. lem 155 / 2 77 / 2 38 / 2 19 / 2 9/2 4/2 2/2 1/2 Blm 77 38 19 9 4 2 1 0 Kalan 1 1 0 1 1 0 0 1

Sonu Kalan stunundaki deerlerin aadan yukar dizilmesi ile 1 0 0 1 1 0 1 1 olarak elde edilir.

Dier Say Sistemleri


0..X eklinde bir dizi rakama sahip olan say sistemleri X+1li say sistemi olarak anlr. rnein 0..7 arasnda rakamlarla ifade edilen say sistemi 8li say sistemidir. Bunun gibi bir programcnn bilmesi gerekebilecek 16li say sistemi vardr. Bu sistemde saylar 0..9a kadar gider ve sonrasnda A,B,C,D,E,F gibi rakamlar da 10,11,12,13,14,15 gibi deerleri ifade etmek iin kullanlr. Bu say sistemleri haricinde 3l, 5li vb sistemler bulunabilir/bulunur. Ancak bir bilgisayar programcs ikili, sekizli, onlu, onaltlk sistemleri kullanr ve bu sistemlerden haberdardr.

69/17.10.2007 01:51:28 PM

28

Programlamaya Giri ve Algoritmalar Ders Notlar

Veri leme
Bilgisayarmzda anlatmak, grmek, duymak istediimiz her bilgi veya medya bilgisayar ortamnda saysal olarak saklanr. Bunlarn zerinde yapacanz ilemlerin ou da aslnda matematiksel veya mantksal ilemlerdir. rnein bir izim bilgisayarda nokta nokta saklanr. ki boyutlu bir dzlem zerinde (0,0) koordinatndaki noktann rengi saysal olarak verilir. rnein bu deer 0 ise renk siyah 65555 ise renk beyazdr. Bu saysal deeri deitirerek (0,0) koordinatndaki noktann rengini deitirmi olursunuz. Aynen bu ekilde tm bilgiler bilgisayar ortamnda uygun saysal veriler eklinde tutulur. Yaplacak ilemler bu verilerin zerinde matematiksel ya da mantksal yollarla yaplan ilemlerdir. Bir resmin bytlp kltlmesi resimlerin zerine efekt eklenmesi, seslere efektlerin eklenmesi, video grntlerinde istenilen ekleme ve karmalarn yaplmas, bir nesnenin boyutlu grntsnn elde edilip hareket kazandrlmas gibi onlarca konu veri ileme esaslarna dayanan hesaplamalarla elde edilir. Bu tip kavramlarn her biri iin internetten algoritma vb. aratlp kullanlabilir.

69/17.10.2007 01:51:28 PM

29

Programlamaya Giri ve Algoritmalar Ders Notlar

Algoritma rnekleri ve Sorular


1. Soru Klavyeden girilecek X deerinden N deerine kadar tm doal saylar listeleyen algoritmay gelitiriniz. zm: X deikeni ve N deikeni klavyeden girilecek olup Xden Ne kadar elde edilecek her bir deer ekrana yazlacaktr. 1. 2. 3. 4. 5. X OKU N OKU X YAZ X=X+1 EER X<=N SE 3. ADIMA GT

6. SON 2. Soru Klavyeden girilecek bir N deerine kadar fibonecci dizisini bulan algoritmay gelitiriniz. Fibonecci dizisi 1 1 deerleri ile balar ve yeni deer kendinden ndeki iki deerin toplam olarak bulunur. (1 1 2 3 5 8 13 21...) zm: Fibonecci dizisi a,b,c eklinde 3 deiken ile hesaplanabilecek bir dizidir. nk srekli a ile b toplanarak c retilir ve sonra bu a, b, c deikenleri kaydrlr. 7. N OKU 8. A=1 9. B=1 10.A,B YAZ 11.C=A+B 12.EER C>N SE 11. GT 13.C YAZ 14.A=B 15.B=C 16.5. ADIMA GT 17.SON 3. Soru Klavyeden girilen bir saynn tm tam blenlerini bulup listeleyen (Ekrana yazan) bir algoritma gelitiriniz.

69/17.10.2007 01:51:28 PM

30

Programlamaya Giri ve Algoritmalar Ders Notlar

zm: Bu rnei zebilmek iin bleni kalma operatrnn varln kabul edeceiz. Bu amala Cdilinde de kullanlan % operatrn kalan bulma operatr olarak kullanacaz. 18.N OKU 19.X=1 20.EER N%X=0 SE X YAZ 21.X=X+1 22.EER X<=N SE 3. ADIMA GT 23.SON 4. Soru Klavyeden girilen saydan byklk sralamasna gre ortadakini bulup ekrana yazan program iin algoritma yaznz. zm: Bu algoritma saynn klasik yollarla sralanmasn ya da byklk sralamasnn bulunmasnn ne denli zor olduunu anlatmaya alan bir rektir. 24.A, B, C OKU 25.EER A>B VE 26.EER C>B VE 27.EER B>A VE 28.EER C>A VE 29.EER A>C VE 30.EER B>C VE 31.SON 5. Soru Klavyeden girilen A ve B gibi iki saynn blme ilemi kullanmadan sadece toplama ve karma kullanarak kalanl blme yapan algoritmay yaznz. zm: Bu rnek ok eski ilemcilerde arpma ileminin tanml olmad durumlar iin arpma ya da blme yapmak amacyla kullanlan algoritma olarak karmza kmtr. lk okulda da fasulye hesabna dayanarak arpmay rendiimiz yllar hatrlamamz salayabilir. 32.A,B OKU 33.BOLUM=0 34.KALAN=0 35.EER A<B SE KALAN=A, 8. ADIMA GT 36.A=A-B 37.BOLUM=BOLUM+1 38.4. ADIMA GT

B>C B>A A>C A>B C>B C>A

SE SE SE SE SE SE

B B A A C C

YAZ YAZ YAZ YAZ YAZ YAZ

69/17.10.2007 01:51:28 PM

31

Programlamaya Giri ve Algoritmalar Ders Notlar

39.BOLUM, KALAN YAZ 6. Soru Klavyeden girilen A ve B gibi iki sayy, arpma ilemi kullanmadan sadece toplama ve karma kullanarak arpp sonucu ekrana yazan algoritmay yaznz. zm: 40.A, B OKU 41.SAY=0 42.TOPLA=0 43.EER SAY>=B SE 8. ADIMA GT 44.TOPLA=TOPLA+A 45.SAY=SAY+1 46.4. ADIMA GT 47.TOPLA YAZ 7. Soru Sfr 0 girilinceye kadar klavyeden okutulan deerlerin ortalamasn hesaplayp ekrana yazan algoritmay gelitiriniz zm: Bu rnekte bir toplam deerini tutabilecek bir de saylar sayabilecek iki deikene ihtiya vardr. Klavyeden girilen her deer sfr ile karlatrlacak deilse ileme devam edilecektir. Sfr ise ortalama hesaplanp ekrana yazlacaktr. 48.T=0 49.SAY=0 50.X OKU 51.EER X=0 SE 8. ADIMA GT 52.T=T+X 53.SAY=SAY+X 54.3. ADIMA GT 55.ORT=T / SAY 56.ORT YAZ 8. Soru Klavyeden girilecek 20 saynn tek olanlarn ayr ift olanlarn ayr toplayp sonular ekrana yazan algoritmay gelitiriniz zm: Bu algoritmada yine % operatrnn kalan bulan operatr olarak kullanlacan varsayyoruz. nk bu algoritmada bir saynn ift mi tek

69/17.10.2007 01:51:28 PM

32

Programlamaya Giri ve Algoritmalar Ders Notlar

mi olduunu anlamak ancak ve ancak o saynn ikiye blmnden kalann 1 mi 0 m olduuna baldr 57.CIFT=0 58.TEK=0 59.SAY=0 60.X OKU 61.SAY=SAY+1 62.EER X%2=0 SE CIFT=CIFT+X DELSE TEK=TEK+X 63.SAY=SAY+1 64.EER SAY<20 ISE 4. ADIMA GT 65.TEK, CIFT YAZ 9. Soru Bir n deeri iin f(x)=
n

x= 1

1 2 eklindeki fonksiyonun deerini hesaplayp x

ekrana yazan algoritmay gelitiriniz. zm: Bu algoritma olduka basit bir ekle sahip olup benzer ekildeki tm fonksiyonlar kk deiikliklerle rahata hesaplayabilecek bir algoritmadr. Sadece 4. adm deitirerek olduka fazla sayda algoritma veya sorun tretilebilir. 66.N OKU 67.F=0 68.X=1 69.F=F+1/(X*X) 70.X=X+1 71.EER X<=N SE 4. ADIMA GT 72.F YAZ 10. Soru F(x)=

x= 1

1 2 eklindeki bir fonksiyon iin f(x)>=kk artn salayan en x

kk n deerini bulabilecek bir algoritma gelitiriniz. Kk ve n deerlerinin klavyeden girildiini dnelim zm: 73.KK OKU 74.N OKU 75.F=0 76.X=1

69/17.10.2007 01:51:28 PM

33

Programlamaya Giri ve Algoritmalar Ders Notlar

77.F=F+1/(X*X) 78.X=X+1 79.EER F<KK SE 5. ADIMA GT 80.F,X YAZ 11. Soru Genel Gsterimi Xn=n2 eklinde olan bir dizinin n. Elemanna kadar tm elemanlarn ekranda yan yana gsterecek programn algoritmasn gelitiriniz. zm: Yan yana veya alt alta bu konuda algoritma dzeyinde yapabilecek bir tanm yok bu ilem daha ok Programlama dili ile hallolabilecek bir ilemdir. Bu nedenle burada o ifade dikkate alnmamtr. 81.N OKU 82.X=1 83.X*X YAZ 84.X=X+1 85.EER X<=N SE 3. ADIMA GT 86.SON 12. Soru Klavyeden 0-Sfr girilinceye kadar girilen bir dizi saynn karelerinin ortalamasn bulacak program iin algoritma gelitiriniz. zm: Bu algoritma 7.sorudaki algoritmaya benzer bir algoritmadr. Ve bu ekilde biri birine ok benzeyen bir sr rnek verilebilir ve soru sorulabilir. 87.SAY=0 88.T=0 89.X OKU 90.EER X=0 SE 8. ADIMA GT 91.T=T+X*X 92.SAY=SAY+1 93.3. ADIMA GT 94.ORT=T/SAY 95.ORT YAZ

69/17.10.2007 01:51:28 PM

34

Programlamaya Giri ve Algoritmalar Ders Notlar

13. Soru Klavyeden girilecek iki pozitif tam saynn OBEB (Ortak Blenlerin En By)ini bulacak algoritmay gelitiriniz. rnein elimizde 3654 ve 1365 deerleri olsun. Bu deerlerin OBEBi u ekilde bulunmaktadr. 3654 / 1365 Kalan 924 1365 / 924 Kalan 441 924 / 441 Kalan 42 441 / 42 Kalan 21 42 / 21 Kalan 0 Kalan 0-Sfr oluncaya kadar sra ile blme yaplmaktadr. OBEB deeri ise 21 olarak bulunan deerdir. Bu ilem srasnda ve yineleme zelliklerini kullanarak iki saynn OBEBini bulunuz. Kalan bulmak iin % operatrnn tanml olduunu varsayp kullanabilirsiniz. zm: 96.A, B OKU 97.KALAN=A%B 98.EER KALAN=0 SE 7. ADIMA GT 99.A=B 100.B=KALAN 101.2. ADIMA GT 102.B YAZ

14. Soru Cos(x)= 1


x 2 x 4 x 6 x8 + + eklinde tanmlanm bir Cos alm 2! 4! 6! 8!

fonksiyonu iin X deeri klavyeden girilmektedir. lk 10 terim iin COS fonksiyonunun sonucunu hesaplayp ekrana yazacak algoritmay gelitiriniz. Bu algoritmay gelitirirken standart ilemlerden baka fak(n), s(taban,s) eklinde tanml fonksiyonlarn kullanabilirsiniz. zm: 103.X OKU 104.TERM=1 105.KS=2 106.F=1 107.ARET=-1 108.F=F+ARET*S(X,KS)/FAK(KS)

69/17.10.2007 01:51:28 PM

35

Programlamaya Giri ve Algoritmalar Ders Notlar

109.ARET=ARET * (-1) 110.TERM=TERM+1 111.KS=KS+2 112.EER TERM<10 SE 6. ADIMA GT 113.F YAZ 15. Soru Klavyeden girilen A ve B gibi iki deerin yerlerini deitirerek ekrana yazan algoritmay gelitiriniz. zm: Burada anlatlmak istenen herhangi bir ift deikenin iindeki deerleri yer deitirmektir. Bir ok programda bu tarz ilemler ihtiya duyulur. rnein birinci deerin ikinci deere gre her zaman byk olmasn salayan bir algoritma sz konusu ise burada aadakne benzer bir yntem kullanlmaldr. 114.A, B OKU 115.TMP=A 116.A=B 117.B=TMP 118.A, B YAZ 16. Soru Klavyeden girilen bir n deerini ikilik say sistemine evirip ekrana yazacak algoritmay gelitiriniz. zm: Bu algoritma bir takm zel deikenler ve yntemler kullanmadan tam olarak doru bir ekilde istenilen grevi yerine getiremeyecektir. Bu amala biz dizi deikenleri kullanabileceimizi dnerek bu algoritmay oluturmaya alacaz. 119.N OKU 120.INDIS=7 121.KALAN=N%2 122.IKILI[INDIS]=KALAN 123.N=N/2 124.INDIS=INDIS-1 125.EER N>1 SE 3. ADIMA GT 126.IKILI[INDIS]=N 127.INDIS=0 128.IKILI[INDIS] YAZ 129.INDIS=INDIS+1 130.EER INDIS<=7 SE 10. ADIMA GT 131.SON

69/17.10.2007 01:51:28 PM

36

Programlamaya Giri ve Algoritmalar Ders Notlar

17. Soru Klavyeden girilecek bir saynn tek mi ift mi olduunu bulabilecek bir algoritma gelitiriniz. Bu algoritmay gelitirirken bavurduunuz varsaymlar da yaznz. zm: Varsaym u olmaldr: Kalan bulma operatrnn varl bir varsaymdr. nk byle bir operatr her programlama dilinde olmayabilir. 132.SAYI OKU 133.EER SAYI%2=0 SE Tek YAZ DELSE ift YAZ 18. Soru Klavyeden girilen iki say ve bir operatre gre ilem yapp sonucu ekrana yazan algoritmay tasarlaynz. zm: 134.A,B OKU 135.OP OKU 136.EER OP=+ SE C=A+B 137.EER OP=- SE C=A-B 138.EER OP=* SE C=A*B 139.EER OP=/ SE C=A/B 140.C YAZ 19. Soru Klavyeden girilen kesirli bir deeri a/b eklinde rasyonel ifade olarak ekrana yazabilecek algoritmay gelitiriniz. zm: Bu algoritmay yazabilmek iin kk bir varsaymmz olacaktr. Bu varsayma gre programlama dilinde rnein ad TAM olan ve bir saysal deerin tam ksmn bulan bir fonksiyona ihtiya vardr. 141.X OKU 142.PAY=X 143.PAYDA=1 144.PAY=PAY*10 145.PAYDA=PAYDA*10 146.EER PAY<>TAM(PAY) SE 4. ADIMA GT 147.EER PAY%2=0 VE PAYDA%2=0 SE PAY=PAY/2 PAYDA=PAYDA/2 7. ADIMA GT

69/17.10.2007 01:51:28 PM

37

Programlamaya Giri ve Algoritmalar Ders Notlar

148.EER PAY%5=0 VE PAYDA%5=0 SE PAY=PAY/5 PAYDA=PAYDA/5 8. ADIMA GT 149.PAY, PAYDA YAZ

20. Soru Klavyeden girilecek bir harfi byk harfe evirip ekrana yazan algoritmay gelitiriniz. zm: Bu konu ile ilgili algoritma yazabilmek iin ASCII kmesi dediimiz bir kme hakknda bilgi sahibi olmamz gerekiyor. B kme bilgisayarnz tarafndan kullanlan tm karakterlerin sakland bir listedir. Normalde saysal ilemler yapan bilgisayarnzn alfabetik karakterleri ifade edebilmesi iin byle bir lise-kmeye ihtiya duyulur. Bu kmenin elemanlar bir ok kitapta liste olarak verilmitir her bir liste yesinin numaras 0 ile 255 arasndadr. Ve saysal olarak 65 dediimizde A harfini ve mesela 97 dediimizde a harfini anlatm oluruz. Bu kme incelendiinde harfler simetrik olarak belli bir blgede yer alrlar ve bir harfin by ile k arasnda 32 gibi bir saysal fark vardr. Byk harfler 65 ile balar ve daha kk deerlere sahiptir. Kk harfler ise 97 ile balar. 150.HARF OKU 151.EER HARF>=a VE HARF<=z SE HARF=HARF32 152.HARF YAZ. Bu kavramla ilgili olarak onlarca soru zlebilir. Programlama ksmnda bu konuyu temel alan bir ok rnek bulabileceksiniz.

69/17.10.2007 01:51:28 PM

38

You might also like