Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe



Ähnliche Dokumente
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Java Einführung Operatoren Kapitel 2 und 3

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

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

Diana Lange. Generative Gestaltung Operatoren

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

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

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

Computeranwendung und Programmierung (CuP)

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

Programmierkurs Java

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

2 Einfache Rechnungen

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

Einstieg in die Informatik mit Java

Numerische Datentypen. Simon Weidmann

Programmierung in C. Grundlagen. Stefan Kallerhoff

Einführung in die Java- Programmierung

Übungen zu C++ Kapitel 1

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

Zeichen bei Zahlen entschlüsseln

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

5.3 Auswertung von Ausdrücken

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Übungen Programmieren 1 Felix Rohrer. Übungen

Tutorium Rechnerorganisation

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

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

L6. Operatoren und Ausdrücke

Übungsblatt 3: Algorithmen in Java & Grammatiken

Primitive Datentypen

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

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

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Was meinen die Leute eigentlich mit: Grexit?

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

"Alles, was einen Wert zurueckliefert, ist ein Ausdruck." Konstanten, Variablen, "Formeln" oder auch Methoden koennen Werte zurueckgeben.

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

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

Objektorientierte Programmierung

Professionelle Seminare im Bereich MS-Office

C-Vorrangregeln. Version Web:

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Java Kurs für Anfänger Einheit 5 Methoden

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Einführung in die Programmierung (EPR)

1 Vom Problem zum Programm

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Vorkurs Informatik WiSe 17/18

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

Modul 122 VBA Scribt.docx

Erwin Grüner

Excel Funktionen durch eigene Funktionen erweitern.

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

Lehrer: Einschreibemethoden

Datentypen: Enum, Array, Struct, Union

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Programmiersprachen und Übersetzer

Testen mit JUnit. Motivation

Einführung in das Programmieren Prolog Sommersemester Teil 2: Arithmetik. Version 1.0

2. Negative Dualzahlen darstellen

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

Die Post hat eine Umfrage gemacht

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

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

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

Computerarithmetik ( )

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

Englische Division. ... und allgemeine Hinweise

Das Persönliche Budget in verständlicher Sprache

Grundlagen. Kapitel 1

Gezielt über Folien hinweg springen

Leichte-Sprache-Bilder

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

Funktion Erläuterung Beispiel

3. LINEARE GLEICHUNGSSYSTEME

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

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

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

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

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

3 Die Grundrechenarten

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

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Einführung in die Programmierung II. 2. Fundamentale Datentypen, Ausdrücke

Primzahlen und RSA-Verschlüsselung

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Die Programmiersprache C

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

Anleitung über den Umgang mit Schildern

Scala kann auch faul sein

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Lernwerkstatt 9 privat- Freischaltung

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Codes und Informationsgehalt

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Transkript:

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1

Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die auf einem oder mehreren Operanden arbeitet. Er dient dazu, aus Werten neue, komplexere Werte zu berechnen. Die Anwendung eines Operators auf ein oder mehrere Operanden heißt Operation. Die Stelligkeit eines Operators gibt die Anzahl der Operanden an. In Java gibt es: einstellige (unäre, monadische) Operatoren zweistellige (binäre, dyadische) Operatoren dreistellige (ternäre, triadische) Operatoren Oliver Haase Hochschule Konstanz 2

Was sind Operatoren? Jede Operation liefert einen Ergebniswert. Beispiele: Addition: a + b Division: zaehler / 3.7 logische Verneinung:!isEmpty logisches oder: isempty gefunden Vergleich: i < 17 Operatoren sind typisiert, d.h. erwarten Operanden eines bestimmten Typs '+' erwartet numerische Operanden, ' ' erwartet boolsche Operanden. Oliver Haase Hochschule Konstanz 3

Operatorengruppen Die Java-Operatoren können in die folgenden Gruppen eingeteilt werden: arithmetische Operatoren logische Operatoren Vergleichsoperatoren Inkrement- und Dekrementoperatoren Bitoperatoren (nicht behandelt) Zuweisungsoperatoren Ternäroperator Objekt- und Klassenoperatoren Die letzte Gruppe wird später behandelt. Oliver Haase Hochschule Konstanz 4

Arithmetische Operatoren Operanden müssen numerisch sein, d.h. vom Typ byte, short, int, long, float, double oder vom Typ char (vorzeichenlose 2-Byte-Ganzzahl). Ergebnistyp (sowie Art der Arithmetik) wird nach folgenden Regeln (ausgewertet von 1 bis 4) bestimmt: 1. ein double-operand: anderer Operand wird ggf. nach double konvertiert Gleitkomma-Arithmetik Ergebnis double 2. ein float-operand: anderer Operand wird ggf. nach float konvertiert Gleitkomma-Arithmetik Ergebnis float Oliver Haase Hochschule Konstanz 5

