Erster Kontakt mit Java und Pseudocode



Ähnliche Dokumente
Kontrollstrukturen, Pseudocode und Modulo-Rechnung

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

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

Vorkurs Informatik WiSe 15/16

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

Diana Lange. Generative Gestaltung Operatoren

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Programmcode

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

Programmierkurs Java

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

Vorlesung Informatik II

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

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

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

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Einführung in Eclipse und Java

Primitive Datentypen

Erwin Grüner

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Einführung in die Java- Programmierung

Primzahlen und RSA-Verschlüsselung

Einführung in die Programmierung

Algorithmen mit Python

Java Kurs für Anfänger Einheit 5 Methoden

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Tutorium Java Ein Überblick. Helge Janicke

Anleitung über den Umgang mit Schildern

Übungen Programmieren 1 Felix Rohrer. Übungen

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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

Java: Vererbung. Teil 3: super()

Computeranwendung und Programmierung (CuP)

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

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

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

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Dr. Monika Meiler. Inhalt

VBA-Programmierung: Zusammenfassung

1 Vom Problem zum Programm

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

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

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

Objektorientierte Programmierung

5. Tutorium zu Programmieren

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

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

Arbeiten mit UMLed und Delphi

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Tutorium Rechnerorganisation

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

25 kann ohne Rest durch 5 geteilt werden! ist wahr

Installation und Inbetriebnahme von Microsoft Visual C Express

SWE1 / Übung 2 ( )

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Version 0.3. Installation von MinGW und Eclipse CDT

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

Objektorientierte Programmierung OOP Programmieren mit Java

Erste Schritte zum lauffähigen Java Programm

Vorkurs Informatik WiSe 16/17

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Einführung in. Logische Schaltungen

2 Einfache Rechnungen

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Einführung in PHP. (mit Aufgaben)

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Einführung zu den Übungen aus Softwareentwicklung 1

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Übungsblatt 3: Algorithmen in Java & Grammatiken

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Objektorientierte Programmierung. Kapitel 12: Interfaces

Leichte-Sprache-Bilder

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Programmierung für Mathematik (HS13)

Wie halte ich Ordnung auf meiner Festplatte?

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

Applications Applets (eingeschränkte Rechte)

Einführung in die Programmierung

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Vorkurs Informatik WiSe 17/18

Delegatesund Ereignisse

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Einführung in die Programmierung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Sin-Funktion vgl. Cos-Funktion

Transkript:

Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27

Themen der Übung 1 Java auf meinem Rechner 2 Hello World 3 Pseudocode 4 Einige Datentypen 5 Modulo-Rechnen 6 Bedingte Anweisungen 7 Vergleiche und logische Operatoren 8 Fallunterscheidungen CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 2 / 27

Java auf meinem Rechner Installation Neueste Version des Java JDK herunterladen (http://www.oracle.com/technetwork/java/javase/ downloads/jdk7-downloads-1880260.html) JDK = Java Development Kit, JRE = Java Runtime Environment JDK enthält alles Nötige um Java-Dateien zu entwickeln und auszuführen Es gibt Installationsanweisungen für jedes Betriebssystem (http://docs.oracle.com/javase/7/docs/webnotes/install/) Merkt euch, wohin ihr das JDK installiert! CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 3 / 27

Java-Programme schreiben Vom Programmierer zum Programm Programmierer nimmt einen beliebigen Text-Editor und legt eine neue.java-datei an (z.b. HelloWorld.java) Ist die Datei fertig, kann die Text-Datei mit javac HelloWorld.java (Kommandozeile) in Java-Bytecode übersetzt werden Java-Bytecode kann auf allen Systemen ausgeführt werden, für die es eine Java Virtual Machine (JVM) gibt (java HelloWorld) JVM ist Teil des JREs, der Compiler Teil des JDKs CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 4 / 27

Java Konzepte Konzepte Java ist eine objekt-orientierte Programmiersprache Man fängt mit sehr einfachen Datentypen (z.b. Zahlen) an und baut daraus komplexere Strukturen (Klassen/Objekte) Aus diesen Strukturen baut man dann noch komplexere Strukturen, etc. Klassenbibliotheken Wenn jeder bei Null anfangen würde, wäre das sehr ineffizient Es gibt große Bibliotheken voller vorgefertigter Strukturen (die ihr auch als Teil des JDKs bekommen habt) Werden wir nach und nach einführen CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 5 / 27

Ausführung einer java-datei Java Code (.java) javac compiler Byte Code (.class) Java Class Library Java Virtual Machine Machine Language CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 6 / 27

Hello World Test Erstellung der Datei HelloWorld.java Groß- und Kleinschreibung beachten Aufpassen, dass kein zusätzliches.txt an den Dateinamen angehängt wird Zum Beispiel mit den Editoren gedit, emacs, vim... oder den Entwicklungsumgebungen Eclipse, NetBeans... CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 7 / 27

Hello World Beispielprogramm 1 p u b l i c c l a s s HelloWorld { 2 3 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 4 System. out. p r i n t l n ( H e l l o World! ) ; 5 } 6 7 } Die Klasse muss den gleichen Namen haben wie die Datei (bei public class). Der Klassenname muss mit einem Buchstaben beginnen. (Nach Konvention beginnt er mit einem Großbuchstaben.) Zum Ausführen wird eine sogannte main-methode benötigt. CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 8 / 27

Hello World (Fortsetzung) Test Start eines Terminals, Navigation in das Verzeichnis mit HelloWorld.java Kompilieren der Datei mit javac HelloWorld.java Start des Programms mit java HelloWorld Wenn alles gut geht, sollte Hello World! ausgegeben werden CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 9 / 27

Die Bestandteile von Hello World 1 p u b l i c c l a s s HelloWorld { 2 3 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 4 System. out. p r i n t l n ( H e l l o World! ) ; 5 } 6 7 } class Sagt, dass ihr jetzt eine neue Klasse (= eine der erwähnten komplexeren Strukturen) definieren wollt Sichtbarkeitsmodifikatoren: public, private Schlüsselwörter wie public und private bestimmen, welche Teile eurer Klassen von außen sichtbar sind Bsp.: In einem Handy wäre das Display public (da von außen sichtbar), der Prozessor aber nicht. CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 10 / 27

Die Bestandteile von Hello World 1 p u b l i c c l a s s HelloWorld { 2 3 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 4 System. out. p r i n t l n ( H e l l o World! ) ; 5 } 6 7 } public static void main(string[] args) Definiert die Einstiegsmethode für ein Programm, damit Java weiß wo das Programm anfängt System.out.println() Ruft die Methode println() der Variable out der Klasse System auf Gibt etwas in der Kommandozeile aus CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 11 / 27

Hello World Zusammenfassung 1 p u b l i c c l a s s HelloWorld { 2 3 p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { 4 System. out. p r i n t l n ( H e l l o World! ) ; 5 } 6 7 } Was ihr von dem Programm mitnehmen solltet: System.out.println(x) gibt x auf der Kommandozeile aus und beginnt eine neue Zeile x kann dabei eine Zahl, eine Zeichenkette oder ein beliebiges komplexeres Objekt sein Ihr kennt jetzt ein Grundgerüst, um ein ausführbares Java-Programm zu erstellen CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 12 / 27

Pseudocode Probleme Fließtext-Beschreibungen von Algorithmen: meist lang & nicht präzise Java-Code: schwerer zu verstehen, viele technische Details Pseudocode als Mittelweg Idee von Pseudocode Code für Menschen statt für Computer Relativ präzise und exakt, aber keine technischen Details Keine sprach-spezifische Syntax Keine expliziten Typdeklarationen Keine Effizienz-Tricks wird daher oft in der Literatur verwendet CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 13 / 27

Pseudocode Grundform & Beispiel Grundform Algorithmenname(Parameterliste) Beispiel Input: Output: Liste der Programmschritte maximum(a,b) Input: a, b R Output: max{a, b} IF (a > b) THEN RETURN a ELSE RETURN b ENDIF CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 14 / 27

