Institut für Informatik

Ähnliche Dokumente
Institut für Informatik

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

Vorkurs Informatik WiSe 15/16

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

Distributed Computing Group

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Java Einführung Programmcode

Einführung in die Programmierung WS 2014/15. Übungsblatt 0: Einführung

JAVA - Methoden

Programmieren I + II Regeln der Code-Formatierung

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Seite Seite 2

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Javakurs für Anfänger

Institut für Informatik

5. Tutorium zu Programmieren

Eclipse Tutorial.doc

Einführung in die Programmierung 1

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

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

Übung U02 (WS 2005/06) U02

Javakurs für Anfänger

Java Übung. Einführung. 12. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Vorbereitendes.

Prozentrechnung. 2.2 Pflegeversicherung. 2.3 Rentenversicherung. 2.4 Arbeitslosenversicherung. Aktuell 1,7% Wird hälftig von AN und AG getragen

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Allgemeine Informationen zum Praktikum

JAVA - Methoden - Rekursion

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Java Programmierung auf der Konsole / unter Eclipse

Primitive Datentypen

Erste Schritte zum lauffähigen Java Programm

Strukturiertes Programmieren

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

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

Aufgabenblatt Nr. 5 Generizität und TicTacToe

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

Programmiervorkurs WS 2013/2014. Instanzmethoden. Termin 6

Repetitorium Informatik (Java)

Institut fu r Informatik

Einführung in Eclipse und Java

Übungsblatt 3: Algorithmen in Java & Grammatiken

Objektorientierung II

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

Schrägbilder von Körpern Quader

Vorkurs WS 2014/15 der Fachschaft 07. Eine Einführung in die Softwareentwicklung anlässlich des Vorkurses für die Erstsemester im WS2014/15

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

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

Vorlesung Informatik II

Software-Engineering Grundlagen des Software-Engineering

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Java. CoMa-Übung II TU Berlin. CoMa-Übung II (TU Berlin) Java / 28

Tutorium Java Ein Überblick. Helge Janicke

Einstieg in die Informatik mit Java

Programmieren I. Entwicklungsumgebungen Eclipse und NetBeans. Institut für Angewandte Informatik

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue

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

Einführung in die Programmierung mit Java

Einführung in die Informatik 1 - Javainstallationsanleitung

Grundlagen der Programmierung

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung

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

Die Programmiersprache C Eine Einführung

Probeklausur: Programmierung WS04/05

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Informatik B von Adrian Neumann

Einführung in die Java- Programmierung

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Übungen zur Vorlesung Wissenschaftliches Rechnen I

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

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

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

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

Ingenieurinformatik (FK 03) Übung 4

Oberfläche von Körpern

Grundlagen der Programmierung UE

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Ein erstes Java-Programm

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Grundlagen der Programmierung UE

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Kapitel D : Flächen- und Volumenberechnungen

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Java Einführung Methoden. Kapitel 6

Erster Kontakt mit Java und Pseudocode

Eine Einführung in. für mathematisch- technische Assistenten / Informatik (IHK)

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)

JAVA als erste Programmiersprache Semesterkurs

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);

Mitarbeiter, PNR Abrechnungszeitraum: Monat 1/ Laufend Jährlich Gesamt. Gesamtbrutto 1.470, ,50

Welche Informatik-Kenntnisse bringen Sie mit?

Transkript:

Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, R. Fraedrich, R. Fülöp, H.G. Menz 2. November 2009 Abgabe: In KW 45/46 (5. November 11. November) vor der Übung. Einführung, Variablentypen, einfache Berechnungen und Funktionen 1.1 (Ü) Hello World Gegeben sei folgendes Java-Programm: c l a s s HelloWorld { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { System. out. p r i n t l n ( H e l l o World! ) ; } } Was macht dieses Programm? Geben Sie das Programm mit Hilfe eines Editors ein. Speichern Sie das Programm unter dem Namen HelloWorld.java ab. Übersetzen Sie das Programm auf der Konsole mit dem Befehl javac HelloWorld.java. Führen Sie Ihr Programm mit dem Befehl java HelloWorld aus. 1.2 (Ü) Hello World in Eclipse Starten Sie nun die IDE (integrated development environment) Eclipse. Laden Sie das Eclipseprojekt zu dem aktuellen Aufgabenblatt von dem herunter und importieren Sie es. Elearning Portal der TUM: https://www.elearning.tum.de/ Wiederholen Sie nun die Hello World Aufgabe. Erstellen Sie die Klasse HelloWorld im Package de.tum.ws2009.grprog.uebungsblatt01 in der Entwicklungsumgebung. Machen Sie sich mit den grundlegenden Funktionen wie dem Erstellen und Ausführen des Programms vertraut. Exportieren Sie nun das aktuelle Projekt als Archiv Datei und laden Sie die Datei als Lösung für das Übungsblatt 1 im Elearning Portal hoch. (Sie können später Ihre vollständige Lösung für das 1

