4. Grundlagen von Programmiersprachen - Einfache Typen, Ausdrücke, Typanpassung -

Größe: px
Ab Seite anzeigen:

Download "4. Grundlagen von Programmiersprachen - Einfache Typen, Ausdrücke, Typanpassung -"

Transkript

1 4. Grundlagen von Programmiersprachen - Einfache Typen, Ausdrücke, Typanpassung Datentypen 4.2 Ausdrücke 4.3 Typanpassung 4.4 Vereinbarung von Variablen und deren Typen

2 4.1 Datentypen (1) Programmiersprache heißt getypt (strong typing), wenn - jede Variable int myvar; - jedes Literal "Zeichenkette" Java - jeder Ausdruck 220/2 einen (Daten-)typ besitzt. Zu jedem Typ T: Menge von Operatoren, die auf Werten von T definiert sind Statisch getypte Sprache (static typing): Korrekter Typ ("darf Operator angewendet werden?") wird vor Ausführung des Programms geprüft. hs / fub - alp2-04 2

3 Einfache Datentypen 1. Elementare (primitive) DT Zahlen Zeichen char Wahrheitswerte boolean ganze Zahlen int, byte, long 2. Benutzerdefinierte DT Weitere (zusammengesetzte) Typen: - Felder - Klassen Aufzählungtypen Aus Teilen zusammengesetzt, die einzeln manipuliert werden können. Oft rekursives Konstruktionsprinzip public enum Weekend {SA,SU} (seit Java 1.5) Bereiche [10..20] (nicht in Java) Später! hs / fub - alp2-04 3

