You are on page 1of 105

ALGORTMA VE PROGRAMLAMA

r. Gr. Dr. Umut Engin AYTEN

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

Joseph Jacquard (1810) Bilgisayar tabanl hal dokuma makinesi


20.10.2010

Delikli Kart (Punch Card)

Algoritma ve Programlama

Bilgisayarlarn Geliimi

The Analytical Engine The Difference Engine (1822) Charles Babbage


20.10.2010

Punch cardlar zerinde yazlan programlar ileyebiliyordu Bilgiyi belleinde saklayabiliyordu


7

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.

Nfus: 63 milyon; 6 hafta International Business Machines (IBM)in ilk rn


20.10.2010 Algoritma ve Programlama 8

Bilgisayarlarn Geliimi
Howard Aiken + IBM + Harvard (1930) Veri depolama: Mekanik rle telefon anahtarlar (switch) Girdi: Punch Card

40m. uzunluunda 5 ton 750, 000 para

Mark I

Bir bilgisayar ile bir hesap makinesi arasnda ne fark var?


20.10.2010 Algoritma ve Programlama 9

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

Electronic Numerical Integration and Calculator (ENIAC)

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

781 Milyon tranzistr bir tmdevrenin iinde


20

Algoritma ve Programlama

Bilgisayarlarn Geliimi
Microprocessor: CPU ieren tek bir chip

lk olarak 1970 ylnda Marcian Hoff (Intel Corporation) tarafndan tasarland


Microcomputer: masast boyutlarnda bilgisayar

ALTAIR (1975) Apple (Stephen Wozniak ve Steven Jobs; 1977)

20.10.2010

Algoritma ve Programlama

21

Bilgisayarlarn Geliimi

Her 18-24 ayda bir ilemci gc ikiye katlanyor.

From the BBC

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

1. Bellekten komut alnr

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

Uygulama yazlm: 1. 2. Genel Amal Uygulamaya zel

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

Program ve Yazlmn Tanm


Program: belirli bir ii gerekletirmek iin gerekli komutlar dizisi olarak tanmlanabilir. Programlama: Bir program oluturabilmek iin gerekli komutlarn belirlenmesi ve uygun biimde kullanlmasdr. Programlama Dilleri: Bir programn oluturulmasnda kullanlan komutlar, tanmlar ve kurallarn belirtildii programlama aralardr. Yazlm: Belirli bir amac salayan, program yada programlar ve ilgili dokmantasyonlardr.

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.

Natural Language Programming Languages (beinci seviye (akll diller))


nsan dilini programlama diline evirir. Olduka karmak ve yenidir.

20.10.2010

Algoritma ve Programlama

39

Programlama Dilleri
Dilden dile evrim

Programlama dili ile yazlan program (kaynak kodu)(source code)

evirici program Assembler Compiler Interpreter

Makine diline evrilmi kod (object code)

CPU tarafndan ilenir


20.10.2010 Algoritma ve Programlama 40

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

Programlama Dillerinin Tarihesi


lk programn, Ada Lovelacetarafndan Charles Babbagen tanmlam olduu Analytical Engine i ile Bernoullisaylarnn hesaplanmasna ilikin makalesinde olduu sylenmektedir. Bu nedenle ilk gerek anlamdaki programlama dillerinden birinin ad Ada Lovelace ansna ADA olarak isimlendirilmitir.1940 larda ilk modern bilgisayar ortaya ktnda, programclar yalnzca assembly dili kullanarak yazlm yapabiliyorlard. 1950 1960 FORTRAN (1955), the"FORmula TRANslator LISP, the"LISt Processor", COBOL, the COmmon Business Oriented Language ALGOL Algorithmic Language
20.10.2010 Algoritma ve Programlama 43

Programlama Dillerinin Tarihesi

20.10.2010

Algoritma ve Programlama

44

Yazlm Gelitirme Aralar


Editrler-Tmleik gelitirme ortamlar(IDE) Derleyicilerle birlikte kullanlr Derleyiciler-Balayclar (CompilersLinkers) Yorumlayclar (Interpreter)

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

Yazlm Gelitirme Aralar


IDE (Tmleik gelitirme ortam)
Tmleik gelitirme ortamlar, Genellikle derleyicileri balayclar ortam iinden kullanabilmeyi yada derleyici ve balaycya ortam iinden erime yollarn salarlar (Makefilevs..). Bunun yan sra; Derleyici ve balayc tmleik olan yaplarda Hata ayklama, Gzlem penceresi gibi bileenler mevcuttur. Yazm ilemini kolaylatracak vurgulamalar ve uyarlar mevcuttur. Derleyici ve balayc parametreleri menlerden ayarlanabilir. Yardmlar mevcuttur. Her yazlm dilinin kendi IDE si mevcuttur. Ancak baz IDEler birden fazla yazlm dili iin ortam salayabilir.
20.10.2010 Algoritma ve Programlama 46