Übungsblatt 1 erneut hochladen. Die zuletzt angegebene Version wird anschließend von den Tutoren bewertet.) 1.3 (Ü) Allgemeine Fragen zu Java (a) Welche Basistypen stehen in Java zur Verfügung? (b) Wie werden Variablen deklariert? (c) Wie sieht eine Zuweisung aus? (d) Mit welchem Datentyp werden Zeichenfolgen repräsentiert? (e) Was sind Packages in Java? 1.4 (Ü) Variablentypen In einem Programm zur Verwaltung von Bestellungen in einem Versandhandel werden u.a. folgende Variablen verwendet: (a) nameofcompany: Enthält den Firmennamen, der auf die Rechnungen gedruckt wird. (b) numberoforders: In dieser Variable wird die Anzahl der Bestellungen gespeichert, die am einem Tag durchgeführt wurden. (c) shippingcost: Europreis für die Verandkosten. (d) averageordersinmonth: Diese Variable enthält die durchschnittliche Anzahl von Bestellungen pro Monat. (e) currentdate: heutiges Datum Welche Variablentypen würden Sie für die verschienden Variablen verwenden? Begründen Sie Ihre Wahl. 1.5 (Ü) Werte vertauschen Gegeben seien die beiden Variablen a und b mit den Werten a = 3 und b = 9. Schreiben Sie nun ein Programm, dass die Werte in den Variablen vertauscht, so dass anschließend a = 9 und b = 3 gilt. Erweitern Sie hierzu die Klasse SwapValues entsprechend. 1.6 (Ü) PC Einkauf Sie wollen sich einen neuen Rechner mit folgenden Komponenten kaufen: PC im Wert von e 599,- Monitor im Wert von e 189,90 Maus im Wert von e 20,79 Keyboard im Wert von e 49,99 Drucker im Wert von e 129,90 Hinzu kommt, dass Sie zwei Gutscheine haben, die Sie für den Einkauf verwenden können. Einen 2

Wertgutschein in Höhe von e 150,- und einen Rabatt von 20 %, die kombiniert werden dürfen. Nehmen Sie zuerst an, dass erst der Wertgutschein und auf den Restbetrag der Rabatt angewendet werden kann. Berechnen Sie die folgende Beträge und geben Sie diese mit System.out.println() aus: Summe aller Komponenten Betrag des Wertgutscheins Zwischensumme nach Abzug des Wertgutscheins Ersparnis durch den Rabatt Endsumme nach Abzug des Rabatts Enthaltene Mehrwertsteuer (19 %) Ändern Sie das Programm anschließend so ab, dass erst der Rabatt angewendet wird und danach der Wertgutschein abgezogen wird und passen Sie die Ausgabe entsprechend an. Erweitern Sie die Klasse Shopping entsprechend. 1.7 (Ü) Fragen zu Funktionen in Java (a) Was versteht man unter einer Funktion/Methode? (b) Wie wird eine Funktion definiert? (c) Wofür ist das Schlüsselwort return gut? (d) Was ist das besondere an der public static void main(string[] args) Funktion? (e) Erstellen Sie nun eine Funktion public static String greatme(string name) in Ihrer HelloWorld Klasse die eine Begrüßung mit dem übergebenen Namen als String zurückgibt. Geben Sie die Nachricht auf der Konsole aus. 1.8 (Ü) Geometrische Objekte in 2D Im folgenden sollen der Umfang U und die Fläche F einfacher geometrischer Objekte bestimmt werden. Vervollständigen Sie hierzu die entsprechenden Funktionen in der Klasse GeometricObjects2D. Testen Sie Ihre Funktionen mit geeigneten Beispielen. Die Formeln zur Berechung von Umfang U und Fläche F sind für einen Kreis K: mit r dem Radius des Kreises. U K = 2 r π F K = r 2 π, für ein an den Koordinatenachsen ausgerichtetes Rechteck R, dass durch den unteren linken Punkt (x 1, y 1 ) und den rechten oberen Punkt (x 2, y 2 ) geben ist, U R = 2 a + 2 b F R = a b, wobei a und b jeweils die Seitenlängen des Rechtecks sind. 3

