UMEÅ UNIVERSITET
Datavetenskap
001209
TENTAMEN
PROGRAMMERINGSMETODIK
JAVA, 4P
Datum
Tid
Hjälpmedel
Antal uppgifter
Totalpoäng
•
•
•
•
:
:
:
:
:
001209
9 - 15
Inga
8
40 (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! Observera att uppgifterna inte nödvändigtvis är ordnade
efter svårighetsgrad.
• 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.
• Om du inte kommer ihåg den exakta syntaxen, så gör ett antagande och redovisa
detta.
• Det är viktigt att du löser den givna uppgiften!
Lycka till!
UMEÅ UNIVERSITET 901 87 UMEÅ
Tel.: 070-2378695 e-mail: [email protected]
TENTAMEN I PROGRAMMERINGSMETODIK
JAVA
001209
Uppgift 1(5 poäng)
Hitta de fel som finns i nedanstående klass. Beskriv för varje fel vad som är fel samt ge ett
förslag på vad man skulle kunna göra för att åtgärda det. Radnummren är bara till för att
ni skall ha något att hänvisa till och räknas ej som ett fel. Observera också att antal poäng
inte har något (direkt iallafall) med antal fel att göra.
1. public class mångaFel extends Object
2. {
3.
final int enIdentifierare=0;
4.
int hej=1;
5.
void enMetod()
6.
{
7.
hej=2;
8.
}
9.
10.
int enMetod()
11.
{
12.
private int enLokalVariabel=1;
13.
enIdentifierare++;
14.
return enLokalVariabel/2;
15.
}
16.
17.
public Object enAnnanMetod(int värden[]) throw IOException
18.
{
19.
float hej=1.0;
20.
if (hej/2==0.5)
21.
throws(new IOException("Ooops"));
22.
return värden;
23.
}
24.
25.
public void enTredjeMetod(int värden[])
26.
{
27.
int enLokalVariabel =0;
28.
for (int i=0;i<värden.length;i++)
29.
enLokalVariabel +=värden[i];
30.
return enLokalVariabel;
31.
}
32. }
Uppgift 2(4 poäng)
Skriv en metod boolean[] isPrim(int[] list) som kontrollerar om talen i list är
primtal (endast delbara med sig själv och 1) om så är fallet skall motsvarande position i
det fält som returneras sättas till true; annars false.
Uppgift 3 (2+2=4 poäng)
a) Java-program skall gå att köra på olika datorer och under olika operativsystem utan
att behöva kompileras om. Hur åstadkoms detta ?
2(4)
TENTAMEN I PROGRAMMERINGSMETODIK
JAVA
001209
b) Java har ej multipelt arv. Hur har man valt att lösa detta istället i Java.
Uppgift 4(3 poäng)
Vad är en applet och en applikation? Ange skillnader och likheter.
Uppgift 5 (3 poäng)
Ge exempel på minst två stycken olika Layout managers och förklara hur de placerar ut
komponenterna.
Uppgift 6 (6 poäng)
Förklara följande begrepp:
a) Arv
b) Interface
c) Klass
d) Undantag (Exception)
e) Abstrakt klass
f) Paket (I Java)
Uppgift 7(4 poäng)
Vad skrivs ut då man kör klassen Child nedan? Förklara också varför just detta skrivs ut.
public class Parent
{
private String attrib;
public Parent(String arg)
{
attrib=arg;
}
void printMessage()
{
System.out.println("Den här tentan är för lätt för "
+attrib);
}
}
public class Child extends Parent
{
public Child(String arg)
{
super(arg);
}
3(4)
TENTAMEN I PROGRAMMERINGSMETODIK
JAVA
001209
public static void main(String args[])
{
Parent hej=new Child("hej");
Parent dej=new Parent("dej");
hej.printMessage();
dej.printMessage();
}
void printMessage()
{
super.printMessage();
System.out.println("! Hur går det");
}
}
Uppgift 8 (12 poäng)
I denna uppgift så ska du implementera en klass som skall reprecentera en börs. Denna
skall kunna innehålla pengar, så vi måste också implementera klasser för att hantera
dessa.
Krav på börsen: Skall kunna innehålla max 20 st sedlar och max 20 st mynt. Man skall
kunna lägga till och ta bort pengar ur den.
Krav på pengarna: Det skall finnas fyra stycken valörer 100,20,5,1kr. 100 och 20 kronors
pengarna skall vara sedlar och 5 och 1 kronors pengarna skall vara mynt.
Fundera ut en lämplig klasshierarki för att representera pengarna och börsen (vilka
klasser behövs och vilka metoder kan tänkas behövas i dessa). Implementera sedan din
lösning. För full poäng så krävs att ni har gjort en vettig klassuppdelning utifrån de
principer som vi gått igenom på kursen. Samt att ni konstruerat era klasser (metoder osv.)
på ett sådant sätt så att de blir lätta att använda (om man skulle vilja använda denna
virtuella börs med tillhörande virtuella metoder till något). Ni skall också skriva ett litet
testprogram som skapar en börs och lite pengar och använder metoderna som ni skrivit.
Dokumentera er lösning noggrant.
4(4)