Übersicht Nachtrag zu Ausdrücken

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
SWITCH - Anweisung.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Einführung in die Programmierung mit Java
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
DVG Einführung in Java1 Einführung in JAVA.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Grundkonzepte Java - Klassendefinition
Rekursive Funktionen (Fakultät)
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Programmieren Kapitel 3 – Variablen.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Allgemeines zu Java Universelle, objektorientierte Programmiersprache
Unterprogramme in JAVA
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Programmieren in C Grundlagen C 2
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
PI Burgenland Java und JavaScript 1. Teil
Programmieren in C Grundlagen C 2
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014 Referenzdatentypen
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 3. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 4. Vorlesung WS 2004/2005.
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 3. Vorlesung WS 2004/2005.
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 3. Vorlesung WS 2003/2004.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 3. Vorlesung WS 2002/2003.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Variablen und Datentypen
Java Programme nur ein bisschen objektorientiert.
Einführung in die Programmierung mit Java
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
 Präsentation transkript:

Übersicht Nachtrag zu Ausdrücken Typkonvertierung Zahlenkonstanten in arithmetischen Ausdrücken Reihenfolge der Auswertung Mathematische Funktionen: die Klasse "Math" Kontrollstrukturen for-Schleifen bedingte Programmausführung

Typkonversion für arithmetische Ausdrücke Vom kleineren zum größeren: Problemlos double d; int i = 3; d = i + 7; Vom größeren zum kleineren: Explizit double d = 3.0; double d = 3.8; int i; int i; i = (int) (d + 7); i = (int) (d + 7); Wert_mit_neuem_Typ = (Typname) Wert_mit_altem_Typ explizite Typkonvertierung wird als Casting bezeichnet

Zahlenwerte in arithmetischen Ausdrücken ganzzahlige Konstanten (z.B. 113, -73147, 0) werden immer als int interpretiert Gleitkommakonstanten (z.B. 3.1415, -4.56e-10, 0.0) werden immer als double interpretiert Bei Zuweisung eines konstanten Zahlenwertes zu einer Variablen eines kleineren Typs muss eine explizite Typumwandlung angegeben werden. Beispiele: float f = 3.0; (float) short kleinezahl = 10; (short)

Operatorenreihenfolge (Priorität) Assoziativität 1 + - Vorzeichen (einstellig) rechts (Typ) Typkonversion 2 * / % Multiplikation, Division, Rest links 3 Addition, Subtraktion 4 = Wertzuweisung Beispiel: i = (int) 5.9 + -7 / 3 5 -2 + 3 Ganzzahlige Division i =

Operatorenreihenfolge (Assoziativität) Priorität Operatoren Assoziativität 1 + - Vorzeichen (einstellig) rechts (Typ) Typkonversion 2 * / % Multiplikation, Division, Rest links 3 Addition, Subtraktion 4 = Wertzuweisung Beispiel: double i = 5 / 10 / 1.0 Ganzzahlige Division / 1.0 i =

Operator + für Zeichenketten ("Strings") Beispiel: statt: System.out.print("Die Temperatur "); System.out.print(FahrenheitIn); System.out.print(" entspricht in Celsius "); System.out.print(CelsiusOut); System.out.println(".") einfacher: System.out.print("Die Temperatur " + FahrenheitIn + " entspricht in Celsius " + CelsiusOut + "."); Der Operator "+" verkettet zwei Zeichenketten, wenn mindestens ein Operand eine Zeichenkette ist. Was gibt System.out.print(4 + 7 + "x") aus? Was gibt System.out.print("x" + 4 + 7) aus? 11x x47

Mathematische Funktionen: die Klasse "Math" Die wichtigsten mathematischen Funktionen sind in der Klasse Math definiert. Funktionen (eigentlich Methoden) von Math können in Ausdrücken verwendet werden Aufruf der Funktion f(x) durch Voranstellen des Klassennamens „Math.“ Beispiel: double a = Math.sin(34.21); Die Klasse Math ist Bestandteil der Standard-Funktionsbibliothek java.lang Die Funktionen sind in der Online-Dokumentation von Java (JDK: Java Development Kit) erläutert.

Funktionen der Klasse Math (1) Trigonometrische Funktionen double sin(double x) Sinus double cos(double x) Cosinus double tan(double x) Tangens Winkel werden im Bogenmaß angegeben! Potenzieren, Wurzeln, Logarithmen double exp(double x) Exponentialfunktion ex double log(double x) natürlicher Logarithmus double pow(double x, double y) xy double sqrt(double x) Quadratwurzel

Funktionen der Klasse Math (2) Minimum und Maximum int min(int x, int y) minimum(x,y) long min(long x, long y) minimum(x,y) float min(float x, float y) minimum(x,y) double min(double x, double y) minimum(x,y) int max(int x, int y) maximum(x,y) long max(long x, long y) maximum(x,y) float max(float x, float y) maximum(x,y) double max(double x, double y) maximum(x,y) Mathematische Konstanten (Pi, E) double PI Kreiszahl =3.14159265… double E Eulerzahl e=2.718….

Funktionen der Klasse Math (3) Runden und Abschneiden int abs(int x) | x | long abs(long x) | x | float abs(float x) | x | double abs(double x) | x | int round(float x)  x+0.5  Zufallszahlen double random() 0  Zufallszahl < 1

Übung 1 Simulation eines Würfels: Schreibe ein Programm, das bei jedem Aufruf eine zufällige ganze Zahl zwischen 1 und 6 ausgibt. Tip: Nutzt die Methode random() der Klasse Math!

for-Schleife Initialisierung Test Inkrementierung Programm: Ausgabe: class Schleife1 { public static void main (String args[]) { int i; for (i=1; i<=5; i=i+1) System.out.println("Hallo Welt!"); } Ausgabe: Hallo Welt! Schleifenrumpf Anmerkung: Sind im Schleifenrumpf mehrere Anweisungen auszuführen, so sind diese Anweisungen durch geschweifte Klammern zu einem Block zusammenzufassen.

Beispiel 1 zur for-Schleife Programm: class Schleife1 { public static void main (String args[]) int Summe = 0; int i; for (i=1; i<=5; i=i+1) Summe = Summe + i; System.out.println(Summe); } Ausgabe: 15

Beispiel 2 zur for-Schleife Programm: class Schleife1 { public static void main (String args[]) int Summe = 0; int i; for (i=1; i<=5; i=i+1) Summe = Summe + i; System.out.println(Summe); } Ausgabe: 1 3 6 10 15

Kontrollstruktur: if-then-else dient zur bedingten Ausführung von Programmteilen Syntax: if ( boolean-Ausdruck ) Anweisung1; // Then-Teil else Anweisung2; // Else-Teil Anmerkung: Boolesche Ausdrücke sind entweder wahr oder falsch, z.B. x>3 Sind im Then- oder Else-Teil mehrere Anweisungen auszuführen, so sind diese Anweisungen durch geschweifte Klammern zu einem Block zusammenzufassen.

Beispiel zur for-Schleife und if-then-else Boolescher Ausdruck mit Gleichheitsrelation "==" (im Gegensatz zu Zuweisung "=") Programm: class Schleife2 { public static void main (String args[]) int i; for (i=1; i<=8; i=i+1) System.out.print(i); if (i % 2 == 0) // ist i modulo 2 = 0? System.out.println(" ist gerade"); else System.out.println(" ist ungerade"); } Ausgabe: 1 ist ungerade 2 ist gerade 3 ist ungerade 4 ist gerade 5 ist ungerade 6 ist gerade 7 ist ungerade 8 ist gerade

Übung Erzeuge 1000 zufällige double-Werte und gib das Minimum, das Maximum sowie den Durchschnitt aller Werte aus.