DRONNINGER (QUEENS) Opgave 1

Størrelse: px
Starte visningen fra side:

Download "DRONNINGER (QUEENS) Opgave 1"

Transkript

1 DRONNINGER (QUEENS) I denne opgave vil vi beskæftige os med det såkaldte 8-dronningeproblem, hvor man skal placerede 8 dronninger på et 8 x 8 skakbræt, således at ingen af dronningerne kan slå hinanden. Det betyder, at den enkelte dronning ikke må have andre dronninger i den række, søjle og de to diagonaler, som går igennem dens position. Mere generelt vil vi beskæftige os med n-dronningeproblemet, hvor man for n 1 skal placere n dronninger på et n x n skakbræt, således at ingen af dronninger kan slå hinanden. Problemet er beskrevet på websiden: en.wikipedia.org/wiki/eight_queens_puzzle Umiddelbart kan man tro, at skakbrættet bør repræsenteres ved et 2-dimenionelt array queens = new boolean[n][n], hvor den boolske værdi angiver, om der står en dronning på feltet eller ej. Da vi imidlertid ved, at der aldrig kan være mere end én dronning i hver række, er det simplere at repræsentere brættet ved et 1-dimensionelt array queens =new int[n], hvor queens[i] angiver positionen af dronningen i række i (dvs. at queens[3] == 5 betyder, at dronningen i række 3 står i søjle 5). Som sædvanlig starter vi nummereringen med 0, dvs. række 0 og søjle 0. Opgave 1 Lav en Solver kasse, som har tre feltvariabler: int noofqueens int[] queens int noofsolutions samt fem metoder, hvoraf den første er public, mens de fire sidste er private void findallsolutions(int noofqueens) void positionqueens(int row) boolean legal(int row, int col) void printsolution() String convert(int row, int col) Den vigtigste metode er positionqueens, som er rekursiv. Et kald med parameterværdien 0 placerer en dronning i række 0, for derefter at kalde metoden med parameterværdien 1, hvilket placerer en dronning i række 1, for derefter at kalde metoden med parameterværdien 2, osv. 1

2 I hvert trin bruges legal metoden til at tjekke, hvor i rækken dronningen kan placeres. Metoden returnerer true, hvis det er legalt, at placere en dronning på positionen (row,col). Når et af de rekursive kald har afprøvet alle felterne i sin række, returnerer kaldet, og dermed er man tilbage til det foregående kald, som forsøger at placere sin dronning på de resterende felter i sin række. Når den rekursive metode kaldes med parameterværdien noofqueens, har man fået placeret alle dronningerne, og den fundne løsning udskrives på terminalen ved hjælp af metoden printsolution, som bruger convert metoden til at konvertere fra (row,col) notation til den sædvanlige skaknotation for felter, (hvor (0,0) skrives som a1, mens (5,3) skrives som d6 og (7,7) som h8). Metoden findallsolutions er den metode som stilles til rådighed for brugerne. Den opdaterer feltvariablerne, samt udskriver noget start info på terminalen (de tre første linjer på nedenstående udskrift). Herefter kaldes positionqueens med parameterværdien 0, hvilket placerer den første dronning og starter rekursionen. Når det første kald til positionqueens returnerer, er alle løsninger fundet og udskrevet på terminalen, og der udskrives noget end info på terminalen (de tre sidste linjer på nedenstående udskrift). Opgave 2 Kald metoden findallsolutions med parameterværdier fra 1 til 10 (begge inklusive) og tjek, at antallet af løsninger matcher det, der er angivet på ovennævnte webside om 8-dronningeproblemet. Tjek også, at nogle tilfældigt udvalgte løsninger er korrekte, dvs. at ingen dronninger kan slå hinanden. Brug metoden currenttimemillis fra System klassen til at måle, hvor mange millisekunder, det tager at finde alle løsninger for en given problemstørrelse. Varigheden udskrives i næstsidste linje af udskriften fra findallsolutions, således at den nu slutter med teksten were found in XX ms. Undersøg, hvor højt du kan sætte antallet af dronninger, og stadig finde alle løsninger inden for 3 minutter. 2

3 Opgave 3 Forsyn Solver klassen med en ekstra feltvariabel boolean showsolutions // styrer om løsningerne udskrives på terminalen samt en ekstra public metode void findnoofsolutions(int min, int max) der finder antallet af løsninger for noofqueens i intervallet min til max (begge inklusive) og udskriver disse, som vist nedenfor. 3

