Programmierkurs (Java) 30. Oktober 2017 Institut für Informatik ÜBUNGBLATT 02. Dieses Übungsblatt wird in der Woche des 06. November besprochen.

Ähnliche Dokumente
JAVA-Datentypen und deren Wertebereich

Java Einführung Operatoren Kapitel 2 und 3

Einstieg in die Informatik mit Java

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Kapitel 3: Variablen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

public class SternchenRechteckGefuellt {

Informatik B von Adrian Neumann

Einführung in die C++ Programmierung für Ingenieure

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

Werkzeuge zur Programmentwicklung

Methoden (fortgeschritten) in C# - 1

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Übung zur Vorlesung Multimedia im Netz

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

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

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

5. Tutorium zu Programmieren

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

Grundlagen der Programmierung

Schleifenanweisungen

Informatik I Übung, Woche 40

Operatoren und Ausdrücke

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Programmieren I. Kapitel 5. Kontrollfluss

Diana Lange. Generative Gestaltung Operatoren

C programmieren. Jürgen Wolf

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Greenfoot: Verzweigungen

Welche Informatik-Kenntnisse bringen Sie mit?

Programmieren I + II Regeln der Code-Formatierung

Objektorientierte Programmierung OOP Programmieren mit Java

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

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

5 Codierung nach RSA (Lösung)

Modul 122 VBA Scribt.docx

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

Die Programmiersprache C Eine Einführung

, 2015S Übungstermin: Mi.,

Primitive Datentypen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

JAVA - Methoden

Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Probeklausur: Programmierung WS04/05

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Primitive Datentypen und Felder (Arrays)

AuD-Tafelübung T-B5b

RO-Tutorien 3 / 6 / 12

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

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

GI Vektoren

Javakurs für Anfänger

Elementare Datentypen in C++

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

Einstieg in die Informatik mit Java

Einführung in die Programmierung mit VBA

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

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmierkurs Java

2.5 Primitive Datentypen

Multimedia im Netz Wintersemester 2011/12

Übungen zu C++ Kapitel 1

Elementare Konzepte von

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

OO Programmierung in Java

JAVA - Methoden - Rekursion

Tutorium Rechnerorganisation

Programmierung mit C Zeiger

Die Programmiersprache C

Der Datentyp String. Stringvariable und -vergleiche

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

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

Processing Info zu Variablen und Bedingungen

Java Einführung Klassendefinitionen

PIWIN 1 Übung Blatt 5

Grundlagen der Informatik I. Übung

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

Einführung in die Java- Programmierung

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

Programmierkurs Java

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

JavaScript und PHP-Merkhilfe

3. Algorithmenentwurf und JAVA. Informatik II für Verkehrsingenieure

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

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

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

Ein erstes Java-Programm

Objektorientierte Programmierung OOP Programmieren mit Java

Grundlagen der Informatik

Java-Vorkurs Wintersemester 15/16

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

7. Übung zur Vorlesung Grundlagen der Informatik

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Transkript:

Programmierkurs (Java) 30. Oktober 2017 Institut für Informatik Winter 2017/18 Dr. V. Weil ÜBUNGBLATT 02 Online-Abgabe bis spätestens 06.11.2017 um 14:00 Uhr; Online-Abgabe nur mit Benutzernamen und Passwort. Nur Online-Abgabe-Aufgaben können online eingereicht werden. Handschriftliche Abgaben bis spätestens 06.11.2017 um 14:00 Uhr im Briefkasten Weyertal 121, 5. Etage. Dieses Übungsblatt wird in der Woche des 06. November besprochen. = http://informatik.uni-koeln.de/weil/programmierkurs.php Organisatorische Informationen In der Woche vom 06.11. werden die Übungsblätter 01 und 02 besprochen. Wenn möglich, bringen Sie Ihren eigenen Laptop zu den Übungen mit. Handschriftliche Abgaben: Vergessen Sie nicht, Name und Matrikelnummer auf Ihre Abgabe zu schreiben. Sie dürfen zu insgesamt dritt abgeben. Feiertage: Hinweise dazu gab es in der Vorlesung und auf Übungsblatt 01. Aufgabe 14 [Deklarationen von Variablen] 6 Punkte Eine Liste der reservierten Schlüsselwörter für Java finden Sie beispielsweise hier: http://openbook.rheinwerk-verlag.de/javainsel/javainsel_02_001.html Geben Sie an, welche Namen als Variablennamen in Java verboten sind. (a) Switch (b) if (c) 2_codierung (d) _TolleWolle (e) main (f) return42 (g) String (h) this (i) that (j) returns (k) bit (l) true Hinweis: Variablennamen, die Konventionen nicht einhalten, aber sonst den Namensregeln entsprechen, gelten folglich als erlaubt. Aufgabe 15 [Binärkodierung] 3 Punkte Das im alltäglichen Gebrauch verwendete System, um Zahlen darzustellen, ist das Dezimalsystem. Im Dezimalsystem wird eine nichtnegative Ganzzahl 1 als nicht durch Kommata getrennte Folge von Koeffizienten des folgenden Terms kodiert: 1 also die Zahlen 0, 1, 2, 3, 4... w = a n 10 n + a n 1 10 n 1 +... + a 1 10 + a 0 10 0 (1) 1

Der Koeffizient zur kleinsten Potenz steht dabei ganz rechts, der Koeffizient zur zweitkleinsten Potenz links daneben und so weiter. Die Koeffizienten können einen der Werte {0, 1,..., 9} annehmen, also a i {0,..., 9} für i {0,..., n}. Wir berechnen den Wert w einer nichtnegativen Ganzzahl, indem wir also ihre Kodierung q = a n a n 1... a 1 a 0 anhand des Terms in (1) dekodieren. Beispiel: Schreiben wir im Alltag 230, so kodieren wir damit (in der Regel unbewusst) die nichtnegative Ganzzahl mit Wert 230 im Dezimalsystem. Wir schreiben lediglich die Koeffizienten a 2 = 2, a 1 = 3 und a 0 = 0 auf. Wir berechnen den Wert, für den die Kodierung 2 2 3 0 steht, dann so: 230 = 2 10 2 + 3 10 1 + 0 10 0. Was etwas verwirrend sein mag: Die Kodierung (230) und der Wert (230), den wir aus der Kodierung berechnen, sind hier identisch. Das liegt daran, dass wir bereits im Dezimalsystem denken und schreiben. Den Wert w einer natürlichen Zahl, die binär kodiert ist, berechnen wir auf eine ganz ähnliche Weise. Statt der Basis 10 legen wir einen zu (1) analogen Term zugrunde, diesmal zur Basis 2: w = a n 2 n + a n 1 2 n 1 +... + a 1 2 + a 0 2 0 (2) Zurück zum Beispiel: Wir möchten den Wert w einer nichtnegativen Ganzzahl berechnen. Diese Zahl ist im Binärcode q angegeben: Wir können w dann so berechnen: q = c n c n 1... c 1 c 0 w = c n 2 n + c n 1 2 n 1 +... + c 1 2 + c 0 2 0 (3) Sei also eine natürliche Zahl, binär kodiert, so angegeben: q = 11100110 (4) Dann ermitteln wir den Wert w der durch den Code q dargestellten Zahl so: w = 1 128 + 1 64 + 1 32 + 0 16 + 0 8 + 1 4 + 1 2 + 0 1 (5) = 230 Wir wandeln also eine Zahl, die im Binärcode angegeben ist, in Dezimalcode um 3. Geben Sie (im Dezimalcode) den Wert w der Zahl an, die wir durch die Binärkodierung q angegeben haben. (6) (a) q = 1101 (b) q = 0100 (c) q = 1111001010 (d) q = 1001 (e) q = 1 (f) q = 10 2 Die Leerzeichen zwischen 2 und 3 sowie 3 und 0 dienen lediglich der Verdeutlichung, im Alltag schreiben wir sie nicht hin. 3 Hinweis: Die Bibliotheken dieser Hochschule bieten eine großzügige Menge an Büchern (gebunden oder elektronisch) an, in denen dieser Sachverhalt nochmals erklärt wird. Zu finden beispielsweise in einführenden Büchern zur Informatik, welche Zahlensysteme behandeln, wie zum Beispiel das hier besprochene Binär- beziehungsweise Dualsystem. 2

Aufgabe 16 [Wert Name Datentyp] 5 Punkte In Abbildung 1. sehen Sie den Ausschnitt eines Quellcodes. Für die Stellen Stelle 2 bis Stelle 6 im Programm geben Sie bitte an, welches der aktuelle Wert der Variablen z, y und q ist. Für Stelle 1 haben wir Ihnen das beispielhaft angegeben: Stelle 1: Wert von z ist 0, Wert von y ist 0, Wert von q ist false. Abbildung 1: Aufgabe 16. Es folgt eine Aufgabe mit Online-Abgabe auf der nächsten Seite. 3

Aufgabe 17 [Online-Abgabe: Binärkodierung] 16 Punkte Schreiben Sie ein Programm mit 2 Klassen und folgender Struktur und Namensgebung: Projekt: Blatt_02 Package: aufg_17 Class: Main Class: Binaer Dabei muss Ihre Main-Klasse wie in Abbildung 2 aussehen. Diese Klasse darf von Ihnen nicht verändert werden. Wir stellen Ihnen Main.java und Binaer.java zur Verfügung 4 (siehe ). Abbildung 2: Main-Klasse in Aufgabe 17. Weiterhin muss Ihre Binaer-Klasse wie in Abbildung 3 aussehen. Abbildung 3: Binaer-Klasse für Aufgabe 17. Sie dürfen nun den Blockkommentar JAVA löschen und dort Ihre Anweisungen hinschreiben. Um das Programm laufen bzw. testen zu lassen, führen Sie die Main-Klasse aus. Kurz gesagt: Programmieren in Binaer.java, ausführen mit Main.java. Die Variablen bit1, bit2, bit4, bit8 und decimal haben wir bereits für Sie deklariert. Das bedeutet, Sie deklarieren diese Variablen nicht noch einmal (Sie können und müssen sie aber natürlich benutzen). 4 Es bleibt Ihnen überlassen, ob Sie die Main.java selbst abtippen oder herunterladen. 4

Sollten Sie weitere Variablen benötigen, so können Sie diese problemlos in Ihrem Programmierabschnitt deklarieren. Schreiben Sie nun ein Programm, welches den Wert von bit1 als Koeffizient c 0, bit2 als Koeffizient c 1, bit3 als Koeffizient c 2 und bit8 als Koeffizient c 3 aufnimmt (siehe Aufgabe 15) und daraus die Dezimaldarstellung des kodierten Wertes berechnet und in decimal speichert. Weiterhin sollte Ihr Programm prüfen, ob die für die Variablen bit1 bis bit8 eingegebenen Werte tatsächlich gleich 1 oder gleich 0 sind. Sollte etwas anderes eingegeben werden, so sollte in Ihrem Code der Wert der Variablen falscheeingabe auf true und decimal auf den Wert 1 gesetzt werden. Ihr Programm sollte ausschließlich die in der Vorlesung und in den Übungen angegebenen Werkzeuge benutzen, also im Wesentlichen die Auswahlstruktur if, die Vergleichsoperatoren (siehe unten), die arithmetischen Operatoren zur Addition von Zahlwerten (das hier: + ) und zur Multiplikation von Zahlwerten ((das hier: * ; siehe auch Aufgabe 16). Sie dürfen die Werte der Variablen 5 bit1 bis bit4 in der Klasse Binaer zu Ihrer eigenen Kontrolle ( Habe ich das jetzt richtig progammiert? ) ändern. Diese Werte werden von uns aus Testgründen ohnehin überschrieben. In der Vorlesung haben Sie bereits den Vergleichsoperator 6 < ( kleiner als ) kennengelernt. Vergleichsoperatoren vergleichen Ausdrücke anhand ihrer numerischen Werte miteinander. Als Ergebnis liefert ein solcher Vergleich einen Wert, der vom Typ boolean ist und somit entweder true ( richtig, wahr ) oder false ( falsch, unwahr ) ist. Beispiel: Hat die int-variable y den Wert 5, dann ist der Wert des Ausdrucks y < 4 false und ist vom Typ boolean. Die Vergleichsoperatoren in Java sind < kleiner als <= kleiner als oder gleich > größer als >= größer als oder gleich == gleich! = ungleich Weitere Beispiele: Hat die int-variable y den Wert 5, dann ist der Wert des Ausdrucks y == 4 und des Ausdrucks y <= 4 false und ist vom Typ boolean. Der Wert des Ausdrucks y > 4, y >= 4 und y!= 4 ist true und ist vom Typ boolean. Möchten Sie Ihr Programm auf unseren Server hochladen, so folgen Sie bitte den Anweisungen aus Aufgabe 3 (Insbesondere laden Sie bitte eine einzige.zip - Datei hoch). ACHTUNG: Da wir in unser Testsystem noch die Testfälle einpflegen müssen, macht es noch keinen Sinn, bereits jetzt Ihre Lösung hochzuladen. Schauen Sie bitte regelmäßig auf die Webseite, dort wird angekündigt, ab wann Sie Aufgabe 17 hochladen können. 5 nicht aber deren Datentyp oder Name 6 auch relationaler Operator genannt 5