Kapitel 2 Das erste Programm Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn beliebiger Text, eingeschlossen in /*... */, zur ErlŠuterung Einfache Anweisungen /* Mehrzeiliger Kommentar: Das "Hello World" Beispiel. */ public class HelloWorld { public static void main (String args[]) { System.out.println("Hello World"); // Kommentar } } Ausgabeanweisung fŸr den Text ãHello WorldÒ Rahmen (Details kommen spŠter) Noch ein Programm Vereinbarung (Deklaration) einer Variablen: Ein Name im Programm fŸr eine Stelle im Speicher, der ein Wert zugewiesen werden kann. Eine Variable besitzt einen Typ und kann nur Werte dieses Typs annehmen public class Test { public static void main (String args[]) { int n; n=3*4; System.out.println(n); } arithmetischer Ausdruck, bestehend aus zwei } Konstanten und einem Operator Zuweisung: Der Variable wird ein Wert (12) zugeordnet Numerische Datentypen Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Datentyp Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Speicherbedarf (Bits) Wertemenge byte 8 -128 ... 127 short 16 -32768 ... 32767 int 32 -2147483648 ... -2147483647 long 64 -1018 ... 1018 float 32Ê -1038 ... 1038 double 64 -10308 ... 10308 Beispiele fŸr Konstanten (Literale) der jeweiligen Typen float: 3.14f int: 139, 0xff double: 1e-9d . Operatoren Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Operatoren: Typwandlung Was passiert, wenn ich Variablen unterschiedlichen Typs verknŸpfen mšchte: + Addition - Subtraktion int n = 4; * Multiplikation double x = 3.14 + n; / Division % Modulo-Operator - Vorzeicheninvertierung (unŠr) Implizite Konversion (wenn nštig) byte -> short -> int -> long -> float -> double Signaturen: (Welche Typen hat der Operator als Ein- und Ausgabe) int x int -> int Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Explizite Konversion durch Type Cast: float celsius; double fahrenheit = 96.5; int n = 3 + 4 celsius = (float) ((5.0 - 9.0) * (fahrenheit - 32.0)); long x long -> long float x float -> float double x double -> double Typwandlung Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Logische Werte Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Typ: boolean Beispiel Werte: true false public class Test Operatoren: { public static void main (String args[]) Vergleichsoperatoren (fŸr beliebige Typen) { == (gleich) != (ungleich) < (kleiner) > (grš§er long c=1000000000000l; // das l ist notwendig! System.out.println(c); // druckt korrekten Wert System.out.println((int)c); // druckt -727379968 } } <= (kleiner gleich) >= (grš§er gleich) liefern Werte vom Typ boolean Logische Operatoren (fŸr Werte vom Typ boolean) & (und) | (oder) ^ (ausschlie§endes oder) ! (nicht) Logische Werte Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn boolean istRentner, ist Jugendlich, hatArbeit, freierEintritt; Die AusfŸhrungsreihenfolge ist streng festgelegt, entspricht aber der Ÿblichen Konvention. int alter; System.out.println((3.0+7.0)/(4.0*5.0+80.0)); // druckt 0.1 ... System.out.println((3.0+7)/(4*5+8)); // druckt 0.1 istRentner = alter >= 65; System.out.println((double)(3+7)/(4*5+8)); // druckt auch 0.1 freierEintritt = (IstRentner || ist Jugendlich) && !hatArbeit); System.out.println((3+7)/(4*5+80)); // druckt aber 0 !!! Ausgabe logischer Werte: System.out.println("It is " + hatArbeit + "that he is employed ); fŸhrt zur Ausgabe: It is true that he is employed Inkrementieren und Dekrementieren Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Mathematische Funktionen Technische Informatik Hans-Ulrich Hei§ UniversitŠt Paderborn Es gibt die Operatoren ++ und --, und zwar nachgestellt und vorausgestellt. Die mathematischen Funktionen sind in der Klasse Math statisch erklŠrt. Sie werden daher wie im folgenden Beispiel aufgerufen: Diese Operatoren erhšhen, bzw. erniedrigen, einen ganzahligen Wert um 1. Bei ++n vor der Verwendung von n, bei n++ danach. System.out.println(Math.exp(1)); // Druckt den Wert von e Es gibt die Ÿblichen Funktionen abs, sin, cos, exp, log, asin, acos und sqrt definiert. Man kann diese Operatoren auch als Anweisungen verwenden. Beispiel: int i=1; Daneben existieren Funktionen mit zwei Variablen, wie pow (berechnet xy), atan2 (berechnet den Winkel von x,y), max und min. i++; Alle diese Funktionen mŸssen mit vorangestelltem Math. aufgerufen werden. System.out.println(i); // druckt 2. Daneben existieren die Funktionen floor und ceil, die zur nŠchsten ganzzahligen Funktion ab-, bzw. aufrunden. Au§erdem existieren Kombinationen zwischen Operatoren und =. int i=1; Die Funktion round rundet zur nŠchsten ganzen Zahl, ergibt aber einen longWert. i+=2; Schlie§lich erzeugt die Funktion random eine Zufallszahl zwischen 0 und 1. System.out.println(i); // druckt 3.