Arithmetische Operatoren 3. ein long-operand: anderer Operand wird ggf. nach long konvertiert Ganzzahl-Arithmetik Ergebnis long 4. sonst: beide Operand werden ggf. nach int konvertiert Ganzzahl-Arithmetik Ergebnis int Operanden werden auf höchsten vorkommenden Typ angepasst, zumindest aber nach int konvertiert. Oliver Haase Hochschule Konstanz 6

Arithmetische Operatoren Operator x + y x y x * y x / y Erläuterung Addition Subtraktion Multiplikation Ganzzahl- oder Gleitkomma-Division, typabhängig: Ganzzahl: 7 / 4 = 1 Gleitkomma: 7.0 / 4.0 = 1.75 x % y Modulo, d.h. Rest der Ganzzahldivision x / y Beispiel: 7 % 4 = 3 -x Negation, einstelliges Minus Oliver Haase Hochschule Konstanz 7

Logische Operatoren Operanden müssen vom Typ boolean sein Ergebnis ist wieder vom Typ boolean Operator a & b a && b a b a b Erläuterung logisches Und, Konjunktion, 'Λ' logisches Und, aber bedingte Auswertung logisches Oder, Disjunktion, 'V' logisches Oder, aber bedingte Auswertung! Negation Oliver Haase Hochschule Konstanz 8

Wahrheitstafeln Die logischen Operatoren &, und! sind in der üblichen Weise definiert: a b a & b a b!a false false false false true false true false true true true false false true false true true true true false Merke: Im Gegensatz zum häufigen natürlichsprachigen Gebrauch ist das logische Oder ein inklusives Oder, d.h. true true true. Oliver Haase Hochschule Konstanz 9

Bedingte Auswertung Die Operatoren && und entsprechen den Operatoren & bzw., außer dass der 2. Operand nicht ausgewertet wird wenn das Ergebnis nach der Auswertung des 1. Operanden schon feststeht: a && b: a = false Ergebnis kann nur false sein! a b: a = true Ergebnis kann nur true sein! Bedingte Auswertung (lazy evaluation) spart Auswertungszeit vermeidet Auswertung von Programmteilen ( wird später erklärt) Oliver Haase Hochschule Konstanz 10

Vergleichsoperatoren Die Operatoren <, <=, >, >= arbeiten auf numerischen Werten sowie dem Typ char (vorzeichenlose 2-Byte-Ganzzahl). Für die Typanpassung gelten dieselben Regeln wie für arithmetische Operatoren Operator Erläuterung a < b ist a kleiner als b? a <= b ist a kleiner oder gleich b? a > b ist a größer als b? a >= b ist a größer oder gleich b? Oliver Haase Hochschule Konstanz 11

Vergleichsoperatoren Die Operatoren == und!= arbeiten auf numerischen Werten sowie dem Typ char Objektreferenzen boolean Operator Erläuterung a == b ist a gleich b? a!= b ist a ungleich b? Oliver Haase Hochschule Konstanz 12

Inkrement- und Dekrementoperatoren Die Operatoren arbeiten auf numerischen Typen sowie char, und liefern ein Ergebnis vom selben Typ. Operator x++ x-- ++x --x Erläuterung Postinkrement; gibt den Wert x zurück und erhöht ihn danach um 1. Postdekrement; gibt den Wert x zurück und verringert ihn danach um 1. Präinkrement; erhöht den Wert x um 1 und gibt ihn danach zurück. Prädekrement; verringert den Wert x um 1 und gibt ihn danach zurück. Oliver Haase Hochschule Konstanz 13

Zuweisungsoperatoren Neben der einfachen Zuweisung 'x = y' gibt es eine Reihe abkürzender Zuweisungen der Form 'x <op>= y', die denselben Effekt haben wie 'x = x <op> y'. Der einfache Zuweisungsoperator '=' arbeitet auf numerischen Werten, char und Objektreferenzen. Alle andere Zuweisungsoperatoren arbeiten nur auf numerischen Werten und char. Oliver Haase Hochschule Konstanz 14

Zuweisungsoperatoren Operator x = y x += y x -= y x *= y x /= y x %= y Bedeutung / äquivalent zu Weist der Variablen x den Wert y zu. x = x + y x = x y x = x * y x = x / y x = x % y Oliver Haase Hochschule Konstanz 15

Ternäroperator In Java gibt es nur einen ternären, d.h. dreistelligen Operator, den sogenannten Ternäroperator. Er hat die Form '<Bedingung>? x : y' Bedeutung: Wenn Bedingung erfüllt, liefere x als Ergebnis, sonst liefere y als Ergebnis. Beispiel: int i = (j < 10)? 47: 11; Oliver Haase Hochschule Konstanz 16