4 Opgave 4 Implementér en testmetode public static void testsolver() Metoden skal skabe et Solver objekt, hvori den laver tre successive kald af metoden findallsolutions med parameterværdierne 1, 2og 6 efterfulgt af et kald af metoden findnoofsolution med parameterværdierne (1, 12). Klassemetoder skal producere nedenstående output på terminalen: Tjek at testmetoden producerer det forventede terminaloutput og tilret dit projekt, hvis det ikke er tilfældet. Det forbrugte antal millisekunder vil selvfølgelig variere fra computer til computer (og fra kørsel til kørsel), men det øvrige output skal være som angivet ovenfor. 4

5 Opgave 5 (til dem der har mod på mere) I denne opgave skal I bruge BlueJ s debugger til at undersøge positionqueens metoden fra opgave 1. Indsæt et breakpoint på det sted i koden, hvor positionqueens kalder sig selv rekursivt. Kald derefter findallsolutions med parameterværdien 8. I vil nu få en udførelse, der svarer til den animation, der blev vist på en slide i en af forelæsningerne. Hver gang breakpointet nås, placeres en dronning (svarende til en grøn prik i animationen). Kontroller at feltvariablen queens indeholder de korrekte værdier (ved at trykke på den lille røde firkant) samt at de lokale variabler row og column (eller hvad I nu har kaldt de variabler hvori række- og søjlenummeret opbevares) har værdier, der svarer til positionen af den første grønne prik i animationen. Efterfølgende trykkes på debuggerens Continue knap, hvorefter I når en tilstand, der svarer til den anden grønne prik i animationen. Bemærk, at Call Sequence i debuggerens venstre side viser, at der nu er to aktive kald af postionqueens metoden, og at I for hver af disse kan tjekke værdien af deres feltvariabler og lokale variabler. Tjek igen, at queens, row og column (for det seneste kald af positonqueens) har de forventede værdier. Fortsæt med at trykke på Continue knappen, og tjek hver gang værdierne af queens, row og column op mod de grønne prikker i animationen. Bemærk at der i række 4 først placeres en dronning i søjle 3 og dernæst (efter backtracking) en dronning i søjle 7. Fortsæt med at trykke på Continue knappen indtil I har tjekket hele animationen på sliden. Opgave 6 (til dem der har mod på mere) Fjern det breakpoint som I indsatte i opgave 4, og kald igen findallsolutions med parameterværdien 8. Tag et screendump eller lignende af BlueJ s terminal, således at I kan huske de første fem fundne løsninger Indsæt dernæst et breakpoint på det sted i positionqueens, hvor I har fundet en løsning, og kald derefter igen findallsolutions med parameterværdien 8. I vil nu få en udførelse, der stopper hver gang, der er fundet en løsning. Tjek for de første fem stop, at værdierne af feltvariabler og lokale variabler i debuggeren svarer til de løsninger som blev udskrevet i terminalen, da I kørte metoden uden breakpoints. Hvor mange aktive kald af positionqueens er der, hver gang udførelsen stopper? Kan I forklare, hvorfor det er tilfældet? Opgave 7 (til dem der har mod på mere) Den i opgave 5 nævnte slide med animationen, indeholder nogle tal for antal positioneringer og antal rekursive kald, der er nødvendige for at finde første løsning for noofqueens lig med 8. Forsøg om I kan eftervise disse tal, ved at indsætte nogle ekstra feltvariabler / lokale variabler, hvori disse tal kan opsamles. Sliden indeholder også cirka tal for antal rekursive kald, der er nødvendige for at finde samtlige løsninger for noofqueens lig med 8, 12 og 16. Forsøg om I kan eftervise disse tal, ved at indsætte nogle ekstra feltvariabler / lokale variabler, hvori disse tal kan opsamles. Den efterfølgende slide om legal metoden indeholder nogle cirka tal for, hvor ofte denne metode kaldes. Forsøg om I kan eftervise disse tal, ved at indsætte nogle ekstra feltvariabler / lokale variabler, hvori disse tal kan opsamles. For den sidste af målingerne vil det være nødvendigt at bruge long i stedet for int. Prøv også om I kan eftervise påstanden om, at legal metoden bruger godt halvdelen af den samlede beregningstid. 5

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 9 Mandag

Forelæsning Uge 9 Mandag Forelæsning Uge 9 Mandag Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 9 Mandag

Forelæsning Uge 9 Mandag Forelæsning Uge 9 Mandag Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme

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

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

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Klassevariabler og klassemetoder Levetid for variabler og parametre Virkefeltsregler Projektopgave Kaninjagt Lommeregner (for MAT studerende) Klassevariabler og klassemetoder

Læs mere

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Forelæsning Uge 9 Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme kode

Læs mere

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog

Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Forelæsning Uge 9 Arrays Objektsamlinger med et fast (på forhånd kendt) antal elementer Velkendt fra mange andre programmeringssprog Principper for design af klasser Undgå f.eks. at have den samme kode

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

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

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

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

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

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

