Programmierung für Mathematik HS10

Ähnliche Dokumente
Informatik I Eprog HS10

Programmierung für Mathematik HS10

Programmierung für Mathematik HS11

Informatik I Eprog HS12

Informatik I Eprog HS10

Programmierung für Mathematik (HS13)

Programmierung für Mathematik HS10 Übung 8

Informatik I Eprog HS11

Programmierung für Mathematik HS11

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13)

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

Klausur Grundlagen der Programmierung

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

1 Berechnung von Summen (ca = 10 Punkte)

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.

Informatik I EProg HS13

Javakurs für Anfänger

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

Programmierung für Mathematik HS12 Übung 3

Institut für Informatik und Angewandte Kognitionswissenschaften

hue12 January 24, 2017

1 - EIN NEUES GAMEGRID ANLEGEN

Informatik I Eprog HS10

Programmierpraktikum

Javakurs für Anfänger

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

Informatik I Eprog HS13

Modellierung und Programmierung 1

Praktikum 4: Grafiken und Ereignisse

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

Javakurs für Anfänger

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur)

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

Programmierung für Mathematik HS12 Übung 1

Übungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise

Mehrdimensionale Arrays

Methoden und Wrapperklassen

WiMa-Praktikum 1. Woche 8

Informatik II Übung 5

Einstieg in die Informatik mit Java

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

hue13 January 30, 2017

Übungspaket 23 Mehrdimensionale Arrays

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

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Übung Notendarstellung

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Probeklausur: Programmierung WS04/05

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

hue05 November 25, 2016

Programmieren in Java -Eingangstest-

Rückgabewerte von Methoden

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

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Arbeitsblatt 5 EAD II NetBeans

Allgemeine Informatik II SS :30-11:30 Uhr

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

AuD-Tafelübung T-B5b

hue04 November 18, 2016

Aufgabenblatt 5. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Computeranwendung und Programmierung (CuP)

Tutoraufgabe 1 (Pilze):

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

(6) Verknüpfen der GUI mit dem Spiel

Javakurs für Anfänger

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

Einführung in die Programmierung WS 2016/17. Übungsblatt 9: Objekt-orientierte Programmierung

Brückenkurs Programmieren

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Softwaretechnik WS 16/17. Übungsblatt 01

JAVA - Methoden,... T.Bosse

1 Autorennen ( = 11 Punkte)

EPROG 2.Teilprüfung. Aufgabe 1:

T1 Organisatorisches - Anmeldung Projektaufgaben

JTable. W. Lang HWR Berlin, SS

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Probeklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2017/18

Programmiermethodik 1. Klausur

Javakurs für Anfänger

Algorithmen und Programmierung

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

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

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

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

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

hue06 December 2, 2016

Semestralklausur Einführung in die Programmierung, WS 2007/08, Seite 1/5 Name, Vorname, Matrikelnummer: Gruppe A

Übungen zu Computeranwendung und Programmierung WS 17/18

Aufgabenblatt: Arrays - zweidimensional - Seite 1

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Übung Programmierung WS 2007/08 - Blatt 6

hue07 December 9, 2016

Institut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur

Transkript:

Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 5 1 Aufgabe: Eclipse IDE 11 Lernziele 1 Die Entwicklungsumgebung Eclipse kennen lernen 12 Aufgabenstellung 1 Installieren Sie die IDE 1 Eclipse (wählen Sie Eclipse Classic) 2 Arbeiten Sie das zur Verfügung gestellte Eclipse-Tutorial durch 3 Legen Sie für die nachfolgenden Aufgaben ein neues Eclipse Projekt an und geben Sie ihm einen sinnvollen Namen Nutzen Sie Java Packages, um die einzelnen Teilaufgaben zu organisieren 1 IDE steht für Integrated Development Environment 1

2 Aufgabe: Rechnen mit Matrizen 21 Lernziele 1 Mit zweidimensionalen Arrays rechnen können 22 Aufgabenstellung Eine Matrix ist ein rechteckiges Schema α 11 α 12 α 1n α 21 α 22 α 2n α m1 α m2 α mn (in dem Fall m Zeilen und n Spalten, man sagt auch, das sei eine m n Matrix) Dabei ist α ij R i {1,, m}, j {1,, n} In Java kann eine Matrix durch ein zweidimensionales Array dargestellt werden 1 Schreiben Sie eine Methode printmatrix welche als Übergabeparameter eine Matrix A erwartet (also ein zweidimensionales Array) und diese auf der Kommandozeile ausgibt 2 Schreiben Sie eine Methode calculatetranspose welche als Übergabeparameter eine Matrix A erwartet und die transponierte Matrix A T zurückgibt Bemerkung: Sei α 11 α 12 α 1n α 21 α 22 α 2n A = α m1 α m2 α mn dann ist die transponierte Matrix A T wie folgt definiert: α 11 α 21 α m1 A T α 12 α 22 α m2 = α 1n α 2n α mn 3 Schreiben Sie eine Methode add welche die Summe von zwei Matrizen berechnen soll, falls diese definiert ist Andernfalls soll eine Fehlermeldung ausgegeben werden Bemerkung: die Summe von zwei m n Matrizen A, B ist komponentenweise definiert, das heisst: α 11 α 1n β 11 β 1n A + B = + α m1 α mn β m1 β mn = α 11 + β 11 α 1n + β 1n α m1 + β m1 α mn + β mn (falls die Dimensionen von A und B nicht übereinstimmen, ist die Summe nicht definiert) 4 Schreiben Sie eine Methode multiplicate, welche das Produkt von zwei Matrizen berechnen soll, falls es definiert ist und sonst eine entsprechende Fehlermeldung ausgibt 2

