Presentation av obligatoriska uppgiften trafiksimulering. Ett större program med flera klasser

Storlek: px
Starta visningen från sidan:

Download "Presentation av obligatoriska uppgiften trafiksimulering. Ett större program med flera klasser"

Transkript

1 Presentation av obligatoriska uppgiften trafiksimulering Ett större program med flera klasser Hur man designar ett system Hur man gör simuleringar 1

2 Korsningen Dag hammarsköldsväg och Vårdsätravägen/Kungsängsleden Dag Hammarsköldsväg Polacksbacken Kungsängsleden Vårdsätravägen 2

3 Vårdsätravägen Korsningen Dag Hammarsköldsväg och Vårdsätravägen/Kungsängsleden Dag Hammarskölds väg Kungsängsleden Korsningen är kontrollerad av ljussignaler (s1,s2,s3,s4,s5,s6) 3

4 Uppgiften består i att simulera en förenklad korsning! Korsningen är kontrollerad av två ljussignaler (s1,s2) 4

5 Vi kommer att ta upp följande... Hur gör man en simulering? Vilka förenklingar av verkligheten gör man i simuleringen? Vilka klasser behövs? Hur skall (trafik)filerna kopplas ihop? Hur kopplas signaler och (trafik)filer? Vilka indata behövs? Vem hanterar indata? Hur går tidsstegningen till? Vilka objekt bör känna till tiden? Var samlas statistiken? Vad skall skrivas ut, när och av vem? 5

6 Implementation av den förenklade korsningen (trafiksystemet) Det behövs tre st filer och två st signaler för denna implementation Fordon kommer in i korsningen i en fil lane vid E. Fordon med destination W kör in i fil lanewest Fordon med destination S kör in i fil lanesouth Notera att filerna består av diskreta positioner, i varje sådan position finns ett fordon eller är tomt. 6

7 Klasser som behövs i trafiksystemet Vilka olika typer av objekt kan utkristalleras? Jo, följande delar behövs i trafiksystemet: Vehicle: Representerar ett fordon Light: Representerar en trafiksignal Lane: Representerar en fil Dessutom behövs en klass som utgör själva trafiksystemet som består av ovan tre delar (klasser). TrafficSystem: o Tre Lane-arrayer av Vehicle o Två st Light-objekt + en kö av inkommande fordon vid E + en variabel som samlar på sig data som man kan beräkna statistik från 7

8 Hur gör man simuleringen? Jo, allt måste styras av en global klocka. Denna tickar ett tidssteg i taget: Vid starten för simuleringen (t=0) har hela trafiksystemet initiala värden: Inga fordon finns i systemet, trafikljusen visar grönt. I nästa steg, t=1 skall trafiksystemet stegas, dvs trafikljusen skall också stegas i deras repetitiva beteende (och kanske slå om ljuset). Dessutom skall fordon i filerna röra sig framåt (om möjligt) och det skall kontrolleras om ett nytt fordon kommer in (föds) vid punkten E. När fordonet föds måste vi se till att fordonet kommer ihåg tiden. 8

9 Om det i ett givet tidssteg var grönt ljus och ett fordon lämnat systemet så skall det bokföras (dvs tidsvärdet), man kan därmed beräkna hur lång tid det tog för fordonet att passera korsningen. Tidstegningen kan göras hur många ggr som helst Det finns en given klass Simulation som sköter om (driver) simuleringen och tidsstegningen av trafiksystemet. Finns att ladda ned från Vi kikar på klassen Simulation. Den innehåller en mainmetod som sköter simuleringen, vi testkör den. 9

10 Vi ser i mainmetoden i klassen Simulation att det skapas ett TrafficSystem-objekt TrafficSystem tf = new TrafficSystem(); Att TrafficSystem har följande metoder: step() print() printstatistics() ty mainmetoden anropar dessa metoder. 10