Yazlm Gelitirme Aralar

20.10.2010

Algoritma ve Programlama

47

Yazlm Gelitirme Aralar

Gml sistem programlamas iin Keil uVision3 IDE

20.10.2010

Algoritma ve Programlama

48

Yazlm Gelitirme Aralar

Windows Ortamndaki gelitirmeler iin MS VS C++ 6.0

20.10.2010

Algoritma ve Programlama

49

Yazlm Gelitirme Aralar


Derleyiciler:Bir derleyici, bir metin editr yada IDE zerinde yazlan program kodlarn, makinenin anlayabilecei OBJ kodlara dntren bir uygulama yazlmdr. Derleyicilerin birou, Program dilinin yansra makine dilinin(assembly) de kullanlmasna izin verir. Balayclar:Bir balayc, derleyici tarafndan derlenmi olan OBJ program kodlarn uygun bellek blgelerine yerletirerek, deikenlerin ve sabitlerin bellek atamalarn ve ilklemelerini gerekleyerek tek bir altrlabilir program elde eden bir uygulama yazlmdr (windows iin exe dosya). rnek derleyiciler ve balayclar: MS VC++ 6.0 iin CL.exe derleyici, Link.exe balayc Keil uVision 8051 iin c51.exe derleyici, Ld51.exe balayc gcc.exe ak kaynakl cretsiz bir derleyici ve balayc
20.10.2010 Algoritma ve Programlama 50

Yazlm Gelitirme Aralar

20.10.2010

Algoritma ve Programlama

51

Yazlm Gelitirme Aralar


YORUMLAYICILAR (INTERPRETERS) Yorumlayclar, program kodunu bir btn olarak deerlendirmez. Program kodunu satr, satr yorumlayarak altrrlar. Bu nedenle gnmzde derleyicilere gre daha kstl uygulamalara sahiptirler, internet uygulamalar ve bilimsel alanda yaygn kullanlmaktadrlar. Baz yorumlayclar, yazlan program satrn, daha etkin bir biime evirip, hemen uygularlar. Bunlar arasnda: Perl, Phyton, Matlab, Mathcad gibi yorumlayclar saylabilir. Baz yorumlayclar ise, yorumlayc sistemin bir paras olan bir derleyici tarafndan nceden derlenip saklanm kodlar uygularlar. Java bunlar arasnda saylabilir.
20.10.2010 Algoritma ve Programlama 52

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

POZTF VE NEGATF SAYILAR

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

Say Sistemleri kiye Tmleyen (2s Complement)

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

ASCII ilk 128 Sembol

20.10.2010

Algoritma ve Programlama

59

ASCII geniletilmi ksm

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

Bilgisayara Kodlanmas a+b-c+2*a*b*c-7 a+b^2-c^3 a-b/c+2*a*c-2/(a+b) (a+b)^(1/2)-2*a*b/(b^24*a*c) (a^2+b^2)/(2*a*b)


Algoritma ve Programlama 63

a2 + b2 2ab
20.10.2010

Karlatrma (Karar) lemleri


ki byklkten hangisinin byk veya kk olduu, ki deikenin birbirine eit olup olmad gibi konularda karar verebilir.

lem sembol = <> > < >= veya => <= veya =<

Anlam Eittir Eit deil Byktr Kktr Byk eittir Kk eittir

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

Yaz komutu 1. ve 2.koulun her ikisi de salanyorsa alr.

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 sras


1. Problemi anlama (Understanding, Analyzing), 2. Bir zm yolu gelitirme (Designing), 3. Algoritma ve program yazma (Writing), 4. Tekrar tekrar test etme (Reviewing)
20.10.2010 Algoritma ve Programlama 68

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

Szde (Pseudo) Kod


Szde programlar, dorudan konuma dilinde ve programlama mant altnda, eer, iken gibi koul kelimeleri ve > = < gibi ifadeler ile beraber yazlr. yi bir biimde yazlm, szde koddan, programlama diline kolaylkla geilebilir. rnek: Verilen bir scaklk derecesine gre suyun durumunu belirten bir szde program yaznz. rnek Giri/k
Bu Program, Scakla gre suyun durumunu gsterir Su, Buz, Buhar ---------------------------------------------------------Ltfen derece cinsinden scakl giriniz: 140 BUHAR elde edeceksiniz.
20.10.2010 Algoritma ve Programlama 75

Szde (Pseudo) Kod


stenilen programn Pseudo Kodu: 1. 2. 3. 5. 6. 7. 8. Program aklama mesaj yaz. Kullancn scakl girmesi iin bir uyar mesaj yaz. Girilen Scakl Oku. Eer Scaklk < 0 ise Durum=Buz Eer Scaklk>= 100 ise Durum=Buhar Deilse Durum =Su Sonucu Yaz.

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 algoritmann bittii konumu gstermektedir. Tek girili 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