für ein beliebiges Dreieck D mit den Eckpunkten (x 1, y 1 ), (x 2, y 2 ), (x 3, y 3 ): U D = a + b + c a, b und c seien die Seitenlängen des Dreiecks. F D = s (s a) (s b) (s c) mit s = a + b + c. 2 Anmerkungen: Die euklidische Entfernung zwischen zwei Punkten A = (x a, y a ) und B = (x b, y b ) ist gegeben durch A B 2 = (x a x b ) 2 + (y a y b ) 2. Die Quadratwurzel kann mit double Math.sqrt(double a) berechnet werden. π steht als double Math.PI zur Verfügung. 1.9 (Ü) JavaDoc Es ist sehr wichtig, dass Quellcode lesbar und gut verständlich geschrieben wird. Hierzu gehört auch eine ausführliche und prägnante Dokumentation des Codes. JavaDoc bietet eine Möglichkeit Quellcode intuitiv und unkompliziert durch kontextsensitive Kommentare zu erweitern. Sehen Sie sich dazu die Klasse GeometricObjects2D an und erklären Sie Ihrem Tutor wie die Dokumentation hier gehandhabt wurde. Dokumentieren Sie in Zukunft Ihre Lösungen für JavaDoc. Anmerkung: Sie werden feststellen, dass alle in Java eingebauten Methoden und Klassen englische Namen haben. Um Quellcode möglichst lesbar zu halten bietet es sich an, für die eigenen Bezeichner ebenfalls englische Namen zu wählen. 1.10 (H) Lohnrechner (8 Punkte) Ihre Aufgabe ist es zu einem gegebenen Brutto-Lohn die gesetzlichen Abzüge und das resultierende Netto-Einkommen zu berechnen. Erweitern Sie dazu die Funktion computenetwages in der Klasse SalaryCalculator. Vereinfachend werden die gesetzlichen Beträge und Abgaben wie folgt angenommen: Grundfreibetrag 1 pro Jahr: e 7834,- Prozentual vom Brutto-Lohn (Arbeitnehmeranteil): Krankenversicherung: 7,9 % Rentenversicherung: 9,95 % Arbeitslosenversicherung: 1,4 % Pflegeversicherung: 1,225 % Prozentual vom zu versteuernden Einkommen (Brutto-Lohn Freibetrag): Lohnsteuer: 14 % Prozentual von der Lohnsteuer: Solidaritätszuschlag: 3,75 % 1 Der Grundfreibetrag ist ein der Teil des Einkommens auf den keine Steuer erhoben wird. Da Kontrollstrukturen wie if noch nicht bekannt sind, soll vereinfachend angenommen werden, dass der Funktion nur Einkommen über der Freibetragsgrenze übergeben werden. 4

Kirchensteuer: 8 % Die Funktion soll basierend auf dem gegebenen Brutto-Monatslohn (grosswagespermonth) folgende Beträge berechnen und ausgeben: (a) Lohn mit und ohne Freibetrag: - Brutto-Monatslohn - Freibetrag - Zu versteuerndes Einkommen (b) Sozialabgaben: - Krankenversicherung - Rentenversicherung - Arbeitslosenversicherung - Pflegeversicherung - Summe dieser Sozialabgaben (c) Steuern: - Lohnsteuer - Solidaritätszuschlag - Kirchensteuer - Summe dieser Steuern (d) Netto-Lohn (= Brutto-Lohn Sozialabgaben Steuern) (e) Prozentualer Anteil der Abgaben Abschließend soll der berechnete Netto-Lohn von der Funktion zurückgegeben werden. Hinweise: Verwenden Sie für die Berechnung ausschließlich den Datentyp double und achten Sie genau darauf auf welche Beträge die Abgaben angewendet werden. Rufen Sie die Methode in der main-methode auf um die Richtigkeit der Ausgabe zu testen. Für ein Einkommen von e 1000,- sollten die Summe der Sozialabgaben e 204,75, die Steuern e 54,31 und der Nettolohn folglich e 740,94 betragen. Der prozentuale Anteil aller Abgaben im Verhältnis zum Bruttolohn beträgt entsprechend 25,9 %. 1.11 (H) Geometrische Objekte in 3D (6 Punkte) Ähnlich wie in der Übung sollen im folgenden Oberfläche O und Volumen V von Objekten im drei dimensionalen Raum bestimmt werden. Vervollständigen Sie hierzu die entsprechenden Funktionen in der Klasse GeometricObjects3D. Testen Sie Ihre Funktionen mit geeigneten Beispielen. Die Formeln zur Berechung von Oberfläche O und Volumen V sind für eine Kugel: r ist der Radius der Kugel. O Kugel = 4 π r 2 V Kugel = 4 3 π r3. für einen an den Koordinatenachsen ausgerichteten Quader Q, der durch den unteren linken 5

vorderen Punkt (x 1, y 1, z 1 ) und den rechten oberen hinteren Punkt (x 2, y 2, z 2 ) geben ist, O Q = 2 a b + 2 b c + 2 c a V Q = a b c, wobei a, b und c jeweils die Seitenlängen des Quaders sind. für einen regulären Tetraeder T mit den Eckpunkten (x 1, y 1, z 1 ), (x 2, y 2, z 2 ), (x 3, y 3, z 3 ), (x 4, y 4, z 4 ): O T = 3 s 2 s sind die Seitenlängen des regulären Tetraeder. V T = 2 s3 12. Anmerkung: Die euklidische Entfernung zwischen zwei Punkten A = (x a, y a, z a ) und B = (x b, y b, z b ) berechnet sich analog zu dem 2D Fall durch B A 2 = (x b x a ) 2 + (y b y a ) 2 + (z b z a ) 2. 6