Kapitel 4. Programmierkurs. Arten von Datentypen. Datentypen

Größe: px
Ab Seite anzeigen:

Download "Kapitel 4. Programmierkurs. Arten von Datentypen. Datentypen"

Transkript

1 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln WS 07/08 Datentypen und Operatoren Einschub Binärdarstellung Ganzzahlige Numerische Datentypen Logischer Datentyp Typumwandlung Rationale numerische Datentypen (Gleitkommazahlen) Der alphanumerische Datentyp char 1 / 6 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen legt der Datentyp fest: Welche Werte die Variable annehmen kann. Wieviel Speicherplatz die Variable belegen darf. Welche Operationen auf die Variable angewendet werden dürfen. Damit auch implizit in welchen Anweisungen sie vorkommen kann (später). Wir unterscheiden hier wieder Arten von Datentypen: Primitive Datentypen: Ganzzahlige numerische Datentypen: int, long,... Logischer Datentyp: boolean Rationale numerische Datentypen: float, double,... Alphanumerischer Datentyp: char Vordefinierte Datentypen (z.b. : BufferedReader, InputStreamReader) Selbstdefinierte Datentypen (z.b. : Greets, Age) 3 / 6 4

2 Vor-/Selbstdefinierte Datentypen Primitive Datentypen Vor-/ Selbstdefinierte Datentypen stehen in engem Zusammenhang mit Objektorientierung und werden daher später behandelt. Vorgriff Klasse - Datentyp - Objekt: Jede (wie bisher gesehen) definierte Klasse XYZ spezifiziert einen eigenen Datentyp XYZ. Es können Variablen mit diesem Datentyp als deklariert werden: XYZ beispiel Solche Variablen sind Objekte vom Typ XYZ und werden Instanzen der Klasse XYZ genannt. Bei sogenannten primitiven Datentypen tritt die Objektorientierung zunächst in den Hintergrund. Sie heissen auch Standarddatentypen, da sie von quasi allen Programmiersprachen mehr oder weniger äquivalent implementiert sind. Im einfachsten Fall möchte man mit Variablen eines solchen Datentyps ganze oder natürliche Zahlen darstellen. Diese müssen im Computer natürlich binär gespeichert werden. Reserviert ein solcher Datentyp n Bits Speicherplatz, so kann man entweder die n natürlichen Zahlen von 0 bis n 1 oder die n ganzen Zahlen von n 1 bis n 1 1 darstellen. 5 / 6 6 Natürliche Zahlen: Binärcodierung Natürliche Zahlen: Zahlenkreis Darstellung natürlicher Zahlen mit n Bits: Die Zahlen von 0 bis n 1. Beispiel: n = 3 Dezimal Binär Dezimal Binär Dezimal Binär = 3 ist mit 3 Bits (wegen der Darstellung der 0) nicht mehr darstellbar. 8 wäre in Binärdarstellung mit 4 Bits: 1000 Das erste Bit entfällt, bei 3-Bit-Darstellung und 000 entspricht bereits der Codierung der 0: Überlauf. Addiere: = 1000 n = 3 Bits: Höchstes Bit fällt weg: ( = 000) bin (7 + 1 = 0) dez Fehler durch Überlauf! / 6 8

3 Ganze Zahlen - Vorzeichencodierung Ganze Zahlen - Einerkomplement Zur Darstellung von positiven ganzen Zahlen muss nun noch die für negative hinzu kommen. 1. Möglichkeit: 1. Bit codiert Vorzeichen. Beispiel: n = 3 Dezimal Binär Dezimal Binär Darstellung ganzer Zahlen von n 1 bis n doppelt codiert.. Möglichkeit: Einerkomplement ( x ist bitweises Komplement von +x). Beispiel: n = 3 Dezimal Binär Dezimal Binär Gleicher Darstellungsbereich wie Vorzeichendarstellung 0 doppelt codiert 1. Bit codiert immernoch Vorzeichen. 1. und. Möglichkeit: Schwierige Implementierung von arithmetischen Operationen, da jede Zahl (positiv, negativ) anders interpretiert werden muss. Daher: Zweierkomplementdarstellung. 9 / 6 10 Ganze Zahlen - Zweierkomplement 3. Möglichkeit: Zweierkomplement ( x ist bitweises Komplement von +x + 1). Beispiel: n = 3 Dezimal Binär Dezimal Binär nicht mehr doppelt codiert! Gewonnene freie Codierung für zusätzliche negative Zahl 4 4 statt +4 : 1. Bit codiert immernoch Vorzeichen. Ganze Zahlen: Zahlenkreis im Zweierkomplement Zweierkomplement formal definiert: Höchstwertiges Bit b n hat Wertigkeit 1 Alle anderen Bits b i 1, d.h. x = b n n + b n 1 n b 0 Beispiel: 110 = = = / 6 1

