Programmieren in Java -Eingangstest-

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

Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Programmierkurs Java

Java Einführung Abstrakte Klassen und Interfaces

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Programmiermethodik 1. Klausur

Algorithmen und Datenstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Programmiermethodik 3. Klausur Lösung

Tag 8 Repetitorium Informatik (Java)

II.4.2 Abstrakte Klassen und Interfaces - 1 -

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Pakete Software Entwicklung 1

Modularisierung in Java: Pakete Software Entwicklung 1

Programmierkurs Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Programmieren in Java

Programmieren in Java

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Klausur: Java (Liste P)

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

EINFÜHRUNG IN DIE PROGRAMMIERUNG

JAVA für Nichtinformatiker - Probeklausur -

Aufgabe 1 (Programmanalyse, Punkte)

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Objektorientierte Programmierung Studiengang Medieninformatik

Einstieg in die Informatik mit Java

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Objektorientierte Programmierung. Kapitel 14: Interfaces

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Martin Unold INFORMATIK. Geoinformatik und Vermessung

3 Objektorientierte Konzepte in Java

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

EINFÜHRUNG IN DIE PROGRAMMIERUNG

12 Abstrakte Klassen, finale Klassen und Interfaces

Einstieg in die Informatik mit Java

Java für Bauingenieure

Einstieg in die Informatik mit Java

Einführung in die Informatik 1

Programmieren in Java

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

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

Einführung in die Informatik 1

Klausur Software-Entwicklung September 00

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

3 Objektorientierte Konzepte in Java

Probeklausur: Programmierung WS04/05

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Repetitorium Informatik (Java)

Handbuch für die Erweiterbarkeit

Info B VL 8: Abstrakte Klassen & Interfaces

Vererbung, Polymorphie

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Einstieg in die Informatik mit Java

Programmierkurs C++ Abstrakte Klassen und Methoden

AuD-Tafelübung T-B5b

Einstieg in die Informatik mit Java

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Tafelübung 07 Algorithmen und Datenstrukturen

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

II.4.5 Generische Datentypen - 1 -

Probeklausur Informatik 2 Sommersemester 2013

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Theorie zu Übung 8 Implementierung in Java

Grundlagen der Informatik 0

Einführung in das Programmieren Probeklausur Lösungen

Allgemeine Informatik II SS :30-13:30 Uhr

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Kapitel 5: Interfaces

Klausur Grundlagen der Programmierung

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

Objektorientiertes Programmieren (Java)

Tag 4 Repetitorium Informatik (Java)

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Programmieren 2 Java Überblick

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

ALP II Dynamische Datenmengen Datenabstraktion

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Organisatorisches. Ersatztermine UE: - Gruppe 1: Di, , 18:00-19:30 - Gruppe 2: Mi, , 18:00-19:30. VO am

Die Klasse Vertiefung

Kapitel 6. Vererbung

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Objekt-orientierte Programmierung

Java-Schulung Grundlagen

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

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

Transkript:

Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit Weiß ich nicht beantworten. Bitte raten Sie nicht! Dieser Test dient nur zur Einschätzung, was Sie schon können und wird nicht in Ihre Bewertung einfließen. 1 Selbsteinschätzung 1. Wie gut können Sie programmieren: Gar nicht Anfänger Mittelmäßig Gut Experte 2. Wie lange programmieren Sie schon: Jahre 3. Welche Programmiersprachen können Sie (Mehrfachnennungen möglich)? Gar keine Java/C# Haskell/Scheme/Lisp/OCaml/F# Python/Ruby/Php JavaScript C/C++ Andere 4. Wo haben Sie hauptsächlich Programmieren gelernt? Noch gar nicht Studium Schule Selbststudium Beruf Sonstiges 5. Was war Ihr bislang größtes Programm, das Sie geschrieben haben (ca. Anzahl Zeilen) und in welcher Programmiersprache? 6. Ihre bisherigen Noten (nb für nicht bestanden, nt für nicht teilgenommen )? Einführung in die Informatik: Informatik 2 (Algorithmen und Datenstrukturen): 1

