Sammanfattning och repetition utgående från typiska tentamensuppgifter

Relevanta dokument
Sammanfattning och repetition utgående från typiska tentamensuppgifter

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

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

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

Del A (obligatorisk för alla)

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

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

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

Del A (obligatorisk för alla)

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 tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Programmeringsteknik I

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

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

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

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

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

TENTAMEN OOP

Tentamen i Programmeringsteknik I

Del A (obligatorisk för alla)

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

Tentamen OOP

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

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

Grundläggande programmering med C# 7,5 högskolepoäng

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.

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.

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

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

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

Presentation av trafiksimuleringsprojektet

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

TENTAMEN OOP

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

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

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

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

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

TENTAMEN OOP

Föreläsning 5-6 Innehåll

Objektorienterad programmering i Java

Föreläsning 3-4 Innehåll

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

Tentamen i Programmeringsteknik I

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

OOP Objekt-orienterad programmering

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

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

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

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

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

Lösningsförslag övning 2.

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

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

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

Programmering för språkteknologer II, HT2011. Rum

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

DAT043 Objektorienterad Programmering

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

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

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

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

Tentamen. Lösningsförslag

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

Objektorienterad Programmering DAT043

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Föreläsning REPETITION & EXTENTA

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Objekt och klasser - Introduktion

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

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

Programmeringsteknik I

2D1342 Programkonstruktion för F1, ht 2006

Malmö högskola 2008/2009 CTS

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

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

Transkript:

(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(); Turtle t1, t2, t3; t1 = new Turtle(w); t2 = new Turtle(w); t3 = t2; 1) 0 2) 1 3) 2 4) 3 5) 4 Hur många objekt skapas av koden Turtle[] t = new Turtle[10]; Svar: 1

(6 mars 2019 F7 3 ) A-fråga Antag att klassen PersonList har en instansvariabel ArrayList<Person> myfriends. På vilket eller vilka sätt kan en metod med huvudet public PersonList sort() i klassen PersonList anropas? Nej 1) Person[]result = sort(); Nej 2) String result = sort(); Ja 3) PersonList result = sort(); Nej 4) ArrayList<Person> result = sort(); Nej 5) Person result = sort();

(6 mars 2019 F7 4 ) A-fråga Vilken eller vilka returtyper kan nedanstående metod ha? public typ? check(int value) { return value < 0; Nej 1) Kompileringsfel Nej 2) int Nej 3) void Nej 4) String Ja 5) boolean

(6 mars 2019 F7 5 ) A-fråga Vad blir resultatet av nedanstående kod? int a = 3; int b = 4; a = a + b; b = a - b; a = a - b; System.out.println(a + ", " + b); 1) Kompileringsfel 2) Exekveringsfel 3) Utskriften 3, 3 4) Utskriften 3, 4 5) Utskriften 4, 3 6) Utskriften 4, 4

(6 mars 2019 F7 6 ) A-fråga Synpunkter på metoden public void swap(int a, int b) { a = a + b; b = a - b; a = a - b;? Den är meningslös! Har ingen effekt! Om den inte var meningslös borde den deklareras static!

(6 mars 2019 F7 7 ) A-fråga I klassen Friends finns deklarationen private ArrayList<Person> myfriends; I en metod i denna klass finns uttrycket this.myfriends.get(3).getname().equals(n) I vilken klass finns metoden getname? 1) I klassen Friends 2) I klassen Person 3) I klassen ArrayList 4) I klassen String

(6 mars 2019 F7 8 ) A-fråga Antag att nedanstående sats går att kompilera String n = this.values.get(i).getname(); Vilket eller vilka av nedanstående alternativ kan vara sant? 1) values är en klassmetod Nej 2) values är en objektmetod Nej 3) values är en instansvariabel Ja 4) values är en lokal variabel Nej 5) values är en parameter Nej 6) values är en array Nej 7) values är en ArrayList Ja