4 Wertebereiche von Zahldatentypen in Java public class BoundsOfNumbers { public static void main (String[] args) { System.out.println(" byte=["+byte.min_value+".."+byte.max_value+"]"); System.out.println(" short=["+short.min_value+".."+short.max_value+"]"); System.out.println(" int=["+integer.min_value+".."+integer.max_value+"]"); System.out.println(" long=["+long.min_value+".."+long.max_value+"]"); System.out.println(" float=["+float.min_value+".."+float.max_value+"]"); System.out.println("double=["+Double.MIN_VALUE+".."+Double.MAX_VALUE+"]"); System.out.println("double=["+Double.NEGATIVE_INFINITY+".." +Double.POSITIVE_INFINITY+"]"); System.out.println("Infinity+1: " + (Double.MAX_VALUE+1.0)); System.out.println(" Maxint+1 ="+(Integer.MAX_VALUE+1)); } byte=[ ] short=[ ] int=[ ] long=[ ] float=[1.4e e38] double=[4.9e e308] double=[-infinity..infinity] Infinity+1: E308 Maxint+1 = hs / fub - alp2-04 4

5 Charakterisierung von Datentypen - Repräsentation von Werten? Beispiel: 16-Bit-Unicode Zeichendarstellung in Java Nicht sinnvoll! Implementierungsabhängig. - Operatoren, die auf Werte des Typs angewendet werden können Beispiel: Addition (+), Multiplikation (*), Subtraktion (-) auf allen numerischen Datentypen hs / fub - alp2-04 5

6 Allen Datentypen gemeinsame Operationen: (1) Vergleichsoperatoren: == Gleichheit a == b hat Wert true, wenn a=b, sonst false Ergebnis: Bool'scher Wert!= Ungleichheit a!= b... wenn a b Vergleiche Haskell: == und /= Warum in Haskell Vergleichsoperatoren nicht für alle Typen definiert? class Eq hs / fub - alp2-04 6

7 (2) Zuweisungsoperator <variable> = <Ausdruck> ist [in Java] ein Ausdruck, der einen Wert hat und als Nebeneffekt diesen Wert der <variable> zuweist. int i=2,j=3,m; System.out.println("i+j: "+ (m = i+j)); (ternärer Operator) der bedingungsabhäng(3) wenn dann sonst ig einen von zwei Werten liefert. Java-Syntax: <bedingung>? <wert1> : <wert2> i > 0? i : -i Nicht mit Fallunterscheidung verwechseln: if <bed> {Anweisung1} else {Anweisung2}; hs / fub - alp2-04 7

8 Datentypen und Operationen [in Java] Wahrheitswerte boolean Literale: true, false Operationen:! Negation &, &=, = Disjunktion, mit Zuweisung an ersten Operanden && Konjunktion, nichtstrikt im 2.Operanden Konjunktion, mit Zuweisung an ersten Operanden Disjunktion, nichtstrikt im 2. Operanden boolean b1 = true, b2 = true, b3= false; b1 &= b3; System.out.println("b1="+b1); b2 = b1 &&(0/0==0); System.out.println("b2="+b2); b1=false b2=false hs / fub - alp2-04 8

9 Zeichen char Literale: 'a,'b',..., '\f',...,\u0000 Repräsentiert durch 16 Bit Unicode Operationen: ++, --, +, - liefert das Nachfolge-, Vorgängerzeichen char c = 'c' ++c == 'd' auch als postfix: char x = c++; x=='d' nicht 'e' (wegen c=='d') Achtung: Unbedingt Details zu Datentypen in Java aus (Hand-) Buch entnehmen. char x, y='c'; System.out.println("y="+(++y)+ ", x=" +(x=y++)+ ", y=" +y); y=d, x=d, y=e hs / fub - alp2-04 9

10 Zahlen (1) Ganze Zahlen int 32 Bits Zweierkomplement int=[ ] Dezimale, oktale (0 und Ziffern 0-7) und hexadezimale (0x und Ziffern 0-9,a,b,c,d,e,f) Darstellung Beachte x55 Weitere Repräsentationen: long 64 Bits Werte: <ziffernfolge>l L (angehängtes L oder l; besser: L ) short 16 Bits byte 8 Bits, [ ], Zweierkomplement! Initialwert: 0 hs / fub - alp

11 Operationen auf ganzen Zahlen unär: (Vorgänger, Nachfolger) binär: + - * (ohne Überlaufkontrolle) / (ganzzahlig) % mit: a % b =a- * b Sonstige Operationen & ^ bitweise und, oder, exklusives oder += -= *= /= %= &= = ^= Operation mit Zuweisung an linken Operanden < <= > >= Vergleichsoperatoren a b int i = ; System.out.println(" i="+(i*100)); i= hs / fub - alp

12 (2) Gebrochene Zahlen double 64-Bit Gleitpunktformat für rationale Zahlen float 32-Bit Gleitpunktformat Werte: (gemäß IEEE 754 Spezifikation) Dezimalzahlen mit/ohne Dezimalpunkt, mit/ohne angehängten Exponenten E<ganze Zahl> oder e<ganze Zahl> E-7 (= e) Float-Werte müssen durch angehängtes n gekennzeichnet sein E-7f Weitere gemäß IEEE: POSITIVE_INFINITY NEGATIVE_INFINITY NaN (not a number, z.b. 0/0) Initialwert: 0.0 bzw. 0.0F hs / fub - alp

13 Operationen auf gebrochenen Zahlen: wie auf ganzen Zahlen, außer Bit-Operationen z.b. e%2: Vorsicht beim Rechnen mit Gleitkommazahlen! double euros1 = ; double euros2 = ; System.out.println("Euro1="+euros1); System.out.println("Euros="+euros2); Euro1= Euros=0.41 hs / fub - alp

14 Fehler bei Gleitkommaoperationen e*55/55-e : 0.0 e e!= 0: true nie auf (Un-)Gleichheit testen Assoziativität? (0.01f ) : f + ( ) :0.1 Gründe: unvermeidliche Rundungsfehler, Binär statt Dezimaldarstellung. z.b. unendliche Dezimal- / Binärbrüche hs / fub - alp

15 Dezimale Datentypen (nicht in Java) - Konversionen vermeiden - Nützlich / wichtig in Finanz- und Wirtschaftsanwendungen - Heute fast nur in Software - Sprachen: C++, COBOL, PL/1, SQL (Datenbanksprache) - Unterstützung durch Dezimalarithmetikeinheit möglich. Vorzeichen Prinzip: Bytegrenze Pro Halbbyte eine dezimale Ziffer (mit Pseudotretraden), Dezimalpunkt per Software. hs / fub - alp

16 Datentyp ist definiert durch die auf Werten dieses Typs erlaubten Operationen nicht durch seine Repräsentation (Implementierung). Verschiedene DT können gemeinsame Operationen besitzen, +, *, - auf allen Zahltypen definiert, aber völlig verscheiden implementiert. Trennung von Eigenschaften ("Spezifikation") und Realisierung wichtiges Grundprinzip der Informatik. Abstrakte Datentypen später hs / fub - alp

17 Die einfachsten nichtprimitiven Typen: enum, array Aufzählungstypen (enumeration type) Endliche Menge von Konstanten (Werten), deren Bezeichner (Namen)vom Programmierer in einer Typedefinition festgelegt werden. Java: seit 1.5 public enum Obst {APFEL,BIRNE,PFLAUME} Achtung: enum Typen gibt es in vielen Programmiersprachen - C, C++, Modula-2, Delphi, Haskell (algebraische Typen!), Ada - die Semantik ist jedoch sehr unterschiedlich. Im einfachsten Fall: Verwendung zu Dokumentationszwecken hs / fub - alp

18 Datentyp Feld (array) Repräsentiert eine Folge fester Länge von Variablen des gleichen Datentyps <typ> [] <name> = {<werte>} int[] prim5 = {2,3,5,7,7+4} Index der Folgenelemente: 0..(n-1) für Folge der Länge n Zugriff auf i-tes Folgenelement: <feldname>[i] Beispiel: prim5[0] + prim5[4] == 13 Felder gibt es in praktisch jeder Programmiersprache. hs / fub - alp

19 Grafik aus Java Tutorium (Sun) Besonderheit von Feldern in Java Vereinbarung <typ> [] <name>; char[] zeile; ohne Angabe der Werte ist möglich (sogar Normalfall), das eigentliche Feld mit definierter Länge erhält man dann erst durch eine Operation: <typ> [] <name> = new <typ>[zahl] char[] zeile = new char[80] Erklärung dafür später. hs / fub - alp

20 4.2 Ausdrücke (expressions) Einfache Ausdrücke: Literal 54, 'c' Variable i, tmp Konstante PI Zusammengesetzte Ausdrücke unärer -54 -tmp binärer 3*4.0 5*PI -3 konditionaler tmp < 0? tmp : tmp Zuweisung tmp = i+3 geklammerter Ausdruck (j=3+i) Weitere Ausdrücke, z.b. Funktionsaufrufe: sin(0.342) Jeder Ausdruck hat einen Wert. hs / fub - alp

21 Einschränkungen Ausdruck muss syntaktisch korrekt sein Syntaxanalyse des Übersetzers (Parser) Ausdruck muss typkorrekt sein Semantische Analyse Beispiel: a+12 ==i && c typkorrekt, wenn a und i den Typ int haben, c den Typ boolean. Aber: Typanpassung möglich! s.u. hs / fub - alp

22 Bindungsstärke von Operatoren Wie wird a+12 == i && c ausgewertet? Woran erkennt Parser die Auswertungsreihenfolge ((a+12) == i) && c? Explizite Klammerung immer möglich, sonst Operatorvorrang (Bindungsstärke, Operatorpräzedenz) aus Java-Tutorial (Sun) Operators postfix unary multiplicative additive shift relational equality bitwise AND bitwise exclusive OR bitwise inclusive OR logical AND logical OR ternary assignment Precedence expr++ expr-- ++expr --expr +expr - expr ~! * / % + - << >> >>> < > <= >= ==!= & ^ &&? : = += -= *= /= %= &= ^= = <<= >>= >>>= hs / fub - alp fallend

23 Assoziativität von Operatoren Für kommutative Operatoren uninteressant!? Nein: (0.01f ) != 0.01f + ( ) Binäre (dyadische) Operatoren werden bei gleicher Bindungsstärke immer linksassoziativ geklammert und ausgewertet: a+b-c+d == ((a+b)-c)+d Ausnahme: Zuweisung a=b=c a=(b=c) Ternäre Operation rechtsassoziativ a? b : c? d :e == a? b : (c? d : e) Dringende Empfehlung: im Zweifelsfall explizit klammern! hs / fub - alp

24 Auswertung von Ausdrücken (1) Einfache Ausdrücke: Wert den sie bezeichnen (2) Zusammengesetzte Ausdrücke: (a) Auswertung von links nach rechts * (b) Beachtung der Bindungsstärke und Klammerung (c) Auswertung aller Operanden vor Anwendung des Operators (eager evaluation)** * Ausnahme: ternäre Operation (_?_:_) ** Ausnahme: nichtstrikte Operationen &&,, (_?_:_) hs / fub - alp

25 4.3 Typanpassung a = b + c : wann ist der Ausdruck typkorrekt? Grundidee: in einer Zuweisung x = y muss y einen Typ haben, der ohne Informationsverlust in den von x überführt werden kann. Beachte: nicht symmetrisch! Beispiel: double x, int y; x=y; // int in double wandeln y=x; // Compiler meldet Fehler hs / fub - alp

26 Typverträglichkeit ( ) primitiver Typen (1) Jeder Typ ist mit sich selbst verträglich: T T (2) Wenn a mit b, b mit c verträglich, dann a mit c T1 T2, T2 T3 T1 T3 (3) In Java: byte short int long float double und char int boolean ist nur mit sich selbst verträglich Automatische Typanpassung, wenn verträglich, also kein Informationsverlust. hs / fub - alp

27 double d = 1.0 ; int i = 077; short s = 2; float f = 1.0F; d = i; // erlaubt d = f; // erlaubt d = 'a'; // erlaubt! a==97.0 // f = 1.0; // Statischer Typfehler s = 'a'; // Statischer Typfehler?! erlaubt // Kuriosum des Typsystems, // Wert 'passt' in Variable f = L; // erlaubt, Genauigkeitsverlust Statische Typprüfung während der Übersetzung hs / fub - alp

28 Automatische Wertumwandlung zur Laufzeit Liegt wird T1-Wert benötigt, aber T2-Wert liegt vor, dann wird T2-Wert in T1-Wert umgewandelt. doublevar = intvar; Repräsentation im 2er-Komplement wird in Gleitpunktdarstellung umgewandelt. Wenn gemäß Typverträglichkeit: widening conversion Was geschieht mit doublevar + intvar? hs / fub - alp

29 Typumwandlung in Ausdrücken Kleinerer Typ wird in größeren umgewandelt, damit Operator anwendbar ist. Ausnahme (Java): int ist der kleinste gemeinsame Typ, d.h. shortvar = shortvar + bytevar liefert statischen Typfehler ("cannot convert from int to short") shortvar + bytevar Werte der Variablen werden in int-darstellung umgewandelt, der kann nicht (ohne Weiteres) einer short-variablen zugewiesen werden. hs / fub - alp

30 Explizite Typumwandlung (casting) shortvar = intvar nicht erlaubt intvar könnte zu großen Wert enthalten. intvar = floatvar nicht erlaubt intvar muss Nachkommaanteil "abschneiden". Cast-Ausdruck: (<type>) <ausdruck> Type von <ausdruck> und <type> beide boolean oder nicht boolean D.h. keine explizite Typwandlung in / aus boolean hs / fub - alp

31 shortvar = (short)(shortvar + bytevar) und ohne Klammer? int intvar=1; intvar = (int) (intvar/2.0) automatische Typwandlung in double wegen 2.0, cast in int. Also besser 2 statt 2.0 Typischer Fehler: int i = 128; byte b = (byte) i; Wert von b? Denn sie wissen nicht, was sie tun. hs / fub - alp

32 4.4 Variablen, Typen, Vereinbarung Strenge Typisierung Literale, Variablen, Ausdrücke besitzen einen Typ Literale: automatisch - ein Literal hat (kontextabhängig) genau einem Typ Ausdrücke: abhängig vom Typ der Konstituenten doublevar + 3 Variablen: explizit vor der ersten Nutzung vereinbaren double doublevar; hs / fub - alp

33 Variablenvereinbarung (declaration) - legt Namen der Variablen - und Typ der Variablen fest - steht (im Prinzip) an beliebiger Stelle im Programm ; int i = j + k; - darf nur einmal im "gleichen Kontext" auftreten ; int i = j + k; int i = a + b; nicht erlaubt (s. auch Abschnitt 4, Blöcke) <type> <identifier> {,identifier} 0 n ; double lowval, highval, meanval; hs / fub - alp

34 Warum statische Typvereinbarung? Festlegung, welche Werte Variable annehmen kann Übersetzer kann Speicherplatz reservieren Dokumentation (!) Fehler verhindern float val1; double val2; val1 = 0xffff + val1; val1 = 0xffff + val2; Teurer Fehler: Absturz der ersten Ariane 5 Rakete. Aus dem Report: e) At 36.7 seconds after H0 (approx. 30 seconds after lift-off) the computer within the back-up inertial reference system, which was working on stand-by for guidance and attitude control, became inoperative. This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer. (64-Bit-Zahl in 16-Bit-Zahl gewandelt) hs / fub - alp

