Programmering. hh.se/db2004. SuperKarel, Nedbrytning & Styrsatser. Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering

Storlek: px
Starta visningen från sidan:

Download "Programmering. hh.se/db2004. SuperKarel, Nedbrytning & Styrsatser. Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering"

Transkript

1 Programmering hh.se/db2004 Föreläsning 2: SuperKarel, Nedbrytning & Styrsatser Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded Systems IDE-sektionen

2 Att utvidga klasser Man definierar en ny klass public class BeeperPickingKarel extends Karel { klassdefinitionens kropp Vad är det man säger? Här säger klassheadern att BeeperPickingKarel är en utvidgning av standardklassen Karel som importeras från stanford.karel-biblioteket.

3 Att utvidga klasser Man definierar en ny klass public class BeeperPickingKarel extends Karel { klassdefinitionens kropp Vad är det man menar? Den nya klassen (här BeeperPickingKarel) bygger på allt som den befintliga klassen (här Karel) erbjuder.

4 Förvirring När en klass definieras med utvidgning kallas den nya klassen för en subklass av moderklassen. I vårt exempel, är BeeperPickingKarel en subklass av Karel. På motsvarande sätt kallas Karel för en superklass till BeeperPickingKarel. En subklass utvidgar sin superklass och kan då lägga till ny funktionalitet till den

5 Förvirring När en klass definieras med utvidgning kallas den nya klassen för en subklass av moderklassen. I vårt exempel, är BeeperPickingKarel en subklass av Karel. På motsvarande sätt kallas Karel för en superklass till BeeperPickingKarel. En subklass utvidgar sin superklass och kan då lägga till ny funktionalitet till den

6 Nya metoder Nya beteenden hos objekt introduceras genom att definiera nya metoder Exempel public class SomeTaskKarel extends Karel{ public void run(){ /* Uppdraget! */ private void turnright(){ turnleft();turnleft();turnleft(); private void turnaround(){ turnleft();turnleft();

7 En förbättrad Karel Metoderna är användbara! Vi vill att många klasser skall kunna använda turnright() och turnaround(). Vi skulle vilja lägga till de i Karel! Men! Vi har inte tillgång till klassen Karel! Lösning! Även om vi hade det, vi bör inte ändra i den efterssom det är många andra som använder Karel och vi kan då förstöra deras program! Definiera en ny klass som erbjuder dessa metoder och som alla andra klasser kan ärva från!

8 En förbättrad Karel Metoderna är användbara! Vi vill att många klasser skall kunna använda turnright() och turnaround(). Vi skulle vilja lägga till de i Karel! Men! Vi har inte tillgång till klassen Karel! Lösning! Även om vi hade det, vi bör inte ändra i den efterssom det är många andra som använder Karel och vi kan då förstöra deras program! Definiera en ny klass som erbjuder dessa metoder och som alla andra klasser kan ärva från!

9 En förbättrad Karel Metoderna är användbara! Vi vill att många klasser skall kunna använda turnright() och turnaround(). Vi skulle vilja lägga till de i Karel! Men! Vi har inte tillgång till klassen Karel! Lösning! Även om vi hade det, vi bör inte ändra i den efterssom det är många andra som använder Karel och vi kan då förstöra deras program! Definiera en ny klass som erbjuder dessa metoder och som alla andra klasser kan ärva från!

10 En förbättrad Karel Metoderna är användbara! Vi vill att många klasser skall kunna använda turnright() och turnaround(). Vi skulle vilja lägga till de i Karel! Men! Vi har inte tillgång till klassen Karel! Lösning! Även om vi hade det, vi bör inte ändra i den efterssom det är många andra som använder Karel och vi kan då förstöra deras program! Definiera en ny klass som erbjuder dessa metoder och som alla andra klasser kan ärva från!

11 En förbättrad Karel Metoderna är användbara! Vi vill att många klasser skall kunna använda turnright() och turnaround(). Vi skulle vilja lägga till de i Karel! Men! Vi har inte tillgång till klassen Karel! Lösning! Även om vi hade det, vi bör inte ändra i den efterssom det är många andra som använder Karel och vi kan då förstöra deras program! Definiera en ny klass som erbjuder dessa metoder och som alla andra klasser kan ärva från!

12 En förbättrad Karel /* * The NewImprovedKarel class extends the basic Karel * class so that any subclasses have access to the * turnright and turnaround methods. It does not define * any run method of its own. */ import stanford.karel.*; public class NewImprovedKarel extends Karel { public void turnright() { turnleft();turnleft();turnleft(); public void turnaround() {turnleft();turnleft();

13 SuperKarel stanford.karel Paketet innehåller redan en klass SuperKarel som erbjuder detta och lite till! Så i fortsättningen kommer vi att utvidga SuperKarel i våra program. Förvirring Karel är en superklass av SuperKarel!

14 SuperKarel stanford.karel Paketet innehåller redan en klass SuperKarel som erbjuder detta och lite till! Så i fortsättningen kommer vi att utvidga SuperKarel i våra program. Förvirring Karel är en superklass av SuperKarel!

15 Mera exempel Karel lagar en väg Hur kan man tänka? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytta till nästa korsningen. Som programfragment public void run() { move(); fillpothole(); move();

16 Mera exempel Karel lagar en väg Hur kan man tänka? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytta till nästa korsningen. Som programfragment public void run() { move(); fillpothole(); move();

17 Mera exempel Karel lagar en väg Hur kan man tänka? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytta till nästa korsningen. Som programfragment public void run() { move(); fillpothole(); move();

18 Mera exempel Karel lagar en väg Hur kan man tänka? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytta till nästa korsningen. Som programfragment public void run() { move(); fillpothole(); move();

19 Mera exempel Karel lagar en väg Hur kan man tänka? Till exempel: 1 Flytta till gropen. 2 Fyll gropen genom att lämna en beeper där. 3 Flytta till nästa korsningen. Som programfragment public void run() { move(); fillpothole(); move();

20 Mera exempel Karel lagar en väg Eller: 1 Klättra ner från hyllan. 2 Lämna en beeper. 3 Klättra upp till hyllan. Som programfragment public void run() { climbdown(); putbeeper(); climbup();

21 Mera exempel Karel lagar en väg Eller: 1 Klättra ner från hyllan. 2 Lämna en beeper. 3 Klättra upp till hyllan. Som programfragment public void run() { climbdown(); putbeeper(); climbup();

22 Mera exempel Karel lagar en väg Eller: 1 Klättra ner från hyllan. 2 Lämna en beeper. 3 Klättra upp till hyllan. Som programfragment public void run() { climbdown(); putbeeper(); climbup();

23 Mera exempel Karel lagar en väg Eller: 1 Klättra ner från hyllan. 2 Lämna en beeper. 3 Klättra upp till hyllan. Som programfragment public void run() { climbdown(); putbeeper(); climbup();

24 Mera exempel Karel lagar en väg Eller: 1 Klättra ner från hyllan. 2 Lämna en beeper. 3 Klättra upp till hyllan. Som programfragment public void run() { climbdown(); putbeeper(); climbup();

25 Nedbrytning Vi säger att vi bryter ner problemet i mindre problem som kan också brytas ner till enklare problem... tills vi kommer till problem som kan lösas med enkla kommandon. Det brukar kallas för stepwise refinment (stegviss förfining). I nästa steg definierar man de metoder som inte är baskommandon. Vad skall man tänka på? Varje delproblem bör utföra en begreppsmässig enkel uppgift. Ett gott tecken på om Du har lyckats med att hitta en rimlig uppgift kommer från det namn Du ger din metod. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang.

26 Nedbrytning Vi säger att vi bryter ner problemet i mindre problem som kan också brytas ner till enklare problem... tills vi kommer till problem som kan lösas med enkla kommandon. Det brukar kallas för stepwise refinment (stegviss förfining). I nästa steg definierar man de metoder som inte är baskommandon. Vad skall man tänka på? Varje delproblem bör utföra en begreppsmässig enkel uppgift. Ett gott tecken på om Du har lyckats med att hitta en rimlig uppgift kommer från det namn Du ger din metod. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang.

27 Nedbrytning Vi säger att vi bryter ner problemet i mindre problem som kan också brytas ner till enklare problem... tills vi kommer till problem som kan lösas med enkla kommandon. Det brukar kallas för stepwise refinment (stegviss förfining). I nästa steg definierar man de metoder som inte är baskommandon. Vad skall man tänka på? Varje delproblem bör utföra en begreppsmässig enkel uppgift. Ett gott tecken på om Du har lyckats med att hitta en rimlig uppgift kommer från det namn Du ger din metod. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang.

28 Nedbrytning Vi säger att vi bryter ner problemet i mindre problem som kan också brytas ner till enklare problem... tills vi kommer till problem som kan lösas med enkla kommandon. Det brukar kallas för stepwise refinment (stegviss förfining). I nästa steg definierar man de metoder som inte är baskommandon. Vad skall man tänka på? Varje delproblem bör utföra en begreppsmässig enkel uppgift. Ett gott tecken på om Du har lyckats med att hitta en rimlig uppgift kommer från det namn Du ger din metod. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang.

29 Nedbrytning Vi säger att vi bryter ner problemet i mindre problem som kan också brytas ner till enklare problem... tills vi kommer till problem som kan lösas med enkla kommandon. Det brukar kallas för stepwise refinment (stegviss förfining). I nästa steg definierar man de metoder som inte är baskommandon. Vad skall man tänka på? Varje delproblem bör utföra en begreppsmässig enkel uppgift. Ett gott tecken på om Du har lyckats med att hitta en rimlig uppgift kommer från det namn Du ger din metod. Varje delproblem bör utföra en uppgift som är så allmän som möjligt så att den kan användas i flera sammanhang.

30 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak ett antal gånger. turnright for-loop turnleft(); turnleft(); turnleft(); by Andy Wahrol for(int i = 0; i < 3 ; i++){ turnleft();

31 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak ett antal gånger. turnright for-loop turnleft(); turnleft(); turnleft(); by Andy Wahrol for(int i = 0; i < 3 ; i++){ turnleft();

32 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak ett antal gånger. turnright for-loop turnleft(); turnleft(); turnleft(); by Andy Wahrol for(int i = 0; i < 3 ; i++){ turnleft();

33 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak medan ett villkor gäller gettonextwall move();move();... så längre det inte finns några murar while-loop while ( frontisclear() ){ move();

34 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak medan ett villkor gäller gettonextwall move();move();... så längre det inte finns några murar while-loop while ( frontisclear() ){ move();

35 Nya delar av Karel-språket Upprepningar Man kan vilja instruera Karel att göra samma sak medan ett villkor gäller gettonextwall move();move();... så längre det inte finns några murar while-loop while ( frontisclear() ){ move();

36 Vilka villkor kan Karel testa? Karel kan känna av omgivningen Mer generella program Karel går runt ett varv i en värld av godtycklig storlek!

37 Vilka villkor kan Karel testa? Karel kan känna av omgivningen Mer generella program Karel går runt ett varv i en värld av godtycklig storlek!

38 Algoritmer och kodning Karel skall dubblera antalet beepers i en hög Karel finns intill en hög med beepers och skall dubblera antalet beepers i högen. Karel har gränslös med beepers i säcken. Algoritmen Karel kan inte räkna! Men han skulle kunna lägga ner 2 beepers för varje beeper han plockar. Han kommer att behöva bygga en extra hög och flytta den. Kodfragment private void doublebeepersinpile(){ while(beeperspresent()){ put2beepersnextdoor(); movebackpilenextdoor();

39 Algoritmer och kodning Karel skall dubblera antalet beepers i en hög Karel finns intill en hög med beepers och skall dubblera antalet beepers i högen. Karel har gränslös med beepers i säcken. Algoritmen Karel kan inte räkna! Men han skulle kunna lägga ner 2 beepers för varje beeper han plockar. Han kommer att behöva bygga en extra hög och flytta den. Kodfragment private void doublebeepersinpile(){ while(beeperspresent()){ put2beepersnextdoor(); movebackpilenextdoor();

40 Algoritmer och kodning Karel skall dubblera antalet beepers i en hög Karel finns intill en hög med beepers och skall dubblera antalet beepers i högen. Karel har gränslös med beepers i säcken. Algoritmen Karel kan inte räkna! Men han skulle kunna lägga ner 2 beepers för varje beeper han plockar. Han kommer att behöva bygga en extra hög och flytta den. Kodfragment private void doublebeepersinpile(){ while(beeperspresent()){ put2beepersnextdoor(); movebackpilenextdoor();

41 Mera kodfragment private void put2beepersnextdoor(){ pickbeeper(); move(); putbeeper(); putbeeper(); moveback(); Om koden För klasser och metoder och styrsatser, skriver man kroppen lite indragen i texten så att man kan lätt se strukturen. Kommentarer är viktiga. Ett sätt att kommentera metod definitioner är att beskriva vad de skall åstadkomma men även pre- och post- conditions.

42 Mera kodfragment private void put2beepersnextdoor(){ pickbeeper(); move(); putbeeper(); putbeeper(); moveback(); Om koden För klasser och metoder och styrsatser, skriver man kroppen lite indragen i texten så att man kan lätt se strukturen. Kommentarer är viktiga. Ett sätt att kommentera metod definitioner är att beskriva vad de skall åstadkomma men även pre- och post- conditions.

43 Mera kodfragment private void put2beepersnextdoor(){ pickbeeper(); move(); putbeeper(); putbeeper(); moveback(); Om koden För klasser och metoder och styrsatser, skriver man kroppen lite indragen i texten så att man kan lätt se strukturen. Kommentarer är viktiga. Ett sätt att kommentera metod definitioner är att beskriva vad de skall åstadkomma men även pre- och post- conditions.

44 Mera kodfragment private void put2beepersnextdoor(){ pickbeeper(); move(); putbeeper(); putbeeper(); moveback(); Om koden För klasser och metoder och styrsatser, skriver man kroppen lite indragen i texten så att man kan lätt se strukturen. Kommentarer är viktiga. Ett sätt att kommentera metod definitioner är att beskriva vad de skall åstadkomma men även pre- och post- conditions.

45 Om koden /* * Precondition: Karel står på en korsning * där det finns minst en beeper. * * Postcondition: Karel står på samma korsning * tittar åt samma håll och det finns en beeper mindre * och det finns 2 beepers mer i korsningen intill. */ private void put2beepersnextdoor(){ pickbeeper(); move(); putbeeper(); putbeeper(); moveback();

46 Några vanliga fel Infinite loops I vissa tillstånd kan while(frontisclear()){ turnleft(); leda till en oändlig beteende. Det är inte så ovanlig att man skriver while-loopar som i visa situationer inte kommer närmare att villkoret skall sluta gälla!

47 Några vanliga fel Off-by-one-bug (OBOB) Det är inte så ovanligt heller att man glömmer speciella fall antigen i början av en loop eller i slutet. Till exempel, om Karel skall fylla alla korsningar med en beeper, så är while (frontisclear()){ putbeeper(); move(); while (frontisclear()){ putbeeper(); move(); putbeeper(); inte tillräcklig!

48 Några vanliga fel Off-by-one-bug (OBOB) Det är inte så ovanligt heller att man glömmer speciella fall antigen i början av en loop eller i slutet. Till exempel, om Karel skall fylla alla korsningar med en beeper, så är while (frontisclear()){ putbeeper(); move(); inte tillräcklig! while (frontisclear()){ putbeeper(); move(); putbeeper();

49 Några vanliga fel Off-by-one-bug (OBOB) Det är inte så ovanligt heller att man glömmer speciella fall antigen i början av en loop eller i slutet. Till exempel, om Karel skall fylla alla korsningar med en beeper, så är while (frontisclear()){ putbeeper(); move(); inte tillräcklig! while (frontisclear()){ putbeeper(); move(); putbeeper();

50 Ytterliggare en styrsats Man kan välja att utföra något bara om ett vilkor gäller. removebeeper pickbeeper() om det finns en beeper! if if ( beeperpresent() ) { pickbeeper();

51 Ytterliggare en styrsats Man kan välja att utföra något bara om ett vilkor gäller. removebeeper pickbeeper() om det finns en beeper! if if ( beeperpresent() ) { pickbeeper();

52 Ytterliggare en styrsats Man kan välja att utföra något bara om ett vilkor gäller. removebeeper pickbeeper() om det finns en beeper! if if ( beeperpresent() ) { pickbeeper();

53 Ytterliggare en styrsats Man kan även välja mellan 2 alternativa beteenden beroende på om villkoret gäller eller ej. if-else if ( beeperpresent() ) { pickbeeper(); else { putbeeper();

54 Ytterliggare en styrsats Man kan även välja mellan 2 alternativa beteenden beroende på om villkoret gäller eller ej. if-else if ( beeperpresent() ) { pickbeeper(); else { putbeeper();

55 Ytterliggare ett exempel Karel springer 100 meter häck.

Att utvidga klasser. Programmering. Att utvidga klasser. Förvirring. hh.se/db2004

Att utvidga klasser. Programmering. Att utvidga klasser. Förvirring. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 2: SuperKarel, Nedbrytning & Styrsatser Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Att utvidga klasser Man definierar en ny klass public

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

Roboten Karel lär sig Java

Roboten Karel lär sig Java Verónica Gaspes Högskolan i Halmstad 23 augusti 2010 Roboten Karel lär sig Java Tacksägelse Detta är en översättning och en anpassning till Högskolan i Halmstads programmeringsmiljö av delar av Karel the

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde. Programmering hh.se/db2004 Föreläsning 7: Funktioner Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Funktioner Statiska metoder 1 Kan ta 0 eller flera argument. 2 Kan producera

Läs mer

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output Programmering hh.se/db2004 Föreläsning 5: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite mer om Javas stöd för fält Hur många element har ett fält?

Läs mer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de

Läs mer

Omdirigering. Omdirigering

Omdirigering. Omdirigering Programmering hh.se/db2004 Föreläsning 6: Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Omdirigering I unix kan man dirigera om standard input på samma sätt som

Läs mer

Mer om metoder och abstraktioner

Mer om metoder och abstraktioner Mer om metoder och abstraktioner Föreläsning 5 TDA540 - Objektorienterad Programmering Sammanfattning Abstraktion, top-down design Gränsnitt av en metod Parameteröverföring För- och eftervilkor (kompilera

Läs mer

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004 Programmering hh.se/db2004 Föreläsning 11: Objektorienterad programmering - att definiera datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Datatyper Hittills Vi har lärt

Läs mer

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer

Läs mer

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen.

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 14 Utkast 1 Recap 2 Mera om nya typer 3 Kort 4 Fält Recap Man kan ge namn till typer. Vi undersökte enum

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla

Läs mer

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false.

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false. Laboration 2. I denna laboration skall ni programmera en robot som modelleras av den givna klassen Robot. En robot vistas i en enkel värld, som modelleras av klassen RobotWorld. Världen består av ett rutmönster

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

Input. Programmering. Andra källor

Input. Programmering. Andra källor Programmering hh.se/db2004 Föreläsning 13: Undantag - med exempel från input klassen Scanner Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Input Standard Input Med standard

Läs mer

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram? Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Modern Programmering (2546) Tentamen lördag 30.09.2000

Modern Programmering (2546) Tentamen lördag 30.09.2000 Modern Programmering (2546) Tentamen lördag 30.09.2000 Svara på minst sex frågor. Om du svarar på alla sju frågorna faller den fråga bort som ger minst antal poäng. Maximalt 70 poäng. Det krävs 35 poäng

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

Läs mer

JUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012

JUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012 DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012 Innehåll Testning med JUnit Refactoring Några designprinciper JUnit Ramverk i Java för testning av Java-klasser Utvecklat av Gamma

Läs mer

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

Laboration 13, Arrayer och objekt

Laboration 13, Arrayer och objekt Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift

Läs mer

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om? Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Lite logik. Kap 6: Sid 2

Lite logik. Kap 6: Sid 2 6 Loopar och val Lite logik Val mellan två alternativ Val mellan flera alternativ Sammansatta villkor Boolska variabler Jämför strängar While-loopar Do-loopar For-loopar Kortformer Kap 6: Sid 2 Lite logik

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33 Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation

Läs mer

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42 Programmering i C++ EDA623 Arv EDA623 (Föreläsning 6) HT 2013 1 / 42 Arv Innehåll Härledda klasser Konstruktorer och destruktorer vid arv Tillgänglighet Polymorfism och dynamisk bindning Abstrakta klasser

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden December 1, 2013 1 Innehåll OO-programmering fortsättning Skapa

Läs mer

Konstruktion av klasser med klasser

Konstruktion av klasser med klasser Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning. Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F10:1 OOP Objekt-orienterad programmering Föreläsning 10 Mer om arv och klasshierarkier Interface Hierarkier - många nivåer OOP F10:2 Djur Rovdjur Hovdjur Fåglar Fiskar Björn Kattdjur Ko Lamm Hjort

Läs mer

Redovisning av inlämningsuppgifter

Redovisning av inlämningsuppgifter Bilaga B Redovisning av inlämningsuppgifter 1 Rapportens innehåll Varje inlämningsuppgift ska redovisas med en skriftlig rapport. Rapporten ska vara häftad och försedd med ett försättsblad med uppgiftens

Läs mer

Tentamen. Lösningsförslag

Tentamen. Lösningsförslag Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Fördjupad Java. Undantagshantering. Fel

Fördjupad Java. Undantagshantering. Fel Fördjupad Java 1 Undantagshantering Ett undantag (Exception) är ett objekt som påtalar en ovanlig eller felaktig situation i ett program. Undantag kastas av programmet och kan fångas och hanteras. Java

Läs mer

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/4 2014 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack UML-översikt

Läs mer

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Fredagen 13 januari 2012, 14.00 18.00. Jourhavande lärare: Björn von Sydow, tel 0722/391401. Inga hjälpmedel. Lösningar

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

Föreläsning 9: Arv och UML

Föreläsning 9: Arv och UML TDA 545: Objektorienterad programmering Föreläsning 9: Arv och UML Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Quiz Vad betyder static? Varför skriver man get-metoder? public int getpos() { return pos;

Läs mer

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2 Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek

Läs mer

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p) TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för Sy 2 2002-03-15, kl 09.00 13.00 Hjälpmedel: Endast bifogat kompendium Max: 66 poäng, för godkänt krävs 50%. Skriv tydliga och kortfattade svar 1. Grunderna

Läs mer

Exempel på användning av arv: Geometriska figurer

Exempel på användning av arv: Geometriska figurer (9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014

Läs mer

Föreläsning 3: Händelsestyrda program och användargränssnitt

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker

Läs mer

OOP Exempel Tentamen 2007

OOP Exempel Tentamen 2007 DVS SU/KTH 1 (6) OOP OOP Exempel Tentamen 2007 Avser kurserna: DSK1:OOP GES:OOP ID1013 GKOOP-distans Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad.

Läs mer

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack 725G61 - Laboration 2 Loopar och arrayer Johan Falkenjack October 29, 2013 1 Inledning I labb 1 lärde vi oss om de primitiva datatyperna (och lite om String). Vi lärde oss också att använda variabler av

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar Klassbegreppet och C++ OOP UML Klasser och objekt i C++ Uppdelning i filer Attribut och metoder Inkappsling - åtkomst Klassattribut - objektattribut Objekt-orienterad programmering Att använda ett objektorienterat

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 6 Avsikten med denna laboration är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration6. Uppgifterna är lätt matematiska

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

F8: Typkonvertering i C++

F8: Typkonvertering i C++ Institutionen för datavetenskap Umeå Universitet F8: Typkonvertering i C++ Objektorienterad programmering för ingenjörer, VT04 Innehåll Implicit konvertering Konverteringskonstruktor Konverteringsoperator

Läs mer

Laboration 2. Objektorienterad programmering. Syfte

Laboration 2. Objektorienterad programmering. Syfte Laboration 2 Objektorienterad programmering Syfte Syftet med dessa uppgifter är att få övning i att använda en färdig klass samt att bryta ner ett programmeringsproblem i små meningsfulla delproblem, dvs

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Klasshierarkier. Klasser kan byggas på redan definierade klasser Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen

Läs mer

"if"-satsen. Inledande programmering med C# (1DV402)

if-satsen. Inledande programmering med C# (1DV402) "if"-satsen Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket if-satsen

Läs mer

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Högskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson

Högskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson Högskolan Dalarna sid 1 av 5 Lösningsförslag till TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING 5p,för D2 1999-01-14 1. a) Systemavgränsningen är dokument som innehåller en kortfattad beskrivning av vad som

Läs mer

Generic type declarations. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Generic type declarations. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Generic type declarations Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Polymorfism Polymorfism är värdefullt ger hög grad av reuseability och extensibility. You know this by

Läs mer

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017 Separation of Concern Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017 Modulär design Ett programsystem är för stort för att kunna förstås i sin helhet.

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21

Tentamen. Grundläggande programmering i Java A 5p, DTAA32 2003-03-21 Mitthögskolan ITM Institutionen för Informationsteknologi och medier. Bertil Danielsson 060-14 86 82 Jan-Erik Jonsson 060-14 87 90 Tentamen i Java A Sida 1/6 Tentamen Grundläggande programmering i Java

Läs mer

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Lösningsförslag, tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och

Läs mer

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter ADT Kö Grundprinciper: En kö fungerar som en kö. Man

Läs mer

Systemutvecklare SU13, Malmö

Systemutvecklare SU13, Malmö Systemutvecklare SU13, Malmö Tentamen, delkurs Programmeringsteknik C#, del 1 (30 YH-poäng) Plats: Plushögskolan Malmö Tid: 3 oktober 2014, kl. 9.00-13.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25 Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka

Läs mer

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1 Objektorienterad programmering Vi började med att programmera i main, sedan gick vi vidare till flera metoder i en klass. Nu är det dags för flera klasser. Objektorienterad programmering Relationer mellan

Läs mer

Algoritmer. Två gränssnitt

Algoritmer. Två gränssnitt Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;

Läs mer

Exempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers,

Exempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers, Exempel: Kappsäcksproblemet Backtracking Dynamisk programmering Föreläsning (Weiss kap..-) Kan man ur en grupp föremål F,,F N med vikterna V,,V N välja ut en delgrupp som väger exakt M kilo? Exempel: föremål

Läs mer