Institut für Informatik und Angewandte Kognitionswissenschaften

Ähnliche Dokumente
Methoden und Wrapperklassen

Tag 7 Repetitorium Informatik (Java)

Klausur Grundlagen der Programmierung

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Übungsblatt 1. Java Vorkurs (WS 2017)

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

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Probeklausur: Programmierung WS04/05

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten

Vorbereitende Aufgaben

Institut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt

Ausgabe:

Erste Java-Programme (Scopes und Rekursion)

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

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Einführung in die Programmierung

Einstieg in die Informatik mit Java

Philipp Güttler Objektorientierung und komplexe Datentypen

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

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004

Übung Programmierung WS 2007/08 - Blatt 6

Einführung in die Programmierung 1

Aufgabe 1 ZUFÄLLIGES ENGLISCH. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Wie entwerfe ich ein Programm?

Vorbereitende Aufgaben

Javakurs für Anfänger

Einführung in die Programmierung für NF MI. Übung 07

Java Datentypen und Variablen

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

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

Grundlagen der Programmierung

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

Klassenvariablen, Klassenmethoden

Einstieg in die Informatik mit Java

Übung Praktische Informatik I

Vorkurs Informatik WiSe 17/18

Übung Datenstrukturen. Objektorientierung in C++

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Ein erstes Java-Programm

Vorkurs Informatik WiSe 16/17

Programmierung für Mathematik HS11

Informatik I Eprog HS11

Einstieg in die Informatik mit Java

System.out.println("TEXT");

Informatik II. Woche 15, Giuseppe Accaputo

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

Informatik I Eprog HS10

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Vorkurs Informatik WiSe 16/17

Repetitorium Informatik (Java)

Einführung in die Programmierung für NF MI. Übung 04

Einstieg in die Informatik mit Java

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

Java Einführung Klassendefinitionen

Programmierung für Mathematik HS10

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

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

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Programmierung für Mathematik HS10

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Einstieg in die Informatik mit Java

Grundlagen der Programmierung

Objektorientiertes Programmieren (Java)

Programmierpraktikum

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Einführung in die Java- Programmierung

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

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

Übungen zum Bioinformatik-Tutorium. Blatt 3

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

Labor Software-Entwicklung 1

Algorithmen und Datenstrukturen Sommersemester Übung Abgabe bis , 10:00 Uhr

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

Java Referenzdatentypen genauer betrachtet

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

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

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Praktische Informatik I Wintersemester 2005/2006 Abgabe: 23. November 2005

Übungsblatt 2. Java Vorkurs (WS 2017)

pue13 January 28, 2017

Intensivübung zu Algorithmen und Datenstrukturen

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Abend 4 Übung : Erweitern von Klassen durch Vererbung

2. Unterprogramme und Methoden

Teil 2: Weitere Aspekte der Objektorientierung

II.1.1. Erste Schritte - 1 -

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Transkript:

Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String"); String s2 = "Test String"; String s3 = s2; System.out.println(s1==s2); System.out.println(s1==s3); System.out.println(s2==s3); System.out.println("-----"); System.out.println(s1.equals(s2)); System.out.println(s1.equals(s3)); System.out.println(s2.equals(s3)); Code-Fragment Die Klasse String ist ein Sonderfall und erlaubt das Erzeugen von Objekten ohne den new-operator. Schauen Sie sich zur Beantwortung der Fragen gegebenenfalls auch die Java-API (Dokumentation) zur String-Klasse an, welche Beschreibungen zu den Methoden: http://java.sun.com/javase/6/docs/api/java/lang/string.html Aufgaben: (a) Die equals-methode von String gibt einen Wert von spezifischem Typ an ausführender Stelle zurück (analog zu arithmetischen Ausdrücken, die bspw. einen Wert vom Typ int an ausführender Stelle zurückgeben). Welcher Typ ist hier gemeint? (b) Nennen und erklären Sie die 6 Ausgaben des Code Fragments oberhalb. (c) Wie könnte man sicherstellen, dass der Vergleich zwischen "Test String" und "test string" positiv (true) ausfällt (String-Methode)? Grundlegende Programmiertechniken WS 2007/2008 Seite 1