Programn bittii yer ya da yerleri gsteren bir ekildir.

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

Algoritmalarda Kullanlan Operatrler


lemleri belirten sembollere bilgisayar dilinde operatr denir. Algoritmada kullanlan operatrler Tabloda verilmitir. Matematiksel lem oper s alma arpma Blme Toplama karma Tam ve onda ayrma Mantksal lem Operatrleri Deil Ve Veya
20.10.2010

Karlatrma Operatrleri ^ * / + . . +
Algoritma ve Programlama 83

Eittir Eit deildir Kktr Byktr Byk eittir Kk eittir Genel lem Operatrleri Aktarma Parantez

= <> < > >= <= = ()

Algoritmalarda Kullanlan Terimler


Tanmlayc Deiken Sabit Aktarma Saya Dng Ardk Toplama Ardk arpma

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

Algoritmalarda Kullanlan Terimler


Deiken
Programn her altrlmasnda, farkl deerler alan bilgi/bellek alanlardr. Deiken isimlendirilmeleri, yukarda saylan tanmlayc kurallarna uygun biimde yaplmaldr. rnein ; Bir ismin aktarld deiken ; ad Bir isim ve soy ismin aktarld deiken; adsoyad Ev telefon no sunun aktarld deiken; evtel Ev adresinin aktarld deiken; evadres adresinin aktarld deiken; isadres

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

Algoritmalarda Kullanlan Terimler


rnek Algoritma
Bala Bir isim giriniz(A) lk algoritmama Ho geldin mesaj (B) B VE A y Yaz Dur Yukardaki algoritma, dardan girilen bir A deikeni ile B sabitini birletirip ekrana yazar. A deikeni
Onur Emre

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

Algoritmalarda Kullanlan Terimler


Herhangi bir bilgi alanna, veri yazma; herhangi bir ifadenin sonucunu baka bir deikende gsterme vb grevlerde aktarma operatr kullanlr. deiken=ifade Deiken yazan ksm herhangi bir deiken ismidir. fade yazan ksmda ise matematiksel,mantksal veya alfa saysal ifade olabilir. = sembol, aktarma operatrdr ve sadaki ifadenin/ilemin sonucunu soldaki deikene aktarr. Bu durumda deikenin eer varsa bir nceki deeri silinir. Deiken = fade AKTAR

1.ilem: sadaki ifadeyi gerekletir veya sadaki ilemi yap 2.ilem: Bulunan sonucu soldaki deikene aktar.
20.10.2010 Algoritma ve Programlama 87

Algoritmalarda Kullanlan Terimler


Saya
Programlarda baz ilemlerin belirli sayda yaptrlmas veya ilenen/retilen deerlerin saylmas gerekebilir.

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;

Saya deikeni=saya deikeni+adm


rnek; X=X+3 rnek; S=S-5
88

20.10.2010

Algoritma ve Programlama

Algoritmalarda Kullanlan Terimler


rnek
Aadaki algoritmada 1-5 aras saylar, ekrana yazdrlmaktadr. 1-5 aras saylar oluturmak iin saya(s=s+1) kullanlmtr.
1. 2. 3. 4. 5. 6. 7.

Bala S=0 Eer s>4 ise git 7 S=S+1 Yaz S Git 3 Dur

Eski S 0 1 2 3 4

Yeni S 0+1=1 1+1=2 2+1=3 3+1=4 4+1=5

Ekrana Yazlan 1 2 3 4 5

20.10.2010

Algoritma ve Programlama

89

Algoritmalarda Kullanlan Terimler


Dng
Bir ok programda baz ilemler, belirli ardk deerlerle gerekletirilmekte veya belirli sayda yaptrlmaktadr. Programlardaki belirli ilem bloklarn, verilen sayda gerekletiren ilem ak evrimlerine dng denir. rnein 1 ile 1000 arasndaki tek saylarn toplamn hesaplayan programda T=1+3+5 . yerine 1 ile 1000 arasnda ikier artan bir dng alr ve dng deikeni ardk toplanr.

20.10.2010

Algoritma ve Programlama

90

Algoritmalarda Kullanlan Terimler


rnek
Aadaki algoritmada, 1 ile 10 aras tek saylarn toplam hesaplanmaktadr.
1. 2. 3. 4. 5. 6. 7. 8.

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 T 0+1=1 1+3=4 4+5=9 9+7=16 16+9=25 -

Yeni J 3 5 7 9 11 -

20.10.2010

Algoritma ve Programlama

91

Algoritmalarda Kullanlan Terimler


