PROBLEM ZME(PROBLEM SOLVING)nereden balamal ?
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.Bilgisayarn dili makine dilidir. Onunla makine mant ile iletiim kurabiliriz. Bu da algoritma (talimat, rutin, reete) ile olur.
Program yazma, zlm bir problemin bir bilgisayar dili ile kodlarn yazmaktr (coding). Bu, en son itir.Kodlamadan nce algoritma yazlmaldr.
Problem zme sras(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 Solve It, Princeton University Press, 2nd Edition
Problem zmenin Admlar (Steps in Solving a Problem)stenenler analizi (Requirements Analysis): Problemi btn boyutlar ile tanma ve ne yaplmas istendiini net olarak anlama, problem zlebilir mi?zm yolu bulma (Design): Bir zm yolu gelitirme ve algoritmasn yazma.Uygulama (Implementation): zm algoritmasn uygun bir program diline evirmeTest etme, hatalardan ayklama, kurma ve bakmn yapma (Testing, debugging, installing and maintenance)
Sonunda ne elde etmek istiyorsun (kt-Output)Elinde hangi ham veriler var (Girdi-Input)Girdileri istediin ktya dntrecek ilemi (process) belirlernek: 2 saatte 190 km yol alan arabann ortalama hz nedir?Output: saatte ortalama hzInput: gidilen mesafe ve sreProcess: orthz = mesafe/sre
Problem zme olgusunun grafiksel gsterimiGirdi-lem-kt trne en iyi rnekler yemek tarifleridir. Malzemeler ve miktarlar, hazrlama - piirme ve sonuda istenen yemek!Girdi(Input)lem(Processing)kt(Output)Monopoly oyununda zar attka sizi ynlendiren talimatlar (2 tur bekle, para de, 5 geri, 3 ileri git vs birer algoritmadr.
Algoritma (el-Harizmi teknii - Algorithm)Bir problemiz zerken adm adm ilemler yapma (rnein yemek yaparken)Doru zm iin doru srada atlmas gereken admlarBalang ve bitii belliSnrl sayda adm. Ne kadar uzun olursa olsun mutlaka bir sonu olmal.Her admda yaplacak ilemler ak ve kesin olmalEl-Harizmi. Kitab el-cebr vel-mukabele (Cebir denklemlerini zmenin kurallar)
Algoritma Algoritma sadece bilgisayar programlamada kullanlmaz.Bir fabrika retiminin algoritmas, bir bro alma dzeninin algoritmas, bir planl gezinin algoritmas...
Algoritmalar bilgisayar programna eviren teknik vardr:
Ak diyagram (Flowcharts)- Bir ii yapan mantksal admlar ve admlar aras geilerin grafiksel gsterimi. Satr algoritma (Pseudocode) Programn ana hatlarn ve admlarn gsteren ksa komutlar. Sradzeni grafii (Hierarchy charts) - Programn farkl paralarnn birbirleriyle ilikilerini gsterir.Hiyerari kartlarna ayn zamanda yap kartlarHIPO (Hierarchy plus Input-Process-Output) kartlarYukardan aa kartlarVTOC (Visual Table of Contents) kartlar da denir.Bunlar, kullanlacak programlama diline bal deildir.
Ak diyagram iaretleri (Flowchart symbols)Balama / BitirmeOkuma DataAritmetik, mantk ilemiart - KararVermeDngBilgi gstermeElle veri giriiBalama / BitirmeYazmaElle ilemBunlarn dnda rnein bilgisayar sisteminin iletilmesi iin farkl ak iaretleri de kullanlmaktadr
BalantGidi yn
Bl ve Ynet Metodu (Divide-and-conquer)ok byk problemleri paralara ayrarak daha kolay zeriz.zlecek kadar klttn paralar mantkl bir sraya koy.Her paray ayr modller olarak z ve birbirine bala (entegre olsun)
fade yaplar (Statement structure)Sral (Sequence) yaplar ilem hi satr atlamadan dorusal bir sra ile olurKarar (Decision) yaplar inde evet-hayr sorular soran ve cevaba gre farkl ynde farkl ilem yapan yaplarDng (Looping) yaplar Bir art gerekleinceye kadar tekrar tekrar yaplan ilemlerKoulsuz atlama (GOTO Programn bir yerinden baka satra atlama unconditional branch. Bu yapsal programlamada yok.
Balaki say al InputSaylar topla lemEkrana yaz OutputBitirEer art doru iseHayrEvet1.ilem admlar2.ilem admlarEer art doru iselem admlarEvetHayr
Bir saynn ift mi tek mi olduuAk diyagramPseudocodeProgram: Girilen iki saynn tek ve ift olduunu belirleyip yazmaSaylar alEer say tek ise Tek yazYoksa (say ift ise) iftEnd IfBalaki say al HayrEvet1.ilem admlar2.ilem admlarSay ift mi?Biti
ALGORTMA VE PROGRAMLAMAYA GR Prof.Dr.Mustafa ERGNGenel tlerAk diyagramlarnn hazrlanmas zaman alc ve gncellenmesi zordur. Programlama eitiminde mantksal ak vermekte kullanlr, ama profesyonel programclar szde kodlama ve hiyerari kartlarn tercih ederler.Gerek kodlar yazmadan nce taslak szde kodlarla oluturulur. Ayrntlara girilmeden, her programlama diline uygun bir yazmdr. MeselaInput MilesKilometers = Miles * 1.609Output Kilometers
ALGORTMA VE PROGRAMLAMAYA GR Prof.Dr.Mustafa ERGNHiyerari kartlarrgt emalar, kurulu emalar, soy aalar gibi. zm nesneleri arasndaki ilikiler, hangisi nereye bal.
Any Questions?Algoritma ne diyorsa onu yap! Ne eksik ne fazla!
********************