Aufgabe 12 KLASSENMETHODEN, UND VARIABLEN (MATH, WRAPPER-KLASSEN) Sie haben in der Vorlesung gesehen, dass es auch Methoden gibt, die direkt über eine Klasse und nicht via Instanz der Klasse aufgerufen werden: Klassenmethoden. Ein Beispiel hierfür ist die von Ihnen bereits häufig eingesetzte println- Methode oder bspw. Integer.parseInt(): Ohne ein Objekt erzeugt zu haben, rufen Sie diese Methode auf. (Merken Sie sich für jetzt und später: Klassenvariablen und methoden werden immer über die Klasse aufgerufen, selbst wenn Objekte diesen Typs bestehen oder erzeugt werden könnten). Die Methode rand() der Klasse Math (Im JDK enthalten) ist eine von vielen Klassenmethoden, welche Math zur Verfügung stellt, und welche wie in diesem Fall an aufrufender Stelle einen Wert zurückgibt. Ferner existieren auch komplexe Datentypen (Klassen/Referenzdatentypen) zu den primitiven (hier numerischen) Datentypen int, double, float, short,. Diese werden als sogenannte Wrapper-Klassen bezeichnet: Im Kern z.b. der Integer-Klasse dreht sich ja noch immer alles um den int-wert dieser wird jedoch durch vielen nützliche Methoden und Variablen von einer Klasse verpackt (daher Wrapper) zur Verfügung gestellt. Erinnern Sie sich daran, dass einfache Datentypen über keine Methoden oder Variablen verfügen! Schauen Sie sich zur Lösung die Java-API (Dokumentation) zu den benötigten Klassen an. Eine Auflistung der aktuell relevanten Klassen finden Sie hier: http://java.sun.com/javase/6/docs/api/java/lang/package-summary.html Sie werden in den kommenden Vorlesungen natürlich mehr zum Thema Klassenmethode/-variable lernen, u.a. wie Sie selbst Derartiges in Ihren Klassen implementieren. Aufgabe (Implementierung in main-methode reicht): (a) Zeigen Sie eine Anweisung (nötigenfalls auch Anweisungen), die eine Zufallszahl zwischen 0 und 100 auf dem Bildschirm ausgibt. Verwenden Sie dafür die Methoden Math.rand() (und Math.round()) und ggfs. weitere Operationen. (b) Mit welchen zwei Math-Klassenmethoden kann die größere bzw. kleinere von zwei Zahlen, welche als Argumente an die Methode(-n) übergeben werden, ermittelt werden? Zeigen Sie jeweils ein Beispiel. (c) Zeigen Sie, wie Sie mittels der Wrapper-Klassen (Integer, Double, Float, Short, Long) die maximalen Werte für int, double, float, short, und long ermitteln können, um sie auf dem Monitor auzugeben. Es sind keine Methoden, welche diese Information liefern, sondern Klassenvariablen. Die Ausgabe sollte in etwa so aussehen: Integer/int: 2147483647 Double/double: 1.7976931348623157E308 Float/float: 3.4028235E38 Grundlegende Programmiertechniken WS 2007/2008 Seite 2

