Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung

Ähnliche Dokumente
Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Musterlösung Stand: 5. Februar 2009

Fakultät IV Elektrotechnik/Informatik

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018. Musterlösung

Probeklausur C/C++ Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur C/C++ Einführung in die Informatik. Wintersemester 2017/2018. Musterlösung

Fakultät IV Elektrotechnik/Informatik. Klausur Einführung in die Informatik I (Technikorientierung) 28. März Bearbeitungszeit: 120 Minuten

Welche Informatik-Kenntnisse bringen Sie mit?

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben

Arbeitsblatt zu Methoden

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Übungen zu Algorithmen

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Gegeben sind die folgenden Programmausschnitte: I. Programmausschnitt: II. Programmausschnitt: III. Programmausschnitt: IV. Programmausschnitt:

Vorlesung Objektorientierte Programmierung Klausur

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

Vorlesung Objektorientierte Programmierung Klausur

Einführung in das Programmieren Probeklausur Lösungen

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2009/10

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten. Lesen Sie die Aufgaben jeweils bis zum Ende durch; oft gibt es hilfreiche Hinweise!

Allgemeine Hinweise:

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Programmierung für Mathematik HS11

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Klausur "ADP" SS 2016

2 Programmieren in Java I noch ohne Nachbearbeitung

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

JAVA für Nichtinformatiker - Probeklausur -

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Informatik II Prüfungsvorbereitungskurs

1.) Zahlensysteme (10 Punkte)

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.

Algorithmen und Datenstrukturen 07

Aufgabe 1 (12 Punkte)

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Objektorientierung (OO)

Objektorientierte Programmierung Studiengang Medieninformatik

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Wiederholungsklausur "ADP" WS 2016/2017

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!

Programmiertechnik Klassenvariablen & Instantiierung

Implementieren von Klassen

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Erste Java-Programme (Scopes und Rekursion)

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

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

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19. Vorbereitende Aufgaben

Übungen zum Bioinformatik-Tutorium. Blatt 3

EINFÜHRUNG IN DIE PROGRAMMIERUNG

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

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten. Lesen Sie die Aufgaben jeweils bis zum Ende durch; oft gibt es hilfreiche Hinweise!

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

Die Klasse java.lang.object. Thorsten Treffer

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

12 Abstrakte Klassen, finale Klassen und Interfaces

Übung Programmierung WS 2007/08 - Blatt 6

Prüfung Softwareentwicklung II (IB)

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Allgemeine Hinweise:

Programmierung Nachklausurtutorium

JAVA - Methoden - Rekursion

Klausur Einführung in die Informatik I für Elektrotechniker 16. Juli 2003

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Vorkurs Informatik WiSe 15/16

Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!

hue12 January 24, 2017

Abschlussklausur. Lösung

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Elementare Konzepte von

Vorkurs Informatik WiSe 16/17

Übungsblatt 1. Java Vorkurs (WS 2017)

Prüfung Softwareentwicklung I (IB)

Einführung in die Programmierung

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java.

Probeklausur zur Vorlesung

pue13 January 28, 2017

Java Ablaufsteuerung (Beispiele)

Programmierkurs Java

Klausur "ADP" SS 2015

Beispielprüfung CuP WS 2015/2016

Computeranwendung und Programmierung (CuP)

Transkript:

Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung in die Informatik entspricht. Die hier zur Verfügung gestellten Aufgaben decken jedoch nicht alle behandelten Themenbereiche ab. Darüber hinaus wird es in der Klausur Wissensaufgaben geben, welche aus allen Themen und sämtlichen Teilen der Veranstaltung (Vorlesung, Tutorium und Hausaufgaben) kommen können. In den Klausuren für dieses Semester wird die Gewichtung sein: 40 % Rechneraufbau und 60 % Programmieren