(6 mars 2019 F7 9 ) A-fråga Vilket uttalande om koden nedan är sant? if ("Nisse".equals(friend)) { System.out.println("My friend"); 1) Koden ger kompileringsfel Nej 2) Koden ger exekveringsfel (något exception) Nej 3) equals som anropas kan finnas i klassen Friend Nej 4) equals som anropas kan finnas i klassen ArrayList Nej 5) equals som anropas kan finnas i klassen String Ja

(6 mars 2019 F7 10 ) A-fråga Antag att satsen x = lane.putlast(vg.step()); går att kompilera men att den ger ett NullPointerException när den utförs. Vilka av följande alternativ kan det bero på? 1) x är null Nej 2) lane är null ja 3) vg är null ja 4) vg.step() returnerar null Nej 5) vg innehåller ingen step-metod Nej

(6 mars 2019 F7 11 ) Övning Vilket eller vilka påstående om en instansvariabel är korrekt? 1) måste deklareras utanför konstruktorerna Ja 2) måste deklareras i en konstruktor Nej 3) kan deklareras i en konstruktor Nej 3) måste ges ett värde i en konstruktor Nej 4) bör ha ett namn som börjar på en liten bokstav Ja 5) kan vara odefinierad Nej

(6 mars 2019 F7 12 ) A-fråga Vad händer när denna klass kompileras? public class Test { public void main(int a) { System.out.println(a); 1) Kompileringsfel för att main måste vara static Nej 2) Kompileringsfel för att parametern måste heta args Nej 3) Kompileringsfel för att a måste vara String[] Nej 4) Inga kompileringsfel Ja Vad händer om man försöker exekvera (Run) klassen? > run Test Static Error: This class does not have a static void main method accepting String[].

(6 mars 2019 F7 13 ) A-fråga Betrakta det korrekta men aningen egendomliga uttrycket System.out.println(Color.BLUE.getBlue() + Math.exp(Math.PI)); Ange samtliga av nedanstående begrepp som förekommer i uttrycket! Klassnamn: Instanssvariabler: Klassvariabler: Klasskonstanter: System, Math, Color inga System.out Math.PI, Color.BLUE

(6 mars 2019 F7 14 ) A-fråga Betrakta det korrekta men aningen egendomliga uttrycket System.out.println(Color.BLUE.getBlue() + Math.exp(Math.PI)); Ange samtliga av nedanstående begrepp som förekommer i uttrycket! Anrop av instansmetoder: Anrop av klassmetoder: Aktuella parametrar: Formella parametrar: println(...), getblue() Math.exp(...) Math.PI, Color.BLUE.getBlue() + Math.exp(Math.PI) inga

(6 mars 2019 F7 15 ) Väderstatistik Kommande uppgifter handlar om tre klasser som kan användas för att samla väderobservationer och producera statistik. Klassen Observation representerar en enskild observation bestående av uppgift om vindstyrka och temperatur (reella tal). (I praktiken skulle en observation naturligtvis bestå av många fler komponenter som klockslag, vindriktning, luftfuktighet,... )

(6 mars 2019 F7 16 ) Klassen Väderstatistik StationList stations Station name observations Landsort Station name observations Observation Observation wind temp 18 wind 14 4,2 temp 5,6