4 4. Ganzzahlige numerische Datentypen Gültiger Zahlenbereich (Over-/Underflow) Typ Anz Bits Min Max byte short int long 64 < > Wir sehen, dass für Standarddatentypen n = 8 < 16 < 3 < 64 <... ist. Diese n Bits werden in Java jeweils für die ganzen (vorzeichenbehaftete) Zahlen von n 1 bis n 1 1 verwendet. Die Asymmetrie zwischen kleinster und größter darstellbarer Zahl eines Typs wird durch die Darstellung der 0 bedingt. Werden die Grenzen (min./max. darstellbare Zahl) des gültigen Zahlenbereichs eines Datentyps z.b. durch Zuweisung einer zu großen oder zu kleinen Zahl zu einer Variable des Typs verletzt entsteht ein sogenannter Über-/Unterlauf bzw. Over-/Underflow (Vorstellung: Bitdarstellung als Kreis Übung): Overflow: Bitdarstellung einer zu großen Zahl erfordert mehr Bits als verfügbar. Bits werden abgeschnitten: Darstellung entspricht kleinerer Zahl. Bitdarstellung wird auch als kleinere Zahl (meist sogar wegen Darstellung als negative Zahl!) interpretiert. Underflow: Analog mit zu kleiner Zahl. 13 / 6 14 Operanden für ganze Zahlen I - Arithmetische Operationen Kurzschreibweisen Operator Beispiel Bedeutung + +i Vorzeichen (kann weggelassen werden) - -i Vorzeichen + a+b Summe - a-b Differenz * a*b Produkt / a/b ganzzahlige Division % a%b Rest der ganzzahligen Division (Modulo) = x=a+b Zuweisung Diese Operatoren ermöglichen eine Art von Anweisung: Die Zuweisung arithmetischer Ausdrücke. Für häufig benutzte Ausdrücke existieren Kurzschreibweisen: Inkrementierung/Dekrementierung: int i=0; i = i + 1; entspricht: i= i - 1; int i=0; i++; i--; Selbsbezügliche Addition/Subtraktion/... mit beliebigem. Wert: Operator Beispiel Bedeutung += a+=b a=a+b -= a-=b a=a-b *= a*=b a=a*b /= a/=b a=a/b %= a%=b a=a%b 15 / 6 16

5 Ganzzahlige Operanden: IntOps.java Ganzzahlige Operanden: IntOps.java 3. int a=1, b=3, c=5, d=10; 4. System.out.println( a + + b + + c + + d ); 5. a++; 6. b+=a; 7. d=d/c; 8. a=b%d; 9. System.out.println( a + + (b-a) ); 10. } 3. int a=1, b=3, c=5, d=10; 4. System.out.println( a + + b + + c + + d ); 5. a++; 6. b+=a; 7. d=d/c; 8. a=b%d; 9. System.out.println( a + + (b-a) ); 10. } Der Wert b-a wird berechnet und auf dem Bildschirm ausgegeben, aber nicht gespeichert. 17 / 6 18 Ganzzahlige Operanden: IntOps.java Ganzzahlige Operanden: IntOps.java 3. int a=1, b=3, c=5, d=10; 4. System.out.println( a + + b + + c + + d ); 5. a++; 6. b+=a; 7. d=d/c; Merke: Kurze, gleichartige 8. a=b%d; kombinierte Deklarationen und 9. System.out.println( a + + (b-a) ); Initialisierungen zusammenfassen. 10. } int a=1, b=3, c=5, d=10; 4. System.out.println( a + + b + + c + + d ); 5. a++; 6. b+=a; 7. d=d/c; 8. a=b%d; 9. System.out.println( a + + (b-a) ); 10. } Merke: Ausgabe von Variablen mit System.out.println(var) ohne. und Zusammensetzen von Ausgaben mit System.out.println(var + ) 19 / 6 0

6 Kurzschreibweisen II Inkrement/Dekrement: InkDekOps.java Für die Inkrementierung/Dekrementierung existieren weitere Kurzschreibweisen: int i=0; ++i; --i; entspricht nicht: int i=0; i++; i--; Dies ist wichtig, falls die Inkrementierung/Dkrementierung innerhalb komplexerer Anweisungen ausgeführt werden: Im Ersten Fall wird zuerst In-/Dekrementiert und dann der (neue) Wert von i weiterverwendet, im zweiten Fall wird zuerst der alte Wert von i verwendet und dann In-/Dekrementiert. 3. int a=1, b=1; 4. System.out.println( a: + a++ ); 5. System.out.println( a ); 6. System.out.println( b: + ++b ); 7. } 1 1 / 6 Inkrement/Dekrement: InkDekOps.java Inkrement/Dekrement: InkDekOps.java 3. int a=1, b=1; 4. System.out.println( a: + a++ ); 5. System.out.println( a ); 6. System.out.println( b: + ++b ); 7. } 3. int a=1, b=1; 4. System.out.println( a: + a++ ); 5. System.out.println( a ); 6. System.out.println( b: + ++b ); 7. } 1 Der Wert von a wird zuerst ausgegeben, dann inkrementiert (vgl.. Ausgabe von a). 1 Der Wert von b wird noch vor der Ausgabe inkrementiert. 3 / 6 4