Ardk Toplama
Programlarda, ayn deerin zerine yeni deerler eklemek iin kullanlr. Toplam deikeni=Toplam deikeni + Say rnek: Klavyeden girilen 5 saysnn ortalamasn bulan programn algoritmas.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Bala T=0 S=0 Eer S>4 ise git 9 S=S+1 Sayy (A) gir T=T+A Git 4 Ortalama=T/5 Yaz Ortalama Dur
Algoritma ve Programlama 92

20.10.2010

Algoritmalarda Kullanlan Terimler


Ardk arpma
Ardk veya ardl arpma ileminde; ayn deer, yeni deerlerle arplarak eskisinin zerine aktarlmaktadr. arpm deikeni=arpm deikeni * Say rnek: Klavyeden girilen N saysnn faktriyelini hesaplayan programn algoritmasn yaznz.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Bala N saysn gir Fak=1 S=0 Eer S>N-1 ise git 9 S=S+1 Fak=Fak*S Git 5 Yaz Fak Dur
Algoritma ve Programlama 93

20.10.2010

Ak Diyagramlarnda Kullanlan Temel ekiller

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

Ak Diyagramlarnda Kullanlan Temel ekiller


Karar Verme
1. Durum: 2. Durum:

a) Koulun durumuna bal olarak 2 farkl ilem vardr.


20.10.2010

b) Olumsuz koulda yaplacak ilem yoktur; olumlu olmas durumunda ise N adet ilem yaplacaktr.
95

Algoritma ve Programlama

Ak Diyagramlarnda Kullanlan Temel ekiller


Bu yapy art arda birden ok kez kullanp aadaki gibi bir kalatrma dizisi oluturulabilir.

20.10.2010

Algoritma ve Programlama

96

Ak Diyagramlarnda Kullanlan Temel ekiller


rnek: ax2+ bx + c = 0 eklindeki ikinci dereceden bir denklemin kklerini bulan algoritmay tasarlayp ak emas ile gsteriniz.

Evet

Hayr Evet Hayr

20.10.2010

Algoritma ve Programlama

97

Ak Diyagramlarnda Kullanlan Temel ekiller


Dng Yaps
Bu yap kullanlrken, dng sayac, koul bilgisi ve sayacn artm bilgisi verilmelidir. Dng sayac kullanlmyorsa sadece dngye devam edebilmek iin gerekli olan koul bilgisi verilmelidir. Genel olarak ou programlama dilinin dng deyimleri ; While Do-while For gibi yaplar zerine kurulmutur. Farkl dillerde bu yaplara farkl alternatifler olsa da dnglerin alma mant genel olarak benzerdir.

20.10.2010

Algoritma ve Programlama

98

Ak Diyagramlarnda Kullanlan Temel ekiller


1. Durum (While)
Koul daha evrim ierisine girmeden snanr. Koul olumsuz olduunda erime hi girilmez ve dng ierisinde yaplmas gerekenler atlanr.

20.10.2010

Algoritma ve Programlama

99

Ak Diyagramlarnda Kullanlan Temel ekiller


2. Durum (Do-While)
Bu dng deyiminde, evrim en az bir defa olmak zere gerekleir. nk koul snamas dng sonunda yaplmaktadr. Eer koul sonucu olumsuz ise bir sonraki evrime geilmeden dngden klr. evrimin devam edebilmesi iin her dng sonunda yaplan koul testinin olumlu sonulanmas gerekir.

20.10.2010

Algoritma ve Programlama

100

Ak Diyagramlarnda Kullanlan Temel ekiller


3. Durum (For)
Dier deyimlerden farkl olarak, dng sayac dorudan koul parametreleri dzeyinde verilir. Dng girmeden nce saya deikenine balang deeri atanmakta ve daha sonra koula baklmaktadr. Dng ierisinde belirtilen ilemler yapldktan sonra saya deikeni arttrlmaktadr.

20.10.2010

Algoritma ve Programlama

101

Ak Diyagramlarnda Kullanlan Temel ekiller


ie Dnglerin Kullanlmas
ie dng kurulurken en nemli unsur, iteki dng sonlanmadan bir dtaki dngye geilmemesidir. Dier bir deyile dngler birbirlerini kesmemelidir. En iteki dng bir dtaki dngnn her admnda N kez tekrarlanr.

20.10.2010

Algoritma ve Programlama

102

Ak Diyagramlarnda Kullanlan Temel ekiller


rnek: Klavyeden girilen N saysnn faktriyelini alan algoritmann ak
diyagramn iziniz. N ile hangi saynn faktriyelin hesaplanaca belirlenir ve N evrimlik bir dng kurulur. lk evrimde 1!, ikinci evrimde 2! ve srayla Ninci evrim sonucunda da N! deeri hesaplanm olur. Sayac>N koulu olutuunda dngden klr ve elde edilen sonu d ortama aktarlr.

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

You might also like