Aufgabe 13 WORT ALS OBJEKT Implementieren Sie ein Programm, welches das Genus von (lateinischen) Wörtern, welche auf us (mask.), -a (fem.), oder um (neutr.) enden, in etwa wie folgt auf dem Bildschirm ausgeben kann: Genus von "Servus" ist: Maskulinum Genus von "Nina" ist: Femininum Strings sind Objekte in Java. Objekte diesen Typs können auf eine Vielzahl von Methoden zugreifen (via Punktoperator/- notation), um z.b. die Länge eines Strings zu ermitteln, oder aber auch, um zu überprüfen, ob eine bestimmte Zeichenkette ("us") das Ende einer anderen Zeichenkette ist ("Marcus"). Schauen Sie sich in der Java-API die Methoden der Klasse String an, um eine für den aktuellen Zweck passende Methode zu finden (Tipp: Übersetzen Sie»endet auf«ins Englische). Aufgabe: Programmieren Sie eine Klasse Wort, deren Zustand sich aus dem Wort als Zeichenkette zusammensetzt. Achten Sie darauf, dass beim Erzeugen eines Worts via new-operator auch ein Argument übergeben werden muss, und zwar das Wort als Zeichenkette. Damit das möglich ist, benötigt Ihre Klasse einen Konstruktor, welche eine Zeichenkette entgegennimmt und sie der Instanzvariablen zuweist. Objekte der Klasse Wort sollen die Möglichkeit haben, das Genus des Worts auf dem Bildschirm auszugeben. Programmieren Sie eine ausführbare Klasse GenusTest, um Objekte vom Typ Wort zu erzeugen und sie zu verwenden (Genus ausgeben). Gegebenenfalls sollten Sie Code aus den Vorlesungsfolien als Vorlagen verwenden und modifizieren, falls Sie noch sehr unsicher sind. Auch Zusatzliteratur ist, wie bereits mehrfach angemerkt, stets von Vorteil. Grundlegende Programmiertechniken WS 2007/2008 Seite 3

Aufgabe 14 VEKTOR-RAUM Dies Aufgabe benötigt Wissen der kommenden Vorlesung: Methoden, Arrays, Schleifen. Erklärung, Aufgabe: Implementieren Sie ein Programm, welches einen Vektor als Punkt in einem dreidimensionalen Raum darstellen kann. Keine Sorge, die Darstellung wird rein ASCII-basiert sein, Sie müssen keine grafischen Komponenten implementieren. Vektoren entsprechen Punkten im mehrdimensionalen Raum. Ein Beispiel für Vektoren im dreidimensionalen Raum: Vektoren d 1, d 2, d 3. Die angesprochenen Punkte liegen am Ende des Graphen. Zur Veranschaulichung 1 : Nachstehend ist die Darstellung des Beispiels als ASCII-Matrix (»nur Text«-Matrix). Die ASCII-Darstellung zeigt zunächst nur zwei Dimensionen (x, y ). Die dritte Dimension, z, wird nur für den anzuzeigenden Vektor an entsprechender x,y- Koordinate als Wert für die z-dimension in der 2D-Matrix angezeigt. 6 X 0 X X X X X 5 X X X X X X X 4 X X X X X X X 3 X X X X X X X 2 X X X X X X X 1 X 2 X X X X X 0 X 5 X X X X X 0 1 2 3 4 5 6 Anmerkungen zur Implementierung: Ihre Raumdarstellung, bzw. der Raum, muss nur einen Vektor anzeigen können. Die Raumgröße muss über drei Dimensionen definierbar sein (x,y,z): Sie stellen das Maximum der jeweiligen Dimension dar. Bspw. (10,10,10) wäre ein Raum, mit Höhe, Breite, Tiefe = 10. Ein Vektor muss über drei Dimensionen definierbar sein (x,y,z). Ein Vektor wird nur im Raum angezeigt, wenn er innerhalb der Raum-Größe liegt. Sonst wird der Raum ohne ihn angezeigt. Bei einer Größe von (10,10,10) und einem Vektor (14,2,55) muss jedoch mindestens ein Hinweis ausgegeben werden, dass der Vektor außerhalb des Raums liegt. 1 Die Grafik ist aus Darstellungsgründen nicht zu 100% genau und dient ausschließlich der groben Veranschaulichung des Beispiels. Grundlegende Programmiertechniken WS 2007/2008 Seite 4

Ihr Programm muss mindestens die Klassen Raum und RaumTest (mit main-methode zum Erstellen und zur Verwendung der Objekte (z.b. Anzeigen der Matrix/des 2D-Raums)) enthalten. Eine weitere Klasse wäre durchaus sinnvoll. Schauen Sie sich einmal die wiederholt auftretenden Daten an und überlegen Sie. Es muss nur die Matrix (ohne y,x Koordinaten unterhalb und links davon) dargestellt werden. Grundlegende Programmiertechniken WS 2007/2008 Seite 5