11 Klassen Simulation har en s.k. klassvariabel Så här är den deklarerad private static int time = 0; Mainmetoden i Simulation använder den för styra den globala tiden i en tidsloop. Andra metoder i andra klasser som behöver veta den globala tiden får använda klassmetoden gettime. Ett anrop av metoden är: Simulation.getTime(); Notera att klassmetoder anropas genom att skriva klassens namn framför punkten. Jämför: Math.random() 11

12 Klassen Simulation tar hand om ett Exception Exekveringsfel (dvs programmet avbryts) beror på att ett fel har inträffat i programmet. Man kan man låta programmet ta hand om detta på ett någorlunda kontrollerbart sätt, istället för att det uppstår ett programavbrott. Vi ser att det i klassen Simulation står: try {... // I denna del kan ett Exception inträffa } catch (RuntimeException re) { // Take care of occured exceptions System.out.println("******* " + re.getmessage()); re.printstacktrace(); } 12

13 Om det finns metoder där det kan inträffa fel kan dessa kasta ifrån sig ett sådant. T.ex. så här i en metod putlast i klassen Lane. Där vi skall placera ett fordon sist i filen public void putlast(vehicle v) throws RuntimeException { // Om sista positionen i filen är ledig... // placera fordonet v där // Annars: // System.out.println("Alt: Skriv ett meddelande."); throw new RuntimeException ("Lane, putlast: position is occupied"); } Detta exception fångas upp av den metod som gör try... catch på denna händelse, dvs i try-blocket i mainmetoden i Simulation. re.getmessage() i Simulation innehåller den text som som metoden putlast genererat. 13

14 Hur gör man själva simuleringen när det gäller fordon som kommer in i korsningen vid E? Dvs hur genereras/produceras fordonen? Fordon måste ju komma in i korsningen med en viss frekvens (intensitet). I en simulering kan man låta detta styras av en modell som definierar hur fordon skapas, dvs kommer in i korsningen. Modellen kan vara så här: Fordonsintensiteten är repetitiv, dvs samma mönster upprepas inom en tidsrymd ex.vis och denna tidsrymd kan delas in i ett antal tidsperioder, där varje tidsperiod är en del av tidsrymden Exvis kan man ha två perioder: period 0 gäller för tiden 0-29, period 1 för tiden

15 Hur gör man själva simuleringen när det gäller fordon som kommer in i korsningen vid E? Dvs hur genereras/produceras fordonen? Fordon måste ju komma in i korsningen med en viss frekvens (intensitet). I en simulering kan man låta detta styras av en modell som definierar hur fordon skapas, dvs kommer in i korsningen. I modellen kan man definiera den sannolikhet med vilken ett fordon skapas (kommer in i korsningen) Vi låter en variabel definiera sannolikheten. 15

16 Hur simulera att bilen skall köra rakt fram eller svänga vänster? Det kan också göras med en slumpgenerator: Om ett fordon skapats (kommer in i korsningen vid E) så skall fordonet veta om att den skall svänga vänster, annars köra rakt fram. Vilket görs med en slumpgenerator när fordonet skapas. 16

17 Sammantaget är modellen så här: Fordonsintensiteten är repetitiv, dvs samma mönster upprepas inom en tidsrymd 0-N (49) och denna tidsrymd delas in i ett antal tidsperioder. Exvis så här: Två st tidsperioder där period 0 gäller för tiden 0-29, period 1 för tiden Om vi dessutom låter dessa båda sannolikheter bero på vilken period det är kan det se ut så här: Period time Arrival prob Turn prob Styrs av java s Math.random() Man kan se det som att det finns två olika trafikströmningsperioder. I modellen finns en intern klocka som börjar med 0 och ökar med ett tills den blir 49, därefter slår den om till 0 igen. 17

18 En given klass VehicleGenerator skapar fordon enligt givna sannolikheter som modellen beskriven på föregående sidor Klassen finns att ladda ned från Så det behöver ni inte bekymra er om... Vi kikar på den givna klassen VehicleGenerator Och testkör en mainmetod som använder klassen. Notera att instansvariabelrna turningprobabilities och arrivalprobalities påverkar trafikströmmen vad beträffar andelen som svänger eller kör rakt fram: Vi kikar på detta i step-metoden. 18

19 period : int greentime : int clock : int Light Instansvariabler Light( period :int, greentime : int) isgreen() : boolean step(): void; tostring() : String Ett trafikljus skall ha tre instansvariabler. (1) En periodicitet, dvs den färg trafikljuset skall visa upprepas periodiskt. (2) Ljuset har en egen klocka som styr hur ljuset växlar. (3) I en period skall ljuset vara grönt ett visst antal tidssteg och rött ett visst antal tidssteg. 19

20 Exempel med klassen Light : // period=5, varav grönt ljus 3 av 5 // Ljusets interna klocka är noll // Starta med grönt ljus Light s1 = new Light(5,3); System.out.println(s1.isGreen()); // blir true s1.step(); // Klockan blir ett System.out.println(s1.isGreen()); // blir true s1.step(); // Klockan blir två System.out.println(s1.isGreen()); // blir true s1.step(); System.out.println(s1.isGreen()); // blir false s1.step(); System.out.println(s1.isGreen()); // blir false // Perioden är klar och en ny period inleds // och ljusets klocka slår om till noll s1.step(); System.out.println(s1.isGreen()); // blir true 20

21 Vehicle destination : char borntime : int Instansvariabler Vehicle(destination:char) getdestination() : char gettime() : int tostring() : String Ett fordon skall ha en destination, dvs veta om den skall köra rakt fram eller svänga vänster i korsningen. Vid skapandet av en Vehicle skall det anges om fordonet skall svänga eller inte. Fordonet skall veta när den kom in i trafiksystemet (borntime) genom att konstruktorn anropar metoden för att få veta den globala klockan (Simulation.getTime()), dvs instansvariabeln borntime sätts till värdet av Simulation.getTime() 21

22 Exempel med klassen Vehicle: // Sätt den globala klockan till tiden noll. Simulation.setTime(0); // Skapa ett fordon som vid den tiden och // som skall köra rakt fram (västerut) i korsningen Vehicle v1 = new Vehicle('W'); // Sätt den globala klockan till tiden 1. Simulation.setTime(1); // Skapa ett fordon som vid den tiden och // som skall svänga vänster (söderut) i korningen Vehicle v2 = new Vehicle('S'); System.out.println(v1.getTime()); // 0 System.out.println(v1.getDestination()); // W 22

23 Klassen Lane En fil består av positioner som antingen kan innehålla ett fordon eller vara tom. Vad skall ske på en fil? Fordon kan avancera till platsen framför Fordon kan lämna från första position (dvs längst fram i filen) Fordon kan anlända till sista position Måste kunna titta på första positionen för att se om det är ett fordon som skall lämna filen Måste kunna avgöra om sista positionen är ledig 23

24 Lane thelane : Vehicle[] Lane( length : int) step() : void getfirst() : Vehicle removefirst() : Vehicle lastfree() : boolean putlast( v : Vehicle) tostring() : String Instansvariabel En fil består av en väg med fordon. Vägen är indelad i positioner där det kan finnas ett fordon eller vara tomt. När kön med bilar rör sig framåt flyttas fordonen från en position till nästa. 24

25 Exempel med klassen Lane: // Sätt den globala klockan till noll int time=0; Simulation.setTime(time); // Skapa en fil med plats för 5 st fordon Lane r = new Lane(5); // Skapa ett fordon vid tiden noll som skall köra rakt fram Vehicle v = new Vehicle('w'); // Placera detta fordon sist i filen // Notera, att vi vet att det finns plats sist i filen r.putlast(v); // Flytta fordonet i filen fyra(tids)steg framåt for (time=1;time<=4;time++) { Simulation.setTime(time); r.step(); } // Nu bör fordonet vara längst fram i filen // Vi låtsas att det är grönt ljus, tar därför bort fordonet. v = r.removefirst(); // Beräkna hur länge fordonet har legat i filen int spenttime = time - v.gettime(); // 5 25

26 Givna saker på kurswebben Vi kikar på kurswebben där finns Hela uppgiften beskriven i ett separat dokument Dokumentation (JavaDoc) av klasserna Light, Vehicle och Lane De färdiga klasserna Simulation VehicleGenerator Kodskal för: Light Vehicle Lane TrafficSystem 26

27 Att diskutera Vet ett fordon om var den befinner sig? Kan ett fordon titta framför sig och se vad som är framför i filen? Kan ett fordon se trafikljuset? 27

28 Arbetsgång Börja med att skriva klassen Light och testa den. Skriv och testa klassen Vehicle Skriv klassen Lane och testa den. När dessa tre klasser är skrivna och uttestade, så kan du gå vidare i uppgiften som kommer använda de tre klasserna i ett första testsystem, se nästa sida. I och med att de tre av klasserna är uttestade så behöver du inte bekymra dig om dessa, utan bara använda dem. 28

29 Ett första testsystem Börja med att få detta förenklade system att fungera först I denna implementation räcker det med ett Lane-objekt och ett Light-objekt Klassen TrafficSystem som har koll på detta system består alltså av: Ett Lane-objekt Ett Light-objekt Ett VehicleGenerator-objekt 29

30 Så här kan klassen TrafficSystem för det första testsystemet se ut i en version 0 där det hela tiden är grönt ljus public class TrafficSystem { private VehicleGenerator vg; private Lane [] lanewest; private Light lightwest; // Konstruktor för TrafficSystem public TrafficSystem() { // Konstruera VehicleGenerator-objektet this.vg = new VehicleGenerator(); // Filen tio positioner lång this.lanewest = new Lane(10); // Perioden 5, varav 5 gröna, dvs hela tiden grönt ljus int lightperiod=5, greentime=5; this.lightwest = new Light(lightPeriod,grenTime); } Fortsättning 30

31 Metoden step i klassen TrafficSystem // Denna metod utför ett tidssteg i systemet public void step() { /* Om grönt ljus: Om det finns ett fordon längst fram i filen, så ta bort det från filen Flytta fram alla fordonen en position i filen, dvs lanewest.step anropas Om VehicleGeneratorn vg genererar ett fordon dvs vg.step() har returnerat ett Vehicle-objekt: Placera in detta fordon sist i filen, men bara om det är ledigt där. Annars om det är upptaget, varna för detta i så fall. (anrop av lanewest.putlast) Stega trafikljuset */ } // slut på metoden step //... Andra metoder i TrafficSystem 31

32 Utskrifter Metoden print i klassen TrafficSystem skall skriva ut alla de värden som gör att vi kan se vad som händer i systemet. Metoden skall skriva ut ljusets värden och filens värden i varje tidssteg Exempelvis så här med ett trafikljus och EN fil tio lång: W Light: period=5,green=5,internaltime=4(g) <W WW > Trafikljusets värden Filens värden Ett trafikljus betecknat W, med perioden 5, gröntid=5, vars interna klocka är 4 och ljuset visar Grönt därav (G). Filen visas som <W WW > dvs tio positioner, det finns fordon i 1:a, 8:e och 9:e positionen. Alla dessa fordon skall köra rakt fram, därav värdet W. 32

33 Version 1 av det första testsystemet där det är omväxlande grönt och rött ljus Ändra delar av konstruktorn i TrafficSystem enligt: // Perioden 5, varav 3 gröna (och 2 röda) int lightperiod=5, greentime=3; this.lightwest = new Light(lightPeriod,grenTime); Testa att systemet i denna version fungerar Utmana systemet genom att ändra till // Perioden 5, varav 2 gröna (och 3 röda) int lightperiod=5, greentime=2; this.lightwest = new Light(lightPeriod,grenTime); Testa systemet Utmana systemet ytterligare genom att ändra till // Perioden 5, varav 1 grön (och 4 röda) int lightperiod=5, greentime=1; this.lightwest = new Light(lightPeriod,grenTime); Testa systemet 33

34 Statistik som skall beräknas i det första testsystemet När du ser att det första testsystemet fungerar, bygg på det med att beräkna statistik. Data för statistiken fås genom att varje gång ett fordon lämnar korsningen beräknas hur länge fordonet varit i korsning. Bl.a. genomsnittlig tid för fordon och maximal tid för ett fordon att passera korsningen. Använd klassen Measurements för att samla på mätvärden så att man kan beräkna denna statistik. Det innebär att trafiksystemet i det första testsystemet innehåller en instansvariabel som är ett Measurementsobjekt. Statitik skall beräknas och skrivas ut av metoden printstatistics i klassen TrafficSystem. Tips: I version 0 är filen10 lång och ljuset är grönt hela tiden, då bör alla fordon vara i filen 10 st tidssteg. Det är ett exempel på den statistik som skall beräknas av metoden printstatistics i klassen TrafficSystem. Det blir då enkelt att bekräfta att den statistik som beräknas blir korrekt. 34

35 Det fullständiga programmet Tre filer och en inkommande kö av skapade bilar vid pkt E. Denna kö kan lösas som en ArrayList av Vehicle. Filerna är av fix längd. Två st trafikljus som har fixa data. Tips: Börja med en förenkling där båda ljusen är gröna hela tiden, så att du ser att det blir ett flöde av fordon genom hela systemet i filerna och utan några som helst hinder. 35

36 Statistik från en körning av det fullständiga programmet: genomsnittliga och maximala tider (antal tidssteg) för fordon att passera ljussignalen lightwest respektive lightsouth, andel tidssteg som kön framför vardera signalen varit längre än längden på lanewest och lanesouth dvs den tid som fildelningen vid X varit blockerad av kö (för att beräkna detta behöver man räkna antal tidssteg som det ej gick att lägga ett fordon i lanewest resp lanesouth därför att sista positionen var upptagen) andel tidssteg som det funnits fordon i kön vid entrypunkten (E). Samla tiderna för fordon som lämnar systemet i två Measurements-objekt ett för vardera utgång, för att ta fram statistiken 36

37 Notera uppgiften finns beskriven till fullo på I synnerhet i dokumentet: 37

trafiksimulering Intro OU5 trafiksimulering

trafiksimulering Intro OU5 trafiksimulering Presentation av obligatoriska uppgiften trafiksimulering Ett lite större program med flera klasser Hur man designar ett system Hur man gör simuleringar 1 Valsätr ravägen Korsningen Dag hammarsköldsväg

Läs mer

Presentation av trafiksimuleringsprojektet

Presentation av trafiksimuleringsprojektet (27 februari 2017 Trafiksimulering 1 ) Presentation av trafiksimuleringsprojektet Skall diskutera Ett lite större program med flera klasser Hur man designar ett system Hur man ritar klassdiagram i UML

Läs mer

Presentation av trafiksimuleringsprojektet

Presentation av trafiksimuleringsprojektet (28 februari 2019 Trafiksimulering 1 ) Presentation av trafiksimuleringsprojektet Skall diskutera Ett lite större program med flera klasser Hur man designar ett system Hur man ritar klassdiagram i UML

Läs mer

Obligatorisk uppgift: Simulering av köer i ett trafiksystem

Obligatorisk uppgift: Simulering av köer i ett trafiksystem Programmeringsteknik I, ht2016 Obligatorisk uppgift: Simulering av köer i ett trafiksystem Moment: Centrala begrepp som klasser, objekt, metoder. (Uppgiften kommer att diskuteras ingående på föreläsningstid).

Läs mer

Obligatorisk uppgift: Simulering av köer i ett trafiksystem

Obligatorisk uppgift: Simulering av köer i ett trafiksystem Programmeringsteknik I, ht2016 Obligatorisk uppgift: Simulering av köer i ett trafiksystem Moment: Centrala begrepp som klasser, objekt, metoder. (Uppgiften kommer att diskuteras ingående på föreläsningstid).

Läs mer

Obligatorisk uppgift: Simulering av köer i ett trafiksystem

Obligatorisk uppgift: Simulering av köer i ett trafiksystem Informationsteknologi 10 februari 2016 Obligatorisk uppgift: imulering av köer i ett trafiksystem Moment: Centrala begrepp som klasser, objekt, metoder, attribut. Problembeskrivning OB: Uppgifterna kommer

Läs mer

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I Tentamen i Programmeringsteknik I 2017-01-03 Skrivtid: 8.00-13.00 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Skriv ej högst upp i det vänstra hörnet

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-09-01 Skrivtid: 0900-1200 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-06-12 Skrivtid: 1400-1900 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Laboration 3, uppgift En klass för en räknare

Laboration 3, uppgift En klass för en räknare Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-03-16 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

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

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar

Läs mer

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )

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

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I Tentamen i Programmeringsteknik I 2016-10-17 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

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

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

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

ID1004 Laboration 4, November 2012

ID1004 Laboration 4, November 2012 06-Nov-2012/FK ID1004 Laboration 4, 14-16 November 2012 Beräknad tid ca 1-2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön Eclipse. Alternativt

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och penna. Behandla

Läs mer

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I UPPSALA UNIVERSITET Institutionen för Informationsteknologi Tentamen i Programmeringsteknik I 091211 Skrivtid: 8-11 Hjälpmedel: Lewis & Loftus, Java Software Solutions eller Skansholm, Java Direkt med

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016 Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2019-03-22 Skrivtid: 14:00 19:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (6 mars 2019 F7 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (6 mars 2019 F7 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

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

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

DD1342 Programkonstruktion för F1,

DD1342 Programkonstruktion för F1, DD1342 Programkonstruktion för F1, 2007-2008 Lappskrivning 2 Tisdag 5/2 2008 kl 14.15 15.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans

Läs mer

Tentamen i Programmeringsteknik I, ES, 2010-03-18

Tentamen i Programmeringsteknik I, ES, 2010-03-18 Tentamen i Programmeringsteknik I, ES, 2010-03-18 Skriv tid: 14-17. Hjälpmedel: 1. Kurslitteratur, en av följande: Lewis & Loftus, Java Software Solutions Skansholm, Java Direkt Guzdial & Ericson, Intrododuction

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus. Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

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 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Lösningsförslag övning 2.

Lösningsförslag övning 2. Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static

Läs mer

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad

Läs mer

Objektorientering: Lagring och livstid

Objektorientering: Lagring och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Objektorientering: Lagring och livstid Tre sorters variabler Tre sorters variabel (1): Lokal 2 Lokal variabel Deklareras inuti en metod Vid varje anrop

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via

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

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-03-14 Skrivtid: 0800-1100 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Föreläsning 8: Exempel och problemlösning

Föreläsning 8: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2015 08 20, 8.00 13.00 Anvisningar: Denna tentamen består av fyra uppgifter. Preliminärt ger uppgifterna

Läs mer

JAVA Mer om klasser och objektorientering

JAVA Mer om klasser och objektorientering JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det

Läs mer

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap. Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.

Läs mer

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. (7) Objektinteraktion Objektorienterad programmering Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. Mål Efter övningen skall du kunna konstruera ett program med flera

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 202-0-25 Skrivtid: 400-700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14. Tentamen 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.00, sal D31 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

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

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Vad blir resultatet av följande kod? b) Satsen double h = (double)(1/10); double s = 0; for (int i= 1;

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

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

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Tentamen i EDAF60 29 oktober 2018 Skrivtid: 14-19 Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Skriv inte med färgpenna enda tillåtna färg är svart/blått/blyerts.

Läs mer

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller Institutionen för TENTAMEN Data- och informationsteknik 2010-01-11 JSk OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

Läs mer

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar

Läs mer

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer