Übungsblatt 1. Java Vorkurs (WS 2017)

Ähnliche Dokumente
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Kapitel 3: Variablen

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

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

Java-Vorkurs Wintersemester 15/16

Ein erstes Java-Programm

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

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

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Einführung in die Programmierung 1

JAVA-Datentypen und deren Wertebereich

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

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

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

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

Javakurs für Anfänger

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Vorkurs Informatik WiSe 15/16

Welche Informatik-Kenntnisse bringen Sie mit?

Greenfoot: Verzweigungen

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

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

Objective-C CheatSheet

Programmieren I + II Regeln der Code-Formatierung

Objektorientierte Programmierung OOP Programmieren mit Java

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

Einstieg in die Informatik mit Java

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

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

Primitive Datentypen

5.4 Klassen und Objekte

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

Einstieg in die Informatik mit Java

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

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

Selbsteinstufungstest Vorkurs Programmieren

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

Übungsblatt 3: Algorithmen in Java & Grammatiken

JAVA - Methoden

Greenfoot: Variablen Nicolas Ruh und Dieter Koch

JAVA - Methoden - Rekursion

2 Einfache Rechnungen

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

Einführung in die C-Programmierung

Programmierung in C. Grundlagen. Stefan Kallerhoff

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Diana Lange. Generative Gestaltung Operatoren

Elementare Datentypen in C++

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung)

Tutorium Rechnerorganisation

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

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

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

Übungsblatt 4. Java Vorkurs (WS 2015)

Einführung in die Java- Programmierung

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

2.5 Primitive Datentypen

Processing Info zu Variablen und Bedingungen

Primitive Datentypen und Felder (Arrays)

Werkzeuge zur Programmentwicklung

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

RO-Tutorien 3 / 6 / 12

Sie müssen den Test bis 20:00 Uhr am Abgabetag dieses Übungszettels absolviert haben.

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

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

Einführung in die Programmierung, WS 14/15 Übungsleiter: Sebastian Ebers Aufgabenblatt 2

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

AuD-Tafelübung T-B5b

Der Datentyp String. Stringvariable und -vergleiche

Deklarationen in C. Prof. Dr. Margarita Esponda

Objektorientierte Programmierung

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

Programmieren I. Kapitel 5. Kontrollfluss

Computeranwendung und Programmierung (CuP)

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Arbeiten mit JavaKara

Einstieg in die Informatik mit Java

Repetitorium Informatik (Java)

Numerische Datentypen. Simon Weidmann

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

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

1. Der Einstieg in Java. Was heißt Programmieren?

1 Polymorphie (Vielgestaltigkeit)

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

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

Objektorientierte Programmierung OOP Programmieren mit Java

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Die Programmiersprache C99: Zusammenfassung

Einführung in die Java- Programmierung

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

Transkript:

Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die Klasse und teste, ob das Programm kompiliert. 1 p u b l i c c l a s s HelloJava { 2 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 3 4 } 5 } (b) Füge nun folgende Zeile innerhalb der Klammern der main-methode ein. Wenn du alles richtig gemacht hast, sollte das Programm kompilieren und in der Konsole eine 42 erscheinen. 1 System. out. p r i n t l n ( 4 2 ) ; (c) Übungen: Lösche 42 aus System.out.println(42);. Erwartet: Keine sichtbare Ausgabe. Ersetze 42 durch 42, 42. Erwartet: Fehler beim Kompilieren, println erwartet genau ein Argument. Ersetze 42 durch 42.0. Erwartet: Ausgabe im Format eines double, 42.0. Ersetze 42 durch andere Zahlen. Ersetze 42 durch "42". Erwartet: gleiche Ausgabe wie bei der einzelnen Zahl, Eclipse färbt "42" im Code aber anders ein. Ersetze "42" durch "Hello Java". Erwartet: Hello Java steht in der Konsole. Ersetze "Hello Java" durch Hello Java. Erwartet: Fehler beim Kompilieren, Text wird als Code behandelt. Ersetze Hello Java durch "Hello \n Java". Erwartet: die Wörter werden in Zeilen aufgeteilt. Teste auch die Wirkung von \t, \\, \" zwischen den Anführungszeichen. Kopiere die komplette Zeile mit dem println-befehl und füge sie direkt unter dieser Zeile ein weiteres Mal ein. Erwartet: Ausgabe verdoppelt Was passiert, wenn man in der oberen Zeile das ln von println löscht? Zeichne einen Smiley in die Konsole Versuche nun folgenden Text auf der Konsole auszugeben: Java Vorkurs 2017 Fachgruppe: "Herzlich Willkommen an der Universitaet Stuttgart."