Bemerkung: Die Matrixmultiplikation A B ist für eine n k Matrix A und eine k m Matrix B wie folgt definiert: wobei α 11 α 1k β 11 β 1m A B = α n1 α nk β k1 β km γ ij = = k (α il β lj ) i {1,, n}, j {1,, m} l=1 γ 11 γ 1m γ n1 γ nm (falls die Anzahl Spalten von A nicht mit der Anzahl Zeilen von B übereinstimmt, ist A B nicht definiert) 3

3 Aufgabe: OOP und Information Hiding 31 Lernziele 1 Ein Problem von natürlicher Sprache in Java Code übersetzen können 2 Eine bestehende Klasse intern abändern und dabei die Schnittstellen beibehalten können 32 Aufgabenstellung a) Student 1 Ein Student hat folgende Eigenschaften: Name Alter (um an der Universität zu studieren muss man mindestens 18 sein) Matrikelnummer Schreiben Sie eine Klasse Student, welche diese Ausgangslage in Java abbildet Es soll möglich sein den Namen und das Alter direkt bei der Initialisierung oder auch noch nachträglich zu setzen (Tipp: dazu muss ein Konstruktor geschrieben werden) Allerdings soll der Name nur einmal gesetzt werden können und bevor das Alter gesetzt wird, soll überprüft werden, ob das Alter gültig ist Wird ein ungültiges Alter übergeben, soll eine Meldung ausgegeben und das Alter auf 1 gesetzt werden Die Matrikelnummer soll automatisch bei jeder Initialisierung eines Student Objektes vergeben werden und zwar so, dass zwei Studenten nie dieselbe Nummer haben Der erste Student bekommt die Nummer 1, der zweite die Nummer 2 etc (Tipp: verwenden Sie eine statische Variable) Implementieren Sie die Methode tostring(), welche einen sinnvollen String mit Name, Alter und Matrikelnummer zurückgeben soll (Tipp: Lesen Sie in der Java-API nach, wie die Methode tostring von der Integer Klasse verwendet werden kann) 2 Schreiben Sie eine Klasse University, welche die Studenten der Universität speichern soll Benutzen Sie dazu als Instanzvariable ein Array vom Typ Student[] Die Sekretärin soll die Möglichkeit haben einen Studenten zu dieser Liste hinzuzufügen und zwar so, dass die Matrikelnummern der Studenten in dem Array automatisch aufsteigend geordnet sind Ausserdem soll sie auch die Möglichkeit haben das Alter aller Studenten um ein Jahr zu erhöhen (dies tut sie einfachheitshalber nur einmal pro Jahr, für alle Studenten gleichzeitig) 3 Schreiben Sie einen TestDriver, in welchem Sie die beiden Klassen testen (Um die Klassen richtig testen zu können, ist es sinnvoll, die University Klasse um die Methode printstudents zu ergänzen, welche alle Studenten auf der Kommandozeile ausgibt) b) Anpassen der Student-Klasse Die Sekretärin beklagt sich bei den Informatikdiensten über dieses System, weil sie jedes Jahr das Alter der Studenten anpassen muss Passen Sie nun die Klasse Student so an, dass fortan anstelle des Alters das Geburtsjahr der Studenten gespeichert wird Implementieren Sie die passenden Accessor-Methoden getyearofbirth() und setyearofbirth() Da die Universität aber noch viele alte Programme am Laufen hat, die die Klasse Student verwenden, müssen die Zugänge über die alten Accessor-Methoden (setage() und getage()) unbedingt gewährleistet bleiben Fügen Sie Ihrer Klasse folgende Hilfsmethode hinzu Danach erhalten Sie innerhalb der Klasse mit getcurrentyear() das jeweils aktuelle Jahr als Integer 4

1 private int getcurrentyear() { 2 return (new javautilgregoriancalendar())get(javautil GregorianCalendarYEAR); 3 } Testen Sie Ihre abgeänderte Klasse mit dem TestDriver aus der ersten Teilaufgabe und überprüfen Sie damit, ob die Schnittstellen gleich geblieben sind 5

4 Aufgabe: GUI First Window 41 Lernziele 1 GUI-Elemente kennenlernen 2 Bestehenden Code verwenden und anpassen können 42 Aufgabenstellung Verwenden Sie für diese Aufgabe die zur Verfügung gestellten Klassen-Files Guijava und GuiTestjava 2 1 Importieren Sie die beiden Files in Eclipse und führen Sie den TestDriver aus 2 Schauen Sie sich die Klasse Gui und deren show()-methode an Darin werden ua drei Hilfsmethoden aufgerufen, um Muster zu erzeugen: drawrandomcolorsquarepattern, drawgreekpattern und drawsmiley Das Ziel ist, diese so zu vervollständigen, dass in etwa dasselbe Bild(siehe unten) herauskommt 3 In der drawrandomcolorsquarepattern-methode geht es darum, im durch die Übergabewerte vorgegebenen Quadrat für jedes Pixel eine zufällige Farbe zu setzen Ein einzelnes Pixel (x, y) in einem BufferedImage image verändern Sie farblich wie folgt r, g und b stehen dabei für die Rot-, Grün- und Blauanteile und können Werte von 0 bis 255 annehmen 1 Color color = new Color(r, g, b); 2 imagesetrgb(x, y, colorgetrgb() ); 4 Schauen Sie sich für die beiden anderen Methoden die Graphics-Klasse insbesondere die im Methodenrumpf angegeben Methoden in der Java-API an und vervollständigen Sie sie ebenfalls, indem Sie sich an existierendem Code orientieren 5 Probieren Sie weitere Dinge aus; Verändern Sie die show-methode, um andere Muster zu erzeugen 2 Diese finden Sie entweder direkt auf der Übungsseite oder im OLAT 6

7