Forelæsning Uge 4 Mandag
|
|
- Morten Ravn
- 5 år siden
- Visninger:
Transkript
1 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 et givet kriterium Fire forskellige skabeloner: findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed for objekter (herunder strenge) Afleveringsopgaver i uge 4 Når I læser et kapitel i BlueJ bogen, skal I huske at løse opgaverne i kapitlet se de tilhørende videoer
2 Algoritmeskabeloner Finder ét element, der opfylder betingelsen public Pixel findonepixel(int color) { for( Pixel p : pixels ) { if( p.getcolor() == color) { return p; return null; Finder en pixel med den angivne farve public Person findoneperson(string q) { for( Person p : persons ) { if( p.getname().contains(q) ) { return p; return null; Finder en person, hvis navn indeholder den angivne textstreng 2
3 findone = finder ét element For-each løkke (gennemløb af LISTE) public TYPE findone( PARAM ) { for( TYPE elem : LISTE ) { if( TEST(elem, PARAM) ) { return elem; return null; Test af betingelse Så snart vi finder et element, der opfylder TEST, returneres dette (hvorpå algoritmen terminerer) Algoritmeskabelon Gennemsøger LISTE med elementer af typen TYPE og returnerer ét element, der opfylder TEST Hvis flere elementer opfylder TEST, returneres et vilkårligt af disse Hvis ingen elementer opfylder TEST, returneres null (den tomme pointer) Algoritmeskabelon Konkret metode Indsæt hvad de RØDE ting skal være (TYPE, LISTE, PARAM og TEST) Kopiér resten, som det står uden modifikationer 3
4 En anden algoritmeskabelon Finder alle elementer, der opfylder betingelsen public ArrayList<Pixel> findallpixels(int color) { ArrayList<Pixel> result = new ArrayList<>(); for( Pixel p : pixels ) { if( p.getcolor() == color ) { result.add(p); return result; Finder alle pixels med den angivne farve public ArrayList<Person> findallpersons(string q) { ArrayList<Person> result = new ArrayList<>(); for( Person p : persons ) { if( p.getname().contains(q) ) { result.add(p); return result; Finder alle, hvis navn indeholder den angivne textstreng 4
5 findall = finder alle elementer Lokal variabel For-each løkke (gennemløb af LISTE) public ArrayList<TYPE> findall( PARAM ) { ArrayList<TYPE> result = new ArrayList<>(); for( TYPE elem : LISTE ) { if( TEST(elem, PARAM) ) { result.add(elem); return result; Test af betingelse Elementer, der opfylder TEST, tilføjes til arraylisten result Algoritmeskabelon Gennemsøger en LISTE med elementer af typen TYPE og returnerer en arrayliste med alle elementer, der opfylder TEST Hvis ingen elementer opfylder TEST, returneres den tomme liste Video 4.2 fra BlueJ bogen behandler et eksempel på denne algoritmeskabelon Algoritmeskabelon Konkret metode Indsæt hvad de RØDE ting skal være (TYPE, LISTE, PARAM og TEST) Kopiér resten, som det står uden modifikationer 5
6 Lad os kigge lidt nærmere på findall Resultat type Parameter Start på for-each løkke TEST af element Returner resultat public ArrayList<TYPE> findall( PARAM ) { ArrayList<TYPE> result = new ArrayList<TYPE>(); for( TYPE elem : LISTE ) { if( TEST(elem, PARAM) ) { result.add(elem); return result; Opdatering af den lokale variabel Erklæring af lokal variabel Lad os bibeholde de grønne dele, men udskifte de blå Det giver os to nye algoritmeskabeloner 6
7 Ny findnoof algoritmeskabelon = finder antal elementer public int findnoof( PARAM ) { int result = 0; Erklæring for( TYPE elem : LISTE ) { if( TEST(elem, PARAM) ) { result++; Opdatering return result; Hvad gør denne algoritmeskabelon? Algoritmeskabelon Gennemsøger LISTE med elementer af typen TYPE og returnerer antallet af elementer, der opfylder TEST Algoritmeskabelon Konkret metode Indsæt hvad de RØDE ting skal være (TYPE, LISTE, PARAM og TEST) Kopiér resten, som det står uden modifikationer 7
8 findsumof Endnu en = algoritmeskabelon finder summen af elementerne public int findsumof( PARAM ) { int result = 0; Erklæring for( TYPE elem : LISTE ) { if( TEST(elem,PARAM) ) { result += VALUE(elem, PARAM); return result; Hvad gør denne algoritmeskabelon? Opdatering Beregner værdi ved hjælp af VALUE, f.eks. farven i et Pixel-objekt længden af navnet i et Person-objekt Algoritmeskabelon Gennemsøger LISTE med elementer af typen TYPE og returnerer summen (beregnet ved hjælp af VALUE) af de elementer, der opfylder TEST Hvis man undlader TEST (og fjerner if sætningen), summerer man over alle elementer i LISTE Algoritmeskabelon Konkret metode Indsæt hvad de RØDE ting skal være (TYPE, LISTE, PARAM og TEST) Kopiér resten, som det står uden modifikationer 8
9 Sammenligning af de fire algoritmeskabeloner Fælles Alle skabeloner gennemsøger en arrayliste (eller en anden objektsamling) og tjekker hvert enkelt element i listen op mod en angiven betingelse (der kan afhænge af parametre) Betingelsen involverer kun det element i listen, der pt. undersøges EKSEMPEL: SKOBUTIK ARRAYLISTE MED SKO BETINGELSEN TESTER SKOENES FARVE RØD Forskelle findone returnerer ét element, der opfylder den angivne betingelse (og stopper så snart et sådant element er fundet) ÉN RØD SKO findall returnerer en arrayliste med alle de elementer, der opfylder den angivne betingelse ALLE RØDE SKO findnoof returnerer antallet af elementer, der opfylder den angivne betingelse ANTALLET AF RØDE SKO findsumof returnerer summen af værdierne af de elementer, der opfylder den angivne betingelse SAMLEDE PRIS FOR ALLE RØDE SKO Skabelon Lokal variabel Initialisering Opdatering findall arrayliste tom liste add findnoof heltal 0 += 1 findsumof heltal 0 += VALUE Køreprøven indeholder opgaver, som kan løses ved hjælp af algoritmeskabeloner 9
10 Eksempler på findnoof Finder antal elementer, der opfylder betingelsen public int findnoofpixels(int color) { int result = 0; for( Pixel p : pixels ) { if( p.getcolor() == color ) { result++; return result; Finder antal pixels med den angivne farve public int findnoofpersons(string q) { int result = 0; for( Person p : persons ) { if( p.getname().contains(q) ) { result++; return result; Finder antal personer, hvis navn indeholder den angivne textstreng 10
11 Eksempler på findsumof Finder summen af de elementer, der opfylder betingelsen public int findsumofdarkpixels(int color) { int result = 0; for( Pixel p : pixels ) { if( p.getcolor() <= color ) { result += p.getcolor(); return result; Finder summen af mørke pixelværdier public int findsumofteenagers() { int result = 0; for( Person p : persons ) { if( 13 <= p.getage() && p.getage() <= 19 ) { result += p.getage(); return result; Finder summen af teenagernes alder 11
12 Primitive typer i Java Heltal Reelle tal byte short int long float double 8 bit 16 bit 32 bit 64 bit 32 bit 64 bit Sandhedsværdier boolean 1 bit Tegn char 16 bit Eksempel: double d; int i; Man må gerne assigne en "lille" værdi til en "stor" variabel X Y angiver at udtryk af type X kan assignes til variabler af type Y Lovligt: int double Ulovligt: d = 7; i = 3.5; Man kan ikke proppe en "stor" værdi ind i en "lille" variabel 12
13 Forfremmelse og begrænsning En værdi kan forfremmes til en "større type" d = 7; int udtrykket 7 bliver forfremmet til typen double og variablen d får værdien 7.0 Håndteres automatisk af compileren (når det er nødvendigt) En værdi kan begrænses til en "mindre type" i = (int) 3.5; type-cast double udtrykket 3.5 bliver begrænset til typen int og variablen i får værdien 3 (ved at bortkaste decimalbrøken) Kræver et eksplicit type-cast (indsat af programmøren) 13
14 Eksempler på forfremmelse og begrænsning Hvad er værdien af dette udtryk? (int) (12 / 2.5) (int) (12.0 / 2.5) (int) forfremmes til begrænses til 4 ved at smide decimalbrøken væk * 2 / (int) -3.5 = 5 6 / (int) (2 / 2.5) Er nedenstående erklæringer lovlige? double d = 7; int i = d; Selv om d har værdien 7, kan den ikke assignes til heltalsvariablen i Det er typen der er afgørende Ikke den øjeblikkelige værdi 14
15 Konstanter og wrapper typer Type Konstanter Wrapper type byte 15 Byte short Short int Integer Primitive typer long 45320L float 15.03e5F double 15.03e5 Long Float Double Objekt typer char 'h' Character boolean false Boolean String "hello" Detaljer kan findes i Appendix B String er en objekt type Derfor behøver den ingen wrapper type Tekststrenge bruges så ofte, at Java tillader, at String konstanter kan skabes ved a skrive " " (i stedet for at bruge new operatoren) String objekter er imutable (deres værdi kan ikke ændres) 15
16 Identitet versus lighed (magen til) I det virkelige liv skelner vi mellem objekter, der er identiske, og objekter, der ligner hinanden To personer er ikke identiske, selvom de hedder det samme og er født samme dag (feltvariablerne har samme værdier) Hvis man fortæller tjeneren, at man vil have samme pizza som dem ved nabobordet, kommer han med en der ligner (dvs. er magen til) Java Syntaks Type Semantik == operator Primitiv type: Objekt type: Samme værdi Samme objekt (det er ikke nok at feltvariablerne har samme værdier) equals metode Objekt type: Lighed (feltvariablerne har samme værdier) 16
17 == operatoren versus equals metoden Person Person Person Person "Fred" "Fred" "Fred" "Fred" p1 p2 p1 p2 p1 == p2 evaluerer til false p1.equals(p2) evaluerer til true p1 == p2 evaluerer til true p1.equals(p2) evaluerer til true 17
18 Sammenligning af tekststrenge BlueJ's code pad String s1 = "Peter"; String s2 = "Petersen".substring(0,5); s1 "Peter" (String) s2 "Peter" (String) == operatoren s1 == s2 tester identitet (samme objekt) false (boolean) s1.equals(s2) equals metoden true (boolean) tester lighed (magen til) s2.equals(s1) true (boolean) String s3 = "Peter"; s1 == s3 true (boolean) compileren har fundet ud af at s1 og s3 er ens og har kun oprettet ét String objekt Tekststrenge skal altid sammenlignes ved hjælp af equals metoden Aldrig ved hjælp af == 18
19 Afleveringsopgave: Skildpadde 2 (Turtle 2) I Skildpadde 1 tegnede i forskellige figurer i stil med nedenstående Nu skal I, ved hjælp af rekursive metoder, tegne mere komplekse figurer i stil med nedenstående 19
20 Koch kurver En Koch kurve af grad n (hvor n 1) kan tegnes ved at tegne fire Koch kurver af grad n-1 n = 0 n = 1 Koch(n) Koch(n-1) n 1 Koch(n-1) size n = 2 n = 3 n = 4 n = 5 Rekursiv metode public void kochcurve(int n,double size){ if( n>=1) { kochcurve(n-1, ); turn( ); kochcurve(n-1, ); turn( ); kochcurve(n-1, ); turn( ); kochcurve(n-1, ); else { move(size); 20
21 Sierpinksi kurver En Sierpinksi kurve af grad n (hvor n 1) kan tegnes ved at tegne tre Sierpinski kurver af grad n-1 size n = 0 Sierpinksi(n) Sier(n-1) Sier(n-1) n 1 Sier(n-1) n = 1 n = 2 n = 3 Rekursiv metode public void sierpinskicurve(int n, double size) { if( n >= 1 ) { sierpinskicurve(n-1, ); // Draw first triangle // Go to start position for second triangle sierpinskicurve(n-1, ); // Draw second triangle // Go to start position for third triangle sierpinskicurve(n-1, ); // Draw third triangle // Go back to start position and start angle else { triangle(size); Vigtigt at man husker at gå tilbage til udgangsposition og vinkel 21
22 Afleveringsopgave: Billedredigering I får udleveret et projekt med nedenstående to klasser Samme som i billedredigeringsdelen af sidste forelæsning (bortset fra metoderne gettitle og settitle, som er tilføjet) Image int width int height... int getwidth() int getheight() String gettitle() void settitle(string title) Pixel getpixel(int i, int j) ArrayList<Pixel> getpixels() ArrayList<Pixel> getneighbours(int i, int j) void updatecanvas()... * Pixel int value int getvalue() void setvalue(int value) 22
23 Billedredigeringsopgave fortsat I skal implementere en række billedoperationer på gråtone billeder heriblandt Original Lysere, mørkere, invertering Skalering Spejling vandret og lodret Uskarpt (blur) 23
24 Afleveringsopgave: Læsning I uge 3 handler studieteknikopgaven om, hvordan man læser forskellige tekster Læsemetoden afhænger af, hvad formålet er med læsningen er Der er stor forskel på at skulle orientere sig en tekst for at opfange de vigtigste pointer og på at skulle sætte sig ind i alle de detaljer, der beskrives i teksten. Opgaven løses sammen med jeres læsegruppe I skal mødes mindst to gange Første gang for at forberede opgaven (herunder udvælge de metoder, som I vil afprøve) Anden gang for at diskutere resultatet Det er derfor vigtigt, at I kommer i gang med opgaven tidligt på ugen 24
25 Opsummering Fire algoritmeskabeloner, som alle tjekker elementer i en arrayliste op mod en angiven betingelse findone returnerer ét element findall returnerer en arrayliste med alle elementer findnoof returnerer antallet af elementer findsumof returnerer summen af værdierne Primitive typer Regler for assignments og parametre (bestemt via relation) Forfremmelse (til større type) og begrænsning (til mindre type) Konstanter og wrapper typer Identitet versus lighed For objekter generelt Strenge skal altid sammenlignes ved hjælp af equals metoden Afleveringsopgaver i uge 4 Køreprøven indeholder opgaver, som kan løses ved hjælp af algoritmeskabeloner 25
26 Det var alt for nu.. spørgsmål 26
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 mereForelæ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 mereForelæ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 mereForelæ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 mereOpfø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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereBilledbehandling. Processering af digitale billeder
Billedbehandling Processering af digitale billeder Billedbehandling Lighten Blur Darken Invert Billedrepræsentation 0 0 x width Pixel (x, y) [0..255] 0 ~ sort, 255 ~hvid x [0..width[, y [0..heigth[ y height
Læs mereForelæ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 mereForelæ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 mereBILLEDREDIGERING (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 mereDatalogi 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 mereEksempel: 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 mereForelæ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 mereForelæ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 mereForelæ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 mereUniversity 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 mereBRP 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 mereKlasser 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 mereCrash Course i Programmering. HumTek, RUC
Crash Course i Programmering HumTek, RUC Kursus mål At give en basal introduktion til programmering i sproget Processing At give et overblik over sprogets potentiale At have det sjovt :-) Kursus form Meget
Læs mereDM507 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 mereDM507 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 meredintprog 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 mereQuiz Uge 5 mandag første time
Quiz Uge 5 mandag første time Hvilke erklæringer refereres der til? 1 2 3 4 5 public class Scope { private int i = 0; private int n = 0; public Scope ( int n ) { this.n = n + i ; System.out.println("a"
Læs mereUniversity 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 mereFundamentale sprogbegreber
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn) Oversigt Sætninger simple sætninger (assignment, metodekald) sammensatte sætninger (selektion,
Læs mereDRONNINGER (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 mereKlasser 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 mereCOMPUTERSPIL 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 mereUgeseddel 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 merePolymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion
Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt
Læs merePython programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Læs mereDANMARKS 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 mereTree 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 meredintprog 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 mereAlgoritmeskabeloner: 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//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 mereSkriftlig 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 mereStudiepraktik. 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 mereRekursion 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 mereAAU, 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 mereAbstrakte 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 mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereQuiz Uge 5 mandag første time
Quiz Uge 5 mandag første time Hvilke erklæringer refereres der til? 1 2 3 4 5 public class Scope { private int i = 0; private int n = 0; public Scope ( int n ) { this.n = n + i ; System.out.println("a"
Læs mereKapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Læs mereProgrammering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Læs mereDM507 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 mereKursus 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 mereDM01 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 mereVirkefeltsregler 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 mereclass 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 mereCOMPUTERSPIL 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 mereForelæ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 mereDM507 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 mereSkriftlig 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 mereKapitel 4 Løkker i C#
Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave
Læs mereDM507 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 mereSekvensafstand 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 mereKursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0.
Kursus 02199: Programmering afsnit 3.1-3.5 Anne Haxthausen IMM, DTU 1. Kontrol af programudførn (afsnit 3.1) 2. Valg-sætninger (if og switch) (afsnit 3.2 og 3.3) 3. Bloksætninger (afsnit 3.2) 4. Logiske
Læs mereForelæ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 mereInteger.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else
Programmering 1999 Forelæsning 2, fredag 3. september 1999 Betingede ordrer: if-, if Indlejrede betingede ordrer Løkker med begrænset iteration: for Løkker med ubegrænset iteration: while Betingede ordrer,
Læs mereSproget Limba. Til brug i G1 og K1. Dat1E 2003
Sproget Limba Til brug i G1 og K1 Dat1E 2003 Abstract Limba er et simpelt imperativt sprog med hoballokerede tupler. Dette dokument beskriver uformelt Limbas syntaks og semantik samt en fortolker for Limba,
Læs mereBRP 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 mereSproget 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 mereHvad 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 mereBilag 1 Rige billeder Ordremodtagelse
Bilag1 Rigebilleder Ordremodtagelse Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 71 Overordnet Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 72 Produktionsgulvet Tværfagligtprojektpå2.Semester
Læs mereForelæ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 mereForelæ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 mereIntroduktion til ActionScript
Introduktion til ActionScript Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling på
Læs mereDM507 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 mereProgrammering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale
Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på
Læs mereSoftware 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 mereStart på Arduino og programmering
Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget
Læs mereAritmetiske 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 mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 4 18. september 2009 Pointers Referenceparametre 2 / 19 Pointers 1 Pointers 2 Referenceparametre Pointers Referenceparametre 3 / 19 Husk: En variabel er en navngiven plads i computerens
Læs mere