(6 mars 2019 F7 17 ) Klassen Observation Deklarerade de instansvariabler som behövs för att representera en observation bestående av en uppgift om vindstyrka och en om temperatur. public class Observation { private double wind; private double temp; Skriv en konstruktor som tar emot dessa värden public Observation(double wind, double temp) { this.wind = wind; this.temp = temp;

(6 mars 2019 F7 18 ) Klassen Observation Skriv en metod getwind() som returnerar lagrad vindstyrka public double getwind() { return wind; Skriv en metoden tostring(). Exempel på resultat: "<3.5, 4.2>" public String tostring() { return "<" + wind + ", " + temp + ">";

(6 mars 2019 F7 19 ) Klassen Observation Skriv en metod belowtemp(double limit) som returnerar true om observationens temperaturuppgift är under limit, annars false. public boolean belowtemp(double limit) { return temp < limit; OK att skriva public boolean belowtemp(double limit) { if (temp < limit) { return true; else { return false;

(6 mars 2019 F7 20 ) Metoden read i klassen Observation I klassen Observation finns en metod read som används för inläsning av en observationspost dvs vind och temperatur. Metoden har en referens till ett Scanner-objekt som parameter. Om det som står på tur att läsas med med Scanner-objektet inte är ett tal returneras null. I annat fall läses vind- och temperaturuppgift och ett objekt med dessa skapas och returneras. Om det inte går att läsa en temperatur efter vinduppgiften så avbryts programmet med ett RuntimeException dvs med koden throw new RuntimeException("Observation could not be read"); Metodens huvud är public static Observation read(scanner fsc) { Skriv klart metoden!

(6 mars 2019 F7 21 ) Metoden read i klassen Observation public static Observation read(scanner fsc) { if (!fsc.hasnextdouble()) { return null; double wind = fsc.nextdouble(); if (fsc.hasnextdouble()) { double temp = fsc.nextdouble(); return new Observation(wind, temp); else { throw new RuntimeException("Observation could not be read");

(6 mars 2019 F7 22 ) Metoden read i klassen Observation Metoden read är deklarerad som static. Vad innebär det? static innebär att metoden (eller variabeln) inte hör till enskilda objekt utan är gemensam för klassen som helhet. Varför skriver man den inte som en vanlig metod dvs utan static? För att anropa en instansmetod måste naturligtvis objektet existera vilket det inte gör när man anropar metoden. Skriv en konstruktor som uppfyller samma specifikation eller förklara varför det är olämplig eller inte går. Specifikationen anger att metoden skall returnera null när det inte går att läsa något men en konstruktor kan aldrig returnera null.

(6 mars 2019 F7 23 ) Klassen Station Klassen Station ska representera en väderstation med namn (en sträng) och ett antal Observation-objekt som lagras i en arraylist. Skriv de instansvariabler som behövs private String name; private ArrayList<Observation> theobservations; Skriv det som fattas i konstruktorn public Station(String name) { this.name = name; this.theobservations = new ArrayList<Observation>(); Behövs this. i ovanstående konstruktor? Endast i första fallet.

(6 mars 2019 F7 24 ) Klassen Station Skriv metoden numberofobservations som ska returnera antalet lagrade observationer. public int numberofobservations() { return theobservations.size(); Skriv en metod addobservation(observation obs) som lägger till en observation till listan med observationer. public void addobservation(observation obs) { theobservations.add(obs);

(6 mars 2019 F7 25 ) Klassen Station Skriv en metod double meanusable(double low, double high) som returnerar medelvinden för de vindobservationer som ligger i intervallet [low, high]. public double meanusable(double low, double high) { double sum = 0; int n = 0; for (Observation o: theobservations) { double w = o.getwind(); if (w >= low && w <= high) { sum += w; n++; return sum/n;

(6 mars 2019 F7 26 ) Klassen Station Skriv klart metoden double[] windarray() i klassen Station som skapar och returnerar en array med alla vindvärden från en station. (Högst 6 rader.) public double[] windarray() { double[] ret = new double[theobservations.size()]; for (int i=0; i< ret.length; i++) { ret[i] = theobservations.get(i).getwind(); return ret;

(6 mars 2019 F7 27 ) Klassen Station Samma uppgift med for-each Måste ändå ha ett index för arrayens skull. public double[] windarray() { double[] ret = new double[theobservations.size()]; int i = 0; for (Observation o: theobservations) { ret[i] = o.getwind(); i++; return ret;

(6 mars 2019 F7 28 ) Övning Skriv en metod double[] usablewind(double low, double high) { i klassen Station som skapar och returnerar en array med de vindobservationer som ligger i intervallet [low, high].

(6 mars 2019 F7 29 ) Klassen Station Givet klassen Measurements (som i obligatorisk uppgift 3) med konstruktorn Measurements(double[] arr) och metoden double stddev() för att beräkna standardavvikelsen. Antag att du håller på med en main-metod som har skapat ett Station-objekt och lagt till ett antal observationer. Skriv de rader som behövs för att med hjälp av klassen Measurements beräkna och skriva ut standardavvikelserna för vindobservationerna. Station station = new Station("Landsort"); Measurements ms = new Measurements(station.windArray()); System.out.format("Wind standard deviation: %2.1f", ms.stddev());

(6 mars 2019 F7 30 ) Klassen Station Skriv en equals-metod för klassen Station. Två stationer är lika (samma station) om de har samma namn. public boolean equals(station stn) { return this.getname() XXX == stn.getname();? Nej! utan så här: public boolean equals(station stn) { return this.getname().equals(stn.getname()); eller så här: public boolean equals(station stn) { return this.name.equals(stn.name);

(6 mars 2019 F7 31 ) Klassen Station Skriv en metod int compareto(station stn) som returnerar ett negativt värde, ett positivt värde eller noll beroende på om den egna stationen kommer före, efter eller är samma som stn. public int compareto(station stn) { return name.compareto(stn.name);

(6 mars 2019 F7 32 ) Klassen StationList Klassen StationList representerar ett antal Station-objekt med hjälp av instansvariabeln ArrayList<Station>stations som skapas av konstruktorn till en ton tom lista. Objekten ska vara sorterade på namnen i bokstavsordning.

(6 mars 2019 F7 33 ) Klassen StationList Skriv metoden Station addsorted(string name) som letar i listan efter en station med angivet namn. Om stationen inte hittas skall den skapas och läggas in i listan så att den förblir sorterad på namn. Metoden skall returnera en referens till (det funna eller skapade) objektet.

(6 mars 2019 F7 34 ) Metoden addsorted public Station addsorted(string name) { int index = 0; while (index < stations.size() && name.compareto(stations.get(index).getname()) < 0) { index++;... Hur vet vi om vi ska lägga in en ny station? Två fall: 1. Hela listan genomletad dvs om index == stations.size() eller 2. index pekar på en station med annat namn än sökt dvs om name.equals(stations.get(index).getname()) == false

(6 mars 2019 F7 35 ) Metoden addsorted public Station addsorted(string name) { int index = 0; while (index < stations.size() && name.compareto(stations.get(index).getname()) < 0) { index++; if (index==stations.size() name.equals(stations.get(index).getname()) == false) { stations.add(index, new Station(name)); return stations.get(index); Observera ordningen i while- och if-villkoren! Håll looparna rena utan en massa if, break och return!

(6 mars 2019 F7 36 ) Frågor addsorted I vilken klass finns den compareto som används i while-villkoret name.compareto(stations.get(index).getname())? Svar: I klassen String Varför använde vi inte den compareto som vi skrev nyss? Svar: Den jämför Station-objekt men vi behövde jämföra ett Station-objekt med ett String-objekt.

(6 mars 2019 F7 37 ) Mer diskussion Man skulle kunna skriva två metoder: public int compareto(string name) { return this.name.compareto(name); public boolean equals(string name) { return this.name.equals(name); Dessa metoder jämför alltså ett Station-objekt med ett String-objekt i stället för att Station-objekt. Det går bra att ha flera compareto och equals-metoder i samma klass så länge de har olika parameter-typer.

(6 mars 2019 F7 38 ) Metoden addsorted Med dessa blir koden lite enklare: public Station addsorted(string name) { int index = 0; while (index < stations.size() && stations.get(index).compareto(name) > 0) { index++; if (index==stations.size() stations.get(index).equals(name) == false) { stations.add(index, new Station(name)); return stations.get(index); men vi måste byta ordning i testerna!

(6 mars 2019 F7 39 ) Alternativ addsorted public Station addsorted(string name) { int index = 0; int cmp = 1; while (index < stations.size() && (cmp = stations.get(index).compareto(name)) < 0) { index++; if (index==stations.size() cmp!=0) { stations.add(index, new Station(name)); return stations.get(index); Observera att tilldelningar har ett värde!

(6 mars 2019 F7 40 ) Metoden load i klassen StationList Metoden void load(string filename) i klassen StationList skall läsa rader från en fil med uppgifter om stationer och observationsdata. Varje rad börjar med ett stationsnamn följt av ett antal observationsposter. Metoden skall använda read i Observation för att läsa enskilda observationer och metoden addsorted för att få in namn och observationer på rätt plats i listan. Om samma stationsnamn kommer igen skall dess observationer läggas till den redan lagrade stationen. I listan skall alltså ingen station förekomma flera gånger. Se körexempelet! Skriv klart metoden!

(6 mars 2019 F7 41 ) Metoden load i klassen StationList public void load(string filename) throws IOException { FileReader reader = new FileReader(filename); Scanner fsc = new Scanner(reader); while (fsc.hasnext()) { String name = fsc.next(); Station s = addsorted(name); Observation obs = Observation.read(fsc); while ( obs!= null ) { s.addobservation(obs); obs = Observation.read(fsc); fsc.close(); reader.close(); // As long as there are more stations

(6 mars 2019 F7 42 ) Kom ihåg! Metoder ska inte skriva ut något om de inte detta till uppgift. get-metoder ska returnera svaret, inte skriva ut det! Metoder ska inte ändra på objekt om de inte har till uppgift att ändra på objektet! Hakparenteserna ([ ]) används på arrayer medan get- och set-metoder på ArrayListor! Instans- och klassvariabler får defaultvärden men inte lokala variabler. new T [n] skapar ett array-objekt men inte några T -objekt! Håll reda på datatyper! Se upp med synligheten private! Använd get-metoder!

(6 mars 2019 F7 43 ) Om tentamensskrivningen Skrivningen består av två delar. Lösningarna till uppgifterna på A-delen ska skrivas in i de tomma rutorna och den delen ska lämnas in. Rutorna är tilltagna i storlek så att de ska rymma svaren. Lösningarna till uppgifterna på B-delen skrivs på lösa papper. För att bli godkänd (betyg 3) krävs att minst ca 75% av A-delen är i stort sett rätt löst. För betyget 4 krävs dessutom att minst hälften av uppgifterna på B-delen och betyg 5 att alla uppgifterna på B-delen är i stort sett rätt lösta. Vi bedömning av betyg 4 och 5 tas också hänsyn till kvalitén på lösningarna i A-delen. Observera att B-delen inte rättas om inte A-delen är godkänd.

(6 mars 2019 F7 44 ) 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 (gäller B-delen) och din kod överst i högra hörnet på alla papper Såvida inget annat anges, både får och ska man bygga på lösningar på föregående uppgifter även om dessa inte har lösts. På B-delen är det tillåtet att införa hjälpmetoder och hjälpklasser. Uttrycket skriv en metod som skall alltså inte tolkas så att lösningen inte får struktureras med hjälp av flera metoder. Du behöver inte skriva import-satser för klasserna Scanner, ArrayList, Locale och inte heller för klasser i java.io.

(6 mars 2019 F7 45 ) Observera att betyget påverkas negativt av icke-privata eller onödiga instansvariabler, dålig läslighet, upprepning av identisk kod, underlåtenhet att utnyttja given eller egen tidigare skriven metod.

(6 mars 2019 F7 46 ) Tips inför tentan Repetera nätlektionerna! Läs på era lösningar! Läs på kursens standardklasser! Läs igenom anvisningarna i förväg! Fastna inte på en uppgift! Läs den givna koden - den innehåller ofta exempel på hur man kan skriva! Var inte för smarta när ni skriver koden! Ta det lugnt!

(6 mars 2019 F7 47 ) Slutligen Lycka till!