Professional Documents
Culture Documents
Dersin erii
Temel Kavramlar ve Tanmlar Problem zme ve Algoritmalar Szde Kod ve Ak Diyagram Uygulamar(Sralama, arama, ..) Programlama Dillerine Giri, Temel Kavramlar MATLAB Program Temel Komutlar, Koul ve Dng Komutlar, Vektr lemleri Grafik Komutlar, Dosya lemleri MATLAB Program ile GUI Hazrlama MATLAB Toolboxlar ve erikleri MATLAB Simulinki Kullanma MATLABte eitli Uygulamalar
20.10.2010 Algoritma ve Programlama 2
1.BLM
Temel Kavramlar ve Tanmlar
Bilgisayar
Verilen bilgileri saklayan, gerektiinde bu bilgileri hzl bir ekilde istenilen amaca uygun kullanmay salayan/ileyen, mantksal ve aritmetiksel ilemleri ok hzl biimde yapan bir makinedir. Bilgisayar terimi ngilizce computer kelimesinin dilimize evrilmi halidir. Bu terim de Latince compurate kelimesinden gelmektedir.
20.10.2010
Algoritma ve Programlama
Bilgisayarlarn Geliimi
Mekanik a
Blaise Pascal (1642) Vites tabanl toplama makinas
Gottfried Wilhelm von Leibniz (1670) Toplama, karma, arpma, blme Mekanik olarak sk sk arzalanrd.
20.10.2010
Algoritma ve Programlama
Bilgisayarlarn Geliimi
Algoritma ve Programlama
Bilgisayarlarn Geliimi
Algoritma ve Programlama
Bilgisayarlarn Geliimi
Elektro-mekanik a (1840 1940)
Hermann Hollerith ( 19uncu yzyln sonlar) Amerikan oy saymlarna kullanld. Elektrik ile alyor. Bilgi punch card ile veriliyor.
Bilgisayarlarn Geliimi
Howard Aiken + IBM + Harvard (1930) Veri depolama: Mekanik rle telefon anahtarlar (switch) Girdi: Punch Card
Mark I
Bilgisayarlarn Geliimi
lk yazlm Bug
Grace Hopper (1909 1992) Mark Iin ilk programclarndan. Derleyicinin mucidi.
20.10.2010
Algoritma ve Programlama
10
Bilgisayarlarn Geliimi
Elektronik a (1840 Bugn)
Elektronik ile ilgili ilk deneylerin vakum tplerinde yaplan almalar olduu kabul edilir. Heinrich Geissler (1814-1879), cam tpn iinden havann ounu kartm ve bu tpn iinden elektrik akm geirildiinde tpn parldadn grmtr. Sir William Crookes (1832-1919) havas alnm cam tpn (vakum tp) iinden akm geirdiinde, geen akmn paracklardan olutuunu grmtr. Sir Joseph Thompson (1856-1940) bu paracklar lmeyi baarmtr ve bu paracklara daha sonra elektron denilmitir. John Ambrose Fleming, 1904 ylnda, vakum tpn kullanarak akmn tek ynl olarak akmasna izin veren vakum tp diodeu gelitirmitir. Bu cihaza Fleming valve veya radio tubede denir.
Algoritma ve Programlama 11
20.10.2010
Bilgisayarlarn Geliimi
1930 yllarnda, elektronik dnyasnda bir ok gelime olmutur. Bu yllarda ilk elektronik hesap makineleri gelitirilmeye balanmtr. John Atanasoff ve lisansst rencisi Clifford Berry, 1939 ylnda, ABC (Atanasoff-Berry Computer) olarak adlandrlan ilk ikili say sisteminde alan makineyi icat gelitirmilerdir. Bu makinada lojik ilemler iin vakum tpleri ve hafza iin kondansatrler kullanlmtr.
20.10.2010
Algoritma ve Programlama
12
Bilgisayarlarn Geliimi
Sava srasnda bilgisayar konusundaki almalar ok daha hzl bir ekilde gelitirilmitir. John von Neumann, 1946 ylnda, ilk bilgisayar olarak kabul edilen Eniac gelitirmitir.
Algoritma ve Programlama 13
20.10.2010
Bilgisayarlarn Geliimi
John Mauchly and J. Presper Eckert (1946da tamamland) lk olarak 2inci dnya savanda gizli bir proje olarak balad. University of Pennsylvania
20.10.2010 Algoritma ve Programlama 14
Bilgisayarlarn Geliimi
1000 metre kare alan 30 tons vacuum tpleri kullanyordu
- >17,000
Karar verebiliyordu: ilk gerek bilgisayar Programlama kablo temaslar ve switch ayarlar ile yaplyordu. ENIAC
20.10.2010
Algoritma ve Programlama
15
Bilgisayarlarn Geliimi
1945 ylnda Bell laboratuarlarnda bir aratrma grubu kurulmutur. Grubun amac: iletkenler, yariletkenler, yaltkanlar, piezoelektrik malzemeler ve manyetik malzemeler zerinde temel aratrmalar yapmak, olarak tanmlanmtr. Burada yaplan yariletkenler konusundaki almalar sonucunda, Walter Brattain, John Bardeen ve William Shockley tarafndan tranzistr icat edilmitir. 1950 ylnda bu yeni devre elemannn patenti alnm ve 1951 ylnda da Allentown Pennsylvaniada ticari olarak retilmeye balanmtr. Tranzistrn icad elektronikte devrim niteliindedir.
20.10.2010
Algoritma ve Programlama
16
Bilgisayarlarn Geliimi
20.10.2010
Algoritma ve Programlama
17
Bilgisayarlarn Geliimi
1950li yllarda yaplan aratrmalar sonucunda ok sayda tranzistr, diyot ve kapasiteden oluan devrelerin bir btn olarak gerekletirilmesi yolu bulunmutur. Bylece ortaya tmdevreler veya entegre devreler (integrated circuit) kmtr.
Jack Kilby, 1958 ylnda, Texas Instruments firmasnda ilk tmdevreyi gerekletirmitir.
20.10.2010 Algoritma ve Programlama 18
Bilgisayarlarn Geliimi
1960 ve 1962 ylnda yaplan almalarda tmdevre teknolojisine BJTlere gre daha uygun olan Metal-oksit-yariletken alan etkili tranzistr (metal-oxide-semiconductor field effect transistorMOSFET) gelitirilmitir (Kahng ve Atalla, 1960), (Hofstein ve Heinman, 1963). MOSFET transistorlerin gelimesi ile birlikte tmdevre iine ok daha fazla sayda transistor yerletirilebilmitir. Bir tmleik devredeki eleman says 1964te 40a ve 1972de 1200e ykselmitir. 1982li yllarda VLSI (Very Large-Scale Integration) olarak isimlendirilen sistemlerde 100,000ler mertebesinde eleman ieren tmleik devreler gerekletirilmitir. Gnmzde bu elaman saylar ok daha byk deerlere ulamtr.
20.10.2010
Algoritma ve Programlama
19
Bilgisayarlarn Geliimi
Intel 8742 8-bit mikrokontroller. lemci hz 12 MHz, 128 bytes Ram, 2048 bytes EPROM, giri k ular. Hepsi bir tmdevrede
20.10.2010
Algoritma ve Programlama
Bilgisayarlarn Geliimi
Microprocessor: CPU ieren tek bir chip
20.10.2010
Algoritma ve Programlama
21
Bilgisayarlarn Geliimi
20.10.2010
Algoritma ve Programlama
22
Bilgisayarlar Mimarileri
Temel Bilgisayar Mimarileri Von Neumannmimarisi Harvard Mimarisi
20.10.2010
Algoritma ve Programlama
23
Bilgisayarlar Mimarileri
Harvard Mimarisi Gnmz tipik bilgisayarlar Von- N eumann Mimarisine sahip Mikroilemciler kullanrken (Intel x86, Pentium, AMD Athlon..) , zellikle Grnt, ses ileme, yksek hz gerektiren uygulamalarda Harward mimarisine sahip mikroilemlerciler (DSPler, ARM Cortex..)
20.10.2010
Algoritma ve Programlama
24
Bilgisayar Sistemi
1. Donanm fiziksel aygtlardr. 2. Yazlm ise yaplmas gereken ileri yapabilmek iin donanma komutlar veren programlar topluluudur.
20.10.2010
Algoritma ve Programlama
25
Donanm
CPU Giri Cihazlar
Control ALU Birimi
Registers
k Cihazlar
Bellek
Veri Depolama
20.10.2010
Algoritma ve Programlama
26
Donanm
Grevleri yapabilmek iin komutlar ileyen mikroilemciye CPU denir. CPU nelerden oluur:
Kontrol nitesi Aritmetik mantk nitesi (Arithmetic Logic Unit) Register
20.10.2010
Algoritma ve Programlama
27
Donanm
CPUdaki Komut Dngs
Kontrol nitesi
2. Komutu zmler
ALU
3. Aritmetik ilemler ve karlatrma yapar 4. sonu bellekte saklanr
Bellek
20.10.2010 Algoritma ve Programlama 28
Donanm
Veri Depolama niteleri
CPU Giri Cihazlar
Control ALU Unit
Registers
k Cihazlar
Bellek
Veri depolama
29
20.10.2010
Algoritma ve Programlama
Donanm
Bellek Trleri
Registers CPUnun bir paras; ok hzl; snrl byklk Cache Memory CPUnun bir paras; RAMden daha hzl Read-only Memory (ROM) Bilgisayarn srekli ihtiya duyduu sistem komutlarn barndran chip Random Access Memory (RAM) Ana karta eklenen bellek; program komutlar ve veriler iin birincil depo
20.10.2010
Algoritma ve Programlama
30
Donanm
Dier Bilgisayar Bileenleri
Veri depolama sistemi Hard disk, tape, floppy, DVD vs. Geni alan, ucuz, yava, manyetik ve optik Input Cihazlar Klavye, Fare, Dokunmatik ekran, Tarayc, Webcam,Joystick,Mikrofon Output Cihazlar Monitr, Yazc, Plotter, Hoparlr
20.10.2010
Algoritma ve Programlama
31
Yazlm
Sistem Yazlm: 1. Aygt Yazlm (Firmware) (BIOS). 2. letim Sistemi 3. Sistem destek yazlm 4. Sistem Gelitirme Yazlm
20.10.2010
Algoritma ve Programlama
32
Yazlm
Sistem Yazlm
Aygt Yazlm: Sistemi oluturan donanmlarn almas iin gerekli olan yazlmlardr. letim sistemi: Kullanc arayz, a balant arayzleri, Dosya eriimi ve organizasyonu, oklu alma gibi hizmetleri salayan yazlmlardr. rnein: DOS, Windows, Linux, PARDUS, Unixvs.. Sistem destek yazlmlar: Sistemle ilikili faydal yazlmlardr. rnein,Disk formatlayc, hesap makinesi, test ve iletiim yazlmlar, Hyperterminal, Telnet vs.. Sistem Gelitirme Yazlmlar: Bunlar, eitli ktphaneler, Uygulama Program arayz(API) (Winsock, setupapi, mmtools, SAPI, DDK..), Derleyiciler, Debuggerlar..
20.10.2010 Algoritma ve Programlama 33
Yazlm
Uygulama Yazlmlar
Genel Amal Kelime ilem programlar: MS-Word, Word-Pro, Veri taban ynetim programlar: Oracle, Access, SQL, Hesap Tablosu programlar: MS-Excel, Lotus, Grafik ve izim programlar: AutoCAD, 3D MAX, Photoshop, Corel Draw, Matematik tabanl programlar: MATLAB, MatCAD, Mathematica, zel yazlmlar
20.10.2010
Algoritma ve Programlama
34
20.10.2010
Algoritma ve Programlama
35
Programlama Dilleri
Bilgisayarlara ne yapmalar gerektiini sylememizi salayan zel bir dil Tm yazlmlar programlama dilleri ile yazlr.
20.10.2010
Algoritma ve Programlama
36
Programlama Dilleri
Makine dili (birinci seviye) Bilgisayarn ana dilidir. kicil (binary) kodlardan oluur (0lar ve 1ler) rn. 0110 1001 1010 1011 Bilgisayarn anlayabildii tek dildir. Assembly Dili (ikinci seviye) Makine diline birebir evrilebilir Makine dilinden daha kolay anlalabilir (ama ok da deil) rn. ADD X Y Z Assembler assembly dilini makine diline eviren program
20.10.2010 Algoritma ve Programlama 37
Programlama Dilleri
Procedural diller (nc seviye)
Bir komut pek ok makine dili komutuna karlk gelir Programlarda bilgisayarn ilem akn adm adm tasarlayabilirsiniz. nsan diline daha ok benzer; bilinen kelimeleri kullanr rnek: C, C++, Java, Fortran, QuickBasic Derleyici (compiler) programn tmn assembly veya makine diline evirir (C++, Pascal, Ada). Interpreter program altrldnda adm adm program makine koduna evirir (Basic, Javascript, LISP)
20.10.2010
Algoritma ve Programlama
38
Programlama Dilleri
Nonprocedural Diller (drdnc seviye)
Kullancnn sadece gerekli sorguyu gndermesi sonuca ulamas iin yeterlidir. rnek: veritaban sorgulama dili- SQL Teknik olmayan insanlar tarafndan da kullanlabilir.
20.10.2010
Algoritma ve Programlama
39
Programlama Dilleri
Dilden dile evrim
Programlama Dilleri
Makine Dilinde arpma lemi
20.10.2010
Algoritma ve Programlama
41
Programlama Dilleri
Bir Assembly program rnei:
LDI temp,0x80 ; Analog Comparator disabled OUT ACSR,temp LDI temp,0x00 OUT DDRB,temp ; PORTB giri LDI temp,0b01110000 ; PD0,PD1,PD2,PD3 inputdierleri output OUT DDRD,temp LDI temp,0b01000000 ; initPORTD OUT PORTD,temp CLR hat1_time_out ;ilk deerleri atama blm CLR hat2_time_out CLR temp LDI ZH,0 ;hat1 temp buffer' boalt LDI ZL,hat1_temp_adres ST Z,temp LDI YH,0 ;hat2 temp buffer' boalt LDI YL,hat2_temp_adres ST Y,temp LDI XH,0
20.10.2010 Algoritma ve Programlama 42
20.10.2010
Algoritma ve Programlama
44
Editrler
Program kodlarn yazmak iin kullanlan, metin dzenleyicilerdir. Program kodlar saf metin biiminde yazldndan, herhangi bir metin dzenleyicisi, program yazlm iin kullanlabilir. Kodlamadaki hatalar grlmez. Anahtar kelimeler, fonksiyonlar ve parametreleri, renklendirilmediinden kod yazmak daha zordur. vb.. Tanmlar ayr
Breakpoint, yada watch gibi, hata ayklama unsurlar yoktur. Notepad, Wordpad.. editr olarak kullanlabilir. Program derleme ve balama ilemi editr dnda genellikle komut satr zerinde yaplr.
20.10.2010 Algoritma ve Programlama 45
20.10.2010
Algoritma ve Programlama
47
20.10.2010
Algoritma ve Programlama
48
20.10.2010
Algoritma ve Programlama
49
20.10.2010
Algoritma ve Programlama
51
Say Sistemleri
Gnlk yaantmzda 10 luk say sistemi kullanlr. Ancak, bilgisayar sistemleri 2 lik say sistemini kullanlrlar. 10 luk sistemde taban 10, ikilik sistemde taban 2 dir. Say sistemlerinde sayy oluturan her bir rakam digit olarak adlandrlr. Onluk say sistemlerinde her bir rakam decimal digit yada sadece digitken, ikilik sistemde binary digit yada ksaca bit olarak adlandrlr. 123456 6 digitlik onlu say 100101 6 bitlik ikili say Say sembolleri 0 .. (Taban1) arasndadr. Onluk dzende rakamlar 0..9, ikilik dzende rakamlar 0 , 1 den oluur. Saylarn oluturulmas 123456 = 1*105+ 2*104+ 3*103+ 4*102+ 5*101+ 6*100 100101 = 1*25+ 0*24+ 0*23+ 1*22+ 0*21+ 1*20
20.10.2010 Algoritma ve Programlama 53
Say Sistemleri
Sekiz bitlik ikili saylara bir byte lk saylar denir 10011101 8 bit yada bir bytedr. 16 bit uzunluklu saylara 1 word luk saylar saylar denmesine ramen, bu kavram bazen ilemcinin veri yolu uzunluu kadar bit says ile de eletirilmektedir. 11001001 11100011 2 byte lk yada 1 wordluk say. Ayrca her 4 bit, bir Nibbleolarak adlandrlr.
20.10.2010
Algoritma ve Programlama
54
Say Sistemleri
Bir bytelk en kk ve en byk pozitif saylara bakalm 00000000 (decimal 0) 11111111 (decimal 255) Buradaki tm saylar, pozitiftir. Bir baka deyile say iaretsizdir. Negatif saylar sz konusu olduunda bu saylarn yarsnn pozitif, yarsnn negatif olduu sylenebilir. rnein 1 bytelksay -127 ile +127 arasnda deiecektir. kilik sistemde negatif saylar, karma ileminin toplama araclyla yaplabilmesini salamak amacyla tmleyen saylarla gsterilir. Tmleyen say, verilen sayy, o bit says iin temsil edilen en byk sayya tamamlayan saydr. (Pratikte bit evirerek yaplr.) rnein 00001010 n tmleyeni 11110101 dir. (255 10). Bu trden tmleyene 1e tmleyensay denir. Dikkat edilirse en arlkl (en soldaki) bit negatif saylar iin 1 olmaktadr. Pratikte pek kullanlmaz, nk burada iki tane 0 sz konusudur (0000 0000 ve 1000 0000) ve ilemcinin dorudan toplamasyla karma elde edilemez.
20.10.2010 Algoritma ve Programlama 55
20.10.2010
Algoritma ve Programlama
56
Say Sistemleri
Hexadecimal saylar (Hex) Bilgisayar sistemlerinde uzun bit dizilerini temsil etmek zor olaca iin yazm biimi olarak hexadecimal saylar tercih edilmektedir. Hex saylar 16 lk saylardr. Herbir Nibble bir Hex say ile temsil edilebilir. Bylelikle ikili saynn yazm uzunluu 4 te bir digite decektir. Hex sistemde saylar 16 sembolden oluur ve aadaki gibidir.
rnek: 0011 1010 = 3A Hex, 1110 0101 = E5 Hex 0101 1101 1100 1001 0110 0111 =5DC967 Hex
20.10.2010
Algoritma ve Programlama
57
Kod Sistemleri
Bilgisayarlar yalnzca saylarla alrlar, oysa bizim harflere ve dier sembollere de gereksinimimiz vardr. Bu semboller de saylara karlk drlecek biimde kodlanrlar. Program rnein bu say ile karlarsa ekrana karlk den sembol basar, yada klavyeden gelen saynn sembolik karln , yazcdan karr. Bir ok kodlama tr olmasna karn dnyada bilgisayar ortamlarnda ANSI tarafndan 1963 ylnda standartlatrlan ASCII(American NationalCode for Information Interchange) kodlamas youn olarak kullanlmaktadr. Ancak gnmzde , ASCII kodlar ok dillii salayabilmek iin yetersiz kaldndan UNICODE kodlamas yaygnlamaktadr. Ancak pek ok uygulamada ASCII kodlamas hala geerliliini korumaktadr. ASCII temel olarak 7 bit tir. 127 karakterden oluur. Ama Extended ksmyla birlikte 8 bit kullanlmaktadr. Ancak geniletilmi ksmdaki semboller yazlm ortamna gre deiebilmektedir.
20.10.2010 Algoritma ve Programlama 58
20.10.2010
Algoritma ve Programlama
59
20.10.2010
Algoritma ve Programlama
60
lemler
Bilgisayar programlar ile gerekletirilen ilemler; 1) Matematiksel lemler 2) Karlatrma(karar) lemleri 3) Mantksal(lojik) lemler
Matematiksel lemler Temel aritmetik ilemler toplama,karma,arpma,blme Matematiksel fonksiyonlar stel,logaritmik,trigonometrik, hiperbolik ) vb
20.10.2010
Algoritma ve Programlama
61
Matematiksel lemler
lem Toplama karma arpma Blme s alma Matematik a+b a-b a.b a:b ab Bilgisayar a+b a-b a*b a/b a^b
Matematiksel ilemlerin ncelik sras ? Sra 1 2 3 4 lem Parantezler s alma arpma ve blme Toplama ve karma a*b Bilgisayar dili ((.)) a^b ve a/b a+b ve a-b
NOT: Bilgisayar diline kodlanm bir matematiksel ifadede, ayn ncelie sahip ilemler mevcut ise bilgisayarn bu ilemleri gerekletirme sras soldan saa(batan sona) dorudur. rnein ; Y=A*B/C nce A*B ilemi yaplacak, ardndan bulunan sonu C ye blnecektir.
62
20.10.2010
Algoritma ve Programlama
Matematiksel lemler
Matematiksel Yazlm a+b-c+2abc-7 a+b2-c3
b 2 a + 2ac c a+b
a+b 2ab b 2 4ac
a2 + b2 2ab
20.10.2010
lem sembol = <> > < >= veya => <= veya =<
20.10.2010
Algoritma ve Programlama
64
Mantksal lemler
Mantksal ilem Ve Veya deil Matematiksel sembol . + Komut And Or Not ve,veya,deil operatrleri hem matematiksel ilemlerde hem de karar ifadelerinde kullanlrlar.
Btn artlarn salatlmas isteniyorsa koullar arasna VE Herhangi birinin salatlmas isteniyorsa koullar arasna VEYA Koulu salamayanlar isteniyorsa DEL mantksal operatr kullanlr.
20.10.2010
Algoritma ve Programlama
65
Mantksal lemler
Eer Ya>23 1.KOUL VE
rnek; Bir iyerinde alan iiler arasndan yalnzca ya 23 zerinde olup, maa olarak asgari cret alanlarn isimleri istenebilir. Burada iki koul vardr ve bu iki koulun da doru olmas gerekir. Yani; maa=asgari cret ise 2.KOUL ismi Yaz
rnek; Bir snfta Bilgisayar dersinden 65 in zerinde not alp, Trk Dili veya Yabanc Dil derslerinin herhangi birinden 65 in zerinde not alanlarn isimleri istenmektedir. Burada 3 koul vardr ve Bilgisayar dersinden 65 in zerinde not alm olmak temel kouldur. Dier iki dersin notlarnn herhangi birinin 65 in zerinde olmas gerekir. Eer ; Bilg.Not>65 ve (TDili not>65 veya YDil not>65) ismi Yaz
20.10.2010 Algoritma ve Programlama 66
2. BLM
Problem zme ve Algoritmalar
Problem zme
Problem zme Teknii (Descartese gre): 1. 2. 3. 4. Doruluu kesin olarak kantlanmadka, hibir eyi doru olarak kabul etmeyin; tahmin ve nyarglardan kann. Karlatnz her gl mmkn olduu kadar ok paraya bln. Dzenli bir biimde dnn; anlalmas en kolay olan eylerle balayp yava yava daha zor ve karmak olanlara doru ilerleyin. Olaya baknz ok genel, hazrladnz ayrntl liste ise hibir eyi darda brakmayacak kadar kusursuz ve eksiksiz olsun.
Problem zme
Bir problemi zmek iin yazlacak programda, genel olarak, aadaki yazlm gelitirme aamalar uygulanmaldr. Yazlm Gelitirme Aamalar 1. 2. Problemin Analizi: Problemin tam olarak ne olduunun anlalmasdr. Bu nedenle, problemin zmnden neler beklendii ve yarataca zmn girdi ve ktlarnn neler olaca kesin olarak belirlenmelidir. Tasarm: Problemi zmek iin kullanlacak zm admlarn gsteren bir liste yaplmas gereklidir. Bir problemin zm admlarn gsteren bu listeye algoritma denir. Byle bir liste tasarlanrken, ilk nce problemin ana admlar karlr; daha sonra her adm iin, gerekiyorsa, daha ayrntl bir zm tasarlanr. Kodlama: Kat zerinde gelitirilen algoritma, programcnn tercih ettii bir programlama diline evrilir.
3.
20.10.2010
Algoritma ve Programlama
69
Problem zme
4. Test etme: Program deiik girdiler ile altrlarak rettii sonular kontrol edilerek test ilemi gerekletirilir. Sonular beklendii gibi ise , programn doru alt kantlanm olunur; deilse doru almayan ksmlar tespit edilerek dzeltilir. Belgeleme: Btn bu almalarn belli bir dosyalama sistemi iinde belgeler halinde saklanmasnn saland aamadr. Bakm: Programn gncel koullara gre yeniden dzenlenmesini ieren bir konudur. Oluan hatalarn giderilmesi,, yeni eklemeler yaplmas ya da programn teknolojisinin yenilenmesi gibi ilemlerdir.
5. 6.
20.10.2010
Algoritma ve Programlama
70
20.10.2010
Algoritma ve Programlama
71
Problem zme
Bir problem zlrken biri algoritmik, dieri herustic(sezgisel) olarak adlandrlan iki yaklam vardr. Algoritmik yaklamda, zm iin olas yntemlerden en uygun olan seilir ve yaplmas gerekenler adm adm ortaya konulur. Herustic yaklamda ise, zm aka ortada deildir. Tasarmcnn deneyimi, birikimi ve o andaki dncesine gre problemi zecek bir eylerin ekillendirilmesiyle yaplr. Program tasarmcs, algoritmik yaklamla zemedii, ancak zmek zorunda olduu problemler iin bu yaklam kullanr.
20.10.2010
Algoritma ve Programlama
72
Algoritmik Yaklam
Algoritma, herhangi bir sorunun zm iin izlenecek yol anlamna gelmektedir. zm iin yaplmas gereken ilemler hibir alternatif yoruma izin vermeksizin szel olarak ifade edilir. Dier bir deyile algoritma, verilerin, bilgisayara hangi evre biriminden girileceinin, problemin nasl zleceinin, hangi basamaklardan geirilerek sonu alnacann, sonucun nasl ve nereye yazlacann szel olarak ifade edilmesi biiminde tanmlanabilir. Algoritma hazrlanrken, zm iin yaplmas gerekli ilemler, ncelik sralar gznnde bulundurularak ayrntl bir biimde tanmlanmaldrlar. rnek 1: Verilen iki saynn toplamnn bulunmasnn algoritmas aadaki gibi yazlr. Adm 1 Bala Adm 2 Birinci Sayy Oku Adm 3 kinci Sayy Oku Adm 4 ki Sayy Topla Adm 5 Dur
20.10.2010 Algoritma ve Programlama 73
Algoritmik Yaklam
Algoritmalar iki farkl ekilde kat zerinde ifade edilebilirler; 1. Pseudo Code (Kaba Kod veya Yalanc Kod veya Szde Kod), bir algoritmann yar programlama dili kural, yar konuma diline dnk olarak ortaya koyulmas/ tanmlanmasdr. Bu ekilde gsterim algoritmay genel hatlaryla yanstr. 2. Ak emas, algoritmann grsel/ekilsel olarak ortaya koyulmasdr. Problemin zm iin yaplmas gerekenleri, bandan sonuna kadar, geometrik ekillerden oluan simgelerle gsterir.
20.10.2010
Algoritma ve Programlama
74
20.10.2010
Algoritma ve Programlama
76
Ak Diyagramlar (emalar)
Algoritmann, grsel olarak simge ya da sembollerle ifade edilmi ekline ak emalar veya FLOWCHART ad verilir. Ak emalarnn algoritmadan fark, admlarn simgeler eklinde kutular iine yazlm olmas ve admlar arasndaki ilikilerin ve ynnn oklar ile gsterilmesidir. Programn saklanacak esas belgeleri olan ak emalarnn hazrlanmasna, sorun zmlenmesi srecinin daha kolay anlalr biime getirilmesi, i aknn kontrol edilmesi ve programn kodlanmasnn kolaylatrlmas gibi nedenlerle bavurulur. Uygulamada ounlukla, yazlacak programlar iin nce programn ana admlarn (blmlerini) gsteren genel bir bak ak emas hazrlanr. Daha sonra her adm iin ayrntl ak emalarnn izimi vardr. En basit ekliyle dikdrtgen kutulardan ve oklardan oluur. Ak emas sembolleri ANSI (American National Standards Institute) standard olarak belirlenmi ve tm dnyada kullanlmaktadr.
20.10.2010
Algoritma ve Programlama
77
Ak Diyagramlar (emalar)
Her simge, yaplacak bir ii veya komutu gsterir. Ak emalarnn hazrlanmasnda aada yer alan simgeler kullanlr.
Bir algoritmann balad konumu gstermektedir. Tek kl bir ekildir.
Bir algoritmada aritmetik ilem yaplmasn salayan ekildir. Bu drtgen kutu ierisine yaplmak istenen ilem yazlr. Tek girili ve tek kl bir ekildir.
20.10.2010
Algoritma ve Programlama
78
Ak Diyagramlar (emalar)
Algoritmada bir bilginin ekrana yazlaca konumu gsteren ekildir. Ekrana yazlacak ifade ya da deiken bu ekil ierisine yazlr.
Bir algoritmada baka bir yerde tanmlanm bloun yerletii konumu gsteren ekildir. Kutu ierisine bloun ad yazlabilir.
Klavyeden Bilgisayara bilgi girilecek konumu belirten ekildir. Girilecek bilginin hangi deikene okunacan kutu ierisine yazabilirsiniz.
Giri k komutunun kullanlaca yeri belirler ve kutu ierisine hangi deikeni ve OKUma m YAZ m yaplacan belirtmeniz gerekir.
20.10.2010 Algoritma ve Programlama 79
Ak Diyagramlar (emalar)
Bilginin Yazcya yazlaca konumu gsteren ekildir.
Bir algoritmann birden fazla alana yaylmas durumunda balant noktalarn gsteren ekildir. Tek girili veya tek kl olarak kullanlrlar.
Birok programda; belirli ilem bloklar ardk deerlerle veya baz koullar salanncaya kadar tekrarlanr. Bu tekrarlamal ilemler dng olarak isimlendirilir. Dng eklinin iine; dng (evrim, kontrol) deikeni, balang deeri, biti deeri ve adm yazlr.
20.10.2010 Algoritma ve Programlama 80
Ak Diyagramlar (emalar)
Bir algoritmada bir kararn verilmesini ve bu karara gre iki seenekten birinin uygulanmasn salayan ekildir. burada ekenar drtgen ierisine kontrol edilecek mantksal koul yazlr. Program ak srasnda koulun doru olmas durumunda "Evet" yazlan ksma Yanl olmas durumunda "Hayr" yazlan ksma saplr. Tek girili ve ift kl bir ekildir.
Ak ubuu
20.10.2010
Algoritma ve Programlama
81
Ak Diyagramlar (emalar)
Klavyeden girilen ki saynn toplamn hesaplayp yazan pseudo kod ve ak emasn hazrlaynz.
BALA
OKU X
OKU Y
Z=X+Y
(X: Birinci say, Y: kinci say, Z: toplam) A1 : Bala A2 : Klavyeden oku X A3 : Klavyeden oku Y A4 : Hesapla Z = X + Y A5 : Yaz Z A6 : Dur
YAZ Z
DUR
20.10.2010
Algoritma ve Programlama
82
Karlatrma Operatrleri ^ * / + . . +
Algoritma ve Programlama 83
Eittir Eit deildir Kktr Byktr Byk eittir Kk eittir Genel lem Operatrleri Aktarma Parantez
Tanmlayc
Programc tarafndan oluturulur. Programdaki deikenleri,sabitleri, kayt alanlarn, zel bilgi tiplerini vb adlandrmak iin kullanlan kelimeler Tanmlayclar, yerini tuttuklar ifadelere arm yapacak ekilde seilmelidir. ngiliz alfabesindeki A-Z veya a-z aras 26 harften 0-9 aras rakamlar kullanlabilir Sembollerden sadece alt izgi (_) kullanlabilir. Tanmlayc isimleri harfle veya alt izgiyle balayabilir. Tanmlayc ismi,rakamla balayamaz veya sadece rakamlardan oluamaz.
20.10.2010 Algoritma ve Programlama 84
Sabit
Programdaki deeri deimeyen ifadelere sabit denir. simlendirme kurallarna uygun olarak oluturulan sabitlere, saysal veriler dorudan; alfa saysal veriler ise tek/ift trnak iinde aktarlr.
20.10.2010 Algoritma ve Programlama 85
B sabiti
lk Algoritmama Ho geldin lk Algoritmama Ho geldin
Sonu
lk Algoritmama Ho geldin Onur lk Algoritmama Ho geldin Emre
20.10.2010
Algoritma ve Programlama
86
Aktarma
1.ilem: sadaki ifadeyi gerekletir veya sadaki ilemi yap 2.ilem: Bulunan sonucu soldaki deikene aktar.
20.10.2010 Algoritma ve Programlama 87
say=say+1
Bu ilemde sadaki ifadede deikenin eski deerine 1 eklenmekte; bulunan sonu yine kendisine yeni deer olarak aktarlmaktadr. Bu tr sayma ilemlerine algoritmada saya ad verilir. Sayacn genel forml;
20.10.2010
Algoritma ve Programlama
Bala S=0 Eer s>4 ise git 7 S=S+1 Yaz S Git 3 Dur
Eski S 0 1 2 3 4
Ekrana Yazlan 1 2 3 4 5
20.10.2010
Algoritma ve Programlama
89
20.10.2010
Algoritma ve Programlama
90
Bala T=0 J=1 Eer j>10 ise git 8 T=T+J J=J+2 DNG Git4 Dur
Eski J 1 3 5 7 9 11
Eski T 0 1 4 9 16 -
Yeni J 3 5 7 9 11 -
20.10.2010
Algoritma ve Programlama
91
20.10.2010
20.10.2010
Programn almas srasnda yaplacak ilemleri ifade etmek iin kullanlan ekildir. ine ilem cmleleri/ifadeleri aynen yazlr. Program ak buraya geldiinde, eklin ierisindeki yazl ilem gerekletirilir. Birden fazla ilem; ayn ekil iinde, aralarna virgl konularak veya alt alta yazlarak gsterilebilir. C=(a^2+b^2)^(1/2) rnek: lem ak bu ekle gelince, program c = a + b ilemini yapar. fadedeki a ve b daha nceki admlarda girilmi olan deerlerdir.
2 2
20.10.2010
Algoritma ve Programlama
94
b) Olumsuz koulda yaplacak ilem yoktur; olumlu olmas durumunda ise N adet ilem yaplacaktr.
95
Algoritma ve Programlama
20.10.2010
Algoritma ve Programlama
96
Evet
20.10.2010
Algoritma ve Programlama
97
20.10.2010
Algoritma ve Programlama
98
20.10.2010
Algoritma ve Programlama
99
20.10.2010
Algoritma ve Programlama
100
20.10.2010
Algoritma ve Programlama
101
20.10.2010
Algoritma ve Programlama
102
20.10.2010
Algoritma ve Programlama
103
UYGULAMALAR
20.10.2010
Algoritma ve Programlama
104
KAYNAKLAR
1. 2. 3. 4. 5. 6. 7. 8. Rifat lkesen, "Veri yaplar ve algoritmalar", Papatya Yaynlar, stanbul, 2002. Fahri Vatansever, "Algoritma gelitirme ve programlamaya giri", Sekin Yaynlar, Ankara, 2009. Aslan nan, "MATLAB ve programlama", Papatya Yaynlar, stanbul, 2004. http://www.yildiz.edu.tr/~kunal/bilgisayarbil.html, Temel Bilgisayar Bilimleri Ders Notlar-nal Kk. Soner elikkol, "Programlamaya giri ve algoritmalar", Akademi Yaynlar, stanbul, 2001. Feridun Karako, Algoritma gelitirme ve programlamaya giri, Temel Bilgisayar Bilimleri Ders Notlar. Maltepe niversitesi, Programlamann Temelleri Ders Notlar. www.akademi.itu.edu.tr/buzluca, Feza Buzluca Bilgisayar Mimarisi Ders Notlar.
20.10.2010
Algoritma ve Programlama
105