programlama temellerİ – ünİte 3 algorİtma · pdf file1 programlama temellerİ...

Download PROGRAMLAMA TEMELLERİ – ÜNİTE 3 ALGORİTMA · PDF file1 PROGRAMLAMA TEMELLERİ – ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin

If you can't read please download the document

Upload: vuongnhu

Post on 06-Feb-2018

238 views

Category:

Documents


5 download

TRANSCRIPT

  • 1

    PROGRAMLAMA TEMELLER NTE 3 ALGORTMA

    GR Bilgisayarlarn nemli bir kullanm amac, veri ve bilgilerin kullanlarak var olan belirli bir problemin zlmeye allmasdr. Bunun iin, bilgisayarlar sz konusu veri ve bilgiler zerinde matematiksel ve mantksal ilemleri gerekletirirler. Daha sonra da elde edilen sonular programc veya kullanclara sunulur. Ancak btn bunlarn olabilmesi iin ncelikle, ne yaplmak istendii, problemin ne olduunu, hangi veri veya bilgilerin kullanlaca, hangi ilemleri yaplaca, ne zaman yaplaca, nasl yaplaca, ne kadar yaplaca gibi sorularn cevaplanmas gerekmektedir. Bu nedenle bilgisayarda herhangi bir ilem gerekletirmeden ya da program yazmaya balamadan nce yukarda bahsedilen sorular belirli bir mantk ve plan erevesinde cevaplandrlmaldr. Bu cevaplarn szl ifadelerle alnmasn salayan btn ilemler bu nitenin konusunu oluturan Algoritma olarak kabul edilmektedir.

    Algoritma Mant

    Algoritma programlamaya balamadan nce gerekletirilmelidir. Algoritma

    oluturmann dikkat edilmesi gereken baz zellikleri olmasna karn bir programlama kodu gibi formata sahip deildir.

    Algoritma zellikleri Bir problemin zm yollarnn oluturulmas olarak kabul ettiimiz Algoritma oluturma, her ne kadar herhangi bir programlama diline bal olmakszn ve ok fazla kat kurallar olmadan gerekletirilebilecek sz dizimi olsa da, Algoritma olutururken dikkat edilmesi gereken baz zellikler sz konusudur. Bir algoritma oluturulduunda aadaki zelliklere sahip olmaldr.

    Algoritma Bala ve Dur ifadeleri arasnda, szl ifadelerle satr numaras verilerek dzenlenmelidir.

    Bir problemin zm iin sral olarak gerekletirilmesi gereken mantksal admlar algoritma olarak adlandrlabilir. Algoritma, programlamaya gemeden nce, yaplmas dnlen ilemlerin belirli bir mantk sralamas erevesinde szle ifade edilmesidir. Algoritma szl ifadelerden olutuu iin bu aamada herhangi bir programlama dilini bilmeye veya kullanmaya ihtiya duyulmaz.

    NT

    E

    4

    NTE

    3

  • 2

    Algoritmada nerilen zm yntemi mantksal bir sralamaya sahip olmaldr.

    Yukardaki algoritmada A2 ile A3 satrlarnn yerlerini deitirdiinizi dnn. Bu ekilde bir mant kurabilir misiniz?

    nerilen zmler, sade ve kesin olmal

    Yukardaki algoritmada X=5 art kesin bir ifadedir ve ilemler o arta bal olarak yrtlmektedir. Kafalarda phe oluturabilecek bir ifadenin algoritmalarda kullanlmamas gerekmektedir.

    Gerekletirilecek ilemler sonlu sayda ve srede olmaldr

    Yukardaki algoritmada X deikenine Algoritma ifadesi atanmtr. Ve X deikeninin 10 defa yazdrlmas istenmitir. Bu algoritma mantna gre X deikeninin tad deer olan Algoritma ifadesi 10 defa yazdrldktan sonra ilem sona erecektir. lemlerin biti noktalarnn belirli olmad algoritmalar doru kabul edilemezler.

    A1. Bala A2. Hava scakln gir A3. Blge adn gir . A18. Dur

    A1. Bala A2. Say deerlerini gir A3. Saylar Topla A4. Toplam yazdr A5. Dur

    A1. Bala A2. X ve Y deikenlerini tanmla A3. X=5 ise Ynin karesini yazdr A4. X5 ise Ynin karekkn yazdr A5. Dur

    A1. Bala A2. X deikenini tanmla A3. X=Algoritma A4. X deikenini 10 defa yazdr A5. Dur

  • 3

    Ayn ekilde bir algoritma herhangi bir ilemin belirli bir sre sonra sonlandrlmasn da dikkate almaldr.

    Grld gibi Algoritmada ilem iin 10 saniyelik bir snrlama getirilmitir.

    Algoritmada her satr ak ve eksiksiz olmaldr. fadeler dncede ikileme yol amamaldr.

    Matematiksel ve mantksal ilemler belirli bir dzen ierisinde sralanmaldr. lem srasnn yaplamas dnlen zel bir deiiklik algoritmada belirtilerek yaplmaldr.

    lemler amalanan zme uygun, yeterli ve en ksa ekli ile gerekletirilebilecek zellikte olmaldr.

    Algoritmalar, karlalabilecek tm ihtimalleri gz nne alacak ekilde detayl planlanmaldr.

    Problem Tanm

    Problem tanmlamas yaplrken u hususlara dikkat edilmelidir.

    Problemin kayna belirlenmelidir

    Problemi douran faktrlerin neler olduu tespit edilmelidir

    Problemi etkileyen faktrlerin neler olduu tespit edilmelidir

    Problemin ne olduu anlalmaya allmaldr

    Teorik olarak ktphanelerden veya dier kaynaklardan, deneysel olarak da laboratuvarlardan veya evreden bilgi toplanmaldr.

    Problemin ne olduu tam olarak anlaldktan sonra problemin zm iin snrlar belirlenmelidir

    A1. Bala A2. Zaman ve ifre deikenlerini tanmla A3. Zaman=10 saniye A4. ifre=123 A5. Eer zaman10 ise ilemi durdur A5. Dur

    nsan zihnini kartran, belirsizletiren her ey problem olarak tanmlanabilir. Problem, hakknda aratrma yaplacak, zerinde dnlecek ve zlmesi gereken sorundur.

  • 4

    Problem zm

    Herhangi bir problemin zm amacyla bilgisayar programlar hazrlanrken, mantksal bir ak gelitirilmeli ve sorunun zm plan oluturulmaldr. Bilgisayarda bir problemin zm plan aadaki sralamaya gre yaplmaldr.

    htiyalarn belirlenmesi

    htiyacn ne olduu tespit edilmelidir. Ne yaplmak isteniyor. Eksik olan veya yanl olan nedir. Neyi dzeltmek veya neyi yeniden dzenlemek istiyoruz. almayan veya dzgn gitmeyen sistem nedir ve onun yerine nasl bir sistem oluturulmaldr.

    Problemin Analizi

    Problemin ne olduu tam olarak anlalmaldr. zmden neler beklenildii, zm sonras elde edilecek ktlarn neler olaca kesin olarak belirlenmelidir.

    Problemin Tasarm

    Problemin zm admlar belirlenmelidir. Bu aamann en nemli noktasn algoritma ve ak emas oluturur. Amacn gereklemesine yardmc olacak iyi tasarlanm bir algoritma ve ak emas problemin zmne nemli katk salayacaktr. Tasarm srasnda algoritma ve ak emasnn yan sra programlamann gerekletirilecei programlama dilinin tespiti de yaplmaldr.

    Programlamann gerekletirilmesi

    Bilgisayarda uygulama yazlm gelitirmek iin x. nitede belirtildii gibi programlama dilleri kullanlr. Programlama dillerinin farkl zelliklere sahip olmalar nedeniyle, gelitirilecek uygulamann ihtiyalarn karlayabilecek uygun bir yazlmn seilmesi gerekmektedir. Bu aamada algoritmas ve ak emas hazrlanm olan zm plannn belirlenen programlama dili kullanlarak bilgisayar yazlmna dntrlmesi yaplmaldr.

    Test

    Problemin zm belirsizliklerin ortadan kaldrlmas demektir. Problemi zmek (belirsizlikleri ortadan kaldrmak) iin durumun analiz edilmesi, gerekli bilgilerin toplanmas, bunlardan zme gtrc olanlarn seilmesi ve seilen bilgilerin uygun biimde dzenlenerek kullanlmas gerekir.

  • 5

    Gelitirilen yazlm farkl girdiler kullanlarak ve farkl uygulamalar yaplarak test edilmelidir. Elde edilen ktlarn arzu edilen ktlar olup olmad, girdilerin ve ktlarn uyumluluu gzden geirilmelidir. Sonularn istenilen seviyede olmas durumunda test aamas tamamlanacaktr. Aksi halde oluan hatalar veya istenilmeyen sonular tekrar gzden geirilerek dzeltilmelidir.

    Bakm

    Gelitirilen yazlmda bir mddet sonra yaplmas gereken deiikliklerin yaplmas, yazlmn almas srasnda oluan donanm ve yazlm hatalarnn engellenmesi ve varsa oluan hatalarn giderilmesi gibi almalar bakm aamasnda gerekletirilir. Ayrca programn gncel koullara gre yeniden dzenlenmesi ve gerekiyorsa yeni eklemelerin yaplmas da bakm aamasnn ilgilendirir. Gerektiinde teknolojide meydana gelen gelimeler sonucunda yazlmn yeni teknolojiye adaptasyonu da bak aamasn ilgilendiren konulardandr.

    ekil 1. Algoritmalarda kullanlan operatrler

  • 6

    rnek Algoritmalar

    rn

    ek

    Klavyeden girilen iki saynn toplamn bulup yazdran algoritma.

    Saysal Operatrler

    Operatr ad Operatr simgesi

    Atama =

    Toplama +

    karma -

    arpma *

    Blme /

    s alma ^

    Tam say blme \

    Blmden kalan Mod

    Karakter Operatrler

    Operatr ad Operatr simgesi

    Birletirme +

    String toplama &

    Karlatrma Operatrleri

    Operatr ad Operatr simgesi

    Eit =

    Eit deil

    Kk <

    Byk >

    Kk eit =

    Mantksal Operatrler

    Operatr ad Operatr simgesi

    NOT Deil

    AND Ve

    OR Veya

  • 7

    rn

    ek

    Klavyeden girilen iki saydan byk olan bulup yazdran algoritma.

    Tart

    m

    a Yukardaki rnekte verilen algoritmada iki say yerine say olsayd algoritma nasl olurdu. Yani klavyeden girilen saydan byk olan bulup yazdran algoritma nasl oluturulabilir?

    Dncelerinizi sistemde ilgili nite bal altnda yer alan tartma forumu blmnde paylaabilirsiniz.

    rn

    ek

    Klavyeden girilen birinci say ile ikinci say arasnda kalan saylar yazdran algoritma.

    A1. Bala A2. S1, S2 ve Toplam deikenlerini tanmla A3. S1 ve S2 deikenleri iin say deerlerini gir A4. Toplam=S1+S2 A5. Toplam deikeninin deerini yazdr A6. Dur

    A1. Bala A2. X ve Y deikenlerini tanmla A3. X ve Y deikenleri iin say deerlerini gir A4. Eer X>Y ise X deikeninin deerini yazdr A5. Eer X

  • 8

    rn

    ek

    -1 deeri girilinceye kadar klavyeden girilen saylarn ortalamasn bulup yazdran algoritma.

    rn

    ek

    Klavyeden 1 ile 100 arasnda tam saylar girerek bilgisayar tarafndan tutulan bir tam sayy tahmin eden ve ve doru tahminin kanc denemede yapldn hesaplayan algoritma.

    A1. Bala A2. X ve Y deikenlerini tanmla A3. Birinci say; X deerlerini gir A4. kinci say; Y deerlerini gir A5. X=X+1 A6. X deikeninin deerini yazdr A7. Eer X

  • 9

    rn

    ek

    Tamasaylardan oluan 20 elemanl bir say dizisindeki pozitif ve negatif saylarn ortalamalarn bulan algoritma.

    A1. Bala A2. Tutulan, Girilen ve Sayac deikenlerini tanmla A3. Sayac=0 A4. Tutulan deikenine bilgisayar tarafndan rastgele bir say aktar A5. Girilen deikenine bir say gir A6. Sayac=Sayac+1 A7. Eer Tutulan=Girilen ise A9a git A8. Eer Tutulan < Girilen ise Daha kk bir say girin Yaz A9. A5e git A10. Eer Tutulan > Girilen ise Daha byk bir say girin Yaz A11. A5e git A12. Tutulan sayy & Sayac & .denemed