TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P



Relevanta dokument
TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Objektorienterad programmering i Java

LÖSNINGSFÖRSLAG TILL TENTAMEN PROGRAMMERINGSMETODIK MOM2 - JAVA, 4P.

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Språkkonventioner och redigering av tal.

DELPROV 1 I DATAVETENSKAP

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 och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

TENTAMEN I DATAVETENSKAP

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

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

Fördjupad Java. Undantagshantering. Fel

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

TENTAMEN OOP

Programmering A. Johan Eliasson

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

Tentamen. Lösningsförslag

JAVAUTVECKLING LEKTION 7

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

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.

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

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.

Tentamen , Introduktion till Java, dtaa98, dtea53

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

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.

Hur ser ett Java-program ut?

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

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

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

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

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Föreläsning 3-4 Innehåll

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

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

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

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

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

SMD 134 Objektorienterad programmering

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

TENTAMEN OOP

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

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

Del A (obligatorisk för alla)

Tentamen, EDAA20/EDA501 Programmering

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

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

JAVA Mer om klasser och objektorientering

Instuderingsfrågor, del D

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Tentamen OOP

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

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

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

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011

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

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

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

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

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

Lösningar för tenta 2 DAT043,

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

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

Föreläsning REPETITION & EXTENTA

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Typkonvertering. Java versus C

Tentamen i Objektorienterad programmering

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

List.java. List.java. Printed by Tom Smedsaas

Objektorienterad programmering D2

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

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.

Lösningsförslag, tentamen FYTA11 Javaprogrammering

DAT043 Objektorienterad Programmering

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 2 och MN Skrivtid: Inga hjälpmedel.

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer

Föreläsning 2, vecka 8: Repetition

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Tentamen. Grundläggande programmering i Java A 5p, DTAA

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

Transkript:

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 godkšnt) Bšrja varje uppgift pœ nytt papper. Skriv ditt namn och uppgiftens nummer pœ varje papper. Skriv bara pœ ena sidan av papperet. Sortera dina papper efter uppgiftsnummer. Kryssa fšr de uppgifter du lšmnar in. Lšsningarna skall vara snyggt och prydligt nedskrivna. TankegŒngen skall vara lštt att fšlja. Alla antaganden som inte Šr uppenbara skall redovisas. Javakod kršvs dšr implementation uttryckligen anges. Tips! Fšrsšk pœ alla uppgifter! Uppgifter kan vara felformulerade, frœga om du Šr osšker eller tycker att nœgot verkar konstigt. Redovisa dina resonemang sœ Šr det lšttare att bortse frœn skrivfel. Det Šr viktigt att du lšser den givna uppgiften! Lycka till! UME UNIVERSITETÊ901Ê87ÊÊUME ÊÊÊTel.:Ê090-786 77 08ÊÊÊFax: 090-786Ê61Ê26ÊÊÊe-mail:Êmarie@cs.umu.se

Uppgift 1 (5 pošng) Vad skrivs ut nšr fšljande program kšrs? Ange samtliga utskrifter. public class U1 public static void main(string args[]) int a1 = 6; int a2 = 9; Num a3 = new Num(7); Num a4 = new Num(1); Num a5 = new Num(10); skrivut("före anropet"); skrivut("aktuell parameter 1 = " + a1); skrivut("aktuell parameter 2 = " + a2); skrivut("aktuell parameter 3 = " + a3.value); skrivut("aktuell parameter 4 = " + a4.value); skrivut("aktuell parameter 5 = " + a5.value); skrivut(""); metodanrop(a1,a2,a3,a4,a5); skrivut("efter anropet"); skrivut("aktuell parameter 1 = " + a1); skrivut("aktuell parameter 2 = " + a2); skrivut("aktuell parameter 3 = " + a3.value); skrivut("aktuell parameter 4 = " + a4.value); skrivut("aktuell parameter 5 = " + a5.value); skrivut(""); }//main public static void metodanrop(int f1,int f2,num f3,num f4,num f5) skrivut("före ändringen i metoden"); skrivut("formell parameter 1 = " + f1); skrivut("formell parameter 2 = " + f2); skrivut("formell parameter 3 = " + f3.value); skrivut("formell parameter 4 = " + f4.value); skrivut("formell parameter 5 = " + f5.value); skrivut(""); f2 = 5; f4.value = 8; f5 = new Num(20); skrivut("efter ändringen i metoden"); skrivut("formell parameter 1 = " + f1); skrivut("formell parameter 2 = " + f2); skrivut("formell parameter 3 = " + f3.value); skrivut("formell parameter 4 = " + f4.value); skrivut("formell parameter 5 = " + f5.value); skrivut(""); }//metodanrop OBS! ForsŠttning pœ nšsta sida 2(7)

