21 PL ProgramlamayaGirisAlgoritma TR

Embed Size (px)

Citation preview

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    1/48

    PROBLEM ZME(PROBLEM SOLVING)

    Algoritma Temelleri

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    2/48

    Kaynak: ALGORTMA VEPROGRAMLAMAYA GRProf.Dr.Mustafa ERGN

    Tasarm deiiklikleri ve ierikte ekleme-dzeltme/gncellemeler (Bkz. Kaynaklar)

    (Dr. Enis KARAARSLAN)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    3/48

    Bilgisayar, sadece

    programcnn kendisinesyledii eyi nasl

    yapacan bilir.

    Bundan dolay programc

    bilgisayara problemi nasl

    zeceini bildirmelidir.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    4/48

    Bilgisayara nasl i yaptracak,nasl iletiim kuracaksnz?

    Bir Program ile. Bilgisayarlarprogram olmadan almazlar.

    Bilgisayarla, bir mantkaraclyla iletiim kurabiliriz.

    Bu da algoritma (talimat,rutin, reete) ile olur.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    5/48

    Program yazma, zlm bir

    problemin bir bilgisayar diliile kodlarn yazmaktr

    (kodlama). Bu, en son itir.Kodlamadan nce

    ALGORTMAyazlmaldr.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    6/48

    Problem zme dngs(Problem Solving Cycle)

    1. Problemi anlama (Understanding, Analyzing),

    2. Bir zm yolu gelitirme (Designing),

    3. Algoritma ve program yazma (Writing),

    4. Tekrar tekrar test etme (Reviewing)

    Polya, George (1957) How To SolveIt, Princeton University Press, 2nd

    Edition

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    7/48

    1. Gereken Analizi (Requirements Analysis):Problemi btn boyutlar ile tanma ve neyaplmas istendiini net olarak anlama,problem zlebilir mi?

    2. Tasarm (Design): Bir zm yolu gelitirmeve algoritmasn yazma.

    3. Uygulama (Implementation): zmalgoritmasn uygun bir program dilineevirme

    4. Test etme, hatalardan ayklama, kurmave bakmn yapma (Testing, debugging,installing and maintenance)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    8/48

    Elinde bulunan veriler(Girdi-Input)

    Sonunda elde edilmekistenen

    (kt-Output)

    Girdileri hedeflenen

    ktya dntrecekilem (process) belirlenir

    rnek: 2 saatte 190

    km yol alanarabann ortalamahz nedir?

    Output: saatteortalama hz

    Input: gidilenmesafe ve sre

    Process: orthz =mesafe/sre

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    9/48

    Problem zme olgusunun

    grafiksel gsterimi

    Girdi-lem-kt trne en iyirnekler yemek tarifleridir.

    Malzemeler ve miktarlar, hazrlama -piirme ve sonunda istenen yemek!

    Girdi

    (Input)

    lem

    (Processing)

    kt

    (Output)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    10/48

    El-Harizmi.Kitab el-cebr

    vel-mukabele(Cebir

    denklemlerinizmeninkurallar)

    Algoritma

    Algoritma (el-Harizmi teknii -Algorithm)

    Bir problemin zm admlarnn

    (ilemlerin) belirlemesi

    http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritma
  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    11/48

    Algoritma

    Algoritma, matematikte ve bilgisayar

    biliminde bir ii yapmak iin tanmlanan,bir balang durumundan baladnda,

    aka belirlenmi bir son durumundasonlanan, sonlu ilemler (admlar)kmesidir.

    http://tr.wikipedia.org/wiki/Algoritma

    http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritma
  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    12/48

    Algoritmann SalamasGereken Kriterler

    1. Girdi: Sfr veya daha fazla deerdardan verilmeli.

    2. kt: En azndan bir deer retilmeli. 3. Aklk: Her ilem (komut) ak olmal

    ve farkl anlamlar iermemeli.

    4. Sonluluk: Her trl olaslk iin

    algoritma sonlu admda bitmeli. 5. Etkinlik: Her komut kiinin kalem ve

    kat ile yrtebilecei kadar basitolmaldr.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    13/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    14/48

    Kullancnn girdii drt saynn ortalamasngrntleyen algoritma

    1. Bala

    2. Saya = 0 (Saya'n ilk deeri 0 olsun)

    3. Sayy kullancdan al

    4. Toplam = Toplam + Say (Toplama sayy ekle)5. Saya = Saya + 1 (Saya'a 1 ekle)

    6. Saya < 4 ise 3. adma git. (Eer saya 4'ten kkse3.adma git.)

    7. Ortalama = Toplam / 4 (Ortalama iin Toplam 4'e bl)8. Ortalama deerini ekrana yazdr.

    9. Dur

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    15/48

    Algoritma

    Algoritma sadece bilgisayarprogramlamada kullanlmaz.

    Bir fabrika retimininalgoritmas,

    bir bro alma dzenininalgoritmas,

    bir planl gezinin algoritmas...

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    16/48

    ay Yapma Algoritmas

    1-Bala2-aydanla Su Doldur.3-aydanl Ocaa Koy.4-Su kaynad m?(Hayr ise 4.Adm

    tekrardan sor.)5-ay Demle(Yani demlikteki ayn iinekaynam su kat)6-ay Demlendi mi?(Hayr ise 6.Admtekrardan sor.)7-Bitir

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    17/48

    Algoritma Gsterim ekilleri

    Ak diyagram (Flowcharts): Bir ii yapanmantksal admlar ve admlar aras geileringrafiksel gsterimi. Szde kod / Satralgoritma (Pseudocode):

    Programn ana hatlarn ve admlarn gsteren ksakomutlar.

    Sradzeni grafii (Hierarchy charts): Programnfarkl paralarnn birbirleriyle ilikilerini gsterir.

    Bunlar, kullanlacak programlama

    dilinden bamszdr..

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    18/48

    Ak diyagram iaretleri

    Balama /Bitirme

    Okuma

    Data

    Aritmetik,mantk

    ilemi

    art -KararVer

    me

    Dng

    Bilgigsterme

    Elle verigirii

    Balama /Bitirme Yazma

    Elle ilem

    Balant

    Gidiyn

    Dier

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    19/48

    Bl ve Ynet Metodu

    ok byk problemleri paralaraayrarak daha kolay zeriz.

    zlecek kadar klttlen

    paralar mantkl bir sraya koyulur. Her para, ayr modller olarak

    zlr ve birbirine balanr

    (integration)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    20/48

    fade yaplar

    Sral (Sequence) yaplar ilem hisatr atlamadan dorusal bir sra ileolur

    Karar (Decision) yaplar indeevet-hayr sorular soran ve cevabagre farkl ynde farkl ilem yapanyaplar

    Eer koul doruysa bunu yapKoul salanmyorsa unu yap

    ( if then else)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    21/48

    fade yaplar

    Dng (Looping) yaplar Bir artgerekleinceye kadar tekrar tekraryaplan ilemler. rnek: 100 adet say girilinceye kadar Ortalama deer 80 oluncaya kadar

    ( for, while .. Vb)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    22/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    23/48

    Szde Kod rnek 1

    Ak diyagram Program: Girilen ikisaynn tek ve iftolduunu belirleyipyazma

    Pseudocodeki Say Al

    Eer say ift ise

    ift yazDeilse (say tek ise)

    Tek yaz

    Bala

    ki say al

    Hayr Evet

    FT

    YAZ

    TEK

    YAZ

    Say iftmi?

    Biti

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    24/48

    Genel tler Ak diyagramlar

    hazrlanmas zaman alc vegncellenmesi zordur.

    Programlama eitiminde mantksal

    ak vermekte kullanlr, Profesyonel programclar szde kodlama

    ve eitli yazlm mhendisliiyntemlerini tercih ederler.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    25/48

    Szde Kod (Pseudo Code)

    Gerek kodlar yazlmadan nce taslakszde kodlarla oluturulur.

    Ayrntlara girilmeden, her programlama

    diline uygun bir yazmdr. rnein mili kilometreye dntren

    szde kod:Input MilesKilometers = Miles * 1.609Output Kilometers

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    26/48

    Deikenler

    Programda verileri tutmak iinkullanlan en basit veri yaplardr.

    rn: x, y, sayac, toplam

    Deikenlere deer atanr

    X = 5 ( x deikenine 5 deerini ata)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    27/48

    RNEKLER

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    28/48

    1. Klavyeden Girilen ki SaynnToplamn Bulan Prog

    rnein klavyeden girilen iki saynntoplamn bulan ve sonucu ekranayazdran programn algoritmas ve

    ak diyagram istenseydi. Deikenler

    birinci say: x

    ikinci say :y iki saynn toplam:toplam

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    29/48

    Algoritma

    Adm 1 :Bala

    Adm 2:Birinci sayy oku ve x deikenineaktar.

    Adm 3:ikinci sayy oku ve y deikenineaktar.

    Adm 4:x ve y saylarn topla sonucu

    toplam deikenine aktar. Adm 5:Toplam deerini ekrana yazdr.

    Adm 6:Dur

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    30/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    31/48

    2. Baba oul ya problemi

    Bir baba ve olunun yalar farknbulan programn algoritmasn veak diyagramn tasarlaynz.

    Deikenler babann ya: b

    olunun ya: o

    yalar fark: fark

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    32/48

    Algoritma

    Adm 1: Bala

    Adm 2: Babann yan gir.(b)

    Adm 3: Olunun yan gir.(o) Adm 4: fark=b-0 ilemini yap

    Adm 5: fark deikenini ekrana yaz.

    Adm 6: Bitir

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    33/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    34/48

    3. Girilen 2 saydan byk olanekrana yazdran program

    Girilen iki saydan byk olan ekranayazdran program

    Deikenler lk say: x

    kinci say: y

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    35/48

    Algoritma

    Adm 1: Bala

    Adm 2:Birinci sayy kullancdan al.(x)

    Adm 3:kinci sayy kullancdan al.(y)

    Adm 4:Eer x>y ise ekrana 1. saybyktr yaz. Adm 7ye git.

    Adm 5:Eer y>x ise ekrana 2. say

    byktr yaz. Adm 7ye git. Adm 6:Ekrana saylar birbirine eittir yaz.

    Adm 7:Bitir

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    36/48

    4 Girilen bir saynn tek mi ift

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    37/48

    4. Girilen bir saynn tek mi iftmi olduunu tespit eden prog

    Bir saynn 2 ye blnd zaman 0kalann verirse say ift 1 kalannverirse say tek olduu bilgisini

    hatrlatmamz lazm. 5 says tek mi ift mi?

    5 i 2 ye blersek kalan 1 - Tek

    18 says tek mi ift mi ? 18 i 2 ye blersek kalan 0 ift

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    38/48

    Bilgiler

    Bir saynn blmden kalann bulanmatematiksel bir fonksiyonmevcuttur. Birok programlamadilinde de bu fonksiyontanmlanmtr. Mod fonksiyonu:

    6 mod 2 (6nn 2 ye blmnden

    kalan verir)

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    39/48

    Algoritmas

    Adm 1:Bala

    Adm 2:Herhangi bir say giriniz.(x)

    Adm 3:Eer x mod 2 =0 ise ekranaift yaz deilse tek yaz.

    Adm 4:Bitir

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    40/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    41/48

    5. Suyun Halleri

    Girilen scaklk deerine gre birsuyun kat, sv ve gaz olmadurumunu gsteren programn

    algoritmasn ve ak emasntasarlaynz.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    42/48

    Bilgiler

    imdi soruyu zmeden nce kimyakonularn biraz hatrlayalm. Su sfr derecenin altnda kat,

    0-100 derece arasnda ise sv, 100 dereceden fazla ise gaz halinde

    bulunur.

    Dolays ile bu soruda kullanc suscakln girdikten sonra belirlikarlatrmalar yaparak kararvermemiz lazm.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    43/48

    Algoritma

    Adm 1:BalaAdm 2:Scaklk deerini giriniz.(t)Adm 3: Eer t0 ve t

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    44/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    45/48

    6. lk 100 saynn Toplam

    1. Bala2. Sayac=1 : Toplam=0 :

    Aritmetik_Orta=0

    3. Eer Sayac=100 ise Git 64. Toplam=Toplam+Sayac

    5. Sayac=Sayac+1 : Git 3

    6. Aritmetik_Orta=Toplam/100

    7. Aritmetik_Orta deerini yaz

    8. Dur.

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    46/48

  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    47/48

    Kaynaklar

    http://www.dahiweb.com/algoritma-nedir

    http://tr.wikipedia.org/wiki/Algoritma

    http://www.ozgurlukicin.com/atolye/algori

    tma-ve-akis-diyagramlari-1/ http://cyber-

    warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwx

    http://www.dahiweb.com/algoritma-nedirhttp://tr.wikipedia.org/wiki/Algoritmahttp://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://cyber-warrior.org/Forum/orneklerle-algoritma-ve-akis-diyagrami_358092,2.cwxhttp://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://www.ozgurlukicin.com/atolye/algoritma-ve-akis-diyagramlari-1/http://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://tr.wikipedia.org/wiki/Algoritmahttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedirhttp://www.dahiweb.com/algoritma-nedir
  • 7/30/2019 21 PL ProgramlamayaGirisAlgoritma TR

    48/48

    Sorular?