A1 Aufgabe 1 (Zahlensysteme). 1. Rechnen Sie die Zahl 423 (6) in eine Zahl zur Basis 16 um. Der Lösungsweg muss erkennbar sein. 423 (6) = 4 6 2 + 2 6 1 + 3 6 0 = 144 + 12 + 3 = 159 (10) 159 : 16 = 9 Rest 15 423 (6) = 9F (16) 2. Berechnen Sie die folgenden Aufgaben unter Verwendung der Zweierkomplementdarstellung mit 4 Bit. Der Lösungsweg muss erkennbar sein. Bei welchen Aufgaben findet ein Über- bzw. Unterlauf statt? Woran erkennen Sie jeweils den Über- bzw. Unterlauf? (a) 6 + ( 2) (b) 7 + ( 2) (c) 4 + 7 (a) 6 (10) = 0110 (2) 2 (10) = 0010 (2) 2 (10) = 1110 (2) 0 0 1 1 0 + 1 1 1 1 1 1 1 0 0 0 1 0 0 Ergebnis: 6 + ( 2) = 4: Korrekt, da die ersten beiden Bits im (erweiterten) Ergebnis gleich sind. (b) 7 (10) = 0111 (2) 7 (10) = 1001 (2) 2 (10) = 0010 (2) 2 (10) = 1110 (2) 1 1 0 0 1 + 1 1 1 1 1 0 1 0 1 1 1 Ergebnis: 7 + ( 2) = 7: Unterlauf, da die ersten beiden Bits im (erweiterten) Ergebnis 10 sind. (c) 4 (10) = 0100 (2) 7 (10) = 0111 (2) 0 0 1 0 0 + 0 0 1 1 1 1 0 1 0 1 1 Ergebnis: 4 + 7 = 5: Überlauf, da die ersten beiden Bits im (erweiterten) Ergebnis 01 sind. Aufgabe 1 Seite 1

A2 Aufgabe 2 (Fließkommazahlen). 1. Addieren Sie die Zahlen 45 10 und 0.0625 10 im angegebenen Gleitkommaformat und konvertieren Sie das Ergebnis zurück in eine Dezimalzahl. Vorzeichen Exponent Mantisse 1 Bit 4 Bits 5 Bits Der Exzess beträgt: 7 10 = 0111 2 (a) Dualzahlen: 45 10 = 101101 2, 0.0625 10 = 0.0001 2 (b) Normalisierung: 1.01101 10 1012 2, 1.00000000 2 10 1002 2 (c) Exponent in Exzessdarstellung: 0101 + 0111 = 1100, 0100 + 0111 = 0011) Vorzeichen Exponent Mantisse 0 1100 01101 0 0011 00000 (d) Addition: kleineren Exponenten anpassen: 1.00000 10 1002 2 = 0.00000 10 1012 2 Addition der Mantissen 1.01101 + 0.00000 1.01101 Zusammenfügen: 0 1100 01101 2. Wie groß ist der Rundungsfehler, der bei der Addition in der ersten Teilaufgabe entsteht. Geben Sie den Rundungsfehler als Dezimalzahl an. Die Differenz der Exponenten ist 9 10, daher fällt das Bit heraus und das Ergebnis ist wieder 45 10. Der Fehler beträgt demzufolge 0.0625 10. Aufgabe 2 Seite 2

Å Ä À À À Æ Ç berlin A3 Aufgabe 3 (Schaltungen). 1. Stellen Sie die Wertetabelle für folgende Schaltung auf: a b =1 & x & y 1 & z (a und b sind die Eingänge, x, y und z sind die Ausgänge der Schaltung.) Zunächst werden die Zwischenpunkte m := a b und n := b eingeführt. Dann ergibt sich folgende Wertetabelle: a b m n x y z 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 1 0 0 Aufgabe 3 Seite 3

A3 2. Zeichnen Sie eine Schaltung, die der folgenden Wertetabelle entspricht. a b c y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 (a, b und c sind die Eingänge, y ist der Ausgang der Schaltung.) Aufgabe 3 Seite 4