Læs mere

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide Gamer: Bit Carrier Board er en docking-station til micro:bit, som gør det nemt at anvende alle

Læs mere

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

Forelæsning Uge 10. Opremsningstyper. Forskellige teknikker til test og debugging. Afleveringsopgave: Debugging + Test.

Forelæsning Uge 10. Opremsningstyper. Forskellige teknikker til test og debugging. Afleveringsopgave: Debugging + Test. Forelæsning Uge 10 Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser), forsøger

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden. Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af

Læs mere

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

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

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

Forelæsning Uge 10 Mandag

Forelæsning Uge 10 Mandag Forelæsning Uge 10 Mandag Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser),

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

Forelæsning Uge 10. Opremsningstyper. Forskellige teknikker til test og debugging. Afleveringsopgave: Debugging + Test.

Forelæsning Uge 10. Opremsningstyper. Forskellige teknikker til test og debugging. Afleveringsopgave: Debugging + Test. Forelæsning Uge 10 Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser), forsøger

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) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt) antal elementer Afleveringsopgave:

Læs mere

Pædagogisk vejledning til. Materialesæt. Sphero. http://via.mitcfu.dk/99872760

Pædagogisk vejledning til. Materialesæt. Sphero. http://via.mitcfu.dk/99872760 Pædagogisk vejledning til Materialesæt Sphero http://via.mitcfu.dk/99872760 Pædagogisk vejledning til materialesættet Sphero Materialesættet kan lånes hos VIA Center for Undervisningsmidler og evt. hos

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 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 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

BILLEDREDIGERING (IMAGES)

BILLEDREDIGERING (IMAGES) BILLEDREDIGERING (IMAGES) I dette projekt skal I redigere gråtonebilleder ved hjælp af nogle af de teknikker, der blev beskrevet i en forelæsning. Hent BlueJ-projektet Image (zip) og husk at pakke det

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

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

Center for IT & Digitalisering. Betjening og gode fif til din nye VOP Nano telefon

Center for IT & Digitalisering. Betjening og gode fif til din nye VOP Nano telefon Betjening og gode fif til din nye VOP Nano telefon Indholdsfortegnelse Når telefonen ringer... 3 Når du skal foretage et opkald... 5 Eksternt nummer... 5 Internt nummer... 7 Tastatur... 8 Tilmelding til

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

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

Introduktion til ActionScript

Introduktion til ActionScript Introduktion til ActionScript 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 på

Læs mere

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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6 DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...

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

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt

Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt Scratch 1 Ghostbusters All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can register

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

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

Forelæsning Uge 10 Torsdag

Forelæsning Uge 10 Torsdag Forelæsning Uge 10 Torsdag Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser),

Læs mere

Hukommelsesspil. Introduktion. Scratch

Hukommelsesspil. Introduktion. Scratch Scratch 2 Hukommelsesspil All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can

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

ESLC prøveredskaber: Vejledning for elever (DK)

ESLC prøveredskaber: Vejledning for elever (DK) ESLC prøveredskaber: Vejledning for elever (DK) Indholdsfortegnelse 1 INDLEDNING 3 2 PRØVERNE 3 2.1 Log in 3 2.2 Lydtjek til lytteprøven 5 2.3 Under prøven 5 3 Prøvens opgaver 7 3.1 Lytteopgaver 7 3.2

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

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

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

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

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

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

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

//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

Lav etiketter online. Hvorfor? Før du går i gang. Hvordan

Lav etiketter online. Hvorfor? Før du går i gang. Hvordan Hvorfor? Arbejdet med at lave etiketter i Office 365 er blevet meget besværligt. Hvis du har behov for at lave etiketter, vil vi anbefale at bruge programmet, Avery, som findes som en onlineversion på

Læs mere

16/04/12 50% 50% Waveform Chart Waveform Graph XY Graph Indicator Graph 33% 17% 88% 13%

16/04/12 50% 50% Waveform Chart Waveform Graph XY Graph Indicator Graph 33% 17% 88% 13% Samuel Alberg Thrysøe, PhD, PostDoc, Kontakt info: Email: sat@iha.dk, Tlf: +45 25533552 2 4. 5 Waveform Chart Waveform Graph XY Graph Indicator Graph 4. 33% Waveform Chart Waveform Graph XY Graph Indicator

Læs mere

Installations og brugermanual for Android - brugere af Akutudkald.