Java Vorkurs (WS 2017) Übungsblatt 1 Seite 2 von 5 Aufgabe 2 Kommentare In Java gibt es mehrere Möglichkeiten den eigentlichen Code mit Hinweisen für sich selbst und andere Programmierer zu versehen: 1. Einzeilige Implementierungskommentare: 1 // A l l e s h i n t e r den zwei Schr ä g s t r i c h e n i s t e i n Kommentar ( b i s zum Z e i l e n e n d e ). 2. Mehrzeilige Implementierungskommentare: 1 / 2 A l l e s von / b i s / i s t e i n Kommentar 3 / 3. Javadoc Kommentare: 1 / 2 Javadoc Kommentare beginnen mit / ( zwei Sterne! ) 3 In einem Javadoc Kommentar kann man auch s p e z i e l l e Tags verwenden : 4 5 @author Max Mustermann 6 7 Javadoc Kommentare s i n d s p e z i e l l, da e s v i e l e Werkzeuge gibt, d i e d i e Kommentare 8 a u t o m a t i s i e r t a u s l e s e n können und daraus gut l e s b a r e Dokumente e r s t e l l e n kö nnen. 9 10 Es i s t s i n n v o l l, Javadoc Kommentare nur ueber Klassen und Methoden zu setzen, da s i e nur 11 dort r i c h t i g a u s g e l e s e n werden. 12 13 E c l i p s e z e i g t euch beim Aufruf e i n e r Methode den entsprechenden Javadoc Kommmentar an, 14 wenn i h r den Mauszeiger ü ber dem Methodenaufruf p o s i t i o n i e r t. 15 / Eure Klasse HelloJava aus Aufgabe 1 sollte etwa so aussehen (ohne die Kommentare): 1 // Hier s o l l t e e i n Javadoc hin 2 p u b l i c c l a s s HelloJava { 3 4 // Hier s o l l t e e i n Javadoc hin 5 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 6 7 // Hier wü rde e i n Implementierungskommentar passen 8 System. out. p r i n t l n ( 4 2 ) ; 9 } 10 } (a) Füge an den oben kommentierten Stellen in eurer Klasse den passenden Kommentartyp ein. Benutze dabei nicht copy & paste, damit du nicht die Eclipse Autovervollständigung umgehst. Kommentiere ab jetzt am besten alles, bei dem du dir unsicher bist, damit du dir daheim nochmal deine Kommentare durchlesen kannst! (b) Übungen: Ändere den Autor der Klasse auf euren Namen Füge einen @version-tag unter dem @author-tag hinzu Füge zu dem JavaDoc Kommentar der main(string[] args)-methode eine Beschreibung Was für @-Tags kann man noch in Javadoc benutzen? Wie kann man in Eclipse das Javadoc zu einer Webseite kompilieren lassen?

Java Vorkurs (WS 2017) Übungsblatt 1 Seite 3 von 5 Aufgabe 3 Variablen und Datentypen Verwende die in Aufgabe 2 kommentierte Klasse HelloJava. (a) Deklariere innerhalb der main-methode (aber oberhalb der println() Zeile) eine int Variable mit dem Namen zahl. Weise dann der Variable zahl den Wert 42 zu: 1 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 2 i n t z a h l ; 3 z a h l = 4 2 ; 4 5 System. out. p r i n t l n ( 4 2 ) ; 6 } (b) Die Variable wird bis jetzt von Eclipse immer noch gelb markiert. Wir haben der Variable zwar einen Wert gegeben, benutzen diese aber noch nicht. Ersetze deshalb die 42 in println(42) durch zahl und führe das Programm aus. (c) Füge nun eine weitere Zuweisung (nicht 42) und eine weitere println()-anweisung unter der ersten Anweisung ein. Was passiert? (d) Übungen: Ersetze die erste Zuweisung (42) durch eine negative Zahl. Erwartet: Negative, dann positive Zahl in Konsole. Ersetze die erste Zuweisung durch eine sehr große Zahl (> 2147483647). Erwartet: Fehler beim Kompilieren, die Zahl ist zu groß für int. Ersetze die erste Zuweisung durch 42.0. Erwartet: Fehler beim Kompilieren, da falscher Datentyp. Ersetze bei der Deklaration int durch double (oder float). Erwartet: Ausgabe von 42.0. Ersetze bei der Deklaration double durch boolean und beide Zuweisungen zu true oder false. Erwartet: true und false ausgeben. Ersetze bei der Deklaration boolean durch String und beide Zuweisungen zu "hier irgendein Text". Erwartet: hier irgendein Text steht zweimal in der Konsole. Finde den Unterschied zwischen int und long, indem du verschiedene Zahlen ausprobierst. Finde den Unterschied zwischen float und double, indem du verschiedene Zahlen ausprobierst. Was ist ein char? Benutze char im richtigen Kontext und gebe es auf der Konsole aus. Deklariere selbst eine Variable und führe Teile der obengenannten Aufgaben erneut durch. Aufgabe 4 Rechenoperatoren für Zahlen In dieser Aufgabe wollen wir nun mit Variablen rechnen. Du wirst die Anwendung der Grundrechenarten in Java lernen und das Rechnen mit Variablen unterschiedlichen Typs. (a) Erstelle eine neue Klasse RechnerKlasse und füge eine leere main-methode hinzu. Deklariere innerhalb der main-methode zwei Variablen vom Typ int mit den Namen zahl1 und ergebnis und gebe die Variable ergebnis in der Konsole aus. Achtung: Eclipse sollte nun einen Fehler anzeigen, der besagt, dass die Variable ergebnis nicht initialisiert wurde. Setze daher die Variable gleich 0. Setze auch die Variable zahl1 auf eine ganze Zahl deiner Wahl. (b) Nun ist alles soweit, damit wir mit dem Rechnen beginnen können. Im ersten Schritt wollen wir zu der Variable zahl1 5 addieren und das Ergebnis in der Variable ergebnis speichern. Dies funktioniert mit folgender Code-Zeile: 1 e r g e b n i s = z a h l 1 + 5 ; Wenn du nun das Programm startest, sollte auf der Konsole die um 5 erhöhte Zahl stehen. (c) In gleicher Weise kannst du auch die anderen Grundrechen-Operatoren anwenden. In Java werden sie durch + (plus), - (minus), * (mal) und / (geteilt) dargestellt. Bei der Division ist noch

Java Vorkurs (WS 2017) Übungsblatt 1 Seite 4 von 5 etwas besonderes zu beachten, wie wir gleich noch sehen werden. Als Test kannst du mal das + durch ein - oder * ersetzen und schauen, ob beim Ausführen das erwartete Ergebnis auf der Konsole angezeigt wird. (d) Setze nun die Variabele zahl1 auf 19 und ersetze den Operator durch / und lasse das Programm laufen. Wir erwarten die Ausgabe 3.8, da 19/5 = 3.8. Vergleiche das erwartete Ergebnis mit der Ausgabe auf der Konsole. Was fällt dir auf und woran könnte dies liegen? (e) Verändere nun die Methode wie folgt und lasse anschließend das Programm erneut kompilieren. 1 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 2 3 i n t z a h l 1 = 1 9 ; 4 double e r g e b n i s = 0 ; 5 6 e r g e b n i s = z a h l 1 / 5. 0 ; 7 8 System. out. p r i n t l n ( e r g e b n i s ) ; 9 } Wie hat sich das Ergebnis nun verändert? Wie könnte dies mit den Änderungen im Code zusammenhängen? (f) Wir wollen nun mit einer zweiten Variable rechnen. Füge dazu im oberen Teil der main-methode bei den anderen Variablen eine weitere Variable zahl2 von Typ int ein und initialisiere sie auf 0. Weise nun der Variable ergebnis den Wert zahl1 / zahl2 zu. Führe das Programm erneut aus. Was stellst du fest? (g) Verändere nun selbst einmal die Werte der Zahlen und den Operator, um einige andere Berechnungen durchzuführen. (h) Deklariere nun eine weitere Variable zahl3 vom Typ int und initialisiere sie auf den Wert 4. Setze die Variablen zahl1 und zahl2 auf die Werte 19 bzw. 2. Speichere nun in der Variable ergebnis das Ergebnis der Formel zahl1 + zahl2 zahl3. Beachtet Java Punkt-Vor-Strich Rechnung? Prüfe dies auch durch Ausprobieren mit anderen Zahlen und einer anderen Formel. Teste auch, ob Klammern dieselbe Funktion wie in der Mathematik haben.