A4 Aufgabe 4 (Bedingte Anweisungen). 1. Betrachten Sie die folgende Java-Methode boolean f(boolean x, boolean y) { if(x) { return y; else if(y) { return x; else { return x; (a) Stellen Sie eine Tabelle auf, die für alle möglichen Wertepaare (x, y) der Parameter den zugehörigen Rückgabewert der Methode f() angibt. x y f(x, y) true true true true false false false true false false false false (b) Implementieren Sie eine möglichst einfache Methode boolean f2(boolean x, boolean y), die ohne if- Anweisung auskommt und für alle möglichen Wertekombinationen von x und y die gleichen Werte wie die Methode f() zurückliefert. boolean f2(boolean x, boolean y) { return x && y; 2. Betrachten Sie das folgende Punktesystem zur Notenvergabe: Punkte Note 36-40 1 31-35 2 26-30 3 21-25 4 0-20 5 Implementieren Sie eine Methode int getnote(int punkte), die als Wert die Note der übergebenen Punkte zurückliefert. Liefern Sie den Wert -1 zurück, falls der Parameter punkte keine gültige Punktezahl darstellt. siehe nächste Seite. Aufgabe 4 Seite 5

A4 int getnote(int punkte) { if (punkte > 40 punkte < 0){ return -1; else if (punkte > 35) { return 1; else if (punkte > 30) { return 2; else if (punkte > 25) { return 3; else if (punkte > 20) { return 4; else { return 5; Aufgabe 4 Seite 6

A5 Aufgabe 5 (Schleifen). 1. Welchen Wert hat k nach Ausführung der folgenden Anweisungen? int k = 2; for(int i = 2; i < 7; i += 2) { k *= 2; k = 16 2. Wandeln Sie die folgende for-anweisung in eine while-anweisung um. for(int i = 533; i > -12; i -= 7) { System.out.println(i); int i = 533; while(i > -12) { System.out.println(i); i -= 7; 3. Implementieren Sie eine Methode int zaehlenullen(int[] vektor), die die Anzahl der Nullen in dem übergebenen Ganzzahlen-Vektor zurückgibt. int zaehlenullen(int[] vektor) { int anzahlnullen = 0; for (int i=0; i<vektor.length; i++) { if (vektor[i] == 0) anzahlnullen++; return anzahlnullen; Aufgabe 5 Seite 7

A6 Aufgabe 6 (Rekursion). Betrachten Sie die rekursiv definierte Funktion für alle n 3 f(3) = 1 f(4) = 2 f(n) = 2 f(n 1) + 3 f(n 2) für n > 4 Implementieren Sie eine rekursive Java-Methode, die den Wert f(n) zurückliefert. Die Variable n wird hierbei als Parameter der Methode übergeben. Die Deklaration von lokalen Variablen und Verwendung von Schleifen ist nicht erlaubt. int f(int n) { if(n <= 3) { return 1; else if(n == 4) { return 2; else { return 2*f(n-1) + 3*f(n-2); Aufgabe 6 Seite 8

A7 Aufgabe 7 (Klassen und Objekte). 1. Ergänzen Sie die folgende Java-Klasse wie in den Kommentaren beschrieben. public class C { private int a; public C(int a) { // initialisiere Attribut mit uebergebenem Parameter this.a = a; public void f() { a *= 2; System.out.println("a = " + a); public static void main(string[] args) { // Erzeuge ein Objekt der Klasse C. Dabei soll der Wert des // Attributs a mit 5 initialisiert werden. C c = new C(5); // Rufe die Methode f() auf. c.f(); 2. Implementieren Sie eine Klasse Fahrrad. Die Klasse soll folgenden Anforderungen genügen: (a) Der Zustand eines Objekts der Klasse Fahrrad wird durch seine Geschwindigkeit und die Anzahl der Gänge beschrieben. Beide Attribute sind vom Typ int. Sowohl die Geschwindigkeit als auch die Anzahl der Gänge dürfen nicht negativ werden. Ein Zugriff auf die Attribute außerhalb der Klasse ist nicht möglich. (b) Die Klasse besitzt einen parameterlosen Konstruktor, der die Geschwindigkeit mit 0 und die Anzahl der Gänge mit 1 initialisiert. (c) die Klasse besitzt einen erweiterten Konstruktor mit zwei Parametern zur Initialisierung der Attribute. (d) Die Klasse besitzt eine Methode zum Ändern der Geschwindigkeit. Die Differenz zur alten Geschwindigkeit wird als Parameter der Methode übergeben. (e) Die Klasse besitzt eine Methode zum Setzen der Anzahl der Gänge. Die Anzahl wird dabei als Parameter der Methode übergeben. (f) Auf die Klasse, die Konstruktoren und auf die Methoden kann von jeder anderen Klasse zugegriffen werden. siehe nächste Seite Aufgabe 7 Seite 9

A7 0 public class Fahrrad { 1 2 private int speed; 3 private int gears; 4 5 public Fahrrad() { 6 this(0, 1); // ruft den parametrisierten Konstruktor auf 7 8 9 public Fahrrad(int speed, int gears) { 10 this.speed = Math.max(0, speed); 11 this.gears = Math.max(0, gears); 12 13 14 public void changespeed(int value) { 15 this.speed += value; 16 this.speed = Math.max(0, speed); 17 18 public void setgears(int value) { 19 this.gears = value; 20 this.gears = Math.max(0, gears); 21 22 Aufgabe 7 Seite 10

A8 Aufgabe 8 (Vererbung). Betrachten Sie die Klassenhierarchie in der folgenden Abbildung. Medium Buch Film Abbildung 1: Klassenhierarchie Beachten Sie außerdem: Bücher besitzen einen Titel und einen Autor. Filme werden durch ihren Titel und ihre Spieldauer beschrieben. Implementieren Sie die Klassenhierarchie der obigen Abbildung. Sämtliche Attribute der zu implementierenden Klassen sollen private sein, während Konstruktoren und Methoden public sein sollen. Gehen Sie folgendermaßen vor: 1. Implementieren Sie eine Klasse Medium. Die Klasse Medium besitzt als Attribut einen Titel vom Typ String. Implementieren Sie einen Konstruktor zur Initialisierung des Titels mit einem Parameter. Definieren Sie eine Methode void ausgeben(), welche den Titel auf der Konsole ausgibt. 2. Implementieren Sie eine Unterklasse Buch der Klasse Medium. Die Klasse Buch besitzt als zusätzliches Attribut einen Autor vom Typ String. Implementieren Sie einen Konstruktor zur Initialisierung von Titel und Autor mit Parametern. Definieren Sie eine Methode void ausgeben(), welche den Titel sowie den Autor auf der Konsole ausgibt. 3. Implementieren Sie eine Unterklasse Film der Klasse Medium. Die Klasse Film besitzt als zusätzliches Attribut die Spieldauer vom Typ int. Implementieren Sie einen Konstruktor mit Parametern zur Initialisierung von Titel und Spieldauer. Definieren Sie eine Methode void ausgeben(), welche den Titel sowie die Spieldauer auf der Konsole ausgibt. 0 public class Medium { 1 2 private String titel; 3 4 public Medium(String titel) { 5 this.titel = titel; 6 7 8 public void ausgeben(){ 9 System.out.println("Titel : "+titel); 10 ; 11 0 public class Buch extends Medium { 1 2 private String autor; 3 4 public Buch(String titel, String autor) { 5 super(titel); 6 this.autor = autor; 7 8 9 public void ausgeben() { 10 super.ausgeben(); 11 System.out.println("Autor : " + autor); 12 13 Aufgabe 8 Seite 11

A8 0 public class Film extends Medium { 1 2 private int dauer; 3 4 public Film(String titel, int dauer) { 5 super(titel); 6 this.dauer = dauer; 7 8 9 public void ausgeben() { 10 super.ausgeben(); 11 System.out.println("Spieldauer: " + dauer); 12 13 Aufgabe 8 Seite 12