0algoritma

Upload: ismail-yesilyurt

Post on 04-Apr-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 0Algoritma

    1/39

    Programlamaya Giri

    ve AlgoritmalarDers Notu

    Programlama Kurslar

    Revizyon ve Bask Bilgisi139/13.02.2012 09:08:00

  • 7/31/2019 0Algoritma

    2/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 2

    indekilerindekiler ................................................................................................................................... 2

    Genel Programlama Bilgisi ........................................................................................................ 3Tanmlar ..................................................................................................................................... 5

    Bilgisayar Nedir? ................................................................................................................ 5Bilgisayar Organizasyonu? ................................................................................................ 5Bilgisayarn Tarihesi ........................................................................................................ 6Bilgisayar Trleri ............................................................................................................... 7Problem Nedir? .................................................................................................................. 7Problem zm ................................................................................................................ 7Program Nedir? .................................................................................................................. 8Programlama Nedir? .......................................................................................................... 8Algoritma Nedir? ................................................................................................................ 8

    Ak izgesi Nedir? ........................................................................................................... 8Programlama Dili Nedir? ................................................................................................... 8Derleyici Nedir? ................................................................................................................. 9Yorumlayc Nedir? ............................................................................................................ 9

    Yazlm Gelitirme ................................................................................................................... 10Hata Yakalama ve Ayklama .................................................................................................... 13Algoritmalar ............................................................................................................................. 15Ak izgeleri ........................................................................................................................... 18Aritmetik ve Mantksal ifadeler ............................................................................................... 21

    Aritmetik fadeler ................................................................................................................. 21Aritmetik Operatr ........................................................................................................... 21Aritmetik Operand ............................................................................................................ 22Deer Aktarma deyimi ..................................................................................................... 22

    Mantksal ifadeler ................................................................................................................. 22Karlatrma Operatr ................................................................................................... 22Mantksal Operatr ........................................................................................................... 22

    Deiken ve Dizi Tanmlama ................................................................................................... 24Sabit Nedir? .......................................................................................................................... 24

    Tam Say Sabitleri ............................................................................................................ 24Kesirli Say Sabitleri ........................................................................................................ 24Dizgi Sabitleri .................................................................................................................. 24

    Deiken Nedir? ................................................................................................................... 24Dizi Nedir? ........................................................................................................................... 24Say Sistemleri .......................................................................................................................... 26

    Tabandan Tabana evrim .................................................................................................... 27kili Say isteminden onlu say sistemine evrim ............................................................. 27Onlu Say isteminden ikili say sistemine evrim ............................................................ 27Dier Say Sistemleri ....................................................................................................... 28

    Veri leme ............................................................................................................................... 29Algoritma rnekleri ve Sorular ................................................................................................ 30

  • 7/31/2019 0Algoritma

    3/39

  • 7/31/2019 0Algoritma

    4/39

  • 7/31/2019 0Algoritma

    5/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 5

    TanmlarBu ders notlarnn daha iyi anlalabilmesi iin u tanm ve kavramlarnbilinmesinde fayda bulunmaktadr.

    Bilgisayar Nedir?

    Verileri leyerek zet bilgiler ekline sokabilen, bu veri ve bilgileri yksekkapasitelerde saklayp baka ortamlara iletebilen elektronik cihazlardr.

    Bu ilemleri yaparken ok yksek hzlarda ve bkmadan-usanmadantekrarl olarak ayn ileri yapan bir cihazdr.

    Ancak tek bana bir Bilgisayar donanm bu ileri gerekletirecek

    durumda deildir. Bu ilemler donanm tarafndan yaplsa da asl iyazlmlar tarafndan gerekletirilmektedir.

    Ancak Yukardaki izimde grlen her bir admn gerekletiren yazlmdr.

    Bilgisayar Organizasyonu?

    Bir Elektronik Bilgisayar yukar ekildeki gibi temel birimlere sahiptir. Buekilde bir nceki konuda bahsettiimiz giri, k ilemleri, veri ileme veveri saklama ilemleri gerekletirilir.

    Giri BirimiKlavye, Fare, mikrofon, kamera vb. cihazlardan biri

    veya daha fazlasndan oluur. Veri ve komutlarnbilgisayara yollanmasn salar.

    Bellek Birimi

    Veri, komut ve programlarn sakland donanmlartemsil eder.

    Ana Bellek ounlukla RAM olarak anlr ve SIMMgibi donanmlarla belirlenir.

    Yan veya kincil bellek ise Floppy ve sabit diskleriifade eder ve bilgilerin kalc saklanmasn salayan

    alanlar temsil eder.

  • 7/31/2019 0Algoritma

    6/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 6

    Aritmetik-Mantk Birimi

    CP

    U

    Bilgisayardaki tm Aritmetik ve Mantksal ilemlerinyapld birimdir. Tm ilemleri yapan ana birimdir.

    Denetim Birimi

    Bilgisayar programnn almasn denetleyen,programda yaplan hesaplamalara gre hangi ilerin

    yaplacana karar veren birimdir. Makine dilineevrilmi bir programda komutlar teker teker vesrayla Ana ilem birimine getirip yorumlar vesonuta komutu altrr.

    k BirimiBilgisayar ortamnda oluan verilerin d ortamaverilmesini salayan birimlerdir. Ekran, yazc gibibirimlerdir.

    Bir Programc genel olarak bu birimlerin hangilerinin ne ie yaradn veneleri temsil ettiini bilmelidir. zellikle Aritmetik-Mantk ilem birimi veDenetim birimi Bir bilgisayarn beynini oluturduu iin nasl davrandniyi bilmek zorundadr.

    Bilgisayarn Tarihesi

    Bu konuda ok deiik ve eitli kaynaklar bulmak mmkn olabilir ancakyle basit bir kronolojik sra gemek mmkndr

    M.. 500 Abaks

    1642 Pascaln Mekanik Toplama Makinesi

    1827 Babbage'in karma makinesi

    1941 kili>kili Mekanik Hesaplayc (Zuse)

    1944 Ondalk Elektromekanik Hesaplayc (Aiken)

    1945-54 lk Kuak Vakum Tpler ve nlar

    1955-64 kinci Kuak Tranzistrler ve Manyetik Bellekler

    1965-71 nc Kuak Tmleik Devreler1971-90 Drdnc Kuak VLSI Devreler

  • 7/31/2019 0Algoritma

    7/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 7

    1982 IBM Pc & MS-DOS

    1984 MAC

    1990lar Paralel lemciler, Yapay Zeka, nternet ve WWW

    Bilgisayar Trleri

    Bilgisayarlar kullanm amalarna gre byklk ve kapasite bakmnda uekilde snflandrlabilirler.

    Sper Bilgisayarlar Mainframe tipi Bilgisayarlar Workstation tipi Bilgisayarlar ( stasyonlar) Mikro Bilgisayarlar Kiisel Bilgisayarlar

    Problem Nedir?

    Bir ilemin, otomasyonun ya da bilimsel hesaplamann bilgisayarlazlmesi fikrinin ortaya kmasna problem denir. Bu tip fikirlerdeinsanlarn bu sorunlar beyinle zmeleri ya imkanszdr ya da ok zor vezaman alcdr. Bu tip bir sorunu bilgisayarla zebilme fikrinin ortayakmas 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 programctarafndan anlalm olmas gerekir. Tm ihtiyalar ve isteklerbelirlenmelidir. Gerekiyorsa bu ilem iin birebir grmeler planlanmal vebu grmeler gerekletirilmelidir.

    Problemin zmne ilikin zihinsel altrmalar yaplr. Bu altrmalarn

    Bilgisayar zmne yakn olmas hedeflenmelidir. Bir sorunun tabii kibirden fazla zm olabilir. Bu durumda bilgisayar ile en uygun zmseilmelidir. nk bazen pratik zmler bilgisayarlar iin uygunolmayabilir.

    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 akizgesi bu programlama dili aracl ile bilgisayar ortamna aktarlmaldr.

  • 7/31/2019 0Algoritma

    8/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 8

    Oluturulan program bir takm verilerle ve mmknse gerek ortamndatest edilir. Oluabilecek sorunlar ilgili ksmlar tekrar gzden geirilerekdzeltilir. Bu admlar defalarca gerekletirilmek zorunda kalnabilir.

    Program Nedir?

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

    Programlama Nedir?

    Problem zmnde anlatlan admlarn tmne birden programlamadenilebilir. Ancak gerekte ilk paragrafta anlatlan ksm ounlukla sistemanalizi veya sistem zmleme olarak anlatlr. Dier admlar Programlama

    diye tanmlanabilir. Ancak Son paragrafta anlatlan adma ksaca testaamas da denir.

    ounlukla ok iyi tanmlanm bir sorunun zmne dair admlar ilezmn oluturulup bunun bir programlama dili ile bilgisayar ortamnaaktarlmas Programlama diye adlandrlabilir.

    Algoritma Nedir?

    Bir sorunu zebilmek iin gerekli olan sral mantksal admlarn tmne

    denir. Doal dille yazlabilecei iin fazlaca formal deildir. Bir algoritmaiin aadaki ifadelerin mutlaka dorulanmas gereklidir.

    Her adm son derece belirleyici olmaldr. Hi bir ey ansa balolmamaldr.

    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 dilleyazlmad iin daha formal olduu dnlebilir.

    Programlama Dili Nedir?

    Bir Problemin Algoritmik zmnn Bilgisayara anlatlmasn salayan,

    son derece sk-skya kurallar bulunan kurallar dizisidir.

  • 7/31/2019 0Algoritma

    9/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 9

    Derleyici Nedir?

    Bir programlama dili ile bilgisayara aktarlan programn bilgisayarnanlayabilecei Makine Diline evirmeyi salayan ve yazlan programda szdizim 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 dilineeviren yazlmlardr. Bu tr bir yazlmda Programn Makine dili ileoluturulmu ksm bilgisayarda tutulmaz. Programn her altrlmasndaher adm iin Makine dili karlklar oluturulur ve altrlr.

  • 7/31/2019 0Algoritma

    10/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 10

    Yazlm GelitirmeYazlm Gelitirilirken Bir Programc ve Yazlm Gurubunun takip edeceiadmlar u ekildedir.

    Bu izgeden anlalaca gibi admlardan birinde bir sorunla karlalrsabu sorunu zebilmek iin bir nceki adma geri dnmek gerekecektir. Bugeri dn bazen bir ka adm olabilir.

  • 7/31/2019 0Algoritma

    11/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 11

    Sistem Analizi : Sorunun zlebilmesi iin tamamen anlalmasnsalayan almalardr.

    Tasarm: steklerle ilgili olarak belirlenen bir takm zmlerintanmlanmasdr.

    Programlama Stili: Her yiidin yourt yiyii farkldr. Ayn ekilde herprogramc programndaki mant farkl kurar bu her programcnn kendinezgn bir stili var anlamna gelir. Ancak bunun yannda Her programcnnprogramn sal bakmndan dikkat etmesi gereken eyler vardr.rnein kodlar ak olmaldr. Kullanlan deikenler kullanldklar amacanlatr tarzda isimlendirilmelidir. Program ii dokmantasyona mutlakanem verilmelidir.

    Algoritma: zmn admlarla ifade edilmesidir.

    Ak izgesi: Algoritmann ekillerle ifade edilmesidir.

    Programlama Dili Seimi: zmn netlemesinden sonra yaplacakilemleri kolay bir ekilde bilgisayar ortamna aktaracak dilin seilmesidir.nemli olan bu dilin zelliklerinin programc tarafndan iyi bilinmesidir.

    Programn Yazlmas: Seilen Programlama dilinin kurallar kullanlarakprogram yazlmaya balanr. bu amala ounlukla sade bir metin editrkullanlr. Baz durumlarda Syntax highlighting denilen bir zellie sahip

    olan daha akll editrler de kullanlabilir. Bazen de editr ile Programlamadilinin derleyicisinin, balaycsnn hatta hata ayklaycsnn i iebulunduu IDE (Integrated Development Environment) denilen trdederleyiciler kullanlr.

    Derleme: Programlama Dili ile yazlm programn yazm hatalarnn olupolmadnn kontrol edilmesini ve ara kod olarak Obje kodun retilmesinisalama admdr.

    Balama: Derlenmi ara kod dier ktphane ve para programlarlabirletirilerek Makine dilinde programn oluturulmas admdr. Ancak bazIDE ortamlarda ve derleyicilerde Derleme ve Balama bir btndr veberaberce halledilirler. Programcnn ayrca bir balama ilemi yapmasgerekmez ilemi yapmas gerekmez.

    altrma: Oluturulan Makine dili Programnn altrlmas admdr.Yukardaki admlarn hepsi yolunda gittiyse program sorunsuz olarakalabilmelidir.

    Test: Programn Mantksal olarak test edilmesini salar ve ierik olarakher ihtimal iin doru sonular retip retmediini kontrol etmenizi salar.

  • 7/31/2019 0Algoritma

    12/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 12

    Yaam Dngsnn Salanmas: Yukardaki Ak izgesi dikkat edilirseaslnda bir dngdr. Hatta test aamasnda sorun kmazsa bile Sorununtanmnda yani ihtiyalarda baz deiiklikler olursa admlar batan aatekrar incelenmek zorunda kalnr. Bu izgeye bir Yazlmmn YaamDngs de denilebilir. Bu izimde Yazlmn Bakm sreci gz nne

    alnmamtr.

  • 7/31/2019 0Algoritma

    13/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 13

    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 birtakm ifadelerden dolay karlalabilecek hatalardr. Dzeltilmesi sonderece basit hatalardr. Hatann bulunduu satr derleyici tarafndan raporedilir. Hatta baz derleyiciler hatann ne olduunu ve nasl dzeltilmesigerektiini dahi bildirebilirler. Bazen Syntax Error tipi hatalar Balamazamannda da ortaya kabilir.

    Eer bir derlemede Syntax Error alnd ise obje kod retilememitir

    demektir.Soru: Bir Derleyici hatann nasl dzeltileceini bildirebildiinegre kendisi niin dzeltmemektedir?

    Run-time Error: Programn altrlmas srasnda karlalan hatalardr.Programcnn ele almad bir takm aykr durumlar ortaya ktndaprogramn iletim sistemi tarafndan kesilmesi ile ortaya kar. Bu tiphatalarda hata mesaj ounlukla alan iletim sisteminin dili ile verilir.Eer bu tip hatalar kullanc ele almsa, program programcnn vereceimesajlarla ve uygun ekilde sonlandrlabilir.

    Bu tip hatalarn nerelerde ve hangi artlarda ortaya kabileceini bazenkestirmek zor olabilir. ounlukla iletim sistemi ve donanm kaynaklarile ilgili sorunlarda bu tip hatalar ortaya kar demitik. rnein olamayanbir dosya amaya almak, var olan bir dosyann zerine yazmayaalmak, olmayan bir bellek kaynandan bellek ayrtmaya almak,olmayan bir donanma ulamaya almak vs. vs. vs.

    Logical Error: Karlaabileceiniz en tehlikeli hatadr. Programlamamantnda bir takm eylerin yanl dnlmesinden kaynaklanr. Hata

    test aamasnda ortaya kar. Hesaplanmas gereken veya bulunmasgereken deerlerin eksik veya yanl hesaplanmas ile tespit edilir. Bu

  • 7/31/2019 0Algoritma

    14/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 14

    sorunun giderilebilmesi iin Tasarm hatta zmleme aamasna geridnlmesi gerekebilir. Bazen bu hatann nereden kaynaklandnbulabilmek ok zor olmaktadr.

    Bug: Logical Error diyebileceimiz Mantksal hatalara verilen adlar bug

    yani bcek diye de tanmlanm olabilir. Bu tip hatalar eer ok net deilve zamanla ortaya kabiliyor ise veya nedeni ok net olarakanlalamamsa bug diye adlandrlr. Gerek serbest yazlm gerek ticariyazlmlarn tmnde bug dediimiz mantksal hatalar bulunur. nkhatasz program yazabilmek ok zordur. lk seferde yazlan bir programntamamen hatasz olmasn beklemek son derece hataldr. Gnmzde enmehur yazlm firmalar bile yazlmlarnda bug olduunu kabul eder vezaman zaman bu buglar giderebilmek iin ya yazlmlarna yama yazlmretirler yada o yazlmn yeni bir versiyonunu piyasaya srerler.

    Debug: Mantksal hatalar giderebilmek ve yazlmdaki bug'lar bulabilmekiin yaplan ilemin addr. Genellikle yazlan programn adm adm vedenetim altnda altrlmasdr. Programn her admnda ilgilideikenlerin hangi deere sahip olduunu grmeyi salar. ve anormal birdurumu daha kolay izleyip bulmanz salar. Bu ilemi gerekletirebilmekiin baz IDE ortamlarnda debugger dediimiz yardmc komut veyayazlmlar bulunur.

  • 7/31/2019 0Algoritma

    15/39

  • 7/31/2019 0Algoritma

    16/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 16

    Bu algoritma gnlk hayattan bir rnek. Gerekte biz her iimizi algoritmikolarak yaparz ancak bunu farkna varmayz. Yukardaki algoritmayinceleyecek olursak bir kekin yaplmas iin gerekli tm admlar sra ile yeralm durumda. Geri algoritma anlatacamz konularn daha iyianlalabilmesi iin biraz farkl ele alnmtr ama gerek bir Pasta yapm

    aamasn ierir. Bu algoritma ve dier tm algoritmalar iin bilmemizgereken baz konular bulunmaktadr:

    Her adm son derece belirleyici olmaldr. Hi bir ey ansa balolmamaldr.

    Belirli bir sayda adm sonunda algoritma sonlanmaldr.

    Algoritmalar karlalabilecek tm ihtimalleri ele alabilecek kadar genelolmaldr.

    Algoritmada algoritmann genel ileyiini etkileyebilecek hi bir belirsizlikolmamaldr. (Bu rnekte yle bir belirsizlik var. Bir frnn yeteri kadarsna bilmesi hangi koula baldr, bu frn ne zaman alm olmaldr veka dereceye ayarlanm olmaldr. gibi...)

    Algoritmada baz admlar yer deitirebilir . Ancak bir ok admn kesinlikleyer deitiremeyeceini bilmeliyiz. Yanl sradaki admlar algoritmannyanl 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 iinyle bir problem zerinde dnelim: Bilgisayara verilecek iki sayytoplayp sonucu ekrana yazacak bir program iin algoritma gelitirmek

    isteyelim. Sorun son derece basit ancak sistem tasarmnn netyaplabilmesi iin sorun hakknda anlalamayan tm belirsiz noktalarakla kavuturulmaldr. rnein saylar bilgisayara nereden verilecek,Klavye, Dosya veya belki baka bir ortam. Bu ve buna benzer soru vetereddtleriniz varsa sorun sahibine bunlar sormal ve sistem analiziyapmalsnz.

    Sonra bulacamz zm algoritma haline dntrebiliriz.

    1. BALA2. A saysn oku3. B saysn oku4. TOPLAM=A + B ilemini yap5. TOPLAM deerini ekrana yaz6. SON

  • 7/31/2019 0Algoritma

    17/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 17

    Biraz daha karmak bir sorun yle olsun: Klavyeden girilecek iki saydanbyk olanndan kk olann karp sonucu ekrana yazacak program iin

    bir algoritma gelitiriniz.

    A. BALAB. A saysn okuC. B saysn okuD.Eer A byktr B SONUC=A-B

    Deilse SONUC=B-AE. SONUC deerini ekrana yazF. SON

    Gerekte bir algoritma genellikle ana blmden oluur. Bunlar :

    - Algoritmann giri ve ilk ilemlerinin yapld blm- Dngsel bir takm kodlarn olduu blm. Bu blm

    iterasyonlarla bir ilemin srekli tekrar edilerek sonucaulamay salayan blmdr.

    - Son ilemlerin yapld blmdr. Bu blm elde edilensonularn ekrana yazlmasn salayan blmdr.

    rnein birden Klavyeden girilen bir n deerine kadar saylar toplayan vesonucu ekrana yazan bir algoritmay gelitirelim. Bu amala Dngselkomutlar kullanabileceimizi dnelim. Hazrlayacamz algoritmalargnz modern programlama dillerinde kullanlmas pek uygun olmayanGOTO yani git komutunu iermeyecek ekilde tasarlayalm.

    1. BALA2. N OKU3. T=04. X=15. X

  • 7/31/2019 0Algoritma

    18/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 18

    Ak izgeleriBir algoritmann ekillerle grsel gsterimidir. Dikkat edildiyse algoritmadoal dille yazld iin herkes tarafndan anlalamayabilir ya da

    istenmese de baka anlamlar karlabilir. Ancak ak izgelerinde her birekil standart bir anlam tad iin farkl yorumlanp anlalamamasmmkn deildir. Bir algoritmann ifade edilebilmesi iin kullanlan ekillerve anlamlar unlardr:

    Bir algoritmann balad konumugstermektedir. Tek kl bir ekildir.

    Bir algoritmann bittii konumu gstermektedir.Tek girili bir ekildir.

    Bir algoritmada aritmetik ilem yaplmasnsalayan ekildir. Bu drtgen kutu ierisineyaplmak istenen ilem yazlr. Tek girili ve tekkl bir ekildir.

    Algoritmada bir bilginin ekrana yazlacakonumu gsteren ekildir. Ekrana yazlacakifade ya da deiken bu ekil ierisine yazlr.

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

    Klavyeden Bilgisayara bilgi girilecek konumubelirten ekildir. Girilecek bilginin hangideikene okunacan kutu ierisineyazabilirsiniz.

  • 7/31/2019 0Algoritma

    19/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 19

    Giri k komutunun kullanlaca yeri belirlerve kutu ierisine hangi deikeni ve OKU mamYAZ m yaplacan belirtmeniz gerekir

    Bilginin Yazcya yazlaca konumu gsterenekildir.

    Bir algoritmann birden fazla alana yaylmas

    durumunda balant noktalarn gsterenekildir. Tek girili veya tek kl olarakkullanlrlar.

    Bir ilemin belli bir sayda veya belli bir kouldoru olduu srece tekrar edilmesini salayandng komutunu gsteren ekildir. Bu dngdealtgen ierisine ya koul yada dngnnbalang, adm ve sonlanma deerlerinibelirtebilirsiniz. DNG olarak belirlenen blokta

    da tekrar edilmek istenen komutlar yeralmaktadr.

    Bir algoritmada bir kararn verilmesini ve bukarara gre iki seenekten birininuygulanmasn salayan ekildir. buradaekenar drtgen ierisine kontrol edilecekmantksal koul yazlr. Program ak srasndakoulun doru olmas durumunda "Evet" yazlanksma Yanl olmas durumunda "Hayr" yazlanksma saplr. Tek girili ve ift kl bir ekildir.

    Programn bittii yer ya da yerleri gsteren birekildir.

  • 7/31/2019 0Algoritma

    20/39

  • 7/31/2019 0Algoritma

    21/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 21

    Aritmetik ve Mantksal ifadelerBir takm ilemlerin yaplabilmesi iin aritmetik ilemlerin nasl

    tanmlandn bilmeniz gerekecek. Program aknn doru bir ekildesalanabilmesi iin baz yerlerde karar verilmesi gereklidir. Bu kararlarnverilmesini salayacak Mantksal ifadeler bilgisayarlar tarafndanyaplabilmelidir.

    Aritmetik fadeler

    Bir programn istenilen ileri yerine getirebilmesi iin hesap yapabilmesi vebu hesaplar sonucunda elde edilen deerleri saklayabilmesigerekmektedir. Genel olarak tm programlama dillerinde aritmetikilemler 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 ifadeeder. Aritmetik Operatr ise aritmetik ilemin zn oluturan bir iletir.

    Aritmetik Operatr

    Ksaca drt ilem olarak da ifade edebileceimiz ilelerdir. ounlukladrt 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 bulunursabu 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 standartolmayan operatrler yar alabiliyor.

  • 7/31/2019 0Algoritma

    22/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 22

    Aritmetik Operand

    Aritmetik ifadelerde ileme giren taraflarn her birine aritmetik operandyani aritmetik ilenen denir. yukardaki tanmda Deer|Deiken ikilisininher biri ilenen yani operand tanmn salar. Bir aritmetik ifade de bir ift

    operand ve bir operatr minimum olmas gereken ifadelerdir. Ancak dahafazla 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 deikeneaktarlr. Bu ilem ounlukla "=" sembol ile gerekletirilir. Ancak bakabir komut, sembol veya ifade ile de bu deer aktarlmas yaplabilir.

    Mantksal ifadelerBir deerin baka bir deer ile karlatrlmas sonucu doru veya yanlsonu elde edebilen ifadelerdir.

    Mantksal operatrler ve karlatrma operatrlerinin deiik alternatiflerlebir 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 salayansembollerdir.

    = ki deerin eit olup olmad karlatran iletir.

    >, >=ki deerden soldakinin sadakine oranla byk olup olmadnveya byk eit olup olmad kontrol eden operatrdr.

  • 7/31/2019 0Algoritma

    23/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 23

    Birden fazla mantksal karlatrma deyiminin birletirilmesini salayanilelerdir. VE, VEYA gibi ifadelerdir. Bu operatrler mantksal ifadelerdeniki veya daha fazlasnn mantksal doruluk tablolarna grebirletirilmesini salar.

    VEYA iin doruluk tablosu

    P Q P VEYA QD D DD Y DY D DY Y Y

    VE iin doruluk tablosu

    P Q P VE QD D DD Y YY D YY Y Y

    Son mantksal operatr DEL operatr olup tek ilenen alr ve aldilenenin mantksal deilini alr. Yani doru olan deeri yanla yanl olandeeri doruya evirir.

    P DEL(P)D YY D

    rnein bir deiken iindeki deerin 1 ile 10 arasnda olup olmadnkontrol eden ifade u ekildedir: (A>=1 VE A=1 VE A=1 VEYA A

  • 7/31/2019 0Algoritma

    24/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 24

    Deiken ve Dizi TanmlamaBilgisayarda yaplacak hesaplar sonucu elde edilecek deerleri ve dardanbilgisayara girilecek deerler deikenlerde tutulur. Deikenler ilerinde

    tuttuklar deerlerin trlerine gre snflandrlr. Bu deikenler bazenbasit ekilde olmaz kayt yapsnda ya da dizi yapsnda olabilirler.

    Sabit Nedir?

    Programn her yerinde ayn deeri ifade eden deerlerdir. Deikenlerdeolduu gibi sabitler de tr kavramna sahiptir. Yazl tarzna bakaraksabitin trn anlamak mmkndr.

    Tam Say Sabitleri

    Sadece rakamlardan oluan ifadelerdir. Bu tip saylarn ierisinde sadecerakam ve gerekiyorsa iaret sembol olabilir. Aritmetik ilemleregirebilirler. (12, 1233, -3422 gibi)

    Kesirli Say Sabitleri

    Rakam ve ondalk ayrac olarak . (nokta) sembol kullanlabilir. ayrcaiaret 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 deikenlerikutu olarak sembolize ederek zmlemek mmkndr. Deikenler desabitlerde olduu gibi trlere sahiptir. Sabitlerdeki trler aynen geerlidir.

    Dizi Nedir?

    Baz durumlarda kullanm amac ayn olan birden fazla hatta olduka fazlasayda deikene ihtiya bulunur. Bu tip bir durumda bu deikenler tektek tanmlanmak yerine bir ad altnda indisle tanmlanrlar. bu tanma dizi

    denir. Baz sorunlarn zm iin bu tanmlar zorunludur. Mesela 1000sayy sralamak iin basit deiken tanmlama ilemi baarsz olacaktr.

  • 7/31/2019 0Algoritma

    25/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 25

    Veya bir snf listesinin tmn bilgisayarda tutmak isterseniz basitdeikenler uygun deildir.

    ounlukla bu tip bir tanmda dizinin bir ad vardr. Erimek istediinizdizinin 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 gibiisimlendirilir. Bunun bize salayaca avantaj indis deerlerinindeikenlerle ifade edilebilmesinde yatmaktadr. Yani tek bir satr komutile tm dizi elemanlar mesela ekranda yazdrlabilir.

  • 7/31/2019 0Algoritma

    26/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 26

    Algoritma altrmaBazen Bir takm algoritmalarn ne ie yaradn anlamak veyaalgoritmann doru alp almadn test etmek iin algoritmay

    altrmak gereklidir. Algoritmay altrmak demek algoritmannadmlarn sra ile uygulamak, oluan deiken deerlerini bir tablozerinde gstermek demektir.

    1. BALA2. A OKU3. B OKU4. C OKU5. TOP=06. SAY=A7. SAY

  • 7/31/2019 0Algoritma

    27/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 27

    Say SistemleriBir Bilgisayar sisteminde tm bilgi kaytlar ve ilemleri elektriksel devrelerzerinden gerekletii iin tek bilinen gerek elektrik akmnn varl

    veya yokluudur. Bu da matematiksel ve mantksal olarak ikili saysistemine karlk gelir. ounlukla ikili say sistemindeki 0 deeri elektrikolmadn 1 deeri ise bir elektriksel gerilimin olduunu anlatr. Bu ikisaysal deer (0 ile 1) ikili say sisteminin rakamlardr. Ve bilgisayardaoluan tm deer ve sonular gerekte bu rakamlar ile anlatlabilirler.Ancak bizim bu saysal deerleri anlamamz zor olduu iin saysal olarakonluk say sistemini kullanrz.

    Tabandan Tabana evrim

    Byle olunca saylarn gerektii durumlarda tabandan tabanaevrilebilmesi gereklidir. lkrenim dzeyinde grm olabileceinizyntemlere 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 olmakkaydyla tm basamaklarmz sola doru numaralandrlr. Sonra her

    basamaktaki saysal deeri 2basamak deeri ile arpar ve bulunan tmdeerleri toplarz.

    7 6 5 4 3 2 1 0

    1 0 0 1 1 0 1 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 ilemien son blmn 0 olduu noktaya kadar devam eder. Elde edilen blmetablosunda en son kalanlar sondan baa doru yan yana yazlr ve saynnikilik tabandaki karl bulunmu olur.

  • 7/31/2019 0Algoritma

    28/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 28

    rnein elimizde 156 gibi saysal bir deer olsun.

    lem Blm Kalan155 / 2 77 177 / 2 38 1

    38 / 2 19 019 / 2 9 19 / 2 4 14 / 2 2 02 / 2 1 01 / 2 0 1

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

    Dier Say Sistemleri

    0..X eklinde bir dizi rakama sahip olan say sistemleri X+1li say sistemiolarak anlr. rnein 0..7 arasnda rakamlarla ifade edilen say sistemi 8lisay sistemidir. Bunun gibi bir programcnn bilmesi gerekebilecek 16lisay sistemi vardr. Bu sistemde saylar 0..9a kadar gider ve sonrasndaA,B,C,D,E,F gibi rakamlar da 10,11,12,13,14,15 gibi deerleri ifade etmekiin kullanlr.

    Bu say sistemleri haricinde 3l, 5li vb sistemler bulunabilir/bulunur.

    Ancak bir bilgisayar programcs ikili, sekizli, onlu, onaltlk sistemlerikullanr ve bu sistemlerden haberdardr.

  • 7/31/2019 0Algoritma

    29/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 29

    Veri lemeBilgisayarmzda anlatmak, grmek, duymak istediimiz her bilgi veyamedya bilgisayar ortamnda saysal olarak saklanr. Bunlarn zerinde

    yapacanz ilemlerin ou da aslnda matematiksel veya mantksalilemlerdir. rnein bir izim bilgisayarda nokta nokta saklanr. ki boyutlubir dzlem zerinde (0,0) koordinatndaki noktann rengi saysal olarakverilir. rnein bu deer 0 ise renk siyah 65555 ise renk beyazdr. Busaysal deeri deitirerek (0,0) koordinatndaki noktann renginideitirmi olursunuz.

    Aynen bu ekilde tm bilgiler bilgisayar ortamnda uygun saysal verilereklinde tutulur. Yaplacak ilemler bu verilerin zerinde matematiksel yada mantksal yollarla yaplan ilemlerdir. Bir resmin bytlp

    kltlmesi resimlerin zerine efekt eklenmesi, seslere efektlerineklenmesi, video grntlerinde istenilen ekleme ve karmalarnyaplmas, bir nesnenin boyutlu grntsnn elde edilip hareketkazandrlmas gibi onlarca konu veri ileme esaslarna dayananhesaplamalarla elde edilir. Bu tip kavramlarn her biri iin internettenalgoritma vb. aratlp kullanlabilir.

  • 7/31/2019 0Algoritma

    30/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 30

    Algoritma rnekleri ve Sorular1. Soru

    Klavyeden girilecek X deerinden N deerine kadar tm doal saylarlisteleyen algoritmay gelitiriniz.

    zm: X deikeni ve N deikeni klavyeden girilecek olup Xden Nekadar elde edilecek her bir deer ekrana yazlacaktr.

    1. X OKU2. N OKU3. X

  • 7/31/2019 0Algoritma

    31/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 31

    3. SoruKlavyeden girilen bir saynn tm tam blenlerini bulup listeleyen (Ekranayazan) bir algoritma gelitiriniz.

    zm: Bu rnei zebilmek iin bleni kalma operatrnn varlnkabul edeceiz. Bu amala C dilinde de kullanlan % operatrn kalanbulma operatr olarak kullanacaz.

    1. N OKU2. X=13. XB VE B>C SE B YAZ3. EER C>B VE B>A SE B YAZ4. EER B>A VE A>C SE A YAZ5. EER C>A VE A>B SE A YAZ6. EER A>C VE C>B SE C YAZ7. EER B>C VE C>A SE C YAZ8. SON

    5. SoruKlavyeden girilen A ve B gibi iki saynn blme ilemi kullanmadan sadecetoplama ve karma kullanarak kalanl blme yapan algoritmay yaznz.

    zm: Bu rnek ok eski ilemcilerde arpma ileminin tanml olmaddurumlar iin arpma ya da blme yapmak amacyla kullanlan algoritmaolarak karmza kmtr. lk okulda da fasulye hesabna dayanarakarpmay rendiimiz yllar hatrlamamz salayabilir.

  • 7/31/2019 0Algoritma

    32/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 32

    1. A,B OKU2. BOLUM=03. KALAN=04. A

  • 7/31/2019 0Algoritma

    33/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 33

    1. T=02. SAY=03. X OKU4. X0 olduu srece tekrar et

    a.T=T+Xb. SAY=SAY+1

    5. DNG SONU6. ORT=T / SAY7. ORT YAZ

    8. SoruKlavyeden girilecek 20 saynn tek olanlarn ayr ift olanlarn ayr toplaypsonular ekrana yazan algoritmay gelitiriniz

    zm: Bu algoritmada yine % operatrnn kalan bulan operatr olarakkullanlacan varsayyoruz. nk bu algoritmada bir saynn ift mi tekmi olduunu anlamak ancak ve ancak o saynn ikiye blmnden kalann1 mi 0 m olduuna baldr

    1. CIFT=02. TEK=03. SAY=04. X OKU5. SAY=SAY+16. EER X%2=0 SE CIFT=CIFT+X

    DELSE TEK=TEK+X7. SAY=SAY+18. EER SAY

  • 7/31/2019 0Algoritma

    34/39

  • 7/31/2019 0Algoritma

    35/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 35

    1. N OKU2. X=13. X

  • 7/31/2019 0Algoritma

    36/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 36

    Bu ilem srasnda ve yineleme zelliklerini kullanarak iki saynn OBEBinibulunuz. Kalan bulmak iin % operatrnn tanml olduunu varsaypkullanabilirsiniz.

    zm:

    1. A, B OKU2. KALAN=A%B3. KALAN0 olduu srece tekrar et

    a. A=Bb. B=KALAN

    4. DNG SONU5. B YAZ

    14.SoruCos(x)= L

    !8!6!4!21

    8642xxxx

    ++ eklinde tanmlanm bir Cos alm fonksiyonu

    iin X deeri klavyeden girilmektedir. lk 10 terim iin COS fonksiyonununsonucunu hesaplayp ekrana yazacak algoritmay gelitiriniz. Bualgoritmay gelitirirken standart ilemlerden baka fak(n), s(taban,s)

    eklinde tanml fonksiyonlarn kullanabilirsiniz.zm:

    1. X OKU2. TERM=13. KS=24. F=15. ARET=-16. TERM

  • 7/31/2019 0Algoritma

    37/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 37

    zm: Burada anlatlmak istenen herhangi bir ift deikenin iindekideerleri yer deitirmektir. Birok programda bu tarz ilemler ihtiyaduyulur. rnein birinci deerin ikinci deere gre her zaman bykolmasn salayan bir algoritma sz konusu ise burada aadakine benzerbir yntem kullanlmaldr.

    1. A, B OKU2. TMP=A3. A=B4. B=TMP5. A, B YAZ

    16.Soru

    Klavyeden girilen bir n deerini ikilik say sistemine evirip ekrana yazacakalgoritmay gelitiriniz.

    zm: Bu algoritma bir takm zel deikenler ve yntemlerkullanmadan tam olarak doru bir ekilde istenilen grevi yerinegetiremeyecektir. Bu amala biz dizi deikenleri kullanabileceimizidnerek bu algoritmay oluturmaya alacaz.

    1. N OKU2. INDIS=73. N>1 olduu srece tekrar eta. KALAN=N%2

    b. IKILI[INDIS]=KALANc. N=N/2d. INDIS=INDIS-1

    4. DNG SONU5. IKILI[INDIS]=N6. INDIS=07. INDIS

  • 7/31/2019 0Algoritma

    38/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    10/16.02.2012 09:52:00 38

    zm: Varsaym u olmaldr: Kalan bulma operatrnn varl birvarsaymdr. nk byle bir operatr her programlama dilindeolmayabilir.

    1. SAYI OKU2. EER SAYI%2=0 SE Tek YAZ

    DELSE ift YAZ

    18.SoruKlavyeden girilen iki say ve bir operatre gre ilem yapp sonucu ekranayazan algoritmay tasarlaynz.

    zm:

    1. A,B OKU2. OP OKU3. EER OP=+ SE C=A+B4. EER OP=- SE C=A-B5. EER OP=* SE C=A*B6. EER OP=/ SE C=A/B7. C YAZ

    19.SoruKlavyeden girilen kesirli bir deeri a/b eklinde rasyonel ifade olarakekrana yazabilecek algoritmay gelitiriniz.

    zm: Bu algoritmay yazabilmek iin kk bir varsaymmz olacaktr.Bu varsayma gre programlama dilinde rnein ad TAM olan ve birsaysal deerin tam ksmn bulan bir fonksiyona ihtiya vardr.

  • 7/31/2019 0Algoritma

    39/39

    Programlamaya Giri ve Algoritmalar Ders Notu

    1. X OKU2. PAY=X3. PAYDA=14. PAYTAM(PAY) olduu srece tekrar et

    a.PAY=PAY*10b. PAYDA=PAYDA*10

    5. DNG SONU6. EER PAY%2=0 VE PAYDA%2=0 SE

    a. PAY=PAY/2b. PAYDA=PAYDA/2c. 6. ADIMA GT

    7. EER PAY%5=0 VE PAYDA%5=0 SEa. PAY=PAY/5b. PAYDA=PAYDA/5c. 7. ADIMA GT

    8. PAY, PAYDA YAZ

    20.SoruKlavyeden girilecek bir harfi byk harfe evirip ekrana yazan algoritmaygelitiriniz.

    zm: Bu konu ile ilgili algoritma yazabilmek iin ASCII kmesidediimiz bir kme hakknda bilgi sahibi olmamz gerekiyor. B kmebilgisayarnz tarafndan kullanlan tm karakterlerin sakland bir listedir.Normalde saysal ilemler yapan bilgisayarnzn alfabetik karakterleri ifadeedebilmesi iin byle bir lise-kmeye ihtiya duyulur. Bu kmeninelemanlar birok kitapta liste olarak verilmitir her bir liste yesininnumaras 0 ile 255 arasndadr. Ve saysal olarak 65 dediimizde Aharfini ve mesela 97 dediimizde a harfini anlatm oluruz. Bu kmeincelendiinde harfler simetrik olarak belli bir blgede yer alrlar ve birharfin by ile k arasnda 32 gibi bir saysal fark vardr. Bykharfler 65 ile balar ve daha kk deerlere sahiptir. Kk harfler ise 97

    ile balar.

    1. HARF OKU2. EER HARF>=a VE HARF