35 Wert einer frisch deklarierten Variable v ist vor der ersten Zuweisung v= undefiniert(!); double d, e; int i; e = 1.0; d = e + i; // Übersetzungsfehler Initialisierung in Deklaration möglich <type><identifier>[=<init>]{,identifier[=init]} 0n ; double lowval=0.0, highval=0.0, meanval; Deshalb: LocalVariableDeclarationStatement hs / fub - alp

36 Konstanten sind nicht änderbare, initialisierte Variablen: final <type><identifier>=<init>{,identifier=init} 0n ; final PI= , E= Beachte - <init> kann ein komplexerer Ausdruck als ein Wert sein - Namenskonvention für Konstanten: Großbuchstaben - Dokumentationscharakter von Konstanten - Übersetzer garantiert (statisch) die Invarianz von Konstanten hs / fub - alp

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

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

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt 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 - mit / ohne Parameter - mit / ohne Rückgabewerte

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

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

1.2 Typsystem (I) - Einfache Typen, Ausdrücke, Variablenvereinbarungen -

1.2 Typsystem (I) - Einfache Typen, Ausdrücke, Variablenvereinbarungen - 1.2 Typsystem (I) - Einfache Typen, Ausdrücke, Variablenvereinbarungen - Getypte Sprache (strongly typed language, strong typing): Jeder Wertbezeichner hat einen Typ Jede Variable/Konstante hat einen Typ

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle Ausführungsvarianten I Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!

Mehr

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

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

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

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

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

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

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

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

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

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

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

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

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

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

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 29 Einstieg in die Informatik mit Java Weitere Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Kombinierte Zuweisungsoperatoren 3 Vergleichsoperatoren

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

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

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,

Mehr

Datentypen: Enum, Array, Struct, Union

Datentypen: Enum, Array, Struct, Union Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Scala kann auch faul sein

Scala kann auch faul sein Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?

Mehr

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de C-Vorrangregeln Version 1.3 6.7.2009 email: tb@ostc.de Web: www.ostc.de Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I 84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)

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

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Lernziele 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Sie kennen die grundlegensten Bausteine

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

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

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

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

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

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

VisualBasic - Variablen

VisualBasic - Variablen Typisch für alle Basic-Dialekte ist die Eigenschaft, dass Variablen eigentlich nicht deklariert werden müssen. Sobald Sie einen Bezeichner schreiben, der bisher nicht bekannt war, wird er automatisch angelegt

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Zahlensysteme und Datendarstellung Zahlensysteme Problem: Wie stellt man (große) Zahlen einfach, platzsparend und rechnergeeignet

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

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

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

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

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte

Mehr

2. Negative Dualzahlen darstellen

2. Negative Dualzahlen darstellen 2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

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

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr