Institut für Informatik



Ähnliche Dokumente
Institut für Informatik

Vorkurs Informatik WiSe 15/16

Einführung in die Java- Programmierung

Informatik I Tutorial

Informatik 1 Tutorial

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

Was ist das Budget für Arbeit?

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Einführung in Eclipse und Java

1 BEDIENUNGSANLEITUNG

5. Tutorium zu Programmieren

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Dokumentenverwaltung im Internet

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

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

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

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

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

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

Wie Sie mit Mastern arbeiten

Programmierkurs Java

Einführung in die Programmierung

Einführungskurs MOODLE Themen:

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

Arbeitsblatt Verdienstabrechnung

Anleitung über den Umgang mit Schildern

GEVITAS Farben-Reaktionstest

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

Primzahlen und RSA-Verschlüsselung

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

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

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

Java: Vererbung. Teil 3: super()

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

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

Installation OMNIKEY 3121 USB

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Workflows verwalten. Tipps & Tricks

So geht s Schritt-für-Schritt-Anleitung

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Gimp Kurzanleitung. Offizielle Gimp Seite:

Bedienungshinweise shop.flaboform.de 1. Zugang

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

GEONET Anleitung für Web-Autoren

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Java Einführung Programmcode

Software- und Druckerzuweisung Selbstlernmaterialien

Barcodedatei importieren

Objektorientierte Programmierung

So gehts Schritt-für-Schritt-Anleitung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Einführung in die Informatik Tools

Electronic Systems GmbH & Co. KG

Einführung in die Programmierung

Institut fu r Informatik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Konvertieren von Settingsdateien

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

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

5. Übung: PHP-Grundlagen

Dokumentation. estat Version 2.0

II. Daten sichern und wiederherstellen 1. Daten sichern

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

Ihre Lizenz ändern. Stand 01/2015

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Gruppenrichtlinien und Softwareverteilung

Informationsblatt Induktionsbeweis

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Lubuntu als Ersatz für Windows

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

1 Vom Problem zum Programm

Objektorientiertes Programmieren mit Suse Linux

Freischalten von e-versions und Encodern

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

2015 conject all rights reserved

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Whitepaper. Produkt: combit factura manager. Mehrwertsteuererhöhung durchführen. combit GmbH Untere Laube Konstanz

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Erstellen eines Wordpress-Blogs

LEITFADEN ZUR SCHÄTZUNG DER BEITRAGSNACHWEISE

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse Liestal ATG

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Einführung in die Programmierung (EPR)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

1. So beginnen Sie eine Kalkulation

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Horizontaler Vergleich 2014

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

Zwischenablage (Bilder, Texte,...)

Windows 8. Grundlagen. Markus Krimm. 2. Ausgabe, November 2012

Transkript:

Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, A. Lehmann, R. Fraedrich, F. Reichl 02. November 08. November Einführung, Variablentypen, einfache Berechnungen und Funktionen 1.1 (Ü) Hello World Gegeben sei folgendes Java-Programm: class HelloWorld { public static void main ( String [] args ) { System. out. println (" Hello 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. Was bedeutet Übersetzen? Diskutieren Sie die Notwendigkeit mit Ihrem Tutor. 1.2 (Ü) Fortgeschrittene Editoren Programmcode kann in einfachen Standard-Editoren wie Notepad oder TextEdit schnell sehr unübersichtlich werden. Insbesondere das sogenannte Syntax-Highlighting ist für die Lesbarkeit des Codes sehr hilfreich. Falls Sie nicht bereits einen derartigen Editor benutzen, laden Sie sich nun beispielsweise Notepad++ (Windows) TextMate (OS X) jedit (alle Plattformen) http://notepad-plus-plus.org/ http://macromates.com/ http://www.jedit.org/ herunter und machen Sie sich mit den grundlegenden Funktionen vertraut. Für ein korrektes Syntax- Highlighting müssen Sie einstellen, welche Programmiersprache Sie verwenden möchten - in dieser Veranstaltung wird das ausschließlich Java sein. 1

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 an einem Tag durchgeführt wurden. (c) shippingcost: Europreis für die Versandkosten. (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, das die Werte in den Variablen vertauscht, so dass anschließend a = 9 und b = 3 gilt. Erweitern Sie hierzu entsprechend die Klasse SwapValues. 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 Wertgutschein in Höhe von e 150,- und einen Rabatt von 20 %, die kombiniert werden dürfen. 2

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 und danach der Wertgutschein abgezogen wird. 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 greetme(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 dem Radius r des Kreises. U K = 2 π r F K = π r 2 für ein an den Koordinatenachsen ausgerichtetes Rechteck R, das 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. 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 F D = s (s a) (s b) (s c) mit s = a + b + c 2 3

a, b und c seien die Seitenlängen des Dreiecks. 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. Zusatzfrage: Diskutieren Sie mit Ihrem Tutor, was bei ungültigen Eingaben (z.b. negativer Radius eines Kreises) passiert. Welche Schlüsse ziehen Sie aus Ihren Ergebnissen? Wie sollte mit derartigen Eingaben umgegangen werden? 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 mithilfe von JavaDoc! Anmerkung: Sie werden feststellen, dass alle in Java eingebauten Methoden und Klassen englische Namen haben. Um Quellcode möglichst lesbar zu halten, gehört es zum guten Ton, für die eigenen Bezeichner ebenfalls englische Namen zu wählen. Vermeiden Sie insbesondere Umlaute! 1.10 (H) Lohnrechner (+) 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 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 aus 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 dementsprechend 25,9 %. 1.11 (H) Geometrische Objekte in 3D (++) Ähnlich wie in der Übung sollen im folgenden Oberfläche O und Volumen V von Objekten im dreidimensionalen 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 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 5

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 V T = 2 s3 12 s sind die Seitenlängen des regulären Tetraeders. 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 zum 2D Fall durch B A 2 = (x b x a ) 2 + (y b y a ) 2 + (z b z a ) 2. 6