Namn: Personnr: 1 Programmeringsteknik i Java för B2, V1 och T1 2D1310 27 oktober 2001 (1p) En Javabok. För betyget godkänt krävs att a- eller b-delen av varje fråga Hjälpmedel: 1 5) är rätt besvarad. Ett mindre fel som e har med frågan att göra kan accep- (uppgift Vi reserverar oss för eventuella lättnader av dessa krav. Skriv linje och årskurs (t ex teras. på omslaget. Skriv svaren i ramarna i detta häfte. Glöm e att skriva namn och B-00) på varje blad! personnummer till! Lycka Uppgift 1: Parametrar a) Vad blir utskriften från följande program? Disk void main(string[] args) antal = 2; vec = new Diskmaskin[antal]; Diskmaskin[] frantz = new Diskmaskin(45); Diskmaskin = frantz; vec[0] = new Diskmaskin(60); vec[1] vec, frantz); foo(antal, System.out.prln(antal + ", " + vec[0].bredd + ", " + vec[1].bredd); void foo( i, Diskmaskin[] svec, Diskmaskin s) i=5; = 70; svec[1].bredd = 30; s.bredd System.out.prln(i + ", " + svec[0].bredd + ", " + svec[1].bredd); Diskmaskin bredd; bredd) Diskmaskin( = bredd; this.bredd Utskrift i metoden foo: Utskrift i metoden main: 2 Lagamat void main(string[] gruff) räcker = true; boolean portioner = 10; mat = new Laap(472.8, 4, "Laotisk köttfärslaap"); Laap + ", " + mat.krydda + ", " + mat.laaptyp); System.out.prln(mat.krydda = tillräckligtkvar(mat, portioner); räcker + ", " + mat.krydda + ", " + mat.laaptyp); System.out.prln(mat.krydda boolean tillräckligtkvar(laap mat, p) om ingredienserna som finns kvar räcker till p portioner. //Beräknar // Här finns kod som e visas på tentan Laap gram; //antal gram kött eller fisk krydda; //antal koriander-plantor laaptyp; String gram, krydda, String laaptyp) Laap( = gram; this.gram = krydda; this.krydda = laaptyp; this.laaptyp är en traditionell och mycket god maträtt i Laos som äts med riktigt härligt klibbigt Laap Huvudingrediensen i laap är nån typ av kött eller fisk och en massa koriander. Vien- ris. (Laos huvudstads) finaste laap-restaurang Lapa Laap"har precis köpt in det här tiannes för att underlätta i köket, men de tycker e att det fungerar riktigt som det programmet Tack och lov är personalen händig och försöker hitta felet genom att skriva ut några ska. värden både före och efter anropet till metoden tillräckligtkvar(). Ange för följande variabler om utskriften kan ha ändrats efter anropet till metoden tillräckligtkvar(). Kan ha Motivering Variabel (j/n) ändrats mat.gram mat.krydda mat.laaptyp
Namn: Personnr: 3 Uppgift 2: Metodanrop och Staffan renoverar sitt kök och tittar på kakel. Priserna i affären är angivna per Anna och plattorna har olika storlek vilket gör det svårt att jämföra priser. Följande kakelplatta hjälper dem i sitt val. Deklarationer av variabler och metoder är redan gjorda och program får e införa några andra för att lösa uppgiften. du Kakla void main(string[] sarg) grå = new Kakel(50, 50, 1.32); Kakel cerise = new Kakel(350, 250, 22.63); Kakel gräns = 1300; //max antal kronor som kaklet får kosta råd; boolean //koden i a- och b-delen hamnar här boolean harviråd(kakel k, gräns) totalpriset. Returnerar true om det är < eller = gräns. //Beräknar //Returnerar false annars. Den här koden visas e på tentan. Kakel bredd; //bredd i mm höjd; //höjd i mm pris; //pris per platta Kakel( bredd, höjd, pris) //Konstruktor plattyta() //Beräknar ytan på en platta prisperkvm() //Beräknar pris per kvadratmeter Markera vilka av följande satser (som utförs i main-metoden) som är riktiga respektive a) och ange för de felaktiga varför de är fel. Om det finns fler fel i en sats behöver felaktiga du bara ange ett av dessa. Sats Rätt/Fel Motivering råd = grå.harviråd(grå, gräns); pris = Kakel.prisPerKvM(); råd = harviråd(k, gräns); yta = cerise.plattyta(gräns); 4 Skriv kod som gör följande: Kollar om Anna och Staffan har råd med det gråa kaklet. de har råd ska koden skriva ett glatt meddelande på skärmen. Om Uppgift 3: Matriser, arrayer och vektorer tycker om att laga mat, därför har han många kastruller i sitt kök. Hjälp Dennis ha Dennis på dem! ordning import java.util.vector; Prylar void main(string[] arr) sum; len = //kod som e visas på tentan! skåp = new Hylla[len]; Hylla[] v = new Vector(); Vector fyllskåp(skåp); i del a //kod sum = summera(skåp); summera(hylla[] skåp) i del b //kod void fyllskåp(hylla[] s) som fyller s med hyllor med grytor //metod //Här finns kod som e visas på tentan Hylla grytor; //antal grytor som finns på hyllan Hylla( grytor) = grytor; this.grytor
Namn: Personnr: 5 Skriv kod som lägger in den första och den sista hyllan (första och sista elementet i a) ivektorn v. skåp) Skriv den kod som saknas i metoden summera(), dvs som räknar ut hur många grytor finns totalt i skåpet skåp och returnerar resultatet. det 6 Uppgift 4: Klasser och Katarina har bara filmjölk i sin kyl. Eftersom de har fullt upp med att renovera Olle kök har de e tid att hålla koll på hur gammal filen är. Olle, som är examinator i sitt kurs i programmering, skriver då givetvis ett program som håller koll på om filen är en eller e. Hjälp honom skriva några av metoderna! gammal Kyl void main(string[] argh) fil = new Fil[2]; Fil[] = new Fil(20010805, "Kefir "); fil[0] = new Fil(20011031, "Fjällfil"); fil[1] OK filpaket " + antalokpaket(fil, 20011027)); System.out.prln("Antal antalokpaket(fil[] f, dagensdatum) som räknar ut hur måga paket fil som är OK och returnerar svaret. //Metod antal=0; //Här ska koden i del b stå. Fil bästföre; String sort; Fil( bästföre, String sort) till Fil //Konstruktor boolean ärdenok( dagensdatum) som kollar om filen är OK, //Metod //dvs om bäst före-datumet är passerat //Här ska koden i del a stå.
Namn: Personnr: 7 a) Skriv den kod som saknas i metoden ärdenok(). Skriv den kod som saknas i metoden antalokpaket(). 8 Uppgift 5: Minnesbilder har Dennis och Olle skruvat upp alla skåp i Dennis nya kök och behöver en paus. Dennis Nu också om små program och har skrivit detta. Hjälp honom rita upp vad som händer när han tycker förklarar för Olle hur det fungerar! uppgiften nedan skall du rita bilder av minnet vid ett tillfällen under exekveringen. Bilderna skall I samtliga klasser med tillhörande klassvariabler, samtliga metodanrop med lokala variabler innehålla e this) och samtliga objekt med instansvariabler. Alla variablers värden skall framgå av (glöm Metodanrop som är avslutade ska strykas, eller e ritas ut (men effekten av anropet ska bilden. givetvis synas). Paus void main(string[] args) stanfordmugg = new Kopp(3.2); Kopp favoritmugg = new Kopp(4.5); Kopp grevegrå = new Tekanna(15, 16); Tekanna grevegrå.hällupp(favoritmugg); Kopp volym; //antal dl som får plats i muggen Kopp( volym) = volym; this.volym Tekanna totvol; //totalvolym i dl volte; //antal dl te i tekannan Tekanna( volte, totvol) = totvol; this.totvol (volte<totvol) if = volte; this.volte else nu rinner det över!"); System.out.prln("OJOJ, = totvol; this.volte void hällupp(kopp k) koppvolym = k.volym; = volte - koppvolym; volte //a
Klasser och klassvariabler MittKok Spis Metodanrop, parametrar och lokala variabler main(...) args gaggenau String[]? Spis Objekt/Instanser och instansvariabler Spis-objekt stor liten -objekt effekt 2300.0 4000.0 -objekt effekt 1500.0 Namn: Personnr: 9 a) Rita en bild av minnet vid läge (a) i programmet. Klasser & klassvariabler Metodanrop och lokala variabler Objekt och instansvariabler 10 Betrakta följande program MittKok void main(string[] args) //b Spis stor; liten; Spis() = new (2300); stor liten = new (1500); effekt; // i Watt ( effekt) = effekt; this.effekt void ändraeffekt( nyeffekt) = nyeffekt; effekt Skriv de satser som ska invid i main för att det ska seutsomovan i minnet.