Java Vorkurs (WS 2017) Übungsblatt 1 Seite 5 von 5 Aufgabe 5 Casten Manchmal ist es nötig, Typen zu konvertieren. In Java nennt man dies Casten. Typ Länge Bereich boolean 1 Bit true / false char 16 Bit Einzelnes Zeichen (65.536 verschiedene Zeichen) byte 8 Bits -128 bis 127 short 16 Bits -32.768 bis 32.767 int 32 Bits -2.147.483.648 bis 2.147.483.647 long 64 Bits 2 63 bis 2 63 1, ab Java 8 auch 0 bis 2 64 1 float 32 Bits +/-1,4E-45 bis +/-3,4E+38 double 64 Bits +/-4,9E-324 bis +/-1,7E+308 (a) Erstelle eine neue Klasse mit dem Namen Casten. Und lege die main-methode an. Deklariere innerhalb der main-methode eine Variable vom Typ int mit dem Namen zahl1 und initialisiere den Wert auf 42. Des Weiteren wird eine Variable vom Typ double mit dem Namen zahl2 benötigt. Diese Variable soll mit dem Wert der Variable zahl1 initialisiert werden. Füge am besten noch zwei println Befehle hinzu, um die Werte der Zahlen auszugeben. Starte das Programm, welchen Wert hat die Variable zahl2? Was ist der Unterschied zwischen zahl1 und zahl2? (b) Drehe jetzt das Ganze um: Weise nach den println Befehlen der Variable zahl2 den Wert 42.0 zu und danach der Variable zahl1 den Wert zahl2. Schreibe danach zwei weitere println- Befehle für die beiden Variablen. Achtung: Es wird hier eine Fehlermeldung auftreten. Woran liegt das? Was ist das Problem? (c) Um aus einer Fließkommazahl eine Ganzzahl zu machen, braucht Java die Bestätigung, dass die Ziffern hinter dem Komma wegfallen dürfen, um einen ungewollten Datenverlust zu vermeiden. Dies geschieht indem man vor den Wert vom Typ float den benötigten Typ, in diesem Fall ein int, in Klammern setzt. Diesen Vorgang bezeichnet man als casten. Behebe nun diesen Fehler aus Aufgabenteil (b). (d) Übungen: Probiere, anstatt double, auch Datentypen wie z.b. long aus. Erwartet: Fehler beim Kompilieren, da long kann nicht automatisch in int gecastet werden, da long längere Zahlen speichern kann als int. Passe den vorherigen Code so an, dass er kompiliert. double und float stehen in einer ähnlichen Beziehung wie int und long. In welche Richtung muss man casten, in welche Richtung geht das ohne Cast? Kann man auch von boolean nach int casten? Was passiert, wenn man den String "Hello world" nach int casted? Erwartet: Das Programm kompiliert nicht. Stelle sicher, dass die Variable zahl1 vom Typ int. ist. Weise zahl1 diesmal große Zahlen zu. Ab wann generiert Eclipse eine Fehlermeldung beim Kompilieren (siehe auch Aufgabe 3 in den Teilaufgaben)? Woran kann dies liegen?