Opgaver. Oktober 2009

Størrelse: px
Starte visningen fra side:

Download "Opgaver. Oktober 2009"

Transkript

1 Opgaver Oktober 2009 Dette er en samling af supplerende opgaver til kurset Programmering 2. I nogle opgaver henvises til filer med Java programmer/klasser. Dette eksempelmateriale kan nås via WWW: Indhold Klassedesign og invarianter assert og implementationsinvariant løkkeinvariant Terminering modspilsstrategi Rekursive metoder potensopløftning binomialkoefficient Euklids algoritme tilfældig sætning Hilbert kurve Rekursive strukturer rekursive udtryk html udtryk videnstræer differentialregning UNIX filsystem Pseudo-reelle tal bisektion ligning stige identitet integral

2 Klassedesign og invarianter Opgave 11 a. Hvis man vil verificere at implementationsinvarianten i kasseeksemplet fra noterne er overholdt, hvor mange steder i Box-klassen skal man så indsætte et check? b. Modificer Box-klassen, så assert-sætningen (Horstmann afsnit 3.6.2) anvendes til at verificere at implementationsinvarianten er overholdt. 2

3 Opgave 12 Denne opgave går ud på at at implementere metoder med hjælp fra visuelle løkkeinvarianter. Signaturen for en metode er følgende public boolean isnaturalnumbers(int[] a) {... Metoden tager et array af heltal og skal returnere true hvis alle tal er positive, men skal returnere false, hvis blot et af tallene er nul eller negativ. Det er naturligt at bruge en løkke i denne metode. Følgende figur angiver et muligt øjebliksbillede lige før (og efter) hver iteration af løkken: 0 kun positive tal i a.length-1 a. Implementer isnaturalnumbers så den visuelle løkkeinvariant afspejles i koden. Signaturen for en anden metode er følgende public boolean issorted(int[] a) {... Metoden tager et array af heltal og skal returnere true hvis tallene står i sorteret (stigende) orden, men skal returnere false, hvis et stort tal kommer før et lille tal. b. Overvej hvorledes metoden kan implementeres med en løkke og lav en tilsvarende visuel løkkeinvariant. c. Implementer issorted med udgangspunkt i b. 3

4 Opgave 13 I noterne introduceres en visuel løkkeinvariant som basis for en implementation af binær søgning 0 e ikke her e ikke her low high a.length-1 Her er alternativ(dårlig implementation): public int loopingbinarysearch(int[] a, int e) { int low = 0; int high = a.length-1; while (low<=high) { int mid = (low+high)/2; if (a[mid]==e) return mid; else if (a[mid]<e) low = mid; else high = mid; return -1; a. Find eksempler på aktuelle parametre, for hvilke ovenstående metode ikke terminerer. b. Hvor ligger årsagen til den uendelige løkke? c. Kan man generelt sikre sig mod uendelige løkker? 4

5 Opgave 14 To spillere, A og B, skiftes til at sætte hhv. en rød og en blå stregaflængde1 på et stykke kvadreret papir. Hver streg må placeres vilkårligt, vandret eller lodret, men selvfølgelig ikke hvor der er en streg i forvejen. A begynder (og tegner med rødt), og hans opgave er at lave en sammenhængende lukket kurve, som fx der udelukkende består af røde streger. B s opgave er at forhindre A i at lave en sådan kurve. a. Lad os antage, at du bliver bedt om at lave et program, der kan spille for B. Programmet indlæser A s træk (i en passende repræsentation), og svarer efter hvert træk med B s efterfølgende træk. Er det muligt at skrive dette program, sådan at A aldrig formår at danne en lukket kurve? Hvordan? Vink: Opstil en passende invariant for spilleplanens udseende efter hvert B-træk. b. Efter at du har lavet a): Lav et design for hele programmet. Implementer og afprøv dit program. 5

6 Rekursive metoder Opgave 21 Lad p være et ikke-negativt heltal. Notationen n p angiver at tallet n skal opløftes til p te potens. Der gælder: 1 for p =0, n p = (n n) p/2 for p>0ogp er lige, n p 1 n for p>0ogp er ulige. a. Skriv en rekursiv metode med 2 parametre n, p som beregner og returnerer n p 6

7 Opgave 22 Binomialkoefficienten ( n k) angiver på hvor mange måder man kan udtage k elementer fra en mængde med n elementer, og den opfylder følgende ligning (for n k 0): ( ) {( n n = k 1) (n k +1)/k for k>0, k 1 for k =0. a. Skriv en rekursiv metode binomial med 2 parametre n, k som beregner og returnerer ( n k). 7

8 Opgave 23 Euklids algoritme til beregning af største fælles divisor af to positive heltal er baseret på reglerne: x for x = y, gcd(x, y) = gcd(x y, y) for x>y, gcd(x, y x) for x<y. a. Skriv en rekursiv metode (med 2 parametre x, y) som beregner og returnerer gcd(x, y). b. Skriv en ny metode, der ligeledes beregner gcd(x, y), men anvender en while-løkke i stedet for rekursion. c. Argumenter for at udførelsen af metoderne fra a og b altid standser. 8

9 Opgave 24 Betragt følgende grammatik, der definerer en lille delmængde af sproget Dansk Sætning ::= Substantiv Bisætning Prædikat Fortsættelse Fortsættelse ::=, Konjunktion Sætning Bisætning ::=, som Substantiv Bisætning TransitivtVerbum,,derIntransitivtVerbum,,derRefleksivtVerbum sig, Prædikat ::= VerbalLed Adverbial VerbalLed ::= TransitivtVerbum Substantiv IntransitivtVerbum RefleksivtVerbum sig Konjunktion ::= og mens hvorimod Substantiv ::= studenten forelæseren instruktoren tutoren Java programmet TransitivtVerbum ::= dumpede roste underviste oversatte IntransitivtVerbum ::= forsvandt bestod drak gik ned RefleksivtVerbum ::= kom dummede forberedte morede Adverbial ::= ret så voldsomt temmeligt hurtigt ganske dårligt helt perfekt Notationen Bisætning betyder at kategorien Bisætning kan udelades. a. Skriv et program, der genererer en tilfældig sætning defineret af ovenstående grammatik. Vink: Skriv en metode for hver kategori. b. Argumenter for, at hvis grammatikken ændres til Sætning ::= Substantiv Bisætning Prædikat Sætning, Konjunktion Sætning så vil den stadig definere de samme sætninger. c. Vil dit program opføre sig anderledes, hvis det ændres i overensstemmelse med b? I bekræftende fald hvordan og hvorfor? 9

10 Opgave 25 En Hilbert kurve af orden n er den n te tegning i følgende række, der nummereres H 1,H 2,H 3,H 4, og så videre. a. Angiv rekursionsformlen for H n. b. Skriv et program, der kan tegne Hilbert kurver. Følgende skabelon med de indbyrdes rekursive metoder west, north, east og south kan evt. benyttes: import java.awt.*; public class Hilbert { private static Crayon pencil = new Crayon(Color.black,1); private static void west(int n, double len) { if (n>0) { south(n-1,len); pencil.turnto(180); pencil.move(len); west(n-1,len); pencil.turnto(90); pencil.move(len); west(n-1,len); pencil.turnto(0); pencil.move(len); north(n-1,len); private static void north(int n, double len) {... private static void east(int n, double len) {... private static void south(int n, double len) {... 10

11 public static void main(string[] args) { pencil.jumpto(100,50); west(1,80/(2-1)); pencil.jumpto(200,50); west(2,80/(4-1)); pencil.jumpto(300,50); west(3,80/(8-1)); pencil.jumpto(400,50); west(4,80/(16-1)); 11

12 Rekursive strukturer Opgave 31 Betragt følgende klasser, der kan repræsentere et logisk udtryk: public interface Expression { public class Const implements Expression { boolean value; public Const (boolean v) { value = v; public class Negation implements Expression { Expression expr; public Negation (Expression e) { expr = e; public class Conjunction implements Expression { Expression left; Expression right; public Conjunction (Expression l, Expression r) { left = l; right = r; public class Disjunction implements Expression { Expression left; Expression right; public Disjunction(Expression l, Expression r) { left = l; right = r; F.eks. kan udtrykket (true false true) der har værdien true repræsenteres ved objektet Expression exp = new Conjunction(new Const(true), new Conjunction(new Negation(new Const(false)), new Const(true) 12

13 ) ); Negation tager et enkelt argument, hvorimod disjunktion og konjunktion tager to argumenter. Værdien af en konstant er blot dens indhold. Værdien af en negation er true hvis værdien af dens argument er false, ogfalse hvis værdien af dens argument er true. Værdien af en konjunktion er false, hvis mindst et af dens argumenter har værdi false; ellers er værdien af konjunktionen true. Værdien af en disjunktion er true, hvis mindst et af dens argumenter har værdi true; ellers er værdien af disjunktionen false. Man kan vælge at lade Expression-objektet være enten passivt eller aktivt ved beregning af dets værdi: a. Skriv en rekursiv metode public boolean value(expression e) der gennemløber et logisk udtryk og returnerer den modsvarende sandhedsværdi. Dvs. i ovenstående eksempel skal value(exp) returnere true. b. Hvis definitionen af Expression ændres til public interface Expression { public boolean value(); så må der naturligvis defineres en konkret value-metode i hver konkret klasse der implementerer Expression. Skriv alle disse konkrete valuemetoder, så de i hvert enkelt tilfælde returnerer værdien af det pågældende udtryk. Dvs. i ovenstående eksempel skal exp.value() returnere true. c. Vis hvordan man kan bruge visitor mønstret til at beregne værdien af et logisk udtryk, dvs definer et passende interface ExpressionVisitor<T>, tilføj en metode accept(expressionvisitor<t> v) til hver klasse og skrev endelig en klasse, der implementerer ExpressionVisitor<Boolean> og derigennem evaluerer værdien af et logisk udtryk. 13

14 Opgave 32 Et HTML 00 fragmenteretobjektderdannetudfraklassenhtmlstar, hvor public interface HTML { public class HTMLcomposite implements HTML { private HTML left; private HTML right; public HTMLcomposite(HTML l, HTML r) { left = l; right = r; public class HTMLword implements HTML { private String word; public HTMLword(String w) { word = w; public class HTMLanchor implements HTML { private URL url; private HTML html; public HTMLanchor(URL u, HTML h) { url = u; html = h; og klassen URL er identisk med java.net.url. Et korrekt udformet fragment skal tilfredsstille det yderligere krav, at man ikke må definere et anker ( anchor ) inden i et andet anker. Det vil sige, at f.eks. fragmentet: <a href=" Dette er <a href=" </a> der svarer til objektet: 14

15 HTMLSTAR f = new HTMLanchor( new URL(" new HTMLcomposite( new HTMLword("Dette"), new HTMLcomposite( new HTMLword("er"), new HTMLanchor( new URL(" new HTMLword("forbudt") ) ) ) ) ikke er lovligt. Bemærk, at det indre anker kan stå inde i vilkårligt indviklede HTML 00 konstruktioner. a. Antag at definitionen af HTML ændres til public interface HTML { public boolean nestedanchors(); public boolean containsanchor(); Tilføj metoder public boolean nestedanchors() {... public boolean containsanchor() {... til hver klasse, således at metodekaldet f.nestedanchors() for ethvert HTML 00 -fragment f afgør om fragmentet indeholder et anker inden i et andet anker. 15

16 Opgave 33 (NB: du behøver ikke starte fra scratch. Brug de halvfærdige klasser i eksempelkataloget) Et videnstræ er enten en ting eller et spørgsmål om ting, der kan besvares med ja eller nej sammen med to mindre videnstræer. Det følgende er et eksempel på et videnstræ er det gult? ja nej er det krumt? en agurk ja nej en banan en melon Et videnstræ kan repræsenteres med følgende rekursive type public interface Knowledge { public class Question implements Knowledge { String what; Knowledge yes; Knowledge no; public Question(String what, Knowledge yes, Knowledge no) { this.what = what; this.yes = yes; this.no = no; public class Item implements Knowledge { String name; public Item(String name) { this.name = name; 16

17 a. Forklar, hvordan omstående træ kan være et objekt af typen Knowledge. Man kan udspørge et videnstræ gennem en dialog som den følgende, hvor brugeren skriver det understregede og programmet prøver at gætte, hvilken ting man tænker på er det gult? ja er det krumt? nej er det en melon? ja det tænkte jeg nok! b. Hvordan skal et videnstræ se ud, hvis programmet hurtigt skal kunne gætte, hvad man tænker på? Hvis videnstræet ikke kender tingen, man tænkte på, så forløber dialogen på denne måde er det gult? nej er det en agurk? nej hvad er det så? et æble stil et spørgsmål, der skelner en agurk fra et æble Kan man gå det? og hvad er svaret for en agurk? ja Resultatet af denne dialog er, at videnstræet nu er udvidet på følgende måde er det gult? ja nej er det krumt? kan man gå det? ja nej ja nej en banan en melon en agurk et æble c. Skriv et program, der realiserer dialoger som de ovenstående for viden- 17

18 stræer, der er repræsenterede som objekter af typen Knowledge. Du bør anvende visitormønstret (du kan nøjes med at modificere klasserne i eksempelfolderen). Hvis en del af et videnstræ ser ud som følger er den gul nej kan den spises ja er den rød ja er den aflang nej er den rund ja en tomat så kan man tænke sig følgende dialog, hvor brugeren skriver det understregede hvad vil du gerne vide noget om? en tomat den er rund den er rød den kan spises d. Skriv et program, der realiserer dialoger som den ovenstående for et givet videnstræ. Vink: Et spørgsmål kan (som regel) laves om til et udsagn, ved at man ombytter de to første ord. Du bør anvende visitormønstret (du kan nøjes med at bygge videre på klasserne i eksempelfolderen). 18

19 Opgave 34 (NB: du behøver ikke starte fra scratch. Brug de halvfærdige klasser i eksempelkataloget) Simple udtryk med +, - og * over heltal og en enkelt variabel kan repræsenteres i en rekursiv struktur: public interface Expression { public <T> T accept(expressionvisitor<t> v); public class Const implements Expression { private int val; public Const(int val) { this.val = val; public int val() { return val; public <T> T accept(expressionvisitor<t> v) { return v.visitconst(this); public String tostring() { return val+""; public class X implements Expression { public <T> T accept(expressionvisitor<t> v) { return v.visitx(this); public String tostring() {return "x"; public class Plus implements Expression { private Expression left,right; public Plus(Expression left, Expression right) { this.left =left; this.right = right; public Expression left() { return left; public Expression right() { return right; public <T> T accept(expressionvisitor<t> v) { return v.visitplus(this); public String tostring() { return "(" + left + "+" + right + ")"; public class Minus implements Expression { private Expression left,right; public Minus(Expression left, Expression right) { this.left =left; this.right = right; 19

20 public Expression left() { return left; public Expression right() { return right; public <T> T accept(expressionvisitor<t> v) { return v.visitminus(this); public String tostring() { return "(" + left + "-" + right + ")"; public class Times implements Expression { private Expression left,right; public Times(Expression left, Expression right) { this.left =left; this.right = right; public Expression left() { return left; public Expression right() { return right; public <T> T accept(expressionvisitor<t> v) { return v.visittimes(this); public String tostring() { return left + "*" + right; public interface ExpressionVisitor<T> { public T visitconst(const c); public T visitx(x c); public T visitplus(plus c); public T visitminus(minus c); public T visittimes(times c); Et udtryk kan som bekendt differentieres efter følgende regler: diff(k) = 0 diff(x) = 1 diff(a+b) = diff(a)+diff(b) diff(a-b) = diff(a)-diff(b) diff(a*b) = diff(a)*b+a*diff(b) hvor k er en heltalskonstant. Fx. har vi, at diff((2+x)*(5-x*x)+18) = (5-x*x)-(2+x)*(2*x) (efter lidt simplifikation) a. Lav en klasse DiffVisitor der implementerer ExpressionVisitor<Expression>, sået kalde.accept(new DiffVisitor()) returneret en differentieret version af e (resultatet behøver ikke være simplificeret) 20

21 Et udtryk er lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt følgende public class NoXVisitor implements ExpressionVisitor<Boolean> { public Boolean visitconst(const c) { return true; public Boolean visitx(x c) { return false; public Boolean visitplus(plus c) { return c.left().accept(this) && c.right().accept(this); public Boolean visitminus(minus c) { return c.left().accept(this) && c.right().accept(this); public Boolean visittimes(times c) { return c.left().accept(this) && c.right().accept(this); b. Er det rigtigt, at kaldet e.accept(new DiffVisitor()).accept(new NoXVisitor()) afgør, om argumentet er et lineært udtryk? Argumentér for dit svar. c. Hvis du har svaret nej i c har du så et alternativt forslag til hvordan man kan afgøre linearitet af et udtryk? 21

22 Opgave 35 (NB: du behøver ikke starte fra scratch. Brug de halvfærdige klasser i eksempelkataloget. Her er også en driverklasse, der tager udgangspunkt i et (del)filsystem fra din egen computer) Betragt følgende klasser, der modellerer et UNIX filsystem: public interface DirectoryEntry { public class File implements DirectoryEntry { private String name; private int size; public class Directory implements DirectoryEntry { private String name; private ArrayList<DirectoryEntry> contents; a. Forbered denne repræsentation af et filsystem til brug af Visitormønstret, dvs definer et interface DirectoryEntryVisitor<T> og tilføj en accept metode i interface DirectoryEntry og klasserne File og Directory. Det er behageligt at have en kommando, der kan finde alle forekomster af et givet filnavn. Følgende tegning repræsenterer et objekt, der er en instans af Directory: users u dprog2 Calc1 mbox programmer opgaver opg14 opg87 obl opg87 H3.22 opg87 Directory-navne tegnes med kasser og filnavne tegnes uden. Filnavnet opg87 har i dette filsystem tre forskellige forekomster, hvis fulde beskrivelser er: /users/u040000/dprog2/programmer/opg87 22

23 /users/u040000/dprog2/opgaver/opg87 /users/u040000/calc1/opg87 b. Lav en klasse FindFileVisitor der implementerer DirectoryEntryVisitor<String>, så et kald f.accept(new FindFileVisitor("opg87")) vil returnere en String indeholdende de fulde beskrivelser af alle filer med navnet "opg87" ifilsystemetf. Antag at vi i stedet ønsker oversigt over pladsforbrug. For filsystemet ønsker vi oversigten: directory A containing directory B containing file X of 102 bytes file Y of 87 bytes total 189 bytes file Z of 23 bytes total 212 bytes A B Z:23 X:102 Y:87 c. Lav en klasse ListFileSizeVisitor der implementerer DirectoryEntryVisitor<Integer>, såetkald f.accept(new ListFileSizeVisitor()) vil returnere størrelsen i byte af f s indhold, og undervejs udskrives en indholdsoversigt som vist. 23

24 Pseudo-reelle tal Opgave 41 Der findes en del numeriske algoritmer i hvilke der indgår beregning af midtpunktet af et interval [a, b], hvor a<b. a. Vis ved et eksempel at den matematiske identitet (a + b)/2 =a +(b a)/2 ikke gælder for flydende komma tal med endelig nøjagtighed. (Vink: find a og b så(a b) 2 <a) b. Skriv en algoritme, som bruger bisection til at finde et nulpunkt for en kontinuert funktion f(x) i et interval [a, b], hvor det vides at f(a) f(b) < 0. Bisection foregår ved successive halveringer af intervallet [a, b]påenmåde, der minder om binær søgning. Dvs. først beregnes intervallets midtpunkt og derefter fortsættes der med det af de to halve intervaller, hvor funktionen vides at skifte fortegn. 24

25 Opgave 42 Skriv en algoritme, der som stimulans tager tre vilkårlige reelle tal, a, b og c og som respons angiver, om 2.gradsligningen ax 2 + bx + c = 0 har reelle løsninger, og i så fald hvilke. Antag, at denne algoritme afvikles på en maskine, som har parametre (β,s,m,m)=(10, 4, 99, 99) og som approximerer v.h.a. afskæring. a. Udfør algoritmen med stimulans a =1, b = 2.136, c = b. Udregn de eksakte løsninger til ligningen x x = 0 og sammenlign disse med dem, der blev fundet under a. Er værdierne fra a tilfredsstillende? c. Såfremt værdierne fra a ikke er tilfredsstillende, hvad er årsagen? Kan løsningerne til en 2.gradsligning findes på en måde, der er mere hensigtsmæssig, numerisk set? 25

26 Opgave 43 Til løsning af følgende iklædte opgave En stige af højde h (mm) stilles lodret op ad en væg, hvorefter dens fod trækkes d (mm) ud fra væggen ad et vandret underlag. Hvor mange mm er stigens top kommet ned i forhold til før? kan man overveje at bruge formlen a. Er det en god ide? b. Hvis ikke, hvad kan man så gøre? f(h, d) =h h 2 d 2 26

27 Opgave 44 Beregn værdierne U 0,U 1,...,U n,..., defineret ved U n+1 = (x +1)U n 1 startende med U 0 =1/x,forx =2, 3, 4,... Forklar de observerede resultater. 27

28 Opgave 45 Betragt følgende integral a. Vis, at I n = I n = 1 0 x n e x 1 dx { 1 e 1 n =0, 1 n I n 1 for n 1. b. Vis, at I n I n 1 = 1 og argumenter for at I n 0forn. 0 (x n x n 1 )e x 1 dx < 0 c. Skriv et program der udregner I 0,I 1,...,I n v.h.a. formlen i a. Konvergerer følgen mod 0? d. En alternativ formel til udregning af integralerne er I k 1 =(1 I k )/k hvor vi starter iterationen med at sætte I n = 0 for en passende stor værdi af n og derefter benytte formlen for i k n. Virker det bedre? 28

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Et udtryk er (som bekendt?) lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt f lgende værdiprocedurer

Et udtryk er (som bekendt?) lineært hvis den differentierede er en konstant funktion, dvs. at den ikke afhænger af x. Betragt f lgende værdiprocedurer Opgave 1 (25%) Simple udtryk med +, - og * over heltal og en enkelt variabel x kan repræsenteres som værdier af f lgende type: Type Expression = Sum(const: Int, x: Unit, plus, minus, times: Arguments)

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

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

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

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

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

Rekursion og dynamisk programmering

Rekursion og dynamisk programmering Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999 sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid

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

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

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

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

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

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

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 findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde

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

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

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

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

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

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè Opgave 1 è20èè Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives af fçlgende rekursive Trine-type: Type Expr = Sumèplus, minus, times, div: rgs, const: Int, name: Textè Type

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

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

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

BOSK F2011, 1. del: Udsagnslogik

BOSK F2011, 1. del: Udsagnslogik ( p q) p q February 1, 2011 Sandhedsværdier og udsagnsvariable I dag handler det om logiske udsagn. Mere præcist om de logiske udsagn vi kan bygge ud fra sandhedsværdier, udsagnsvariable og logiske konnektiver.

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

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

Bevisteknikker (relevant både ved design og verifikation)

Bevisteknikker (relevant både ved design og verifikation) Bevisteknikker 1 Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

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

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

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

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

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

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

Et SML-program til at finde rødder i en kontinuert funktion

Et SML-program til at finde rødder i en kontinuert funktion Et SML-program til at finde rødder i en kontinuert funktion Hans Hüttel Ole Høgh Jensen 11 januar 2002 Indhold 1 Om denne tekst 1 2 Hvad er bisektion? 1 3 Specifikation af vores program 2 4 SML-versionen

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

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

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

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

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

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P

Læs mere

DRONNINGER (QUEENS) Opgave 1

DRONNINGER (QUEENS) Opgave 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.

Læs mere

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

Læs mere

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse Bevisteknikker Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

Læs mere

Hanne Niels Edith Harald Carsten Jørgen Henrik.

Hanne Niels Edith Harald Carsten Jørgen Henrik. Programmering 1999 Forelæsning 18, fredag 5 november 1999 Anvendelse af udvalgssortering Quicksort Rapportopgave Programmering 1999 KVL Side 18-1 Eksempel 2 på anvendelse af udvalgssortering Sortering

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

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

DM507 Algoritmer og datastrukturer

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

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

Andengradsligninger. Frank Nasser. 11. juli 2011 Andengradsligninger Frank Nasser 11. juli 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

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

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

Tree klassen fra sidste forelæsning

Tree klassen fra sidste forelæsning Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 7 DM -. Obligatoriske Opgave Løsning af ligningssystem vha. fipunktmetoden Jacob Christiansen, 8 moffe@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense. Opgaven Der skal implementeres

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

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

DM507 Algoritmer og datastrukturer

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

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

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

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

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

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

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 Afleveringsopgaver

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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

Kompendium i faget. Matematik. Tømrerafdelingen. 2. Hovedforløb. Y = ax 2 + bx + c. (x,y) Svendborg Erhvervsskole Tømrerafdelingen Niels Mark Aagaard

Kompendium i faget. Matematik. Tømrerafdelingen. 2. Hovedforløb. Y = ax 2 + bx + c. (x,y) Svendborg Erhvervsskole Tømrerafdelingen Niels Mark Aagaard Kompendium i faget Matematik Tømrerafdelingen 2. Hovedforløb. Y Y = ax 2 + bx + c (x,y) X Svendborg Erhvervsskole Tømrerafdelingen Niels Mark Aagaard Indholdsfortegnelse for H2: Undervisningens indhold...

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

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 Afleveringsopgaver

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 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, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser 3/10/96 Seminaret den 26/10 vil omhandle den sidste fase af analysen og de første skridt i kodegenereringen. Det drejer sig om at finde betydningen af programmet, nu hvor leksikalsk og syntaktisk analyse

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg 1 / 18 Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 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 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Bits DM534. Rolf Fagerberg, 2012

Bits DM534. Rolf Fagerberg, 2012 Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et

Læs mere

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00 Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed

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

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

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42 Slide 1/42 Hvad er matematik? 1) Den matematiske metode 2) Hvad vil det sige at bevise noget? 3) Hvor begynder det hele? 4) Hvordan vælger man et sæt aksiomer? Slide 2/42 Indhold 1 2 3 4 Slide 3/42 Mængder

Læs mere

Moduler i Standard ML

Moduler i Standard ML Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,

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

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens Programmering 1999 Forelæsning 3, tirsdag 7. september 1999 Aritmetiske og logiske operatorer, præcedens Den indbyggede klasse String: tegnstrenge Metoder i klasser Metoder: returtype eller void Metoder:

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

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Noter til C# Programmering Iteration

Noter til C# Programmering Iteration Noter til C# Programmering Iteration Programflow Programmer udfører det meste af deres arbejde vha. forgrening og løkker. Løkker Mange programmeringsproblemer kan løses ved at gentage en handling på de

Læs mere