7 Operanden für ganze Zahlen II - Vergleichsoperationen 4.3 Logischer Datentyp boolean Operator Beispiel Bedeutung </<= a<b/a<=b Liefert wahr, falls a kleiner(-gleich) b >/>= a>b/a>=b Liefert wahr, falls a grösser(-gleich) b!= a!=b Liefert wahr, falls a ungleich b ist == a==b Liefert wahr, falls a gleich b ist = x=a<b Zuweisung Die Auswertung von Vergleichsoperationen liefert einen der logischen Werte wahr oder falsch. Die Zuweisung eines solchen Wertes erfordert links von = eine Variable des Typs boolean!. Java besitzt den logischen Datentyp boolean : Wertebereich: { true, false } Kann bei Zuweisungen von logischen Ausdrücken verwendet werden. Wird implizit bei Kontrollstrukturen verwendet. Logische Operatoren: Operator Beispiel Bedeutung!!i logische Negation && a && b logisches UND a b logisches ODER = a = a && b Zuweisung 5 / 6 6 Vergleichsoperanden: CompOps.java throws IOException 3. int zahl; 4. boolean zwischen1und10; 5. System.out.println( Ganze Zahl: ); 6. {... Einlese-Anweisungen... } 7. zahl = Integer.parseInt(zahlString); 8. zwischen1und10 = (zahl>=0) && (zahl<=10); 9. System.out.println( Die Zahl liegt zwischen 0 und 10: + zwischen1und10 ); 10. }//main Vergleichsoperanden: CompOps.java throws IOException 3. int zahl; 4. boolean zwischen1und10; 5. System.out.println( Ganze Zahl: ); 6. {... Einlese-Anweisungen... } 7. zahl = Integer.parseInt(zahlString); 8. zwischen1und10 = (zahl>=0) && (zahl<=10); 9. System.out.println( Die Zahl liegt zwischen 0 und 10: + zwischen1und10 ); Vergleich auf Variablen vom 10. }//main Typ int. 7 / 6 8

8 Vergleichsoperanden: CompOps.java throws IOException 3. int zahl; 4. boolean zwischen1und10; 5. System.out.println( Ganze Zahl: ); 6. {... Einlese-Anweisungen... } 7. zahl = Integer.parseInt(zahlString); 8. zwischen1und10 = (zahl>=0) && (zahl<=10); 9. System.out.println( Die Zahl liegt zwischen 0 und 10: + zwischen1und10 ); Wird zu Typ boolean ausgewertet! 10. }//main Vergleichsoperanden: CompOps.java throws IOException 3. int zahl; 4. boolean zwischen1und10; 5. System.out.println( Ganze Zahl: ); 6. {... Einlese-Anweisungen... } 7. zahl = Integer.parseInt(zahlString); 8. zwischen1und10 = (zahl>=0) && (zahl<=10); 9. System.out.println( Die Zahl liegt zwischen 0 und 10: + zwischen1und10 ); Können logisch weiter verknüpft 10. }//main werden. 9 / 6 30 Verwechslungsgefahr 4 Ganzzahlige Datentypen vs. 1 int Operator Beispiel Bedeutung == a==b Liefert wahr, falls a gleich b ist = x=a<b Zuweisung Durch Tippfehler wird der Vergleichsoperator für den Test auf Gleichheit zweier Variablen == leicht zum Zuweisungsperator = und umgekehrt!!! Haben byte, short, int, long kennen gelernt. Nutzen in Beispielen nur int, da dieser Typ auch in der Praxis am gebräuchlichsten ist. Nutzung von byte, short : Speicherplatz sparen (bei Speicherkritischen Geräten, z.b. Handys, oder grossen Eingaben für Algorithmen). Falls keine normalen Zahlen dargestellt werden sollen, sondern spezielle Dinge kodiert werden (z.b. Überschaubare Anzahl von Zuständen, Farben,...). Nutzung von long, falls Wertebereich von int nicht ausreicht. 31 / 6 3

9 4.4 Typumwandlung (Typecast) I Expliziter Typecast Java ist eine strikt typisierte Sprache, d.h. jede Variable besitzt einen Typ. Dieser wird vom Compiler bei der Variablendeklaration gelernt und erlaubt danach nur: Zuweisungen von Variablen des gleichen Datentyps. Operationen, die für den Typ der Variablen definiert sind. Operationen auf Variablen gleichen Typs. Manchmal ist es dennoch nötig (und sinnvoll!), andere Zuweisungen bzw. Operationen auszuführen, daher gibt es Arten von Typumwandlung (Typecast): Expliziter Typecast Impliziter Typecast Explizite Typumwandlung: Einer Variable wird explizit der Neue Typ in Klammern vorangestellt: short s=13; int i; i= (int) s; Normale Deklaration. Normale Deklaration. Zuweisung mit explizitem Cast von short auf int Achtung: Der Typecast (kurz: Cast) ändert nicht den deklarierten Typ der Variable, sondern ermöglicht nur die Zuweisung zu einer Variable anderen Typs bzw. die Anwendung einer Operation anderen Typs. Variable s ist immernoch vom Typ short und i vom Typ int! 33 / 6 34 Impliziter Typecast Impliziter Typecast - Erlaubte Typen Implizite Typumwandlung: Eine Variable wird einer anderen von anderem, erlaubten Typ zugewiesen oder eine Operation eines solchen Typs auf sie angwandt: short s=13; int i; i= s; Normale Deklaration. Normale Deklaration. Zuweisung von short zu int Der Typecast ändert auch hier nicht den deklarierten Typ der Variable!Variable s ist immernoch vom Typ short und i vom Typ int! Für einige Datentypen gibt es Typen, auf die ein impliziter Cast erlaubt ist, d.h. bei typgemischten Zuweisungen oder Operationen wird vom Compiler jede Variable automatisch in einen der beteiligten Typen umgewandelt. Dieser ist fest definiert. Beispiel byte, short, int, long: Cast wie folgt erlaubt, da Wertebereich sich vergrössert: byte short int long Cast wie folgt verboten, da Wertebereich sich verkleinert (Gefahr von Over-/Underflow): long int short byte 35 / 6 36

10 Warnung Impliziter Cast: Auf nicht erlaubte Typen erzeugt Kompilierfehler. Auf erlaubte Typen kann ungewollt sein und fehlerhafte Effekte erzeugen (Beispiele später)! Typen können erlaubt sein, aber nur in sehr speziellen Fällen oder trickreicher Programmierung sinnvoll sein! Expliziter Cast: Compiler lässt auch Unsinniges zu. Die Sicherheit eines Typecasts muss der Programmierer verantworten! Beispiel Typecast (IntCast.java) 3. byte b; 4. short s=55; 5. int i=13456; 6. long l; 7. b = (byte) s ; 8. l = i ; 9. System.out.println( Byte: + b + Short: + s ); 10. System.out.println( Int: + i + Long: + l ); 11. } Byte: -1 Short: 55 Int: Long: / 6 38 Beispiel Typecast (IntCast.java) 3. byte b; 4. short s=55; 5. int i=13456; 6. long l; 7. b = (byte) s ; 8. l = i ; Expliziter Cast erforderlich, da nicht sicher. 9. System.out.println( Byte: + b + Short: + s ); 10. System.out.println( Int: + i + Long: + l ); 11. } Beispiel Typecast (IntCast.java) 3. byte b; 4. short s=55; 5. int i=13456; 6. long l; 7. b = (byte) s ; 8. l = i ; Impliziter Cast, da sicher. 9. System.out.println( Byte: + b + Short: + s ); 10. System.out.println( Int: + i + Long: + l ); 11. } Byte: -1 Short: 55 Int: Long: Resultiert in Overflow für Byte-Variable. Byte: -1 Short: 55 Int: Long: Wert bleibt gleich in Long-Variable. 39 / 6 40

11 4.5 Gleitkommazahlen Wie bereits am Beispiel einer Konstanten static final double PI=3.1415; gesehen, benötigen wir neben ganzen Zahlen natürlich auch rationale Zahlen. Jede Zahl x Q, x 0 lässt sich schreiben als: mit - Vorzeichen s {1, 1} - Mantisse m Q, 1 m < 10 - Exponent e Z. x = s m 10 e Da sich in ausgeschriebener Variante, die Position des Kommas je nach Exponent verändern würde, heisst diese Darstellung Gleikommazahl (Floating Point Number). Rationale Numerische Datentypen (Gleitkommazahlen) Im Computer wird eine rationale Zahl immer als Gleitkommazahl durch Vorzeichen, Mantisse und Exponent (zur Basis ) repräsentiert. In Java gibt es für Gleitkommazahlen die Typen float (Floating Point Number) und double (Double Precission): Bitanzahl für: float double Vorzeichen 1 1 Mantisse 3 5 Exponent 8 11 Summe 3 64 Bereich 1.4E E38 4.9E E / 6 4 Notation für Gleitkommazahlen Die Darstellung einer Gleitkommazahl im Java-Quelltext hat die Form: Vorzeichen (optional) Vorkommastellen Dezimalpunkt Nachkommastellen E Vorzeichen des Exponenten (optional) Ganzzahliger Exponent Variablen vom Typ float und double können auch Zahlen in gewöhnlicher Punktschreibweise: Vor- und Nachteile von Gleitkommazahlen Vorteile von Gleitkommazahlen: Der abgedeckte Zahlenbereich ist sehr gross. Erlaubt dennoch hohe Präzision. Nachteile von Gleitkommazahlen: Bei Rechenoperationen entstehen in der Regel (wie bei den meisten reellen Rechnungen im Computer) Rundungsfehler. Die Rechenoperationen, insbesondere Addition und Subtraktion, sind erheblich aufwändiger. zugewiesen werden. < vorkommastellen >. < nachkommastellen > 43 / 6 44

