Klausur: Java (Liste P)

Ähnliche Dokumente
Einstieg in die Informatik mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Programmieren 2 Java Überblick

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

Einführung in die Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Prof. Dr. Uwe Schmidt. 21.August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (BInf 211, BTInf 211, BMInf 211, BWInf 211)

3 Objektorientierte Konzepte in Java

Schnittstellen, Stack und Queue

Java-Schulung Grundlagen

Große Übung Praktische Informatik 1

Programmieren in Java

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

Gebundene Typparameter

System.out.println("TEXT");

Java Einführung Abstrakte Klassen und Interfaces

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

1 Polymorphie (Vielgestaltigkeit)

Musterlösung Stand: 5. Februar 2009

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte)

Kapitel 6. Vererbung

Richard Bubel & Martin Hentschel

Klausur Grundlagen der Programmierung

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

3 Objektorientierte Konzepte in Java

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

Java - Programmierung - Objektorientierte Programmierung 1

Probeklausur: Programmierung WS04/05

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Probeklausur: Programmierung WS04/05

Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr.

Musterlösungen zur Klausur Informatik 3

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Programmierkurs Java

U08 Entwurfsmuster (II)

Handbuch für die Erweiterbarkeit

Kapitel 6. Vererbung

public class SternchenRechteckGefuellt {

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Aufgabe 1: Quer durch Java (5 Punkte) Bearbeiten Sie die folgenden Aufgaben:

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor

1 Abstrakte Klassen, finale Klassen und Interfaces

Kapitel 6. Vererbung

Objektorientierte Programmierung

Grundlagen der Objektorientierung

Objektorientierte Programmierung

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

6. Globalübung (zu Übungsblatt 8)

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Javakurs zu Informatik I. Henning Heitkötter

Java: Vererbung. Teil 3: super()

Programmieren I + II Regeln der Code-Formatierung

Dr. Monika Meiler. Inhalt

Höhere Programmierkonzepte Testklausur

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

II.3.1 Rekursive Algorithmen - 1 -

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Übungsblatt 3: Algorithmen in Java & Grammatiken

5 Grundlagen der Java-Syntax

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr

Info B VL 8: Abstrakte Klassen & Interfaces

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Java Schulung (Java 2 Java Development Kit 5 / 6)

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Objektorientierte Programmierung. Kapitel 12: Interfaces

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Variablen manipulieren per JDI

Mobile und Verteilte Datenbanken

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Java für Computerlinguisten

Algorithmen und Datenstrukturen 07

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Selbsteinstufungstest Vorkurs Programmieren

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Mobile und Verteilte Datenbanken

1. Der Einstieg in Java. Was heißt Programmieren?

Algorithmen und Datenstrukturen

Theorie zu Übung 8 Implementierung in Java

Wiederholung zur Vorlesung Programmieren

Transkript:

Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis und den Studentenausweis auf den Tisch. Bearbeitungszeit: 90 Minuten Unterschrift Benotung Aufgabe: 1 2 3 4 5/6 Gesamt Note Punkte: 20 20 20 20 20 100 erreicht: (Seite 1)

Aufgabe 1 ( Punkte) (Java Syntax und Semantik) Die folgenden Javaprogramme enthalten Fehler. Beschreiben Sie die Fehler und korrigieren Sie sie: 1a) class Aufgabe2a { 2 String s = "hallo"; 3 static public void main(string [] args){ 4 System.out.println(s); 5 } 6 } b) 1 class Aufgabe2b { 2 private static final String name = "Shakespeare"; 3 public static void main(string [] args) throws Exception{ 4 name.toupperstring(); 5 name="william "+name; 6 System.out.println(name); 7 } 8 } 1c) class Aufgabe2c { 2 private static String name = "Shakespeare"; 3 public static void main(string [] args){ 4 System.out.println(name.charAt(3)=="l"); 5 name=n.length(); 6 System.out.println(name.charAt(3)=="l"); 7 } 8 } d) 1 class Aufgabe2d{ 2 String name ; 3 int i = 0, 4 5 Aufgabe2d(String name){this.name=name;} 6 7 String getname() { 8 if (null==name) throw new Exception("null value in name"); 9 else { 10 name = name+i; 11 return name; 12 } 13 } 14 } 1e) 2 interface Descriptable { 3 abstract String getdescription(); 4 } (Seite 2)

5 6 class Aufgabe2e implements Descriptable { 7 String getdescription(){return "Aufgabe2e";} 8 public static void main(string [] args){ 9 System.out.println(new Aufgabe2e().getDescription()); 10 } 11 } 1f) class Aufgabe2f extends Object{ 2 int sum(int x) { 3 if (x==0) return 1; 4 else x=x+sum(x-1); 5 } 6 } (Seite 3)