Installations og brugermanual for Android - brugere af Akutudkald. Installations og brugermanual for Android - brugere af Akutudkald. Trin for trin vejledning til installation af akutudkald app på Android modeller fra Play Butik. App`en kræver minumum version 5.X.X. Der

Læs mere

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 10 DM502 Forelæsning 10 Rekursion Fakultet n! Fibonaccitallene 2. projektopgave Opgaven Formalia Indhold Rekursion Rekursion Prøv at definere en liste af tal uden at bruge ordet liste Rekursion Prøv at definere

Læs mere

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge: Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.

Læs mere

Uddannelsesplaner i MinUddannelse

Uddannelsesplaner i MinUddannelse Uddannelsesplaner i MinUddannelse Denne vejledning giver et overblik over arbejdet med MinUddannelse fra en UU-vejleders synspunkt. Indhold 1. Introduktion... 2 2. Tekniske specifikationer... 2 3. Som

Læs mere

Vejledning til datatræk i Novax på ICPC-koder (eksempel stress)

Vejledning til datatræk i Novax på ICPC-koder (eksempel stress) Vejledning til datatræk i Novax på ICPC-koder (eksempel stress) Herunder finder du en vejledning til, hvordan du laver udtræk over patienter fra din praksis baseret på ICPCdiagnosekoder. Tjek her nogle

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

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

Balancepåtegning... 2. Udskriv balancepåtegning... 2. Kopier balancepåtegning... 2. Opret balance påtegning... 2. Ændre balancepåtegning...

Balancepåtegning... 2. Udskriv balancepåtegning... 2. Kopier balancepåtegning... 2. Opret balance påtegning... 2. Ændre balancepåtegning... Indhold Balancepåtegning... 2 Udskriv balancepåtegning... 2 Kopier balancepåtegning... 2 Opret balance påtegning... 2 Ændre balancepåtegning... 3 Slet balancepåtegning... 3 Udvidet balancepåtegning...

Læs mere

Vejledning til datatræk i Novax på ICPC-koder

Vejledning til datatræk i Novax på ICPC-koder Vejledning til datatræk i Novax på ICPC-koder Herunder finder du en vejledning til, hvordan du laver udtræk over patienter fra din praksis baseret på ICPCdiagnosekoder. Tjek her nogle vigtige overvejelser

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

Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2014

Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2014 Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2014 Du finder siderne til registreringsnettet på LandbrugsInfo Planteavl Planteværn Varsling/registreringsnet

Læs mere

Installationen af Designskabelonerne gøres ved at installere henholdsvis et lille program samt en række skrifttyper som bruges af skabelonerne.

Installationen af Designskabelonerne gøres ved at installere henholdsvis et lille program samt en række skrifttyper som bruges af skabelonerne. Quickguide til AU s designskabeloner i Word 2007 Denne guide indeholder to elementer: 1. Installation af skabeloner 2. Hvordan skabeloner benyttes Er skabelonerne installeret på din maskine, kan du gå

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

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

I denne vejledning lærer du de mest grundlæggede funktioner i PowerPoint 2003: Hvad er en præsentation?... 3. Eksempel på en præsentation...

I denne vejledning lærer du de mest grundlæggede funktioner i PowerPoint 2003: Hvad er en præsentation?... 3. Eksempel på en præsentation... Præsentationer: Vejledning PowerPoint 2003 I denne vejledning lærer du de mest grundlæggede funktioner i PowerPoint 2003: Hvad er en præsentation?... 3 Eksempel på en præsentation... 3 Visninger... 3 Normal...

Læs mere

Procedurer og funktioner - iteration og rekursion

Procedurer og funktioner - iteration og rekursion Procedurer og funktioner - iteration og rekursion Procedurer De første procedurer vi så på var knyttet til handlinger, der skulle udføres, fx at klikke på en knap for at lukke en form eller afslutte et

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

BRP Sortering og søgning. Hægtede lister

BRP Sortering og søgning. Hægtede lister BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:

Læs mere

Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2016

Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2016 Vejledning i indberetning til registreringsnettet i alm. rajgræs, engrapgræs og strandsvingel 2016 Du finder siderne til registreringsnettet på LandbrugsInfo Planteavl Planteværn Varsling/registreringsnet

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

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

Mircobit Kursus Lektion 4   (Du skal her vælge Lets Code Og herefter Block Editor.) Mircobit Kursus Lektion 4 http://microbit.org/ (Du skal her vælge Lets Code Og herefter Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. I skulle lave et stop ur man kunne

Læs mere

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner

Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner Forelæsning 4.1 Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner finden findalle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Afleveringsopgave

Læs mere

Indholdsfortegnelse. Side 1 af 8

Indholdsfortegnelse. Side 1 af 8 Indholdsfortegnelse Koster det noget at oprette sig som bruger på ALTdanmark?... 2 Hvordan opretter jeg mig som bruger på ALTdanmark?... 2 Hvordan ændre jeg mit kodeord.... 3 Hvad hvis jeg har glemt mit

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

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

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

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:

Læs mere