12 Operanden für Gleitkommazahlen Prioritäten der Java Operanden Operanden für Gleitkommazahlen entsprechen den arithmetischen und vergleichenden Operanden für ganze Zahlen. Einige Besonderheiten: Kurzschreibweisen Inkrement ++ und Dekrement -- funktionieren (obwohl nicht so intuitiv) auch bei Gleitkommazahlem. Der Operator / steht für Division (nicht ganzzahlig). Wegen Rundungsfehlern ist Prüfen auf Gleichheit == oder Ungleichheit!= meist nicht sinnvoll. Für die Beschreibung komplizierterer Ausdrücke (besonders ohne Bruchschreibweise), empfiehlt sich die Kenntnis der Prioritäten unter den Operanden. Wollte Prioritätentabelle angeben, fand statt dessen: 45 / 6 46 Prioritäten der Java Operanden Grundregeln Für die Beschreibung komplizierterer Ausdrücke (besonders ohne Bruchschreibweise), empfiehlt sich die Kenntnis der Prioritäten unter den Operanden. Wollte Prioritätentabelle angeben, fand statt dessen: Kein Programmierer sucht nach seiner Präzedenz-Tabelle, um die Ausführungsreihenfolge von Operatoren zu überprüfen. Setzen Sie einfach Klammern, wenn Sie nicht sicher sind, und fertig. Der Zugriffsoperator. hat größte Priorität. Klammern haben zweithöchste Priorität und können jedem Ausdruck die gewünschte Priorität einräumen. Es gilt Punkt- vor Strichrechnung. Gerade komplizierte Ausdrücke werden mit Klammerung leserlicher. Bei Unsicherheit immer Klammern. 47 / 6 48

13 Beispiel Rundungsfehler (FloatErr.java) Beispiel Rundungsfehler (FloatErr.java) 3. float f1= e-7f, f=1, f3=-f; 4. float sum1,sum; 5. sum1=(f1+f)+f3; 6. sum=f1+(f+f3); 7. System.out.println( (f1+f)+f3: + sum1 ); 8. System.out.println( f1+(f+f3): + sum ); 9. } 3. float f1= e-7f, f=1, f3=-f; 4. float sum1,sum; 5. sum1=(f1+f)+f3; 6. sum=f1+(f+f3); 7. System.out.println( (f1+f)+f3: + sum1 ); 8. System.out.println( f1+(f+f3): + sum ); 9. } (f1+f)+f3: E-7 f1+(f+f3): E-7 (f1+f)+f3: E-7 f1+(f+f3): E-7 (f1+f)+f3 : Zu eine kleinen Zahl wird 1 addiert, dann wieder abgezogen: Präzisionsverlust 49 / 6 50 Beispiel Rundungsfehler (FloatErr.java) float Zuweisung 3. float f1= e-7f, f=1, f3=-f; 4. float sum1,sum; 5. sum1=(f1+f)+f3; 6. sum=f1+(f+f3); 7. System.out.println( (f1+f)+f3: + sum1 ); 8. System.out.println( f1+(f+f3): + sum ); 9. } (f1+f)+f3: E-7 f1+(f+f3): E-7 f1+(f+f3) : +1 und -1 werden zuerst addiert und ergeben exakt 0. Es wird quasi keine Addition auf f1 ausgeführt: Kein Präzisionsverlust Bei Zuweisung einer möglicherweise zu grossen/präzisen Konstante zu einer, gibt es (nur hier!) Möglichkeiten des expliziten Casts: float f = f float f = (float) Ohne eine dieser Varianten würde die Zahl als double interpretiert und ein Kompilierfehler ausgegeben. 51 / 6 5