Pseudocode Befehle Bedeutung Pseudocode Java-Code Zuweisung := = Vergleich =,,,,<,> ==,!=,<=,>=,<,> Logisches Und AND, && Logisches Oder OR, Logisches Nicht NOT,! Kommentar // //,/* */ Rückgabe RETURN return Bedingte Anweisungen IF (condition) THEN... ELSE IF (condition2) THEN... ELSE... ENDIF 1 i f ( c o n d i t i o n ) { 2 3 } e l s e i f ( c o n d i t i o n 2 ) { 4 5 } e l s e { 6 7 } CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 15 / 27

Pseudocode Befehle (2) while-schleifen WHILE (condition) DO... ENDWHILE DO... WHILE (condition) 1 w h i l e ( c o n d i t i o n ) { 2 3 } 1 do { 2 3 } w h i l e ( c o n d i t i o n ) ; for-schleifen FOR i := 1 TO n DO... ENDFOR FORALL a A DO... ENDFOR 1 f o r ( i n t i =1; i <=n ; i=i +1) { 2 3 } 1 f o r ( Datentyp a : A) { 2 3 } CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 16 / 27

Pseudocode Zusammenfassung Einfache Algorithmen Einfache Operationen / Algorithmen sind in Pseudocode erlaubt A := {b,a,c} sortiere A b := wähle ein zufälliges a A Zusammenfassung HA fragt nach Java: kein Pseudocode HA fragt nach Algo: Pseudocode Keine Algorithmen als Fließtext! Kopf des Pseudocode (Name, Parameter, Input, Output) wichtig Kein goto erlaubt.-operator erlaubt CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 17 / 27

Einige Datentypen Zahlen Zur Zahldarstellung stehen in Java unter Anderem die Typen int und double zur Verfügung int entspricht hierbei ganzen Zahlen, double den reellen Zahlen Eine Variable vom Typ boolean kann den Wert true oder false haben, also einen Wahrheitswert. Achtung Rechnung mit int weist einige Besonderheiten auf In Java werden double-zahlen mit. und nicht mit, geschrieben. CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 18 / 27

Einige Datentypen Zeichenketten in Java Die Klasse String stellt nicht-veränderbare Zeichenketten dar Zeichen-Konstanten werden durch doppelte Anführungszeichen ausgewiesen: z.b. "Hello" Der Konkatenations-Operator + hängt zwei Strings aneinander "Hello" + "World" und erzeugt einen neuen String "HelloWorld" Bekommt der Konkatenations-Operator einen String und etwas anderes, wird das andere in eine String-Darstellung umgewandelt Nützliche Methoden der Klasse String s.length(): gibt die Anzahl an Zeichen in s zurück s.charat(int i): gibt das Zeichen an Position i in s zurück. Das erste Zeichen ist bei 0, das letzte bei s.length()-1. s.equals(string t): sind s und t gleich? (==,!= funktionieren hier nicht, da wir es nicht mit primitiven Datentypen zu tun haben). CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 19 / 27

Modulo-Rechnung Division mit Rest Sei a Z und b N \ {0}. Dann gibt es eindeutig bestimmte Zahlen k, r Z, so dass gilt a = k b + r, r {0, 1,..., b 1} r wird als der Rest bezeichnet, der bei der Division von a durch b entsteht. Schreibweisen Wir bezeichnen r auch als Außerdem schreiben wir a mod b (lies: a modulo b) a b mod n (lies: a kongruent b modulo n) wenn a mod n = b mod n, d.h. wenn a und b den gleichen Rest bei Division durch n haben. CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 20 / 27

Modulo-Rechnung in Java Division mit Rest in Java Den Rest einer Division kann man in Java mit dem Operator % erhalten. Er ist für Zahlen a, b wie folgt definiert: a % b = a - (int)(a/b) b; Der % Operator funktioniert auch für Gleitkommazahlen Das (int) sorgt dafür, dass aus a/b in jedem Fall ein int wird (notfalls wird abgerundet) Beispiele Bei dieser Definition kann ein negatives Ergebnis herauskommen! Anders als bei mathematischer Definition, Vorsicht! 42 mod 5 = (8 5 + 2) mod 5 = 2 mod 5, d.h. 42 2 mod 5 47 mod 11 = ( 5 11 + 8) mod 11 = 8 mod 11, d.h. 47 8 mod 11 47 % 11 = 47 (int)( 47/11) 11 = 47 ( 4) 11 = 47 ( 44) = 3 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 21 / 27

Bedingte Anweisungen Die if-anweisung if (condition) doa; else dob; führt doa; aus, wenn condition erfüllt ist, und dob; wenn nicht condition ist vom Typ boolean (d.h. ein Wahrheitswert) und kann entweder true oder false sein 1 p u b l i c c l a s s Temperature { 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 boolean c o n d i t i o n = true ; 4 i f ( c o n d i t i o n ) 5 System. out. p r i n t l n ( Die Bedingung i s t wahr! ) ; 6 e l s e 7 System. out. p r i n t l n ( Die Bedingung i s t f a l s c h! ) ; 8 9 } 0 } CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 22 / 27

Vergleiche und logische Operatoren Vergleiche a == b liefert für primitive Datentypen genau dann true, wenn a gleich b ist, und sonst false a!= b liefert für primitive Datentypen genau dann true, wenn a nicht gleich b ist, und sonst false a < b, a <= b, a >= b, a > b liefert für Zahlen genau dann true, wenn a < b, a b, a b, a > b ist, und sonst false Logische Operatoren Es gibt in Java vier logische Operatoren, die mit einem oder zwei boolean-werten arbeiten und einen neuen boolean-wert zurückgeben.!a: nicht a a && b: a und b a b: a oder b a ^ b: entweder a oder b (exklusives oder, xor) CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 23 / 27

Logische Operatoren Übersicht boolean a boolean b!a a && b a b a ^ b true true false true true false true false false false true true false true true false true true false false true false false false Logischer Kurzschluss Java wertet Boolschen Ausdruck nur aus, bis der Wert feststeht true a, false && b die Werte von a und b sind egal Das wird als logischer Kurzschluss bezeichnet Soll auf jeden Fall der ganze Term ausgewertet werden, gibt es alternative Und/Oder-Operatoren & und Gleicher Effekt, aber ohne logischen Kurzschluss CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 24 / 27

Operatorenvorrang (Höchste zuerst) Operatoren Beschreibung +,-,! Unäres Plus, unäres Minus, logisches Nicht *,/,% Multiplikation, Division, Rest +,- Addition, Subtraktion, Konkatenation von Strings <,>,<=,>= Numerische Vergleiche ==,!= Gleichheit & Logisches Und ^ Logisches Xor Logisches Oder && Logisches konditionales Und Logisches konditionales Oder?: Bedingungsoperator Bei gleicher Priorität wird von links nach rechts ausgewertet 1 Argument > 2 Argumente > 3 Argumente, Punkt- vor Strich Numerische Vergleiche > Gleichheit > Und > Oder CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 25 / 27

Zurück zu if Mehrere Anweisungen Sollen bei einer if-abfrage mehrere Anweisungen ausgeführt werden, müssen Blöcke benutzt werden if (condition) { doa; dob; } else { doc; dod; } Für komplexere Fallunterscheidungen gibt es das Konstrukt if (c1) { doa; } else if (c2) { dob } else { doc; } Beliebig viele else if s Der erste passende Fall wird ausgeführt, der Rest nicht 1 i f ( number == 0) { 2 s i g n = 0 ; 3 } e l s e i f ( number > 0) { 4 s i g n = 1 ; 5 } e l s e { 6 s i g n = 1; 7 } CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 26 / 27

Beispiele 1 boolean a = true && f a l s e true ; 2 boolean b =! ( true f a l s e ) ; 3 boolean c =! a ˆ! b ; 4 i n t number = 1 ; 5 i f ( c ) { 6 number = number 2 ; 7 } e l s e i f ( c && number > 0) { 8 number = number 3 ; 9 } e l s e { 0 number = 0 ; 1 } Was kommt raus? true && false true false true true!(true false)!(true) false!a ^!b!true ^!false false ^!false false ^ true true number = 2 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 27 / 27