PDF Archive

Easily share your PDF documents with your contacts, on the Web and Social Networks.

Share a file Manage my documents Convert Recover PDF Search Help Contact



öbungsklausur (Probeklausur) .pdf



Original filename: öbungsklausur_(Probeklausur).pdf
Author: Oliver Ullrich

This PDF 1.4 document has been generated by Writer / OpenOffice.org 3.2, and has been sent on pdf-archive.com on 26/03/2011 at 21:30, from IP address 89.0.x.x. The current document download page has been viewed 2010 times.
File size: 281 KB (4 pages).
Privacy: public file




Download original PDF file









Document preview


Pohligstr. 1
D-50969 Köln
Tel.: +49-221-470-5307
molina@informatik.uni-koeln.de

Universität zu Köln
Institut für Informatik
Manuel Molina Madrid

Übung zum Programmierkurs WS2010/2011
Probeklausur
Diese Übungsklausur soll Ihnen helfen, sich auf die Aufgabentypen der Klausur vorzubereiten und Ihren
Kenntnisstand gut einzuschätzen. Als Bearbeitungszeit sind 60 Minuten vorgesehen. Die Punkte, die Sie für
die jeweilige Aufgabe bekommen hätten, stehen in Klammern. Wundern Sie sich nicht, wenn Sie beim ersten
Versuch mehr Zeit brauchen. Sie haben noch nicht auf Klausur gelernt und brauchen daher noch etwas
Routine. Da Sie die Klausuraufgaben mit Stift und Papier lösen werden, sollten Sie das auch bei der
Übungsklausur machen. Um zügig auf Papier „programmieren“ zu können, braucht es etwas Übung. Eine
Verwandtschaft der „ernsten“ Klausur zur Übungsklausur wird deutlich feststellbar sein.

Einleitung
Endlich! Ihr Studium ist beendet und Sie stürzen sich voller Enthusiasmus in die Arbeitswelt.
Aufgrund von mangelnden Arbeitsplätzen nehmen Sie den ersten Job als Programmierer an, den Sie
bekommen. Dieser ist bei einer Kooperative auf der Inselrepublik Javanien, die Landwirtschaft und
Tierhaltung betreibt.
Aufgabe 1: Das Einstellungsgespräch: Fragen zu Java, Programmablauf (15 Punkte)
An Ihrem ersten Arbeitstag werden Sie zum Chef der Kooperative, Herrn Namuel Lomina, gebeten.
Er betrachtet Sie von seinem Schreibtisch aus mit einem gewissen Misstrauen und stellt Ihnen ein
paar Fragen, um Ihre Kompetenz in der Programmiersprache Java zu testen. Oje, jetzt nur nichts
falsch machen!
Beantworten Sie kurz die folgenden Fragen:
a) Sie möchten eine Integervariable a mit dem Wert 1 initialisieren. Wie geht das?
b) Wie können Sie in einem Java-Programm die höchste darstellbare int-Zahl ermitteln?
c) Wie initialisiert man ein eindimensionales Integer-Array mit den Werten 1, 2, 3, 4 und 5?
d) Die main()-Methode hat in Java-Programmen einen Sonderstatus. Welchen?
e) Wozu dient ein Konstruktur?
f) Warum wird die Verwendung von Gettern und Settern empfohlen?
g) Wie vergleicht man die Inhalte zweier Strings strA und strB miteinander?
h) Was passiert, wenn der Wertebereich bei einem Datentypen für ganze Zahlen überschritten
wird?
i) Was ist eine ArrayIndexOutOfBounds-Exception?

j) Im Anschluss finden Sie einen Quellcode-Abschnitt.
1. Spielen Sie den Programmabschnitt mit der Arraybelegung int[] a={1, 3, 0, 2, -1, 4}
durch. Wie lauten die Werte für x, y, und z am Ende der Berechnung?
2. Was für Werte werden allgemein in den Variablen x, y und z berechnet?
1
2
3
4
5
6
7
8
9
10

int x = 0, y = 0;
double z = 0.0;
for(int i=0; i<a.length; i++) {
if(x<a[i]) x = a[i];
if(y>a[i]) y = a[i];
z += a[i];
}
z = z / a.length;

Aufgabe 2: Der verliebte Kollege: Fehler korrigieren, Programmablauf (16 Punkte)
Einer Ihrer Kollegen hat unlängst seine große Liebe gefunden und ist bei der Programmierung nicht
bei der Sache. Er hat ein Programm (Huhn.java, Verwaltung.java, VerwaltungMain.java)
geschrieben, dass die Mengen der von genmanipulierten Atomhühnern gelegten Uraneier verwaltet,
bevor er sich in ein langes Wochenende mit seiner Angebeteten verabschiedet hat. Offenbar war er
aber ziemlich unkonzentriert und daher in dem hinterlassenen Programm einige Syntaxfehler
gemacht.
a) Listen Sie die Syntaxfehler auf (Tipp: Es sind 11), jeweils mit Programmzeile, einer kurzen
Beschreibung des Fehlers und einem Korrekturvorschlag.
b) Was berechnet die Funktion compute(int n)? Welchen Wert liefert compute(2) zurück?