14 Typumwandlung (Typecast) II Operanden und gemischte Typen I Expliziter Typecast ist wie bei den ganzen Zahlen auch hier und bei allen weiteren Datentypen möglich. Der erlaubte impliziter Typecast zwischen ganzzahligen numerischen Datentypen erweitert sich auf rationale Datentypen wie folgt: Erlaubt: byte short int long float double Nicht erlaubt: double float long int short byte Weitere Typen können erlaubt sein, aber Fehlerquellen beinhalten. Jeder Operator kann nur auf gleichartigen Datentypen arbeiten Operationen und Zuweisungen können trotzdem gemischte Typen enthalten: int i = 1; double d =, e; e = i/d; Dies ist so nur erlaubt, wenn alle beteiligten Typen standardmäß implizit in den gleichen Typ umgewandelt werden (Hier: double). Vor der Division i/d wird i automatisch in double umgewandelt. 53 / 6 54 Operanden und gemischte Typen II Abrunden mit int-cast Andernfalls muss zusätzlich ein explitizer Typecast auftreten: int i = 1; double d = ; float f = (float) i/d; Warum Cast (float) notwendig? 1. Bei Berechnung i/d wird i (erlaubterweise) implizit in double umgewandelt.. Das Ergebnis der Division ist damit auch automatisch ein double-wert. 3. Die Zuweisung f=i/d ist daher nicht erlaubt (obwohl 0.5 ohne Probleme als float- Wert darstellbar ist. Durch explizite Umwandlung von Gleitkommazahlen (double, float) in ganzzahlige Werte erhält man den ganzzahligen Anteil der Zahl: Das Programmfragment: double d = ; int i = (int) d; System.out.prinln(d); Gibt aus: Bei gemischten Zuweisungen können unerwünschte implizite Umwandlungen in int auftreten, die ebenfalls diesen Effekt haben / 6 56

15 Beispiel gemischte Typen (MixedType.java 3. int i = 1; 4. double d =, e, a, b; 5. e = i/d; 6. float f= (float) (i/d); 7. a = i/ ; 8. b = i/.0 ; 9. System.out.println( e: + e + f: + f); 10. System.out.println( a: + a + b: + b); 11. } e: 0.5 f: 0.5 a: 0.0 b: 0.5 Beispiel gemischte Typen (MixedType.java 3. int i = 1; 4. double d =, e, a, b; 5. e = i/d; 6. float f= (float) (i/d); 7. a = i/ ; 8. b = i/.0 ; 9. System.out.println( implizit e: in + double e + umgewandelt. f: + f); 10. System.out.println( a: + a + b: + b); 11. } e: 0.5 f: 0.5 a: 0.0 b: 0.5 wird als int interpretiert: / als ganzzahlige Division ergibt 0 und wird 57 / 6 58 Beispiel gemischte Typen (MixedType.java 3. int i = 1; 4. double d =, e, a, b; 5. e = i/d; 6. float f= (float) (i/d);.0 wird als double interpretiert: i wird implizit in double umgewandelt, 7. a = i/ ; 8. b = i/.0 ; so dass / als rationale Division 0.5 als 9. System.out.println( e: double-wert + e ergibt. + f: + f); 10. System.out.println( a: + a + b: + b); 11. } 4.6 Der alphanumerische Datentyp char char-variablen werden dazu verwendet, Zeichen darzustellen. Zeichen sind hier: Buchstaben, Ziffern, Sonderzeichen... Typischerweise sind chars 1 Byte groß und können daher 56 verschiedene Werte repräsentieren. Dabei entsprechen die ersten 18 Zeichen den Zeichen der ASCII-Tabelle (s.o.). Die nächsten 18 Zeichen sind Länderspezifischen Erweiterungen vorbehalten. Java verwendet einen Byte langen char-typen, der die des Unicode umfasst. So können quasi alle bis heute bekannten Schriftzeichen anhand einer Eindeutigen Unicode-Nummer dargestellt werden. e: 0.5 f: 0.5 a: 0.0 b: / 6 60

16 Nutzung von char char vs. String Zeichenkonstanten (Variablen vom Typ char) können wie folgt Werte zugewiesen werden: Zeichen in einfaches Hochkomma eingeschlossen: char c = A ASCII-Code des Zeichens: char c = 65 Ausgabe beider Zuweisungen: A Manche Zeichen müssen besonders codiert werden, z.b. werden die Zeichen, oder \ als \, \ und \\ dargestellt. Weiter gibt es Sonderzeichen wie \n für Zeilenvorschub und \t für ein Tabulatorzeichen. Bisher kennen wir haben wir Zeichenketten in Form des Datentyps String kennen gelernt. Unterschiede: String Zeichenkette, char einzelnes Zeichen. String in, char in String i. Ggs. zu char kein primitiver Datentyp. Der Datentyp String ist ein zusammengesetzter Datentyp. Ein String besteht aus einem Feld (Array) von char Variablen (später) und besitzt eigene Operatoren. Mehr im Kapitel Ein- und Ausgabe. 61 / 6 6

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

2.5 Primitive Datentypen

2.5 Primitive Datentypen 2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",

Mehr

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 05 Datentypen Inhalt des 5. Kapitels Datentypen 5.1 Einleitung 5.2 Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Operatoren Konversion / Type-Cast Datentyp

Mehr

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kapitel 3. Grunddatentypen, Ausdrücke und Variable Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen

Mehr

Primitive Datentypen und Felder (Arrays)

Primitive Datentypen und Felder (Arrays) Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

3. Datentypen, Ausdrücke und Operatoren

3. Datentypen, Ausdrücke und Operatoren 3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

3. Datentypen, Ausdrücke und Operatoren

3. Datentypen, Ausdrücke und Operatoren 3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 2. Typen und Variablen 27.10./03.11.2014 Prof. Dr. Ralf H. Reussner Version 1.2 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Kapitel 5. Datentypen und Operatoren

Kapitel 5. Datentypen und Operatoren Kapitel 5 Datentypen und Operatoren 1 Gliederung Kapitel 5 Datentypen und Operatoren 5.1 Elementare Datentypen 5.2 Symbolische Konstanten 5.3 Typumwandlungen 5.4 Operatoren 2 5.1. Elementare Datentypen

Mehr

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen? Kapitel 3 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Anweisungen, Variablen Arten von Anweisungen Variablen Konstanten Höchste Zeit für ein Programm Gültigkeitsbereich von Variablen

Mehr

Numerische Datentypen. Simon Weidmann

Numerische Datentypen. Simon Weidmann Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die

Mehr

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

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 16. Mai 2009 Inhaltsverzeichnis

Mehr

Grundlagen der Informatik 2. Operatoren

Grundlagen der Informatik 2. Operatoren 2. Operatoren Referenzen Typumwandlungen Vorrangregeln Kommentare Grundlagen der Informatik (Alex Rempel) 1 Ausdruck (z.b. "x = 34 + y;") Folge von Operatoren und Operanden Operatoren Arithmetische Operatoren

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

Einführung in die Informatik. Processing Numbers. Motivation. Primitive Datentypen. Operatoren versus Methoden

Einführung in die Informatik. Processing Numbers. Motivation. Primitive Datentypen. Operatoren versus Methoden Motivation Einführung in die Informatik Processing Numbers Wolfram Burgard Computer bzw. Rechenmaschinen wurden ursprünglich gebaut, um schnell und zuverlässig mit Zahlen zu rechnen. Erste Anwendungen

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Operatoren für elementare Datentypen 2 Bedingte Anweisungen 3 Schleifen Zuweisungsoperator Die Zuweisung von Werten an

Mehr

Kompaktkurs Einführung in die Programmierung. 3. Fundamentale Datentypen, Ausdrücke

Kompaktkurs Einführung in die Programmierung. 3. Fundamentale Datentypen, Ausdrücke Kompaktkurs Einführung in die Programmierung 3. Fundamentale Datentypen, Ausdrücke Stefan Zimmer 4.3.2009-1- Objekte im Speicher Ein Objekt ist für uns zunächst einfach ein fester Bereich im Speicher unseres

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei

Mehr

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016 Musterlösung 1 Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Kapitel 2. Zahlensysteme, Darstellung von Informationen Kapitel 2 Zahlensysteme, Darstellung von Informationen 1 , Darstellung von Informationen Ein Computer speichert und verarbeitet mehr oder weniger große Informationsmengen, je nach Anwendung und Leistungsfähigkeit.

Mehr

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

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit Informationsmenge Maßeinheit: 1 Bit Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit 1 Byte Zusammenfassung von 8 Bit, kleinste Speichereinheit im Computer, liefert

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe 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,

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41 Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung

Mehr

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

II. Grundlagen der Programmierung

II. Grundlagen der Programmierung II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Primitive Datentypen in Haskell

Primitive Datentypen in Haskell Primitive Datentypen in Haskell Der Datentyp Bool Der Datentyp Bool dient zur Beschreibung von Wahrheitswerten und zum Rechnen mit solchen Werten. Bool hat nur zwei mögliche Werte True und False. Als Operationen

Mehr

Kapitel 6. Programmierkurs. 6.0 Felder (Arrays) Deklaration von Feldern. Felder (Arrays) Mehrdimensionale Arrays. Birgit Engels, Anna Schulze WS 07/08

Kapitel 6. Programmierkurs. 6.0 Felder (Arrays) Deklaration von Feldern. Felder (Arrays) Mehrdimensionale Arrays. Birgit Engels, Anna Schulze WS 07/08 Kapitel 6 Programmierkurs Birgit Engels, Anna Schulze Felder (Arrays) Mehrdimensionale Arrays ZAIK Universität zu Köln WS 07/08 1/ 21 2/ 21 6.0 Felder (Arrays) Deklaration von Feldern Bisher haben wir

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 06.03.09 2-1 Heutige große Übung Allgemeines

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Programmierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014

Programmierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014 Programmierung Tina Wegener, Ralph Steyer 2. Ausgabe, 1. Aktualisierung, April 2014 Grundlagen PG 6 Programmierung - Grundlagen 6 Grundlegende Sprachelemente In diesem Kapitel erfahren Sie was Syntax und

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Softwareentwicklung Ausdrücke und Typkonversionen

Softwareentwicklung Ausdrücke und Typkonversionen Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Ausdrücke und Typkonversionen E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Rechnerorganisation. IHS 2015/2016 H.-D. Wuttke, K. Henke

Rechnerorganisation. IHS 2015/2016 H.-D. Wuttke, K. Henke Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau

Mehr

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts Kapitel 6: Arithmetik in JavaCard Problem: Keine Integers in JavaCard ToDo: Rechnen mit Bytes und Shorts Java SmartCards, Kap. 6 (1/20) Hex-Notation 1 Byte = 8 Bit, b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0101

Mehr

8 Typwandlungen. 8.1 Automatische Typkonvertierungen

8 Typwandlungen. 8.1 Automatische Typkonvertierungen 8 Typwandlungen Hier geben wir Ihnen weitere Informationen zu Goto Java 2, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. Sie sollten für die weiteren Ausführungen zunächst in Go To Java Kapitel 4.6

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Darstellung von Zahlen Natürliche Zahlen: Darstellungsvarianten Darstellung als Text Üblich, wenn keine Berechnung stattfinden soll z.b. Die Regionalbahn 28023 fährt

Mehr

String-Konkatenation

String-Konkatenation YOU ARE HERE Ausdrücke und Anweisungen Einführung Objektorientierte Modellierung Java-Sprachkonstrukte Pakete und Zugriffskontrolle Deklaration von Methoden, Attributen, Variablen Ausdrücke und Anweisungen

Mehr

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Kapitel 5: Daten und Operationen

Kapitel 5: Daten und Operationen Kapitel 5: Daten und Operationen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2007 Folien nach einer Vorlage von H.-Peter

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

HaDePrak WS 05/ Versuch

HaDePrak WS 05/ Versuch HaDePrak WS 05/06 10. Versuch 1 Das IEEE-Format Das Ziel dieser letzten Übung ist es, ein Fließkommapaket für die DLXzu implementieren. Der Einfachheit halber vernachlässigen wir hier im Praktikum jeglichen

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung

Mehr

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

Einführung in die Programmierung II. 2. Fundamentale Datentypen, Ausdrücke Einführung in die Programmierung II 2. Fundamentale Datentypen, Ausdrücke Stefan Zimmer 3. 5. 2006-1- Objekte im Speicher Ein Objekt ist für uns zunächst einfach ein fester Bereich im Speicher unseres

Mehr

OO Programmierung in Java

OO Programmierung in Java OO Programmierung in Java Einführung WS 212/213 Prof. Dr. Margarita Esponda M. Esponda-Argüero 1 Homepage Homepage http://www.esponda.de/ws_12_13/jbk Vorlesungsfolien Literaturliste Übungen Zusätzliches

Mehr

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

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann

Mehr

Wie entwerfe ich ein Programm?

Wie entwerfe ich ein Programm? Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +

Mehr

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

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Algorithmen & Programmierung. Reelle Zahlen in C (2) Rechnen mit Gleitkommazahlen

Algorithmen & Programmierung. Reelle Zahlen in C (2) Rechnen mit Gleitkommazahlen Algorithmen & Programmierung Reelle Zahlen in C (2) Rechnen mit Gleitkommazahlen Norm für Gleitkommazahlen Die Darstellung von Gleitkommazahlen ist genormt (IEEE 754). Inhalte der Norm Es gibt zwei Grundformate

Mehr

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

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr

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

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte 4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09

Mehr

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe

Mehr

2. Datentypen und Deklarationen

2. Datentypen und Deklarationen 2. Datentypen und Deklarationen Programm = Datenstrukturen+Kontrollstruktur Programme verarbeiten Daten. Daten werden in C durch Datenstrukturen aus verschiedenen Datentypen beschrieben. Es gibt (wie in

Mehr

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1 Polyadisches Zahlensystem B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Ganze Zahlen: n-1 Z= a i B i i=0 Z = a 0 B 0 + a 1 B 1 + a 2 B 2 +... + a n-1 B n-1 Rationale Zahlen: n-1 Z= a i B i

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 2. Typen und Variablen 02.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.0 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung 1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Algorithmen,

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr