Kap 01 Innledning I dette kapitlet skal vi se litt følgende hovedtemaer: - Kursoppbygging - Hva er algoritmer og datastrukturer - Anvendelser - …
Algoritmer og datastrukturer Fag : DAT201 Algoritmer og datastrukturer Studiepoeng : 10 Forelesning : 4 t/uke Øving : 4 t/u Eksamen : Skriftlig 4 timer uten hjelpemidler Prog.språk : Java / C++ / Flash (ActionScript) Pseudokode
Algoritmer og datastrukturer Algoritmer : Prosessering av ulike datastrukturer vha pseudokode Datastrukturer : Ulike måter å strukturere data på Teori om ulike data-strukturer Operasjoner i pseudokode-form Programmering i Java / C++ / Flash (ActionScript)
Algoritmer og datastrukturer Algoritmer : Prosessering av ulike datastrukturer vha pseudokode. Step-by-step instruksjon til datamaskinen. Kaffekoking 1. Hent kaffekjelen 2. Ta av lokket på kaffekjelen 3. Hent kaffeposen 4. Fyll 2 spiseskjeer med kaffe på kaffekjelen 5. Gå bort til vannspringen 6. Fyll 1 liter vann på kaffekjelen 7. Sett kaffekjelen på plate nr 1 på komfyren 8. Skru komfyrbryter til plate nr 1 på 1000 9. Kok opp kaffen
Komplekse problemstillinger Viktige elementer OOP Event Algoritmer / Datastrukturer
Tre Anvendelser Idrett
Graf Anvendelser GPS
Anvendelser Seismologi / Bildebehandling / Medisin Tre Anvendelser Seismologi / Bildebehandling / Medisin
Anvendelser Bilde-detaljer / komprimering Tre Anvendelser Bilde-detaljer / komprimering
Anvendelser Bildekomprimeering Tre Anvendelser Bildekomprimeering JPEG JPEG2000 m/Wavelet
Anvendelser Bildekomprimering Tre Anvendelser Bildekomprimering
Fourier-transformation of a square wave Graf / Tre Fourier-transformation of a square wave f(x) square wave (T=2) N=1 N=2 N=10
Anvendelser Kalkulator Stakk Tre Graf Anvendelser Kalkulator
Anvendelser Symbolsk derivasjon - Benyttes til å beskrive prosessendringer Typer av diff.lign. ODE Ordinære Endringer mht en enkelt variabel PDE Partielle Endringer mht flere variabler Newtons 2.lov Radioaktivitet Kvantefysikk SHM Varmetransport Bølger Elektrisk krets Studier av svingninger (spesielt resonans) for å hindre at f.eks. bruer kollapser under påvirkning av vindkast.
Anvendelser Symbolsk derivasjon y = 0.2x2 y’ = 0.4x y = xcosx y’ = cosx - xsinx Derivasjon omhandler endringsstudier av en funksjon. Slike endringer studeres vha stigningstallet til tangenter til funksjonsgrafen. For en gitt funksjon er det av interesse å bestemme den deriverte funksjonen.
Graf Anvendelser Nettverk
Anvendelser Maksimal flyt
Anvendelser SelectionSort
Anvendelser Beregning av aritmetiske uttrykk . Stakk a / b ^ c + d * e - a * c Besøk til ulike byer. Graf Hvilken rute er raskest, kortest, billigst, … ? Medisinsk diagnose. Tre Optimalisering av nettverk. Graf / Tre Prosjektgjennomføring. Graf Bildebehandling. Tre
Innhold 01 Innledning 02 Tabeller / Tabell-operasjoner 03 Array-klasser (Java-implementering) 04 Lister m/praktisk anvendelse 05 Abstrakte datatyper (Java-implementering) 06 Ordnede/Sorterte lister (Java-implementering) 07 Stakk 08 Kø 09 Tre 10 Graf 11 Mengde 12 Hashing 13 Sortering 14 Algoritme-mønstre og problemløsing App A Java programmering App B Klassehierarki App C Java dokumentasjon App D Java 2 Platform, Standard Edition v 1.3.1 API Specification App E Flash / ActionScript 3.0 App F Algoritme analyse App G Matematisk induksjon
Uke-plan 34 Innledning / Java-repetisjon / Rekursjon 35 OOP / Matematisk induksjon 36 Tabeller / Tabell-operasjoner 37 Array-klasser (Java-implementering) 38 Lister 39 Abstrakte datatyper (Java-implementering) Ordnede/Sorterte lister (Java-implementering) 40 Stakk / Kø 41 Tre 42 Tre 43 Graf 44 Graf / Mengde 45 Algoritmeanalyse 46 Repetisjon / Eksamensoppgaver
Tabell / Post / Klasse Liste Stakk Kø Tre Graf Mengde Ulike datastrukturer Tabell / Post / Klasse Liste Stakk Kø Tre Graf Mengde
Tabell - Post - Klasse Attributter Funksjoner Array Struct Class
Array Les inn nedbørmengde for årets 12 måneder: nedbor FOR mnd := 1 TO 12 DO les nedbor[mnd] ENDFOR FOR mnd := januar TO desember DO les nedbor[mnd] ENDFOR
class Behandle nedbørmengde for årets 12 måneder: class Nebor { private: data[12] public: Nedbor(…) setNedbor(…) getNedbor(mnd) sum( ) gjennomsnitt( ) getMax( ) getMin( ) … }
Liste
Stakk (LIFO) In Out Top
Kø (FIFO) In Out Top
Tre
Graf
Mengde
Notasjoner Tilordning : a := b a := b a = b Test likhet : a == b a = b a == b Test : IF …THEN if (…) { … … } ELSE IF else if(…) { … … { ELSE else { … … ENDIF } Sløyfe : FOR … DO WHILE ...DO while… { … ... ENDFOR ENDWHILE }
Programmering Repetisjon 001 Utskrift av ”Hello” 002 Konstanter og Variabler 003 Innlesing fra tastatur 004 Seleksjon if - else 005 Seleksjon switch - case - default 006 Sløyfer for 007 Sløyfer while 008 Sløyfer do - while 009 Tabell (Array) 010 Funksjon 011 Rekursjon 012 Innlesing fra fil 013 Klasse - Objekt 014 Arv - Polymorfi 015 Interface – Abstrakte klasser 016 Indre klasser
END