Auswertungsreihenfolge Ein Ausdruck kann mehrere Operatoren hintereinander enhalten in welcher Reihenfolge wird ausgewertet? Dafür gibt es 2 Arten von Regeln: Prioritäten: geben an, welche Operatoren Vorrang vor anderen haben "Punkt vor Strich" Assoziativität: bestimmt die Auswertungsreihenfolge für Operatoren gleicher Priorität. Merke: Die gewünschte Auswertungsreihenfolge kann immer per Hand durch geeignete Klammern erreicht werden! Oliver Haase Hochschule Konstanz 17

Prioritäten Bezeichnung Operator Priorität Komponentenzugriff bei Klassen. 15 Komponentenzugriff bei Feldern [] 15 Methodenaufruf () 15 unäre Operatoren ++, --, -,! 14 explizite Typkonvertierung (type) 13 multiplikative Operatoren *, /, % 12 additive Operatoren +, - 11 Vergleichsoperatoren <, >, <=, >= 9 Gleichheit/Ungleichheit ==,!= 8 logisches Und && 4 logisches Oder 3 Ternäroperator?: 2 Zuweisungsoperatoren =, +=, -=, *=, 1 Oliver Haase Hochschule Konstanz 18

Assoziativität Regelt Auswertungsreihenfolge für Operatoren gleicher Priorität Alle Zuweisungsoperatoren werden von rechts nach links ausgewertet. Das ermöglicht Ausdrücke der Form: 'a = b = c'; das bedeutet: 'b c, dann a b' Alle anderen Operatoren werden von links nach rechts ausgewertet. Beispiel: a + b c entspricht (a + b) c, und nicht a + (b c) Oliver Haase Hochschule Konstanz 19

Kommentare Kommentare dienen dazu, Programme zu erklären werden vom Compiler ignoriert, d.h. erzeugen keinen Bytecode! helfen nicht nur anderen, das Programm zu verstehen, sondern auch dem Autoren selbst. sollten möglichst häufig und sinnvoll verwendet werden. In Java gibt es Kommentarzeichen für einzeilige Kommentare (Kommentar endet beim Zeilenumbruch) // Kommentarzeile 1 // Kommentarzeile 2 für mehrzeilige Kommentare (explizites Kommentarende-Zeichen) /* Kommentarzeile 1 Kommentarzeile 2 kommentarzeile 3 */ Oliver Haase Hochschule Konstanz 20

Bildschirmausgabe System.out.println(<Ausgabe>); schreibt <Ausgabe> auf den Bildschirm, gefolgt von einem Zeilenumbruch ('print line'). System.out.print(<Ausgabe>); schreibt <Ausgabe> auf den Bildschirm, ohne Zeilenumbruch ('print'). <Ausgabe> kann eine Zeichenkette in Anführungsstrichen sein, z.b. "Hallo Welt". Die folgenden Anweisungen System.out.println("Hallo Welt"); System.out.print("Mein erstes "); System.out.prinln("Java-Programm"); erzeugen die Bildschirmausgabe: Hallo Welt Mein erstes Java-Programm Oliver Haase Hochschule Konstanz 21

Bildschirmausgabe Zeichenketten können mit Hilfe des '+'-Operators zusammengesetzt (konkateniert) werden. Damit können z.b. zu lange Zeilen im Programmtext vermieden werden. Die folgende Anweisung System.out.println("Hallo Welt. Mein erstes " + "Java-Programm."); erzeugt die Ausgabe: Hallo Welt. Mein erstes Java-Programm. Jede Anweisung (nicht nur Bildschirmausgabe) muss mit einem Semikolon abgeschlossen sein! Oliver Haase Hochschule Konstanz 22

Bildschirmausgabe Neben Zeichenketten können auch Werte von Variablen und Ausdrücken, sowie Literale ausgegeben werden. Die Anweisungen int i = 3; System.out.println(i + 2); erzeugen die Ausgabe: 5 Zeichenketten und Werte können konkateniert werden. Die Anweisungen int i = 3; System.out.println("i: " + i); erzeugen die Ausgabe: i: 3 Oliver Haase Hochschule Konstanz 23

Tastatureingabe Folgender Code fordert Benutzer zu Tastatureingabe auf, liest eingegebene Zeichenkette in String ein und gibt diesen auf Bildschirm aus: java.util.scanner scanner = new java.util.scanner(system.in); System.out.print("Text eingeben: "); String text = scanner.next(); System.out.println("eingegebener Text: " + text); Beispiel: 1 2 3 Text eingeben: Text eingeben:hello Text eingeben:hello eingegebener Text: hello Oliver Haase Hochschule Konstanz 24

Tastatureingabe Es können auch Ganzzahlen, Gleitkommazahlen und Boolsche Werte eingelesen werden: java.util.scanner scanner = new java.util.scanner(system.in); System.out.print("Ganzzahl eingeben: "); int zahl = scanner.nextint(); System.out.println("eingegebene Ganzzahl: " + zahl); System.out.print("Boolschen Wert eingeben: "); boolean boolwert = scanner.nextboolean(); System.out.println("eingegebener Boolscher Wert: " + boolwert); Oliver Haase Hochschule Konstanz 25