DM34-1. Obligatorisk opgave Dilemma spillet. Jacob Aae Mikkelsen kok04

Størrelse: px
Starte visningen fra side:

Download "DM34-1. Obligatorisk opgave Dilemma spillet. Jacob Aae Mikkelsen 191076 kok04"

Transkript

1 DM34-1. Obligatorisk opgave Dilemma spillet Jacob Aae Mikkelsen kok04 April 2005

2 Kapitel 1 Resumé Denne rapport dokumenterer udviklingsforløbet og afprøvningen af et spil Dilemma. Spillet går ud på at opbygge en tillid i byttehandel, hvor der også kan snydes. Der er implementeret forskellige spillere, ved hjælp af nedarving og polymorfi. 1

3 Indhold 1 Resumé 1 2 Indledning 3 3 Kravspecifikation 4 4 Design Udviklingsstrategi Klasseopbygning Kok04 strategien 6 6 Implementation High score tabel Sortere tabellen Fejl afværgning Afprøvning Test Mulig udvidelse Evaluering af kodens kvalitet Konklusion 12 A Testkørsels udskrifter 14 A.1 samarbejde A.2 udnytte B Kilde kode 17 B.1 Main.java B.2 Gui.java B.3 Tabel.java B.4 Spiller.java B.5 Moede.java B.6 RandomPlayer.java B.7 Udnytte.java B.8 Samarbejde.java B.9 Kok04.java

4 Kapitel 2 Indledning Spillet Dilemma, som denne rapport omhandler, går i alt sin enkelthed ud på at to spillere mødes og udveksler en vare, med mulighed for at aflevere varen, eller at snyde modstanderen. Hvis begge snyder, opnås ingen point, og da én spiller nok hurtigt bliver træt af at blive snydt, er det smarteste at opbygge en tillid, spillerne imellem, hvorved spillerens hukommelse kan benyttes. Rapporten her er udarbejdet af Jacob Aae Mikkelsen ( Kokken ) i faget DM34, foråret Det er i forbindelse med den første afleveringsopgave, der tæller som en del af eksamen. Denne udgave af Dilemma er lavet med en simpel grafisk brugerflade, seks spillere, hvoraf én er interaktiv, så dette program er et ét personers spil, og hver spiller mødes 10 til 40 gange. Der er i opgaven lagt op til en større ekstern turnering, der har spillet ind, ved udarbejdelsen af strategien. Der er endvidere kort beskrevet de umiddelbare muligheder for at forbedre spillet, og givet en vurdering af kodens kvalitet. 3

5 Kapitel 3 Kravspecifikation Der er udtrykkeligt blevet stillet disse krav til opgaven Et Dilemma spil med 6 spillere De seks spiller skal være: - Interaktiv, brugeren bestemmer - Altid udnytte - Altid samarbejde - Random, tilfældigt udvalgt - Edmund (forelæserens) strategi - Vores egen, navngivet med vores IMADA brugernavn Designbeskrivelse af struktur og hovedprogram Specifikation og design af vores egen strategi Programudskrift Afprøvning Resultat og konklusion af afprøvningen Ud over de i opgaven stillede krav er der udarbejdet en grafisk brugerflade. 4

6 Kapitel 4 Design 4.1 Udviklingsstrategi Da der allerede var standardiserede klasser til spiller og moede klasserne, samt en ret udførlig beskrivelse af opgaven, valgtes vandfaldsmodellen som udviklingsstrategi. Der var enkelte småfejl, der blev fundet under testning, som så sendte udviklingen tilbage et skridt, men ellers er modellen fulgt med succes. 4.2 Klasseopbygning De seks spillere nedarver alle fra Spiller klassen, ligesom de benytter Moede klassen. I kraft af den enumererede type Handling der er placeret i denne klasse, har den mange koblinger til de andre klasser, hvilket til dels kunne være undgået, hvis Handling havde været lagt i spiller. Den største klasse i programmet er uden tvivl Gui. Denne klasse står for den grafiske brugerflade, og selve afviklingen af spillet. Selve afviklingen af spillet kunne være placeret i en klasse for sig selv, men da den ikke er så omfattende endda, var den behagelig at have i samme klasse som de tekstfelter denne del hele tiden opdaterer, derfor er denne løsning foretrukket. Gui klassen gør brug af Tabel klassen, der laver de to evalueringsskemaer. Der er i opgaven implementeret en metode i Spiller klassen, der kan sammenligne to spillere, men da Tabel klassen løbende får informationerne om pointene, efter hvert møde, er det fortrukket at den benytter sig af sine egne oplysninger, frem for at koble til Spiller klassen. Der er desuden lavet en Main klasse, der kun har et formål, nemlig at lave og initialisere den første instans variabel, og dermed starte den grafiske brugerflade. 5

7 Kapitel 5 Kok04 strategien Personligt, tror jeg på det bedste i folk, også at man kan ændre sig til det bedre. Dette er grundidéen med kok04 strategien. Den er opbygget på de tre seneste møder, fordelt med halvdelen på det seneste, to sjettedele på det næstsidste og én sjettedel på det tredjesidste. Resten af historien er uden betydning. I dette spil med flere ukomplicerede strategier, klarer den sig fornuftigt, men taber selvfølgeligt hver gang mødet med strategien der kun udnytter. Det er til gengæld ikke med ret mange point, og derfor tror jeg kok04 har en bedre chance i en turnering, med mange spillere, der har implementeret forskellige strategier, men det må jo stå sin prøve senere. 6

