1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!

Ähnliche Dokumente
1. Teilklausur. Modul "OOPM Vorlesung/Übung" Gruppe A

Probeklausur: Programmierung WS04/05

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Probeklausur: Programmierung WS04/05

II.3.1 Rekursive Algorithmen - 1 -

Einführung in die Programmierung Vorlesungsprüfung

Abschlussklausur. Lösung

Allgemeine Informatik II SS :30-13:30 Uhr

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

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

Klausur zur Einführung in die objektorientierte Programmierung mit Java

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

Algorithmen und Datenstrukturen

Lösung der Klausur zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler

Algorithmen und Programmierung II

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Programmierkurs. Manfred Jackel

Einführung in die Programmierung

public class SternchenRechteckGefuellt {

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

6 Speicherorganisation

Objektorientierte Programmierung

Einführung in die Programmierung für Wirtschaftsinformatik

Welche Informatik-Kenntnisse bringen Sie mit?

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

JAVA - Methoden - Rekursion

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

Vorlesung Objektorientierte Programmierung Probeklausur

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

Objektorientierte Programmierung OOP Programmieren mit Java

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

Programmieren Tutorium

Studentische Lösung zum Übungsblatt Nr. 7

Übersicht. Berechnung der Potenz für zwei ganze Zahlen Klausuraufgabe SS 2010! Berechnung der Cosinus-Funktion Klausuraufgabe WS 2010/2011!

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

5. Tutorium zu Programmieren

Speicher und Adressraum

Objektorientierte Programmierung

Tutoraufgabe 1 (Programmanalyse):

Theorie zu Übung 8 Implementierung in Java

Abschlussklausur. Modul INMJ01 5 ECTS-Punkte

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

Java: Vererbung. Teil 3: super()

Einführung in die Programmierung

Semestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A

Einführung in die Programmierung 1

Test-Driven Design: Ein einfaches Beispiel

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

Präzedenz von Operatoren

1. Grundlegende Konzepte in Java (6 Punkte)

Allgemeine Hinweise:

JAVA - Methoden

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Die Programmiersprache C Eine Einführung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Repetitorium Informatik (Java)

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Programmieren I + II Regeln der Code-Formatierung

Java Einführung Klassendefinitionen

01. Grundprinzipien der Vererbung

6. Iteration (Schleifenanweisungen)

Vorkurs Informatik Wintersemester 2015/2016. Programmtexte

Propädeutikum zur Programmierung

Programmierkurs Java

Allgemeine Informatik 2 im SS 2007 Programmierprojekt

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

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

Probeklausur: Einführung in die objektorientierte Programmierung mit Java 15WS

Einführung in die Java- Programmierung

Einstieg in die Informatik mit Java

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Klassen mit Instanzmethoden

Dr. Monika Meiler. Inhalt

Selbsteinstufungstest Vorkurs Programmieren

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

RO-Tutorien 3 / 6 / 12

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

Übungsblatt 7. Was ist die Ausgabe de facto? Entspricht die Ausgabe Ihren Erwartungen?

Übersicht. Vorstellung des OO-Paradigmas

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

C# im Vergleich zu Java

Überschreiben von Methoden

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

Vorkurs Informatik WiSe 16/17

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Java Einführung Methoden. Kapitel 6

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann

II.1.1. Erste Schritte - 1 -

Datenbankanwendungsprogrammierung Crashkurs Java

0. Einführung & Motivation

Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY. Vorlesung 3: Methoden, Scope

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

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Transkript:

Objektorientierte Programmierung & Modellierung WS 2007/8 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur 07.12.2007 Gruppe A Bitte in Druckschrift leserlich ausfüllen! Name Vorname E-Mail-Adresse @uni-koblenz.de Matrikelnummer Studiengang: Computervisualistik (Diplom) Informatik (Diplom) Computervisualistik (BSc) Informatik (BSc) Anglistik & Medienmanagement (BSc) B Ed Informationsmanagement (BSc) Diese Prüfungsleistung melde ich verbindlich als Freiversuch im Sinne der Prüfungsordnung an (nur alte PO). Diese Prüfungsleistung ist mein 2. Versuch (Nachklausur). Erstversuch im (Semester). Auswertung: Punkte 1 2 3 4 GESAMT

Aufgabe 01 (12 Punkte) Programmieren Sie die Methode public static void printminmax aus. Die Methode soll den Wert des kleinsten und des größten Elementes im Array a mit Hilfe von System.out.print ausgeben. Denken Sie auch an den Fall eines leeren Feldes. public class Aufgabe1 { public static void printminmax(int[] a) { // jetzt sind Sie dran! if (a.length==0) System.out.println( Array ist leer ); else { int max=a[0], min=a[0]; for (int i=1;i<a.length;i++) { if (a[i]<min) min = a[i]; if (a[i]>max) max = a[i]; System.out.println( Min = +min+, Max = +max);

Aufgabe 02 (12 Punkte) Die rekursive Funktion f(n) = 2*n-1 + f(n-1) mit der Initialisierung f(1) = 1 berechnet für positive ganze Zahlen n: f(n) = n*n. Schreiben Sie eine iterative (nicht-rekursive!) Funktion itsquare(int n), die durch fortgesetztes Aufaddieren von 2*i-1 (i=1..n) n*n berechnet! Den Rahmen geben wir wieder vor: /** * Iterative Berechnung von n*n */ public static int itsquare(int n) { // hier können Sie die Lösung codieren int sum=0; for (int i=1; i<=n; i++) sum += i+i-1; return sum;

Aufgabe 03 (12 Punkte) Implementieren Sie eine Klasse Zeitspanne, die eine Zeitspanne in Tagen, Stunden und Minuten festlegt. Die interne Speicherung sei normiert, d.h. die Werte von Minuten liegen zwischen 0 und 59, die Stunden zwischen 0 und 23. Tag kann beliebig groß (im Wertebereich von long) werden. Wir betrachten nur positive Zeitspannen. Wir machen folgende Vorgaben: public class Zeitspanne { protected int m; // Minuten 0<=m<60 protected int h; // Stunden 0<=h<24 protected long d; // Tage d>=0 a) Implementieren Sie einen Konstruktor, der die Zeitspanne der Dauer d Tage, h Stunden, m Minuten erzeugt: Denken Sie an den Aufruf der Methode normiere() (siehe b)), damit auch nicht normierte Übergabewerte verarbeitet werden können. public Zeitspanne (long d, int h, int m) { // hier ergänzen this.m=m; this.h=h; this.d=d; normiere(); b) Vervollständigen Sie die Methode normiere, die die Zeitwerte wie anfangs beschrieben normiert. void normiere() { // normiere Minuten while (m>=60) { m -=60; h++; // hier ergänzen: normiere Stunden. while (h>=24) { h -=24; d++; c) Implementieren Sie eine Methode add, die eine Zeitspanne aufaddiert. Denken Sie an die notwendige Normierung! Beispiel Zeitspanne(0,0,20).add(0,0,100) liefert dieselbe Zeitspanne wie Zeitspanne(0,2,0). public void add(long d1, int h1, int m1) { m +=m1; h +=h1; d +=d1; normiere();

Aufgabe 04 (12 Punkte) Diese Aufgabe umfasst 3 Multiple-Choice Cluster mit je 4 Ankreuzfragen. Für jedes Cluster gilt: wenn alle 4 Kreuze an der richtigen Stelle stehen, gibt es 4 Punkte für das Cluster. Ein falsches Kreuz gibt einen Punkt Abzug. Wer 2 richtige und 2 falsche Kreuzchen in einem Cluster macht, erhält 1+1-1-1=0 Punkte. Zum Trost: es gibt keine negativen Gesamtpunktzahlen, jedes Cluster bringt 0 bis 4 Punkte. Ja Nein Frage a) Grundlagen 1. Einige wenige Algorithmen benötigen unbedingt eine Sprache mit Goto- Anweisungen. 2. Klassendiagramme beschreiben das Verhalten von Objekten. 3. UML kennt Mehrfachvererbung, Java nicht. 4. Jede Assoziation ist auch eine Aggregation. b) Java 1. long int real; ist korrekter Java-Code. 2. Jede nicht abstrakte Java-Klasse muss eine main-methode besitzen. 3. Ein Java-Objekt kann aus dem Speicher entfernt werden, wenn keine Referenz mehr auf das Objekt zeigt. 4. Wenn eine Klasse keinen Konstruktor hat, meldet der Compiler einen Fehler. c) Programmieren 1. Nicht jede rekursive Java-Funktion kann in eine nicht-rekursive Funktion umgeschrieben werden. 2. Der Ausdruck 9/2/2.0 hat den Wert 2.0. 3. a ist ein String und b ist ein Character-Literal. 4. for (int i; i<10; i--) System.out.print(i); ist korrekter Java-Code.