Aufgabe 2 ( Punkte) (Modellieren und Schreiben von Klassen) a) Modellieren Sie Klassen für die Beschreibung von Webseiten. Eine Webseite habe eine Liste von Links. Ein Link sei dabei ein Objekt, das zwei Zeichenketten enthält: einmal die Zieladresse (URL) und einmal eine Beschreibung des Links. Implementieren Sie die benötigten Klasse in Java. b) Ergänzen Sie Ihre Klasse um eine Methode public String getdescription(string url);, die zu einer Zieladresse die gespeicherte Beschreibung zurück gibt. c) Welches allgemeine Konzept realisiert ihre Klasse aus Aufgabe b). d) Fügen Sie Ihrer obigen Klasse zur Darstellung von Linkseiten eine Methode hinzu, die es erlaubt neue Links in die Seite einzufügen: public void addlink(string url,string description); e) Fügen Sie Ihrer Klasse zur Darstellung von Linkseiten eine Methode zur Erzeugung eines HTML- Strings hinzu. Für das Webseitenobjekt soll ein String erzeugt werden, der in HTML die Seite mit allen in der Liste enthaltenen Links darstellt. public String tohtml(); (Seite 4)

(Seite 5)

Aufgabe 3 ( Punkte) (einfach verkettete Listen) Gegeben sei die folgende abstrakte Klasse für Listen, gemäß unserer Spezifikation aus der Vorlesung. Listenelemente sind Strings: 1 abstract class AbList{ 2 abstract public AbList empty(); 3 abstract public AbList cons(string x, AbList xs); 4 abstract public boolean isempty(); 5 abstract public String head(); 6 abstract public AbList tail(); 7 } Schreiben Sie für die Klasse folgende Methoden, die ihr hinzugefügt werden können: a) boolean containsignorecase(string o ): ist genau dann wahr, wenn das Argument o unter Vernachlässigung der Groß- und Kleinschreibung in der Liste enthalten ist. Beispiel: ("frinds","romans","contrymen").containsignorecase("friends") ergibt: true. b) int maxstringlength(int currentmaxlength) berechnet die Länge des längsten Strings, der in der Liste gespeichert ist. Das Argument currentmaxlength soll dabei eine bisher schon gefundene Länge mit angeben. Beispiel: ("friends","romans","countrymen").maxstringlength(0) ergibt: 10. c) Implementieren Sie für die Klasse AbList die Methode: boolean thisislonger(ablist other): das Ergebnis sei genau dann wahr, wenn die Liste länger ist, als die Argumentliste. Eine Methode length auf Listen steht Ihnen dabei nicht zur Verfügung. Beispiel: ("a","b","c").thisislonger(("a","b","c","d")) ergibt: false. (Seite 6)

(Seite 7)

Aufgabe 4 ( Punkte) (GUI Programmierung) a) Schreiben Sie eine GUI-Komponente AutomaticCounter, die eine Zahl anzeigt, die jede Sekunde um eins erhöht wird. b) Ergänzen Sie Ihre GUI-Komponente AutomaticCounter um einen Knopf. Durch Drücken des Knopfes soll die angezeigte Zahl wieder auf 0 zurückgesetzt werden. (Seite 8)

Aufgabe 5 ( Punkte) (generische Typen) Benutzen Sie in dieser Aufgabe das generische Typsystem von Java 5: a) Schreiben Sie eine generische Schnittstelle Function die einstellige Funktionen darstellt. Die Schnittstelle soll eine einstellige Methode mit Namen apply enthalten. b) Implementieren Sie den Typ Function<String,Integer>, so daß die Methode apply die Länge eines Stringparameters zurückgibt. c) Schreiben Sie eine statische Methode map, mit zwei Parametern: einem Objekt der Klasse Function einem Objekt der Standardschnittstelle java.util.list. Das Ergebnis von map soll eine neue Liste sein, die ensteht, wenn man das Funktionsobjekt auf jedes Element des Listenparameters anwendet. Achtung: Wiederholer, die bereits bei Herrn Dreher im WS04/05 die Klausur geschrieben haben, können alternativ die Aufgabe 6 lösen. (Seite 9)

Aufgabe 6 ( Punkte) (Threads und Simulation) Achtung nur für Studenten, die bereits bei Herrn Dreher die Klausur geschrieben haben. Alternativ zu Aufgabe 5 Erstellen Sie eine Anwendung zur Simulation einer Ampel. Die Ampel hat eine Warteschlange. Die Ampel steht jweils 45Sekunden auf grün und 45 Sekunden auf rot. Während der Grünphase kann alle zwei Sekunden ein Auto die Ampel passieren. Der zeitliche Abstand zwischen zwei Fahrzeugen die auf die Ampel zufahren liegt zwischen 2 und 16 Sekunden. (Seite 10)

(Seite 11)