Huhn.java
1 class Huhn {
2
public String name;
3
public int anzEier;
4
5
public Huhn Huhn(String name, int eier) {
6
this.name = name;
7
anzEier = eier;
8
}
9
10
public Huhn() {
11
that("<Unbekannt>", -1);
12
}
13 }

-2-

Pohligstr. 1
D-50969 Köln
Tel.: +49-221-470-5307
molina@informatik.uni-koeln.de

Universität zu Köln
Institut für Informatik
Manuel Molina Madrid

Verwaltung.java
1 import java.util.Vector;
2
3 public static class Verwaltung {
4
5
LinkedList<Huhn> huehner;
6
7
public Verwaltung(LinkedList<Huhn> huehner){
8
this.huehner = huehner;
9
}
10
11
public Huhn compute(int n) {
12
int[] groesser;
13
groesser = new int[huehner.length];
14
for (int i = 0; i < huehner.size; i++) {
15
for (int j = i + 1; j < huehner.size(); j++) {
16
if (huehner.get(i).anzEier > huehner.get(j).anzEier)
17
groesser[j]++;
18
else
19
groesser[i]++;
20
}
21
}
22
23
int index = 0;
24
while (groesser[index] != n)
25
index++
26
return huehner.getElement(index);
27
28 }

VerwaltungMain.java
1 import java.util.Vector;
2
3 public class VerwaltungMain {
4
5
public static void main(int[] args){
6
LinkedList<Huhn> huehner = new LinkedList<Huhn>();
7
8
huehner.add(new Huhn("Anneliese", 4));
9
huehner.add(new Huhn("Biggy", 7));
10
huehner.add(new Huhn("Charlene", 2));
11
huehner.add(new Huhn("Dominique", 8));
12
huehner.add(new Huhn("Elfi", 9));
13
huehner.add(new Huhn("Frederik", null));
14
huehner.add(new Huhn());
15
16
Verwaltung ahv = new Verwaltung(huehner);
17
System.out.println(ahv.compute(0).name);
18
}
19 }

Aufgabe 3: Die Landplage: Programm schreiben (12 Punkte)
Die Kartoffelernte ist von einem neuartigen Parasiten befallen, der Didi-Wuselwurm heisst. Er
ernährt sich von Kartoffelblättern und pflanzt sich sehr schnell fort. Das erste Wuselwurm-Paar
wanderte zum Zeitpunkt 0 ein und ist, wie alle anderen Wuselwürmer, für unsere Belange
unsterblich.
Jede Wuselwurm-Dame gebiert ab dem Alter von zwei Wochen jede Woche ein neues WuselwurmPärchen. Wissenschaftler haben festgestellt, dass das Wachstum der Population dem folgenden
Gesetz genügt:
ai = ai-1 + ai-2
a) Erklären Sie kurz den Unterschied zwischen Iteration und Rekursion.
b) Schreiben Sie eine rekursive Methode int compRecursive(int i) und eine iterative Methode
int compIterative(int i), die die Zahl der Wuselwurm-Pärchen zu einem gegebenen Zeitpunkt
i in Wochen berechnet.
Aufgabe 4: Der Okto: Programm schreiben (17 Punkte)
Die Kooperative will neue Märkte erschließen und sucht daher Abnehmer in der wenig bekannten
Volksrepublik Oktanien. Dort bezahlt man in Okto, einer Währung, in der Preise stets im
Oktalsystem angegeben werden.
Es wurden bereits von drei Abnehmern für drei Erzeugnisse Preise zugesichert, die in Matrix a und
Matrix b stehen:



5 7 1
a= 6 10 2
12 1 4





3 1 17
b= 2 10 6
6 7 4



Der Preis ist als Zeichenkette dargestellt, der eine ganze Zahl im Oktalsystem enthält. Deshalb
brauchen Sie für die Umrechnung folgende Klassenmethoden:
Integer.parseInt(String s, 8) Konvertiert einen übergebenen String s, der eine ganze Zahl im
Oktalsystem enthält, zu einem Integerwert.
Integer.toOctalString(int i)

Konvertiert den übergebenen Integerwert ins Oktalsystem und gibt ihn
als String zurück.

a) Schreiben Sie eine Methode String[][] addMatrices(String[][]a, String[][]b), die eine
Matrizenaddition durchführt und die Ergebnismatrix zurück gibt.
b) Schreibe Sie eine main()-Methode, die eine Definition der Matrizen a und b enthält, die
Matrizen als Parameterwerte an die addMatrices()-Methode übergibt und die Ergebnismatrix
formatiert auf den Bildschirm wie folgt ausgibt:
10 10 20
10 20 10
20 10 10
-4-


öbungsklausur_(Probeklausur).pdf - page 1/4
öbungsklausur_(Probeklausur).pdf - page 2/4
öbungsklausur_(Probeklausur).pdf - page 3/4
öbungsklausur_(Probeklausur).pdf - page 4/4

Related documents


obungsklausur probeklausur
aufgabe 18
methodenblatt
danke f r euren beistand
wst1 klausur
exam24 zertifizierung 98 364 fragenkatalog


Related keywords