Professional Documents
Culture Documents
(PROBLEM SOLVING)
Algoritma Temelleri
Bilgisayar, sadece programcnn kendisine syledii eyi nasl yapacan bilir. Bundan dolay programc bilgisayara problemi nasl zeceini bildirmelidir.
Bilgisayara nasl i yaptracak, nasl iletiim kuracaksnz? Bir Program ile. Bilgisayarlar program olmadan almazlar. Bilgisayarla, bir mantk araclyla iletiim kurabiliriz. Bu da algoritma (talimat, rutin, reete) ile olur.
Program yazma, zlm bir problemin bir bilgisayar dili ile kodlarn yazmaktr (kodlama). Bu, en son itir.
1. Problemi anlama
(Understanding, Analyzing),
(Designing), (Writing),
(Reviewing)
Polya, George (1957) How To Solve It, Princeton University Press, 2nd Edition
4. Test etme, hatalardan ayklama, kurma ve bakmn yapma (Testing, debugging, installing and maintenance)
Elinde bulunan veriler (Girdi-Input) Sonunda elde edilmek istenen (kt-Output) Girdileri hedeflenen ktya dntrecek ilem (process) belirlenir
rnek: 2 saatte 190 km yol alan arabann ortalama hz nedir? Output: saatte ortalama hz Input: gidilen mesafe ve sre Process: orthz = mesafe/sre
kt
(Output)
(Processing)
Girdi-lem-kt trne en iyi rnekler yemek tarifleridir. Malzemeler ve miktarlar, hazrlama piirme ve sonunda istenen yemek!
Algoritma
Algoritma
Algoritma, matematikte ve bilgisayar biliminde bir ii yapmak iin tanmlanan, bir balang durumundan baladnda, aka belirlenmi bir son durumunda sonlanan, sonlu ilemler (admlar) kmesidir. http://tr.wikipedia.org/wiki/Algoritma
1. Girdi: Sfr veya daha fazla deer dardan 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 basit olmaldr.
5.
6.
7. 8.
9.
Bala Saya = 0 (Saya'n ilk deeri 0 olsun) Sayy kullancdan al Toplam = Toplam + Say (Toplama sayy ekle) Saya = Saya + 1 (Saya'a 1 ekle) Saya < 4 ise 3. adma git. (Eer saya 4'ten kkse 3.adma git.) Ortalama = Toplam / 4 (Ortalama iin Toplam 4'e bl) Ortalama deerini ekrana yazdr. Dur
Algoritma
Algoritma sadece bilgisayar programlamada kullanlmaz.
Bir fabrika retiminin algoritmas, bir bro alma dzeninin algoritmas, bir planl gezinin algoritmas...
ay Yapma Algoritmas
1-Bala 2-aydanla Su Doldur. 3-aydanl Ocaa Koy. 4-Su kaynad m?(Hayr ise 4.Adm tekrardan sor.) 5-ay Demle(Yani demlikteki ayn iine kaynam su kat) 6-ay Demlendi mi?(Hayr ise 6.Adm tekrardan sor.) 7-Bitir
Ak diyagram iaretleri
Balama / Bitirme Balama / Bitirme
Yazma
Balant
Okuma Data
Gidi yn
Bl ve Ynet Metodu
ok byk problemleri paralara ayrarak daha kolay zeriz. zlecek kadar klttlen paralar mantkl bir sraya koyulur. Her para, ayr modller olarak zlr ve birbirine balanr (integration)
fade yaplar
Sral (Sequence) yaplar ilem hi satr atlamadan dorusal bir sra ile olur Karar (Decision) yaplar inde evet-hayr sorular soran ve cevaba gre farkl ynde farkl ilem yapan yaplar Eer koul doruysa bunu yap Koul salanmyorsa unu yap ( if then else)
fade yaplar
Dng (Looping) yaplar Bir art gerekleinceye kadar tekrar tekrar yaplan ilemler. rnek:
100 adet say girilinceye kadar Ortalama deer 80 oluncaya kadar
( for, while .. Vb)
ki say al
Program: Girilen iki saynn tek ve ift olduunu belirleyip yazma Pseudocode ki Say Al Eer say ift ise ift yaz Deilse (say tek ise) Tek yaz
Hayr
Evet
TEK
YAZ
FT
YAZ
Biti
Genel tler
Ak diyagramlar hazrlanmas zaman alc ve gncellenmesi zordur. Programlama eitiminde mantksal ak vermekte kullanlr, Profesyonel programclar szde kodlama ve eitli yazlm mhendislii yntemlerini tercih ederler.
Gerek kodlar yazlmadan nce taslak szde kodlarla oluturulur. Ayrntlara girilmeden, her programlama diline uygun bir yazmdr. rnein mili kilometreye dntren szde kod:
Deikenler
Programda verileri tutmak iin kullanlan en basit veri yaplardr. rn: x, y, sayac, toplam Deikenlere deer atanr X = 5 ( x deikenine 5 deerini ata)
RNEKLER
rnein klavyeden girilen iki saynn toplamn bulan ve sonucu ekrana yazdran programn algoritmas ve ak diyagram istenseydi. Deikenler
birinci say: x ikinci say :y iki saynn toplam:toplam
Algoritma
Adm 1 :Bala Adm 2:Birinci sayy oku ve x deikenine aktar. Adm 3:ikinci sayy oku ve y deikenine aktar. Adm 4:x ve y saylarn topla sonucu toplam deikenine aktar. Adm 5:Toplam deerini ekrana yazdr. Adm 6:Dur
Bir baba ve olunun yalar farkn bulan programn algoritmasn ve ak diyagramn tasarlaynz. Deikenler
babann ya: b olunun ya: o yalar fark: fark
Algoritma
1: 2: 3: 4: 5: 6:
Bala Babann yan gir.(b) Olunun yan gir.(o) fark=b-0 ilemini yap fark deikenini ekrana yaz. Bitir
Deikenler
lk say: x kinci say: y
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. say byktr 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
Bir saynn 2 ye blnd zaman 0 kalann verirse say ift 1 kalann verirse 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
Bilgiler
Bir saynn blmden kalann bulan matematiksel bir fonksiyon mevcuttur. Birok programlama dilinde de bu fonksiyon tanmlanmtr. Mod fonksiyonu: 6 mod 2 (6nn 2 ye blmnden kalan verir)
Algoritmas
Adm 1:Bala Adm 2:Herhangi bir say giriniz.(x) Adm 3:Eer x mod 2 =0 ise ekrana ift yaz deilse tek yaz. Adm 4:Bitir
5. Suyun Halleri
Girilen scaklk deerine gre bir suyun kat, sv ve gaz olma durumunu gsteren programn algoritmasn ve ak emasn tasarlaynz.
Bilgiler
Dolays ile bu soruda kullanc su scakln girdikten sonra belirli karlatrmalar yaparak karar vermemiz lazm.
Algoritma
Adm 1:Bala Adm 2:Scaklk deerini giriniz.(t) Adm 3: Eer t<0 ise Ekrana kat yaz. Adm 5e git. Adm 4: Eer t>0 ve t<100 ise ekrana sv yaz deilse gaz yaz. Adm 5: Bitir.
2.
3. 4. 5.
6. 7.
8.
Bala Sayac=1 : Toplam=0 : Aritmetik_Orta=0 Eer Sayac=100 ise Git 6 Toplam=Toplam+Sayac Sayac=Sayac+1 : Git 3 Aritmetik_Orta=Toplam/100 Aritmetik_Orta deerini yaz Dur.
Kaynaklar
Sorular?