8 Kapitel 6 Implementation 6.1 High score tabel Der er forskellige måder at bygge tabeller op på, men her er valgt en enkel måde, der bygger på string-concatenation. Tabel klassen arbejder uafhængigt af spiller klassen, hvilket giver en bedre struktur med mindre kobling. Specielt den sorterede high-score tabel benytter et lidt naivt design, der dog virker uden problemer. totalliste.add(formatnumber(total)+ " " + nametable[i]); Spillerne med point forrest, bliver indsat i en Arrayliste, men med pointene forrest med foranstillede nuller op til længden 7. Her ses tydeligt at denne tilgang ville få problemer med flere point end , men da dette svarer til maksimalt point udbytte i ( / 4 møder) møder, og med 6spillere skal hver spiller så mødes gange. Dette er ikke muligt, og derfor er der ingen problemer. 6.2 Sortere tabellen Da der er foran stillede nuller til en fast længde, kan listen sorteres ganske enkelt efter sinpel alfabetisk orden. Til dette formål benyttes javas egen funktion til at sortere liste. Da den så ender i modsat rækkefølge, concateneres strengen ved at tilføje nye dele før det eksisterende i strengen public String highscoretabel() { Collections.sort(totalListe); String highscore = ""; Iterator it = totalliste.iterator(); for(int i=1; it.hasnext() ; i++) { highscore = "" + (7-i) + it.next() + "\n" + highscore; } } highscore = "High Score Liste - Hall of Fame\nPlads Point Spiller\n" + highscore; return highscore; 7