2 Java Syntax und Semantik In den nun folgenden Fragen geht es ausschließlich um Java! 1. Welches sind Schlüsselwörter in Java? static public method import function return friend volatile implements try 2. Was ist der Unterschied zwischen int und Integer? Ein Integer kann größere Zahlen als ein int speichern Ein int ist ein nativer Typ, ein Integer eine Klasse Integer ist ein Spezialfall von int und erlaubt z.b. schnellere Schleifen 3. Erzeugen Sie ein Array myarray das Zahlen (int) aufnimmt und füllen Sie es mit den Zahlen 1,2 und 3. int [ ] myarray = new int [ ] { 1, 2, 3 ; oder int [ ] myarray = new int [ 3 ] ; for ( int i = 0 ; i < 3 ; i ++) { myarray [ i ] = i +1; 4. Sie haben wie folgt ein Array erzeugt und möchten dies um ein Element verlängern: public void bar ( ) { int [ ] myarray = new int [ 1 0 ] ; Kompiliert nicht. myarray[] = 1; Geht nicht, die Arraysgröße ist nach Erstellung nicht mehr veränderbar. myarray += 1; myarray.add(1); 5. Was wird ausgegeben? i f ( 0 ) { System. out. p r i n t l n ( Not equal ) ; else { System. out. p r i n t l n ( Equal ) ; Kompiliert nicht. Not equal Equal Page 2

6. Initialisierungsreihenfolge class MyWonderfulClass { int x = 1 0 ; boolean f l a g = x > 2 0 ; MyWonderfulClass ( ) { x = 999; Welchen Wert hat new MyWonderfulClass().flag? Kompiliert nicht. false true 7. Was wird ausgegeben wenn die Methode foo (); aufgerufen wird? class A { private static boolean b ; void static foo ( ) { i f ( b ) { System. out. p r i n t l n ( true ) ; else { System. out. p r i n t l n ( f a l s e ) ; Kompiliert nicht. true false Zufällig, da b nicht initialisiert wurde. 8. Welche Variante(n) kompilieren nicht? class A { public abstract void bar(); 9. Was passiert? class abstract A { public abstract void bar(); class abstract A { public void bar() { Alle obigen Varianten kompilieren class A { private void foo ( ) { /... / public static void bar ( ) { foo ( ) ; Page 3

Kompiliert und die Methode foo wird in bar aufgerufen. Kompiliert nicht da die Methode foo nicht aufgerufen werden kann, weil sie nicht static ist. Kompiliert nicht, weil die Klasse auch das Attribut static haben muss wenn eine ihrer Methoden static ist. 10. Betrachten Sie folgendes Codefragment aus einem compilierendem Programm. 1 ObjA a1 = new ObjA ( ) ; 2 a1. x = 5 ; 3 ObjA a2 = a1 ; 4 a2. x = 6 ; 5 i f ( ) { System. out. p r i n l n ( true ) ; else { System. out. p r i n t l n ( f a l s e ) ; Was ist die Ausgabe, wenn folgende Ausdrücke für eingesetzt werden? true false kommt darauf an weiß nicht a1.x == 6 a1.x == 5 a1 == a2 a1.equals(a2) ( ) 11. Was gilt? import java. u t i l. Date ; import erlaubt abkürzende Schreibweisen. Ohne import muss man java.util.date schreiben, mit import kann man einfach nur Date schreiben. Import kopiert die entsprechende Klasse in die aktuelle Datei (vgl. C/C++ include) damit man sie einfacher verwenden kann. 12. Es gibt zwei Methoden Strings zu vergleichen. Markieren Sie die Richtige! mystring == abc mystring.equals( abc ) 13. Was wird ausgegeben wenn new B().foo(1); aufgerufen wird? class A { void foo ( int x ) { System. out. p r i n t l n ( A. foo ) ; class B extends A { void foo ( double x ) { A.foo Nichts 14. Vervollständigen Sie die Klasse ForrestGump sodass sie die folgende Schnittstelle implementiert! interface Run { public void run ( ) ; Page 4

public c l a s s ForrestGump implements Run { public void run ( ) { System. out. p r i n t l n ( running... ) ; 15. Mit welcher Deklaration erzwingen Sie die Implementierung der Methode foo in einer nicht-abstrakten Subklasse? public void foo(); static void foo(); public native void foo(); abstract public void foo(); protected void foo(); 16. Sie möchten, dass Subklassen in beliebigen Paketen Zugriff auf eine Superklasse haben. Welches ist das restriktivste Attribut welches dieses Ziel erfüllt? public protected transient native private Das ist nicht möglich 3 Programmierkenntnisse 1. Was ist die geeignetste Datenstruktur um das folgende Problem zu lösen? Sie wollen einen Druckauftragsverteiler implementieren, der folgendes tut: Wenn ein neuer Druckauftrag kommt, dann wird er gedruckt, wenn er der erste ist. Werden gerade andere Druckaufträge gedruckt, dann muss er warten, bis alle früheren fertig sind. Schlange (queue) Stapel (stack) Liste (list) Baum (tree) 2. Sie wollen ein Biologiesystem nachbauen. Dabei wollen Sie Pflanzen, Bäume, Tannenbäume, Blumen und Rosen modellieren. Was für eine Implementierungsstrategie verwenden Sie? Ich verwende eine Konstante für jeden Typ (z.b. Pflanze=1, Baum=2,... ) Ich verwende eine Klasse Bioelement die ein Feld Typ hat, welches mit dem jeweiligen Type gefüllt wird, z.b. Typ= Pflanze oder Typ= Rose Ich verwende Baum extends Pflanze etc. 3. Schreiben Sie eine Methode die 4 Integer Zahlen als Parameter nimmt und den Durchschnitt der Zahlen zurückgibt (Klasse ist nicht notwendig)! Page 5

double avg ( int i1, int i2, int i3, int i 4 ) { return ( ( double ) i 1 + i 2 + i 3 + i 4 ) / 4 ; 4. Dynamischer vs. statischer Typ A a = new A( ) ; B b = new B ( ) ; B x = new A( ) ; Geben Sie den statischen und dynamischen Typ für a,b und x an! Dyn. Typ A B a b x Stat. Typ A B a b x 5. Sie haben eine veränderbare Liste (implements List<T>) von Zahlen und wollen diese jeweils um eins erhöhen. Was tun Sie? map (+1) list; for ( int element : l i s t ) { element += 1 ; f o r ( i n t i =0; i < l i s t. l e n g t h ( ) ; i ++) { l i s t. s e t ( i, l i s t. g e t ( i ) + 1 ) ; 4 Objektorientierte Konzepte 1. Ordnen sie den folgenden Codefragmenten eine Erklärung zu, die Ihnen passend erscheint: interface A {... interface B { void baction ( ) ; class C implements B { private A a ; public C (A a ) { this. a = a ; void baction ( ) {... Die Schnittstelle A soll in eine Schnittstelle B mittels der Hilfsklasse C übersetzt werden. Es soll verhindert werden, dass mehrere Instanzen von C erzeugt werden können. Der interne Zustand der Klasse C soll durch die Schnittstellen A und B repräsentiert werden. Funktionalität von C Objekten soll erweitert werden. 2. Sie haben folgendes Codefragment: Page 6

class Rectangle { int width, h e i g h t ; class Table { Rectangle t a b l e P l a t e ; Sie möchten dem Tisch eine Methode platearea, welche die Oberfläche des Tisches berechnet, hinzufügen. Was machen Sie? Table bekommt eine Methode int area() { return tableplate.width tableplate.height; Rectangle bekommt eine Methode int area() { return width height; Rectangle bekommt eine Methode int area() { return width height; und Table bekommt eine Methode int area() { return tableplate. area (); 3. Geben Sie eine Klasse Pair an, die Paare von Werten speichern kann. Die Klasse Pair soll generisch sein! public class Pair<X, Y> { private f i n a l X x ; private f i n a l Y y ; public Pair (X x, Y y ) { this. x = x ; this. y = y ; public X f s t ( ) { return x ; public Y snd ( ) { return y ; Page 7