Forelæsning Uge 5 Mandag

Størrelse: px
Starte visningen fra side:

Download "Forelæsning Uge 5 Mandag"

Transkript

1 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 7 Form Forberedelse

2 Sortering via Collections og Comparable Klassen Collections indeholder en række nyttige metoder Metoderne kan bruges på forskellige typer objektsamlinger Typen af objektsamlingen skal implementere Collection interfacet Det er f.eks. tilfældet for ArrayList T min(collection<t> c) // Returnerer mindste element T max(collection<t> c) // Returnerer største element void sort(list<t> l) // Sorterer listen void shuffle(list<t> l) // Blander listen void reverse(list<t> l) // Vender listen om boolean disjoint(collection<t> c1, Collection<T> c2) int frequency(collection<t> c, Object o)... Alle metoderne er static Collections.metode() 2

3 Brug af Collections på ArrayList<String> public class Driver { public static void run() { ArrayList<String> list; list = new ArrayList<>(); list.add("cecilie"); list.add("erik"); list.add("adam"); list.add("bo"); list.add("dora"); print("*******************"); print("liste: " + list ); print("min: " + Collections.min(list)); print("max: " + Collections.max(list)); Collections.sort(list); print("sorteret liste: " + list ); private static void print(object o) { System.out.println(o); Test klasse med klassemetode Lokal variabel, der initialiseres til at være en tom arrayliste Tilføj fem String objekter elementer til arraylisten Hjælpemetode print metoden kalder implicit tostring metoden 3

4 Brug af Collections på ArrayList<String> public class Driver { public static void run() { ArrayList<String> list; list = new ArrayList<>(); Som før Nyt print("*******************"); print("liste: " + list); print("min: " + Collections.min(list)); print("max: " + Collections.max(list)); Collections.sort(list); print("sorteret liste: " + list); Collections.shuffle(list); print("blandet liste: " + list); Collections.shuffle(list); print("blandet liste: " + list); Collections.reverse(list); print("liste bagfra: " + list); 4

5 Brug af Collections på ArrayList<Person> public class Driver { public static void run() { ArrayList<Person> list; list = new ArrayList<>(); Test klasse med klassemetode Erklær og initialiser lokal variabel, der er en arrayliste list.add(new Person("Cecilie", 18)); list.add(new Person("Erik", 16)); list.add(new Person("Adam", 16)); list.add(new Person("Bo", 39)); list.add(new Person("Dora", 47)); print("*******************"); print("liste: " + list); Collections.shuffle(list); print("blandet liste: " + list); Collections.reverse(list); print("liste bagfra: " + list);... Tilføj 5 Person objekter 5

6 Brug af Collections på ArrayList<Person> public class Driver { public static void run() { ArrayList<Person> list; list = new ArrayList<>(); list.add(new Person("Cecilie", 18)); list.add(new Person("Erik", 16)); list.add(new Person("Adam", 16)); list.add(new Person("Bo", 39)); list.add(new Person("Dora", 47)); print("*******************"); print("liste: " + list); print("min: " + Collections.min(list)); print("max: " + Collections.max(list)); Collections.sort(list); print("sorteret liste: " + list);... 6

7 Hvad gik galt? Metoderne min, max og sort i Collections kan kun anvendes, hvis elementerne i arraylisten har en ordning (sortering) String klassen har en indbygget ordning (alfabetisk sortering) Derfor kunne vi bruge min, max og sort på ArrayList<String> Eksempel fra sidste forelæsning public Person findfirstcontaining(string q) {... if( result == null p.getname(). compareto(result.getname()) < 0 ) { result = p;... Sammenligner tekststrenge (alfabetisk sortering) Person klassen (som vi selv har lavet) har (endnu ikke) en ordning Derfor kan vi ikke bruge min, max og sort på ArrayList<Person> Men vi kan godt bruge shuffle og reverse, idet disse metoder ikke kræver en ordning 7

8 Ordning kan defineres via interfacet Comparable public interface Comparable<T> { public int compareto(t o); Hoved for metode (implementationen mangler) public class Person { implements Comparable<Person> {... Person klassen skal implementere interfacet public... int compareto(person p) { T = Person Tænk på et interface som en rolle Person objekter kan spille rollen Comparable, hvis to ting er opfyldt Vi kigger nærmere på interfaces i Kap. 12 T = Person Person klassen skal implementere en compareto metode med den signatur, der er specificeret i interfacet Metoden sammenligner to objekter af type Person, nemlig this og p negativ this < p nul this = p positiv p < this Det objekt metoden kaldes på Det objekt parameteren angiver Den ordning, som compareto definerer, kaldes den NATURLIGE ORDNING 8

9 compareto kan implementeres på mange måder Vi kan sortere (alfabetisk) efter personens navn Til dette formål kan vi bruge compareto metoden fra String klassen public int compareto(person p) { return this.name. compareto ( p.name ); Personens eget navn (this kan udelades) Metode fra String klassen (sorterer alfabetisk) Navnet på personen p Bemærk at vi kan referere direkte til den private feltvariabel name (uden brug af accessor metode) Feltvariablen er privat for klassen (ikke privat for objektet) 9

10 Vi kan sortere efter personens alder Simplere løsning Yngste først public int compareto(person p) { if(this.age == p.age) { return 0; if(this.age < p.age) { return -1; else { return +1; public int compareto(person p) { return this.age - p.age; negativ this < p nul this = p positiv p < this Hvis to personer har samme alder, er rækkefølgen i listen uændret 10

11 Vi kan kombinere de to sorteringskriterier Yngste først Hvis to personer er lige gamle: alfabetisk efter navn public int compareto(person p){ if( this.age!= p.age ) { return this.age - p.age; // Alderen er identisk return this.name.compareto(p.name); Er alderen forskellig? Yngste først Alfabetisk efter navn Køreprøven indeholder en opgave, som kan løses ved hjælp af Collections og Comparable 11

12 Klassediagram uses <<interface>> Collection boolean add(e e) boolean contains(object o)... extends Collections T min(collection<t> c) T max(collection<t> c) void sort(list<t> l) void reverse(list<t> l) void shuffle(list<t> l)... Nyttige metoder (programmeret en gang for alle) Klassediagrammet er ikke eksamenspensum uses <<interface>> Comparable int compareto(t o) implements implements <<interface>> List implements ArrayList <<interface>> Queue implements LinkedList <<interface>> Set HashSet Ca. 35 forskellige Collection klasser implements Pixel Person compareto metode Vi skal lave compareto metoden Resten er genbrug fra Java's API String 12

13 Hvad gør vi, når vi har brug for flere ordninger? For personer kan vi for eksempel ønske at sortere efter alder, sortere efter fornavn, sortere efter efternavn, kombinere nogle af ovenstående sorteringskriterier Comparable interfaces tillader kun én ordning Specificeret via compareto metoden Comparator interfaces tillader flere ordninger min, max og sort har en ekstra parameter, der specificerer, hvilken ordning man vil bruge Parameteren skal være et objekt i en klasse, der implementerer interfacet Comparator Klassen indeholder en compare metode, der sammenligner to elementer af den type, der ønskes sorteret 13

14 Brug af Comparator på ArrayList<Person> public class Driver { public static void run() { ArrayList<Person> list; list = new ArrayList<>(); list.add(new Person("Cecilie", 18)); list.add(new Person("Erik", 16)); list.add(new Person("Adam", 16)); list.add(new Person("Bo", 39)); list.add(new Person("Dora", 47)); print("*******************"); print("liste: " + list); print("min: " + Collections.min(list, new ByName())); print("max: " + Collections.max(list, new ByName())); Collections.sort(list, new ByName()); print("sorteret liste: " + list);... Collections klassen har to versioner af min, max og sort Det ene sæt bruges sammen med Comparable interfacet Det andet sæt (som har en ekstra parameter) bruges sammen med Comparator Parameterværdi Anonymt objekt fra klasse, der implementerer Comparator<Person> Klassens compare metode bestemmer, hvilken ordning, der anvendes 14

15 Sortering efter navn compare metoden ligger i en ny klasse (ikke i Person klassen), og den tager derfor begge de Person objekter som skal sammenlignes som parametre negativ p1 < p2 nul p1 = p2 positiv p2 < p1 import java.util.comparator; public class ByName implements Comparator<Person> { public int compare(person p1, Person p2) { return p1.getname(). compareto ( p2.getname() ); p1's navn (tekststreng) Metode fra String klassen (sorterer alfabetisk) p2's navn (tekststreng) Nu må vi bruge en accessor metode for at få fat i den private feltvariabel name compare metoden ligger ikke i Person klassen, som compareto gjorde 15

16 Sortering efter alder (med yngste først) negativ p1 < p2 nul p1 = p2 positiv p2 < p1 import java.util.comparator; public class ByAge implements Comparator<Person> { public int compare(person p1, Person p2){ return p1.getage() - p2.getage(); p1's alder Subtraktion (af heltal) p2's alder 16

17 Sortering efter alder og navn import java.util.comparator; public class ByAgeName implements Comparator<Person> { public int compare(person p1, Person p2){ if(p1.getage()!= p2.getage()) { return p1.getage() - p2.getage(); // Alderen er identisk return p1.getname().compareto(p2.getname()); 17

18 Klassediagram for brug af Comparator uses Collections T min(collection<t> c, Comparator<T> comp ) T max(collection<t> c, Comparator<T> comp ) void sort(list<t> l, Comparator<T> comp )... Metoderne er parametriseret med et Comparator objekt uses <<interface>> Collection boolean add(e e) boolean contains(object o)... extends Nyttige metoder (programmeret en gang for alle) Klassediagrammet er ikke eksamenspensum <<interface>> Comparator int compare(t o1,t o2) implements implements <<interface>> List <<interface>> Queue <<interface>> Set Pixel compare Person compare String compare implements implements implements ArrayList LinkedList HashSet Ca. 35 forskellige Collection klasser Vi skal lave compare metoderne for alle klasser også String Resten er genbrug fra Java's API 18

19 Comparable eller Comparator? Comparable public int compareto(person p) { return this.age - p.age; public Person findoldestperson() { return Collections.max(persons); Simpel compareto metoden defineres i Person klassen, som implementerer interfacet Comparable Man kan kun have en ordning ad gangen (naturlige ordning) Comparator public class ByAge implements Comparator<Person> { public int compare (Person p1, Person p2) { return p1.getage() - p2.getage(); public Person findoldestperson() { return Collections.max(persons, new ByAge()); public Person findfirstperson() { return Collections.min(persons, new ByName()); I køreprøven er det tilstrækkeligt at bruge Comparable Efter alder Efter navn Mere kompleks compare metoden defineres i en ny klasse, som implementerer interfacet Comparator min, max og sort metoderne har en ekstra parameter Til gengæld er det nu muligt at have flere ordninger samtidigt 19

20 findbest = finder bedste element i liste public TYPE findbest( PARAM ) { TYPE result = null; for( TYPE elem : LISTE ) { if( TEST(elem,PARAM) ) { if( result == null BEST(elem,result, PARAM) ) { result = elem; return result; Algoritmeskabelon Gennemsøger LISTE med elementer af typen TYPE og returnerer det BEDSTE af de elementer, der opfylder TEST Hvis flere elementer er lige gode returneres et vilkårligt af disse Hvis der ingen er, returneres null 20

21 findbest er ofte et sorteringsproblem Hvis man vil finde den ældste kvinde i en liste af personer, kan det gøres på følgende måde Definer en ordning, efter alder, på objekterne i Person klassen ved hjælp af compareto i Comparable eller compare i Comparator Brug findall algortimeskabelonen til at finde en delliste indeholdende alle kvinder (fra den oprindelige liste) Brug max metoden i Collections til at finde den ældste kvinde i dellisten (hvis dellisten er tom returneres null) Alternativt kan man erstatte de sidste to skridt med Brug sort metoden i Collections til at sortere Person listen efter alder (med de ældste først) Brug findone algoritmeskabelonen til at finde den første person, som er en kvinde (i den sorterede liste) Hvilken af de to fremgangsmåder er bedst og hvorfor? I den sidste laver man en sortering af hele listen, hvilket kan være dyrt I den sidste antager man, at findone returnerer det første element, der opfylder betingelsen 21

22 Information om køreprøven Køreprøven afvikles torsdag den 12. oktober og fredag den 13 oktober Finder sted i Institut for Datalogis studiecafé, der er billigende i Stueetagen af Vannevar Bush bygningen (bygning 5343 i IT-Parken, Åbogade 34) Det præcise tidspunkt for hvert øvelseshold er publiceret i en "Vigtig meddelelse" på Blackboard Køreprøven er obligatorisk og skal bestås for at komme til mundtlig eksamen Du kan kun gå til køreprøven, hvis du forinden har fået godkendt alle afleveringsopgaver fra Uge 1-6 Køreprøven er en 30 minutters praktisk prøve uden forberedelse Den afvikles i hold på ca. 25 personer (svarende til et øvelseshold) Du skal medbringe en bærbar computer og har selv ansvar for, at den fungerer tilfredsstillende og har netadgang, således at du kan tilgå Javas klassebibliotek og Blackboard (når du skal aflevere) Hvis det er strengt nødvendigt, kan du flytte til et andet prøvetidspunkt, hvis du pr. orienterer Nikolaj I. Schwartzbach (kursets administrative instruktor) om flytningen senest to dage før prøven. 22

23 Tjekpunkter Hver eksaminand skal individuelt løse en simpel programmeringsopgave Opgavesættet består af 10 opgaver, som SKAL løses i rækkefølge Hvis man f.eks. springer opgave 7 og 8 over får man intet for de dele af opgave 9 og 10 som man måtte løse Undervejs er der fire tjekpunkter. Ved disse SKAL du tilkalde en instruktor (og være klar til at demonstrere din kode) Det er vigtigt, at du husker at få din kode godkendt af en instruktor hver gang du passerer et tjekpunkt På den måde undgår du at forsætte uden at det, som du har lavet, er korrekt Derudover skal vi have registreret, at du har klaret tjekpunktet. Efter køreprøven ser vi kun på din kode, hvis der opstår tvivlsspørgsmål Lav dit program så letlæseligt og velstruktureret som muligt (og overhold Java style guiden) Ved køreprøven behøver du ikke at bruge tid på at skrive kommentarer Vi anbefaler dog, at du indsætter forklarende tekst i dine udskrifter, så du (og instruktorerne) kan se, hvad det er, du forsøger at skrive ud 23

24 Tilladt / forbudt Opgaverne skal løses ved hjælp af imperativ programmering Man må altså ikke bruge streams og lambda'er (som introduceres i næste forelæsning) Eneste tilladte hjælpemidler er JavaDoc for Javas klassebibliotek (API) samt BlueJ editoren (eller en anden Java editor) Man må ikke auto-generere kode for konstruktører og lignende Det er ikke tilladt at benytte bogen eller at tilgå andet materiale, herunder slides, noter og gamle BlueJ projekter Bliver man taget i dette, bortvises man fra prøven Til stede ved prøven vil være forelæseren og et antal instruktorer Det er tilladt at kommunikere med disse personer (opklarende spørgsmål, hjælp til at komme videre, etc.) Det er ikke tilladt at kommunikere med de øvrige eksaminander Ved prøvens afslutning afleveres din besvarelse på samme måde som ved de obligatoriske afleveringer i løbet af kurset 24

25 Resultat + praktiske ting Man får 5 point for hvert tjekpunkt, dvs. at fuld besvarelse giver 20 point For at bestå skal du mindst klare de to første tjekpunkter (dvs. de første 8 af de 10 opgaver) Resultatet kan ses på kursets Blackboard side i løbet af få dage Resultatet tæller med ca. 20% i din endelige karakter for kurset Hvis du på grund af sygdom (eller andet) ikke kan deltage den oktober (eller hvis du ikke består), kan du komme til en ny køreprøve mandag den 23. oktober kl (samme sted) Kom i god tid senest 15 minutter før start Du bliver lukket ind i lokalet ca. 10 minutter før start Der er et "venteværelse", hvor du kan opholde sig indtil det bliver din tur Brug gerne ventetiden til at tjekke, at din computer fungerer og har netforbindelse Husk at medbringe dit studiekort 25

26 Forberedelse til køreprøven Løs tidligere opgavesæt Et stort udvalg (ca. 40 stk) kan findes nederst på Uge 1-7 websiden Videoer med løsning af fire opgavesæt kan findes under uge 5-6 på ugeoversigten Husk at det ikke er nok at se videoerne. Du skal også bagefter selv prøve at løse opgaverne Tag tid, så du kan se, hvor lang tid du er om at løse et opgavesæt Det er ikke unormalt, at det i begyndelsen tager ca. 1 time at løse et opgavesæt men øvelse gør mester Deltag i prøveeksamen ved den første øvelsesgang i uge 7 Læs materiale Læs BlueJ bogen, slides og anden dokumentation efter behov, mens I øver jer på opgavesættene Ca. 95% af de fremmødte består Ca. 75% afleverer fuld besvarelse 26

27 Opsummering Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable (Naturlige ordning) Ved hjælp af interfacet Comparator (mulighed for flere ordninger) findbest som sorteringsproblem Information om køreprøven i uge 7 Form Forberedelse Køreprøven indeholder en opgave, som kan løses ved hjælp af Collections og Comparable 27

28 De næste uger (uge 5-7) Forelæsninger Mandag i uge 6: Funktionel programmering i Java + repræsentation af afbildninger og mængder De andre forelæsninger af aflyst Videoer Uge 5: Videoer om opgavesættene Phone og Pirate Uge 6: Videoer om opgavesættene Car og Turtle Opgaver Uge 5: Musician og Racer Uge 6: Dog, Boat, Biker og Film (hvoraf to afleveres) Uge 7: Ingen Anbefalet rækkefølge (i uge 5) Se videoerne om Phone Prøv selv at løse opgaverne i Phone Se videoerne om Pirate Analogt i uge 6 Prøv at løse opgaverne i Pirate Løs de to opgaver som skal afleveres 28

29 De næste uger (fortsat) Alle opgaverne løses og afleveres individuelt Undervejs må I gerne snakke med jeres makker og hjælpe hinanden Når I begge har løst en opgave, gennemgår I hinandens løsninger og diskuterer, hvordan de kan forbedres Derefter forbedrer I jeres egen løsning og afleverer den Husk at kurset har nul-tolerance overfor plagiering Man må ikke kopiere hinandens kode Hvis I bliver taget I plagiering, kommer I først til eksamen næste år 29

30 Det var alt for nu.. spørgsmål 30

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

Forelæsning Uge 6 Mandag

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

Læs mere

Forelæsning Uge 5 Mandag

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

Læs mere

Forelæsning Uge 6 torsdag repetition

Forelæsning Uge 6 torsdag repetition Forelæsning Uge 6 torsdag repetition Java style guide Niveauer af programbeskrivelser Arraylister (én-til-mange relation) For-løkker (almindelig og udvidet) Primitive typer (forfremmelse og begrænsning)

Læs mere

Forelæsning Uge 6 torsdag repetition

Forelæsning Uge 6 torsdag repetition Forelæsning Uge 6 torsdag repetition Java style guide Niveauer af programbeskrivelser Arraylister (én-til-mange relation) For-løkker (almindelig og udvidet) Primitive typer (forfremmelse og begrænsning)

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

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

Forelæsning Uge 12 Torsdag

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

Læs mere

Forelæsning Uge 4 Mandag

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

Læs mere

Forelæsning Uge 12 Mandag

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

Læs mere

Forelæsning Uge 3 Mandag

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

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Funktionel programmering i Java (Kapitel 5) Forskellen på imperative og funktionelle programmeringssprog Lambda'er (kodestumper, der kan bruges som parametre i et metodekald) Streams

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Funktionel programmering i Java (Kapitel 5) Lambda'er (kodestumper, der kan bruges som parametre i et metodekald) Streams (sekvenser af data / strømme af data) Brug af assignments

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Funktionel programmering i Java (Kapitel 5) Lambda'er (kodestumper, der kan bruges som parametre i et metodekald) Streams (sekvenser af data / strømme af data) Brug af assignments

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Funktionel programmering i Java (Kapitel 5) Forskellen på imperative og funktionelle programmeringssprog Lambda'er (kodestumper, der kan bruges som parametre i et metodekald) Streams

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

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

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

Læs mere

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

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

Læs mere

Forelæsning Uge 3 Mandag

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

Læs mere

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda Forelæsning Uge 12 Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser af En abstrakt klasse kan indeholde abstrakte metoder, hvor kun hovedet er angivet, mens

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

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda Forelæsning Uge 12 Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser af En abstrakt klasse kan indeholde

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

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

dintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 731 September 30, 2009 Indhold 1 Introduktion 3 1.1 Notation................................. 3 I Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering

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

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

Forelæsning Uge 7 Torsdag Forelæsning Uge 7 Torsdag Eksamen Kursusevaluering Præmiering af de bedste projekter Smukke computer genererede billeder Eksamen Du kan kun gå til eksamen hvis du har fået godkendt alle afleveringsopgaver

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

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

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

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

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

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

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

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

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

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil Forelæsning Uge 11 Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder en

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

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

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

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

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

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

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

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

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

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

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

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 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 11 Torsdag

Forelæsning Uge 11 Torsdag Forelæsning Uge 11 Torsdag Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder

Læs mere

Klasser og nedarvning

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

Læs mere

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

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

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

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

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil Forelæsning Uge 11 Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder en

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

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

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

Læs mere

Forelæsning Uge 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

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

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

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

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

Forelæsning Uge 1 Mandag

Forelæsning Uge 1 Mandag Forelæsning Uge 1 Mandag Hvad er programmering? Eksempel: program, der kan løse sudoku opgaver Programmering og problemløsning dintprog kurset Hvad kan I forvente at lære Undervisningsprincipper Plagiering

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

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

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

Forelæsning Uge 11 Mandag

Forelæsning Uge 11 Mandag Forelæsning Uge 11 Mandag Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder

Læs mere

Forelæsning Uge 7 Torsdag

Forelæsning Uge 7 Torsdag Forelæsning Uge 7 Torsdag Eksamen Kursusevaluering Præmiering af de bedste projekter Smukke computergenererede billeder Eksamen Du kan kun gå til eksamen hvis du har fået godkendt alle afleveringsopgaver

Læs mere

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

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

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 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

Forelæsning Uge 3 Torsdag

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

Læs mere

Forelæsning Uge 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

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

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

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

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

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

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

Læs mere

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

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

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

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

Læs mere

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

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

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

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

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

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

Læs mere

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

Databaseadgang fra Java

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

Læs mere

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

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

Læs mere

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

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