public static void skrivut(string s) System.out.println(s); }//skrivut }//U1 public class Num public int value; public Num (int v) value = v; } }//Num Uppgift 2 (2+2+1+1=6 pošng) Vad innebšr fšljade begrepp i Java-koden : a) extends b) implements c) overloading d) omdefiniering Uppgift 3 (3.5+3.5=7 pošng) 1) int primtal = 3,5,7,11,13}; 2) float tider[] = 11.47,12.04,11.72,13.88}; 3) int[] resultat = int [30]; 4) int[] valorer = new 1,5,10,20,50,100,500,1000}; 5) int[] dagar = new int [7]; 6) char betyg[] = 'U','3','4','5'}; 7) char[] betyg = new char[]; a) Vilka av ovanstœende Šr giltiga deklarationer/satser? b) Fšrklara fšr varje enskild deklaration varfšr/varfšr inte ett fšlt instantieras. Uppgift 4 (6 pošng) I Java styrs tillgšngligheten fšr metoder och variabler med hjšlp av modifierare. Beskriv hur bœde arv och tillgšnglighet (grad av inkapsling) fšr metoder och variabler pœverkas av var och en av modifierarna public, protected och private. 3(7)

Uppgift 5 (2+4+2=8 pošng) De inledande Fibonaccitalen Šr 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, É Ett enskilt Fibonaccital definieras som summan av de tvœ nšrmast fšregœende Fibonaccitalen i sekvensen F n = F n-1 + F n-2 fšr alla n 2. Detta kan formellt formuleras pœ fšljande sštt : fib (n) = 0 n = 0 1 n = 1 fib( n 1) + fib( n 2) n > 1 a) Implementera en rekursiv metod som returnerar fib(n), dšr n ges som parameter. b) Implementera fib(n) med en iterativ metod. c) Beskriv fšr- och nackdelarna med en rekursiv metod jšmfšrt med en iterativ. Uppgift 6 (8 pošng) Du fœr uppdraget att sœ smœningom utveckla en applikation som konverterar mellan olika valutor. Beloppet kan matas in i ett fšnster och valutorna všljs frœn en lista. Om man matar in ett nytt belopp och avslutar med 'return' sœ visas omrškningen. Applikationen skall se ut ungefšr sœ hšr : Redogšr utfšrligt fšr vilka objekt du behšver fšr att generera en applikation med ovanstœende utseende. Du fœr sjšlv všlja pœ vilket sštt du vill presentera din lšsningsidž. Tips : utnyttja olika layoutmanagers fšr de olika "omrœdena" i ditt GUI. 4(7)

Uppgift 7 (6 pošng) Beskriv skillnaden mellan en abstrakt klass och ett interface i Java. Hur skiljer sig dessa frœn en "vanlig" klass? Uppgift 8 (6 pošng) Du ska implementera en allmšn sškmetod som ska genomsška en sorterad lista av typ Searchable. interface Searchable //Returnera objektet i position index Object valueat(int index); //Returnera listans längd int length(); //Returnera true om item1 = item2 boolean equal (Object item1, Object item2); //Returnera true om item1 > item2 boolean biggerthan(object item1, Object item2); }// interface Searchable Du kan utgœ ifrœn att listan Šr sorterad i stigande ordning, dvs. det "minsta" všrdet fšrst. AnvŠnd binšrsškning! 5(7)

Uppgift 9 ( 8 pošng) Antag att vi har klassen Lista enligt fšljande (bara metodernas huvuden visas) : // Lista av heltal public Class Lista private int[] listan; // Skapa en tom lista med upp till antal element public Lista ( int antal ) // Returnera antalet element public int antalel ( ) // Returnera listans maximala storlek public int maxel ( ) // Returnera true om elementet finns i listan, false annars public boolean elfinns ( int element ) // Sorterar in elementet i listan(i stigande ordning) public void insortel ( int element) // Ta bort elementet i listan, i position index public void tabortel ( int element, int index ) }// Lista Designa och implementera med hjšlp av klassen Lista en applikation som lšser in, beršknar och skriver ut medelvšrdet och medianvšrdet i en heltalslista. MedianvŠrdet Šr det "mittersta" všrdet nšr všrdena Šr ordnade efter storlek. T.ex. [-3-1 1 9 27] har medianvšrdet 1 (bland 5 všrden Šr det tredje det mittersta). Om antalet všrden Šr jšmnt kan man definiera medianen som medelvšrdet av de tvœ mittersta. Om du vill fœr du anvšnda den frœn labpassen kšnda klassen In fšr inlšsningen, se bilaga 1. 6(7)

Bilaga 1 import java.io.*; import java.util.stringtokenizer; public class In static StringTokenizer reader; static BufferedReader stdin; In() reader = null; }// konstruktor public static String readline() throws IOException BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); return stdin.readline(); }// readline public static String readword() throws IOException if (reader == null) reader = new StringTokenizer(readLine()); if (reader.counttokens() == 0) while (reader.counttokens() == 0) reader = new StringTokenizer(readLine()); } } return reader.nexttoken(); }// readword public static int readint() throws IOException return Integer.parseInt(readWord()); }// readint public static float readfloat() throws IOException, NumberFormatException return Float.valueOf(readWord()).floatValue(); }// readfloat }// In 7(7)