9 6.3. FEJL AFVÆRGNING 6.3 Fejl afværgning Hvis spilleren fortsat trykker på samarbejde eller udnytte knapperne efter spillet er slut, udnyttes den ArrayOutOfBounds exception der opstår til at skrive en ny tekst i det lille tektfelt over knapperne ved de fælgende catch: catch(exception e) { count.settext("\n } Tryk på \n \"Nyt spil\""); 8

10 Kapitel 7 Afprøvning 7.1 Test I kraft af at programmet er lavet med en grafisk brugerflade, er der kun tre knapper, og ingen indtastning fra brugeren, der jo kan modtage alverdens input, og derfor også skal grundigt testes. Start nyt spil knappen, starter et nyt spil, også uanset om man ikke er færdig med det spil. Dette er der intet gjort for at forhindre, og kan derfor ikke betegnes som en bug, nærmere en feature, idet der jo heller ikke kommer nogen irriterende dialogbokse med Er du sikker beskeder. Når spillet er startet, giver udnytte/samarbejde knapperne informationen videre til spillet, men under afprøvning, konstateredes det at når spillet var slut, udløste det en exception, at trykke på det. Denne fejl er rettet med en try/catch, og resulterer i stedet for med en meddelelse om at trykke på nyt spil. Med hensyn til de enkelte strategier, afprøves ved hjælp af den interaktive, ved to testkørsler, én der samarbejder medalle i 10 spil og en der udnytter mod alle i 10 spil Samarbejde i 10 spil Idet vi samarbejder i 10 spil, skulle vores resultater minde meget om det samarbejde spilleren opnår. det vil sige at: Mod udnytte forventes -10 Mod samarbejde forventes 20 Mod Kok04 strategien/kokkens forventes 20 Mod Random forventes at samarbejde ca 5 gange og blive udnyttet ca 5 gange, men er ikke nem at teste på. Udnytte mod Dig selv opnår 40 Samarbejde mod Dig selv opnår 20 Kokken mod Dig selv opnår 20 Disse resultater kan ifølge bilag A.1. bekræftes. Ud fra tabellen testes også total scoren, og konstaterer at: 9

11 7.2. MULIG UDVIDELSE faktisk giver faktisk giver faktisk giver 136 (Resten er også adderet og kontrolleret) Slutteligt konstateres at de samlede totaler er de samme i begge skemaer, samt at Samarbejde og Dig selv kun er adskilt af de tre point der er i forskel mod Random Denne del af testen er altså godkendt, uden konstaterede fejl Udnytte i 10 spil Idet vi udnytter i alle spil, forventes resultater der skal ligne resultaterne fra Udnytte spilleren, det vil sige: Mod udnytte forventes 0 Mod samarbejde forventes 40 Mod Kok04 strategien/kokkens forventes 12 (Kun point i de tre forste runder) Mod Random forventes at samarbejde ca 5 gange og blive udnyttet ca 5 gange, men er ikke nem at teste på. Udnytte mod Dig selv opnår 0 Samarbejde mod Dig selv opnår -10 Kokken mod Dig selv opnår -3 Disse resultater kan verificeres, se bilag A.2. Ud fra tabellen testes også total scoren, og konstaterer at: giver giver 44 (Resten er også adderet og kontrolleret) Også her konstateredes at de samlede totaler er identiske i de to skemaer, og at vi opnår de helt samme resultater som Udnytte spilleren. Vi finder i denne test heller ingen fejl. 7.2 Mulig udvidelse Der kunne implementeres en brugsanvisning til spillet, der kunne hentes fra menulinien. Dette er udeladt, da reglerne er meget simple, og dem der stifter bekendskab med spillet kender dem. 7.3 Evaluering af kodens kvalitet Som i ethvert projekt, er der jo positive og negative ting. Ting der er positive, er at programmet overholder de retningslinier for pæn kode (Coding Guidelines) som Michael Kölling beskriver[1]. Dette gør at koden er til at overskue, og der er lavet kommentarer til alle metoder, også i spiller klasssen, der var mangelfuld, 10

12 7.3. EVALUERING AF KODENS KVALITET i den udleverede version. Af negative ting kan nævnes at der er en del af koden i Spiller klassen der ikke benyttes, men der ikke kan ændres, grundet krav i opgaven om kompatibilitet. 11

13 Kapitel 8 Konklusion Der er i processen løst og besvaret de stillede opgaver. Programmet virker efter hensigten, og de fejl der dukkede op under afprøvningen er rettet. Af personlige erfaringer, kan konkluderes at tidsplaner kan snyde; når en platform skal opgraderes som i dette tilfælde JAVA fra 1.4 til 5, kan det tage nogen tid at få compileren til at køre ordenligt. Der er ganske givet også klasser i JAVA, der er lavet til den slags skemaer, som voldte problemer i Tabel klassen, men denne fremgangsmåde virker, omend den er møjsommelig. 12

14 Litteratur [1] Objects First with JAVA - A practical introduction using BlueJ (2nd Edition), Michael Kölling, David J. Barnes, Pearson Educational Limited

15 Bilag A Testkørsels udskrifter 14

16 A.1. SAMARBEJDE A.1 samarbejde Figur A.1: 10 runder med kun samarbejde 15

17 A.2. UDNYTTE A.2 udnytte Figur A.2: 10 runder med kun udnytte 16

18 Bilag B Kilde kode B.1 Main.java 1 2 public class Main { 3 4 / 5 Main c l a s s f o r t h e game Dilemma, i n i t i a l i z e s t h e 6 Graphical user i n t e r f a c e 7 8 / 9 public s t a t ic void main ( S t r i n g [ ] a r g s ) { 10 Gui gui = new Gui ( ) ; 11 } 12 } B.2 Gui.java 1 import java. awt. BorderLayout ; 2 import java. awt. Container ; 3 import java. awt. Dimension ; 4 import java. awt. Font ; 5 import java. awt. GridLayout ; 6 import java. awt. event. ActionEvent ; 7 import java. awt. event. A c t i o n L i s t e n e r ; 8 import java. u t i l. ArrayList ; 9 10 import javax. swing. JButton ; 11 import javax. swing. JFrame ; 12 import javax. swing. JLabel ; 13 import javax. swing. JMenu ; 14 import javax. swing. JMenuBar ; 15 import javax. swing. JMenuItem ; 16 import javax. swing. JPanel ; 17 import javax. swing. JTextArea ; 18 import javax. swing. border. EmptyBorder ; 19 import javax. swing. border. EtchedBorder ; 20 17

19 B.2. GUI.JAVA 21 / Kokken This c l a s s c r e a t e s t h e g r a p h i c a l user i n t e r f c e f o r t h e a p p l i c a t i o n 25 And c o n t r o l s t h e game a c t i o n 26 / 27 public class Gui { 28 private JFrame frame ; 29 private JTextArea textarea ; 30 private JTextArea r e s u l t A r e a ; 31 private JTextArea count ; 32 private ArrayList<S p i l l e r > s p i l l e r e ; 33 private int a n t a l ; 34 private int spillernummer ; 35 private int rounds ; 36 private Tabel t a b e l ; / 39 Constructor o f t h e GUI 40 I n i t i a l i z e s t h e f i e l d s, and 41 C a l l s t h e method makeframe to d i s p l a y t h e GUI 42 / 43 public Gui ( ) { 44 frame = new JFrame ( "Dilemma" ) ; 45 textarea = new JTextArea ( ) ; 46 r e s u l t A r e a = new JTextArea ( ) ; 47 count = new JTextArea ( ) ; 48 s p i l l e r e = new ArrayList<S p i l l e r >() ; 49 rounds = 1 1 ; makeframe ( ) ; 52 newgame ( ) ; 53 } / 57 This methods c r e a t e s t h e GUI d i s p l a y, 58 and s e t s up a l i s t e n e r to t h e b u t t o n s 59 / 60 private void makeframe ( ) { //The frame, and i t s p r o p e r t i e s 63 Container contentpane = frame. getcontentpane ( ) ; 64 contentpane. setlayout (new BorderLayout ( ) ) ; 65 frame. s e t D e f a u l t C l o s e O p e r a t i o n ( JFrame.EXIT_ON_CLOSE) ; //The menu bar in t h e top op t h e frame, and i t s o p e r a t i o n s 68 JMenuBar menubar = new JMenuBar ( ) ; 69 frame. setjmenubar ( menubar ) ; 70 JMenu countmenu = new JMenu( " Antal Runder" ) ; 71 menubar. add ( countmenu ) ; JMenuItem ten = new JMenuItem ( "10 runder " ) ; 74 countmenu. add ( ten ) ; 18

20 B.2. GUI.JAVA 75 ten. addactionlistener (new A c t i o n L i s t e n e r ( ) { 76 public void actionperformed ( ActionEvent e ) { 77 setrounds ( 1 0 ) ; 78 newgame ( ) ; 79 } 80 }) ; JMenuItem twenty = new JMenuItem ( "20 runder " ) ; 83 countmenu. add ( twenty ) ; 84 twenty. addactionlistener (new A c t i o n L i s t e n e r ( ) { 85 public void actionperformed ( ActionEvent e ) { 86 setrounds ( 2 0 ) ; 87 newgame ( ) ; 88 } 89 }) ; JMenuItem t h i r t y = new JMenuItem ( "30 runder " ) ; 92 countmenu. add ( t h i r t y ) ; 93 t h i r t y. addactionlistener (new A c t i o n L i s t e n e r ( ) { 94 public void actionperformed ( ActionEvent e ) { 95 setrounds ( 3 0 ) ; 96 newgame ( ) ; 97 } 98 }) ; JMenuItem f o r t y = new JMenuItem ( "40 runder " ) ; 101 countmenu. add ( f o r t y ) ; 102 f o r t y. addactionlistener (new A c t i o n L i s t e n e r ( ) { 103 public void actionperformed ( ActionEvent e ) { 104 setrounds ( 4 0 ) ; 105 newgame ( ) ; 106 } 107 }) ; //The i n s t r u c t i o n i n t h e top o f t h e screen 110 JLabel label = new JLabel ( " Dette er s p i l l e t dilemma, når du t r y k k e r på s t a r t, bestemmer du, mod de f o r s k e l l i g e s p i l l e r e du møder" ) ; 111 label. s e t P r e f e r r e d S i z e (new Dimension ( 7 0 0, 4 0 ) ) ; 112 contentpane. add ( label, BorderLayout.NORTH) ; // t h e l a r g e t e x t areas to t h e l e f t 115 Container textareacontainer = new Container ( ) ; 116 textareacontainer. setlayout (new GridLayout ( 0, 1 ) ) ; textarea. s e t P r e f e r r e d S i z e (new Dimension (500, 300) ) ; 119 textarea. setborder (new EtchedBorder ( ) ) ; 120 textarea. setfont (new Font ( "Monospaced", 0, 14) ) ; 121 textareacontainer. add ( textarea ) ; r e s u l t A r e a. s e t P r e f e r r e d S i z e (new Dimension (500, 300) ) ; 124 r e s u l t A r e a. setborder (new EtchedBorder ( ) ) ; 125 r e s u l t A r e a. setfont (new Font ( "Monospaced", 0, 14) ) ; 126 textareacontainer. add ( r e s u l t A r e a ) ;

21 B.2. GUI.JAVA 128 contentpane. add ( textareacontainer, BorderLayout.CENTER) ; //The b u t t o n s and t h e s m a l l t e x t a r e a to t h e r i g h t 131 JPanel buttonpanel = new JPanel ( ) ; 132 buttonpanel. setborder (new EmptyBorder ( 0, 1 6, 0, 1 6 ) ) ; 133 buttonpanel. setlayout (new GridLayout ( 0, 1 ) ) ; JButton startbutton = new JButton ( "Nyt s p i l " ) ; 136 startbutton. addactionlistener (new A c t i o n L i s t e n e r ( ) { 137 public void actionperformed ( ActionEvent e ) { 138 newgame ( ) ; 139 } 140 }) ; JButton samarbejdebutton = new JButton ( " Samarbejde " ) ; 143 samarbejdebutton. addactionlistener (new A c t i o n L i s t e n e r ( ) { 144 public void actionperformed ( ActionEvent e ) { 145 playgame ( Moede. Handling. sam ) ; 146 } 147 }) ; JButton udnyttebutton = new JButton ( " Udnytte " ) ; 150 udnyttebutton. addactionlistener (new A c t i o n L i s t e n e r ( ) { 151 public void actionperformed ( ActionEvent e ) { 152 playgame ( Moede. Handling. udn ) ; 153 } 154 }) ; count. s e t P r e f e r r e d S i z e (new Dimension ( 5 0, 5 0 ) ) ; 157 count. setborder (new EtchedBorder ( ) ) ; 158 count. setfont (new Font ( "Monospaced", 0, 12) ) ; 159 buttonpanel. add ( count ) ; JLabel empty0 = new JLabel ( ) ; 162 buttonpanel. add ( empty0 ) ; 163 buttonpanel. add ( startbutton ) ; 164 JLabel empty1 = new JLabel ( ) ; 165 buttonpanel. add ( empty1 ) ; 166 buttonpanel. add ( samarbejdebutton ) ; 167 JLabel empty2 = new JLabel ( ) ; 168 buttonpanel. add ( empty2 ) ; 169 buttonpanel. add ( udnyttebutton ) ; 170 JLabel empty3 = new JLabel ( ) ; 171 buttonpanel. add ( empty3 ) ; contentpane. add ( buttonpanel, BorderLayout. EAST) ; //The bottum t e x t l a b e l 176 JLabel labeldown = new JLabel ( " Design by : Kokken" ) ; 177 labeldown. s e t P r e f e r r e d S i z e (new Dimension ( 5 0 0, 5 0 ) ) ; 178 contentpane. add ( labeldown, BorderLayout.SOUTH) ; frame. pack ( ) ; 181 frame. s e t L o c a t i o n R e l a t i v e T o ( null ) ; 20

22 B.2. GUI.JAVA 182 frame. s e t V i s i b l e ( true ) ; } / 187 This method i n i t i a l i z e s t h e Dilemma game f o r a 188 new game, c l e a r i n g a l l p l a y e r s memory, and l o a d i n g them 189 / 190 private void newgame ( ) { 191 a n t a l = 1 ; 192 spillernummer = 1 ; 193 t a b e l = new Tabel ( ) ; s p i l l e r e. c l e a r ( ) ; 196 s p i l l e r e. add (new Kok04 ( "Dig s e l v " ) ) ; //"Dummy" player, to f i l l t h e space in t h e l i s t 197 s p i l l e r e. add (new Edmund( "Edmund " ) ) ; 198 s p i l l e r e. add (new Udnytte ( " Udnytte " ) ) ; 199 s p i l l e r e. add (new Samarbejde ( " Samarbejde " ) ) ; 200 s p i l l e r e. add (new Kok04 ( "Kokkens " ) ) ; 201 s p i l l e r e. add (new RandomPlayer ( "Random " ) ) ; count. settext ( "\n Du kan nu \n s t a r t e " ) ; 204 textarea. settext ( "Vælg nu om du v i l samarbejde e l l e r udnytte " ) ; 205 r e s u l t A r e a. settext ( " R e s u l t a t e r " ) ; 206 } / 210 Controls t h e gameplay, once i t has s t a r t e d 211 / 212 private void playgame ( Moede. Handling A) 213 { 214 //The p l a y e r namesis arranged in t h e t a b l e 215 for ( int i= 0 ; i < s p i l l e r e. s i z e ( ) ; i ++) { 216 t a b e l. addplayername ( i, s p i l l e r e. get ( i ). getname ( ) ) ; 217 } // This p a r t c o n t r o l s t h e i n t e r a c t i v e p l a y e r 221 i f ( a n t a l % rounds!= 0 && spillernummer < 6) 222 { 223 count. settext ( "\n Antal Møder\n " + a n t a l ) ; 224 Moede. Handling B = s p i l l e r e. get ( spillernummer ). getaction ( ) ; 225 Moede moedea = new Moede (A, B) ; 226 Moede moedeb = new Moede (B,A) ; s p i l l e r e. get ( spillernummer ). savemeet (moedeb) ; 229 s p i l l e r e. get ( 0 ). savemeet (moedea) ; S t r i n g t e x t = ""+s p i l l e r e. get ( spillernummer ). getname ( )+" : "+s p i l l e r e. get ( spillernummer ). s c o r e ( )+"\n"+s p i l l e r e. get ( 0 ). getname ( )+" : "+s p i l l e r e. get ( 0 ). s c o r e ( ) + "\ nseneste møde : " + moedea. t o S t r i n g ( ) ; ; 21

23 B.2. GUI.JAVA r e s u l t A r e a. settext ( t e x t ) ; a n t a l++; 236 } 237 else 238 { 239 a n t a l =1; 240 try{ 241 t a b e l. addresult ( 0, spillernummer, s p i l l e r e. get ( 0 ). s c o r e ( ) ) ; 242 t a b e l. addresult ( spillernummer, 0, s p i l l e r e. get ( spillernummer ). s c o r e ( ) ) ; 243 s p i l l e r e. get ( 0 ). clearmemory ( ) ; 244 s p i l l e r e. get ( spillernummer ). clearmemory ( ) ; 245 } 246 catch ( Exception e ) 247 { 248 count. settext ( "\n Tryk på \n \"Nyt s p i l \"" ) ; 249 } 250 spillernummer++; 251 i f ( spillernummer <6) {playgame (A) ; } 252 } // Here i t i s t h e automatic p l a y e r s 255 i f ( spillernummer == 6) { 256 int a u t o S p i l l e r 1 = 1 ; 257 int a u t o S p i l l e r 2 = 2 ; 258 while ( a u t o S p i l l e r 1 < 5) { 259 for ( int j = 1 ; j % rounds!= 0 ; j ++){ 260 Moede. Handling f i r s t = s p i l l e r e. get ( a u t o S p i l l e r 1 ). getaction ( ) ; 261 Moede. Handling second = s p i l l e r e. get ( a u t o S p i l l e r 2 ). getaction ( ) ; 262 Moede moedefirst = new Moede ( f i r s t, second ) ; 263 Moede moedesecond = new Moede ( second, f i r s t ) ; s p i l l e r e. get ( a u t o S p i l l e r 1 ). savemeet ( moedefirst ) ; 266 s p i l l e r e. get ( a u t o S p i l l e r 2 ). savemeet ( moedesecond ) ; 267 } 268 t a b e l. addresult ( a u t o S p i l l e r 1, a u t o S p i l l e r 2, s p i l l e r e. get ( a u t o S p i l l e r 1 ). s c o r e ( ) ) ; 269 t a b e l. addresult ( a u t o S p i l l e r 2, a u t o S p i l l e r 1, s p i l l e r e. get ( a u t o S p i l l e r 2 ). s c o r e ( ) ) ; s p i l l e r e. get ( a u t o S p i l l e r 1 ). clearmemory ( ) ; 272 s p i l l e r e. get ( a u t o S p i l l e r 2 ). clearmemory ( ) ; 273 a u t o S p i l l e r 2 ++; 274 i f ( a u t o S p i l l e r 2 > 5) { 275 a u t o S p i l l e r 1 ++; 276 a u t o S p i l l e r 2 = a u t o S p i l l e r ; 277 } 278 } 279 r e s u l t A r e a. settext ( t a b e l. lavtabel ( ) ) ; 280 textarea. settext ( t a b e l. highscoretabel ( ) ) ;

24 B.3. TABEL.JAVA 282 } 283 } / 286 S e t s t h e number o f rounds 287 / 288 private void setrounds ( int numberofrounds ) 289 { 290 rounds = numberofrounds + 1 ; 291 } 292 } B.3 Tabel.java 1 import java. u t i l. ArrayList ; 2 import java. u t i l. C o l l e c t i o n s ; 3 import java. u t i l. I t e r a t o r ; / 7 Denne k l a s s e s t å r f o r at skabe t a b e l l e n med r e s u l t a t e r 8 / 9 public class Tabel { 10 private int [ ] [ ] playertable ; 11 private S t r i n g [ ] nametable ; 12 private int t o t a l ; 13 private ArrayList<String > t o t a l L i s t e ; public Tabel ( ) 16 { 17 nametable = new S t r i n g [ 6 ] ; 18 playertable = new int [ 6 ] [ 6 ] ; 19 t o t a l L i s t e = new ArrayList<String >() ; 20 t o t a l = 0 ; i n i t i a l i z e ( ) ; 23 } / 26 Her t i l f ø j e s r e s u l t a t e r t i l t a b e l l e n 27 / 28 public void addresult ( int player, int opponent, int s c o r e ) 29 { 30 playertable [ p l a y e r ] [ opponent ] = s c o r e ; 31 } / 35 Adds a p l a y e r name to t h e t a b l e 36 / 37 public void addplayername ( int p l a y e r, S t r i n g name) 38 { 39 int l e n g t h = name. l e n g t h ( ) ; 40 for ( int i = 1 ; i < 14 l e n g t h ; i ++) { 23

25 B.3. TABEL.JAVA 41 name = name + " " ; 42 } 43 nametable [ p l a y e r ] = name ; 44 } / 47 Her l a v e s t a b e l l e n med de e n k e l t e møder 48 mellem s p i l l e r n e 49 / 50 public S t r i n g lavtabel ( ) 51 { 52 S t r i n g r e s u l t a t = "De e n k e l t e møder \ n S p i l l e r Total \n" ; 53 for ( int i = 0 ; i <6 ; i ++) { 54 r e s u l t a t = r e s u l t a t + nametable [ i ] ; 55 for ( int j = 0 ; j <6 ; j++) { 56 t o t a l += playertable [ i ] [ j ] ; 57 r e s u l t a t = r e s u l t a t + "" + formatnumber ( playertable [ i ] [ j ] ) + "" ; 58 } 59 t o t a l L i s t e. add ( formatnumber ( t o t a l )+ " " + nametable [ i ] ) ; 60 r e s u l t a t = r e s u l t a t + "" + formatnumber ( t o t a l ) + "\n" ; 61 t o t a l = 0 ; 62 } return r e s u l t a t ; 65 } / 68 Her l a v e s h i g h s c o r e t a b e l l e n, s o r t e r e t e f t e r p o i n t 69 / 70 public S t r i n g highscoretabel ( ) 71 { 72 C o l l e c t i o n s. s o r t ( t o t a l L i s t e ) ; 73 S t r i n g highscore = "" ; 74 I t e r a t o r i t = t o t a l L i s t e. i t e r a t o r ( ) ; 75 for ( int i =1; i t. hasnext ( ) ; i ++) { 76 highscore = "" + (7 i ) + i t. next ( ) + "\n" + highscore ; 77 } highscore = "High Score L i s t e Hall o f Fame\ nplads Point S p i l l e r \n" + highscore ; 80 return highscore ; 81 } / 85 Formatterer e t nummer t i l en streng, med foran s t i l l e d e 86 mellemrum, t i l en samlet længde a f 7 87 / 88 private S t r i n g formatnumber ( int number ) 89 { 90 S t r i n g badnumber = "" + number ; 91 int l e n g t h = badnumber. l e n g t h ( ) ; 92 S t r i n g nicenumber = "" ; 24

26 B.4. SPILLER.JAVA 93 for ( int i = 0 ; i < 7 l e n g t h ; i++ ) { 94 nicenumber = nicenumber + " " ; 95 } 96 nicenumber = nicenumber + number ; 97 return nicenumber ; 98 } / 101 Her f y l d e s d o b b e l t a r r a y e t op med n u l l e r, s p e c i e l t t i l brug 102 f o r de møder der i k k e e k s i s t e r e r / når man i k k e møder s i g s e l v / 105 private void i n i t i a l i z e ( ) 106 { 107 for ( int j =0; j <6 ; j++) { 108 for ( int i =0; i <6 ; i ++) { 109 playertable [ i ] [ j ] = 0 ; 110 } 111 } 112 } 113 } B.4 Spiller.java 1 import java. u t i l. ArrayList ; 2 / 3 Dette er en a b s t r a k t s u p e r k l a s s e f o r a l l e s p i l l e r n e 4 i Dilemma s p i l l e t. Klassen d e f i n e r e r en g e n e r e l s p i l l e r. 5 Den k o n k r e t e s p i l l e r, dvs. med implementation a f 6 getaction, d e f i n e r e s i en a f l e d t k l a s s e. 7 Klassen implementerer Comparable f o r at s o r t e r e s p i l l e r n e. 8 / 9 abstract public class S p i l l e r implements Comparable 10 { 11 protected S t r i n g name ; // S p i l l e r e n s navn 12 protected ArrayList<Moede> memory ; // t i l t i d l i g e r e møder 13 private int t o t a l = 0 ; // s p i l l e r e n s t o t a l e s c o r e / 16 Constructor t i l s p i l l e r e n 17 na S p i l l e r e n s navn 19 / 20 public S p i l l e r ( S t r i n g na ) 21 { 22 name = na ; 23 memory = new ArrayList<Moede>() ; // i n i t i a l i s e r hukommelsen 24 } / 27 Returneret s p i l l e r e n s navn Navnet på s p i l l e r e n 29 / 30 public S t r i n g getname ( ) 25

27 B.4. SPILLER.JAVA 31 { 32 return name ; 33 } / 36 Kan u d s k r i v e hukommelsen f o r denne s p i l l e r 37 / 38 protected void r e c a l l ( ) 39 { 40 System. out. p r i n t ( "Hukommelse f o r "+name+" : " ) ; 41 i f (memory. s i z e ( ) ==0) { 42 System. out. p r i n t ( "tom" ) ; 43 } 44 for ( int i =0; i <memory. s i z e ( ) ; i ++) { 45 System. out. p r i n t ( " " + memory. get ( i ) ) ; 46 System. out. p r i n t l n ( ) ; 47 } 48 } // Denne metode implementeres i den a f l e d t e k l a s s e 51 abstract public Moede. Handling getaction ( ) ; / 54 f ø l g e n d e metode i n d s æ t t e r e t møde i hukommelsen. 55 / 56 public void savemeet ( Moede m) 57 { 58 memory. add (m) ; 59 } / 62 f ø l g e n d e metode s l e t t e r hukommelsen f ø r ny m o d s p i l l e r. 63 / 64 public void clearmemory ( ) 65 { 66 memory. c l e a r ( ) ; 67 } / 70 Denne metode beregner scoren ud frahukommelsen S p i l l e r e n s s c o r e 72 / 73 public int s c o r e ( ) 74 { 75 int sum=0; // sum er scoren mod een s p i l l e r 76 for ( int i =0; i <memory. s i z e ( ) ; i ++) { 77 sum += (memory. get ( i ) ). value ( ) ; 78 } 79 return sum ; 80 } / 83 Denne metode lægger e t t a l t i l scoren nyscore Det der s k a l lægges t i l i p o i n t 26

28 B.5. MOEDE.JAVA 85 / 86 public void addtototal ( int nyscore ) 87 { 88 t o t a l += nyscore ; 89 } / 92 Denne metode r e t u r n e r e r s p i l l e r e n s t o t a l e s c o r e den samlede s c o r e 94 / 95 public int gettotal ( ) 96 { 97 return t o t a l ; 98 } //Her implementeres compareto f r a i n t e r f a c e t Comparable. 101 //Værdien er p o s i t i v, h v i s t h i s p l a y e r kommer e f t e r e f t e r 102 //B i ordningen, dvs. h v i s B har den s t ø r s t e s c o r e. 103 // Dette er modsat normal ordning a f t a l v æ r d i e r! 104 public int compareto ( Object B) 105 { 106 return ( ( S p i l l e r ) B). gettotal ( ) gettotal ( ) ; 107 } 108 } B.5 Moede.java 1 / 2 This c l a s s c r e a t e s t h e t a b l e o f r e s u l t s 3 f o r t h e dilemma game 4 / 5 public class Moede 6 { 7 enum Handling {sam, udn } ; 8 private f i n a l Handling SAM = Handling. sam ; 9 private f i n a l Handling UDN = Handling. udn ; 10 private Handling avalg ; 11 private Handling bvalg ; / 14 Constructor, t a k e s t h e two p l a y e r s a c t i o n s 15 as parameters 16 / 17 public Moede ( Handling a, Handling b ) 18 { 19 avalg=a ; 20 bvalg=b ; 21 } / 24 Returns p l a y e r a s a c t i o n 25 / 26 public Handling geta ( ) 27 { 27

29 B.6. RANDOMPLAYER.JAVA 28 return avalg ; 29 } / 32 Returns p l a y e r b s a c t i o n 33 / 34 public Handling getb ( ) 35 { 36 return bvalg ; 37 } / 40 Returns t h e p o i n t s c o r e o f p l a y e r a 41 / 42 public int value ( ) 43 { 44 int r e s u l t = ; // ændres med s i k k e r h e d 45 i f ( avalg==sam && bvalg==sam) r e s u l t= 2 ; 46 i f ( avalg==sam && bvalg==udn) r e s u l t = 1; 47 i f ( avalg==udn && bvalg==sam) r e s u l t= 4 ; 48 i f ( avalg==udn && bvalg==udn) r e s u l t= 0 ; 49 return r e s u l t ; 50 } / 53 Overwrites t h e method from o b j e c t, i s 54 used in System. out. p r i n t l i n e s, where 55 t h e method i s i m p l i c i t l y c a l l e d 56 / 57 public S t r i n g t o S t r i n g ( ) 58 { 59 return " ( " + avalg + ", " + bvalg + " ) " ; 60 } / 63 This method compares two meetings ( Not used in t h i s p r o j e c t ) 64 / 65 public boolean e q u a l s ( Object m) 66 { 67 return ( ( Moede )m). geta ( ) == avalg && ( ( Moede )m). getb ( ) == bvalg ; 68 } 69 } B.6 RandomPlayer.java 1 import java. u t i l. Random ; 2 3 / 4 A p l a y e r s t r a t e g i f o r t h e Dilemma game 5 Returns a random a c t i o n 6 / 7 public class RandomPlayer extends S p i l l e r 8 { 9 Random random ; 28

30 B.7. UDNYTTE.JAVA public RandomPlayer ( S t r i n g na ) 12 { 13 super ( na ) ; 14 random = new Random ( ) ; 15 } // Implements t h e a b s t r a k t method g e t A c t i o n : 18 public Moede. Handling getaction ( ) 19 { 20 int i = random. n extint ( 1 0 ) ; 21 i f ( i < 5) { // 50% chance each 22 return Moede. Handling. sam ; 23 } 24 else { 25 return Moede. Handling. udn ; 26 } 27 } 28 } B.7 Udnytte.java 1 / 2 Dette er en s p i l l e r t y p e t i l Dilemma s p i l l e t 3 4 Denne s p i l l e r u d n y t t e r hver gang 5 / 6 public class Udnytte extends S p i l l e r 7 { 8 public Udnytte ( S t r i n g na ) 9 { 10 super ( na ) ; // bruger Constructor f r a Player 11 } // Implementationen a f den a b s t r a k t e metode g e t A c t i o n : 14 public Moede. Handling getaction ( ) 15 { 16 return Moede. Handling. udn ; 17 } 18 } B.8 Samarbejde.java 1 / 2 A p l a y e r s t r a t e g i f o r t h e Dilemma game 3 t h e p l a y e r w i l l a l l w a y s c o o r p e r a t e 4 / 5 public class Samarbejde extends S p i l l e r 6 { 7 public Samarbejde ( S t r i n g na ) 8 { 9 super ( na ) ; 10 } 29

31 B.9. KOK04.JAVA // Implementats t h e a b s t r a k t method g e t A c t i o n : 13 public Moede. Handling getaction ( ) 14 { 15 return Moede. Handling. sam ; 16 } 17 } B.9 Kok04.java 1 / 2 This i s a p l a y e r t y p e 3 f o r t h e Dilemma game, 4 Depending on t h e l a s t t r e e moves 5 / 6 public class Kok04 extends S p i l l e r 7 { 8 9 public Kok04 ( S t r i n g na ) { 10 super ( na ) ; // Constructor from s p i l l e r 11 } // Implementation o f t h e a b s t r a k t method g e t A c t i o n : 14 public Moede. Handling getaction ( ) 15 { 16 int s c o r e = 0 ; 17 int l e n g t h = super. memory. s i z e ( ) ; 18 i f ( l e n g t h > 2) { 19 Moede. Handling t h i r d L a s t = super. memory. get ( length 2). getb ( ) ; 20 Moede. Handling secondlast = super. memory. get ( length 1). getb ( ) ; 21 Moede. Handling l a s t = super. memory. get ( length 1). getb ( ) ; 22 i f ( t h i r d L a s t. e q u a l s ( Moede. Handling. sam ) ) { s c o r e += 1 ; } ; 23 i f ( secondlast. e q u a l s ( Moede. Handling. sam ) ) { s c o r e += 2 ; } ; 24 i f ( l a s t. e q u a l s ( Moede. Handling. sam ) ) { s c o r e += 3 ; } ; 25 } 26 i f ( s c o r e < 3 && l e n g t h > 2) { 27 return Moede. Handling. udn ; 28 } 29 else { 30 return Moede. Handling. sam ; 31 } } 34 } 30

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.

Læs mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Forelæsning Uge 13 Torsdag

Forelæsning Uge 13 Torsdag Forelæsning Uge 13 Torsdag Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Forelæsning Uge 13 Mandag

Forelæsning Uge 13 Mandag Forelæsning Uge 13 Mandag Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer de

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Serialization i Java

Serialization i Java Serialization i Java Tutorial lavet af Jákup W. Hansen TSU 2006 1.semester 06.novemter 2006 Hvad er Serialization? I vores tekstbog Objects First with Java bliver denne del af Java ikke gennemgået. Men

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 6.9.2006 Kursusintroduktion og Java-oversigt BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label Programmering 1999 Forelæsning 13, tirsdag 12. oktober 1999 Oversigt Grafiske brugergrænseflader. Komponenter: Knapper, tekstfelter, checkbokse... Vinduer (containere). Hændelser, hændelsesstyret programmering.

Læs mere

Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1

Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering Design af brugerflader 12.1 Sidste kursusgang Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design

Læs mere

COMPUTERSPIL 1. Opgave 1

COMPUTERSPIL 1. Opgave 1 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

COMPUTERSPIL 1. Opgave 1. Opgave 2

COMPUTERSPIL 1. Opgave 1. Opgave 2 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1 Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance) Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic

Læs mere

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring

Læs mere

Bilag 1 Rige billeder Ordremodtagelse

Bilag 1 Rige billeder Ordremodtagelse Bilag1 Rigebilleder Ordremodtagelse Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 71 Overordnet Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 72 Produktionsgulvet Tværfagligtprojektpå2.Semester

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

Webserverprogrammering

Webserverprogrammering Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse

Læs mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:

Læs mere

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter OOP e2002 - uge 42 6. kursusgang Hvordan organiseres et programs grafik-elementer? 1. Teori: class Component og subklasser: Composite pattern layout-managere hændelsesstyret programmering 2. XP-program:

Læs mere

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...

Læs mere

Programmering 2. dprog2 E2013. http://www.cs.au.dk/dprog2/

Programmering 2. dprog2 E2013. http://www.cs.au.dk/dprog2/ Programmering 2 dprog2 E2013 http://www.cs.au.dk/dprog2/ Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare og anvende både basale og videregående elementer af et moderne programmeringssprog,

Læs mere

Konstruktion af grafiske brugergrænseflader (GUI'er)

Konstruktion af grafiske brugergrænseflader (GUI'er) Forelæsning Uge 13 Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer de på input

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Information om køreprøven i uge

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004 Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 7 Swing og MVC Swing: MVC, Datamodeller, JTable, evt. JTree Evt.: Swing: Præsentations og kontroldel Læsning: VP 6 Dette materiale er under Åben Dokumentlicens, se

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections; PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;

Læs mere

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/

Programmering 2. dprog2 E2012. http://www.cs.au.dk/dprog2/ Programmering 2 dprog2 E2012 http://www.cs.au.dk/dprog2/ Læringsmål Deltagerne skal ved afslutningen af kurset kunne: forklare og anvende både basale og videregående elementer af et moderne programmeringssprog,

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Over Forelæsning omponenter ogrammering sigt 14, 1999 freda containere 15. oktober 1999 Eksempel: out GUI til beregning fakultet.

Over Forelæsning omponenter ogrammering sigt 14, 1999 freda containere 15. oktober 1999 Eksempel: out GUI til beregning fakultet. Programmering 1999 Forelæsning 14, fredag 15. oktober 1999 Oversigt Repetition: GUI komponenter og containere. Layout af grafiske brugergrænseflader i Java. Større layout-opgave. Programmering 1999 KVL

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag Forelæsning Uge 3 Torsdag Billedredigering Gråtonebilleder (som er lidt simplere end farvebilleder) Rekursive metoder Metoder der kalder sig selv Giver ofte meget elegante og simple løsninger på komplekse

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Klienten. import java.util.*;

Klienten. import java.util.*; Klienten import java.util.*; * Aktiviteter er et model element, som indeholder blandt andet psimetiks beskrivleser. * @author rling public class Aktivitet extends Beholder implements HarEOgA, HarTilknytning,

Læs mere

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7

DM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7 DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

Læs mere

Forelæsning Uge 12 Torsdag

Forelæsning Uge 12 Torsdag Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Programmering i C. Lektion 4. 5. december 2008

Programmering i C. Lektion 4. 5. december 2008 Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

DM01 DM01. 2. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 9

DM01 DM01. 2. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 9 DM01 2. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 9 Indhold 1. Formål... s. 3 2. Klasser... s. 3 2.1. Player... s. 3 2.1.1. Metoder... s. 3 2.1.1.1.

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

Videregående Programmering for Diplom-E Noter

Videregående Programmering for Diplom-E Noter Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså

Læs mere

Klasser og nedarvning

Klasser og nedarvning Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere

Læs mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Singleton pattern i C#

Singleton pattern i C# Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel på brug af ArrayList

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

Vejledning til listings-pakken

Vejledning til listings-pakken Vejledning til listings-pakken Morten Ovi latex@student.dtu.dk / 6. juli 2004 Indhold 1 Om listings-pakken 1 2 Indstilling af listings 2 3 listings-pakken i praksis 2 3.1 listings i teksten............................

Læs mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Forelæsning Uge 12 Mandag

Forelæsning Uge 12 Mandag Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

DM02 - Obligatorisk opgave E.05 Rejseplanlægning. Jacob Aae Mikkelsen

DM02 - Obligatorisk opgave E.05 Rejseplanlægning. Jacob Aae Mikkelsen DM02 - Obligatorisk opgave E.05 Rejseplanlægning Jacob Aae Mikkelsen 191076 3. November 2005 Resumé Denne rapport dokumenterer opbygningen af et program der skal beregne den korteste rejsetid mellem en

Læs mere

Vejledende løsninger

Vejledende løsninger Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a

Læs mere

dmasark Aflevering - Uge 50

dmasark Aflevering - Uge 50 dmasark Aflevering - Uge 50 Michael Lind Mortensen, 20071202, DAT4 Michael Dahl, 20073943, DAT4 Katalog: http://www.daimi.au.dk/ u073943/dmasark/uge6/ 13. december 2007 Indhold 1 PingClient implementation

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

JavaScript. nedarvning.

JavaScript. nedarvning. JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man

Læs mere

Installation af Elektronisk APV på flere PC er

Installation af Elektronisk APV på flere PC er Installation af Elektronisk APV på flere PC er Vejledning til installation af Elektronisk APV, når programmet skal installeres på flere PC er, der kobler sig op på en fælles server. 1 Installation af Elektronisk

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList klassen Gør det let at lave en objektsamling (collection) med et variabelt antal elementer Der er mange andre slags objektsamlinger (se Collection interfacet i JavaDoc)

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Java Klasse nedarvninger

Java Klasse nedarvninger Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering

Læs mere

Automatisering Af Hverdagen

Automatisering Af Hverdagen Automatisering Af Hverdagen Programmering - Eksamensopgave 10-05-2011 Roskilde Tekniske Gymnasium (Kl. 3,3m) Mads Christiansen & Tobias Hjelholt Svendsen 2 Automatisering Af Hverdagen Indhold Introduktion:...

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere