Grundlagen der Programmierung Teil1 Einheit 1I Okt. 2009

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Programmierung Teil1 Einheit 1I Okt. 2009"

Transkript

1 Grundlagen der Programmierung Teil1 Einheit 1I Okt GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer

2 Einfache Datentypen Java kennt acht elementare Datentypen, die gemäß Sprachspezifikation als primitive Datentypen bezeichnet werden. Daneben gibt es die Möglichkeit, Arrays zu definieren (die eingeschränkte Objekttypen sind), und als objektorientierte Sprache erlaubt Java natürlich die Definition von Objekttypen.

3 Gleitkommatypen import java.io.*; public class Sample { public static void main (String[] argument) throws } IOException { System.out.println (1/10); } Ergebnis?? Wenn wir das Programm übersetzen und ausführen, so würden wir erwarten, dass als Ergebnis 0.1 am Bildschirm ausgegeben wird. Zu unserer Überraschung wird jedoch 0 ausgegeben. Das ist aber vermeintlich falsch! Aber Achtung! Wir haben im obigen Programm mit Ganzzahlen gearbeitet. Der Divisionsoperator ist in Java jedoch so definiert, dass die Division zweier ganzer Zahlen wiederum eine ganze Zahl ist. Und somit stimmt die Division natürlich: 1 / 10 = 0 mit 1 Rest

4 Gleitkommatypen Java kennt die beiden Fließkommatypen float (einfache Genauigkeit) und double (doppelte Genauigkeit). Die Länge beträgt 4 Byte für float und 8 Byte für double. Fließkommaliterale werden immer in Dezimalnotation aufgeschrieben. Sie bestehen aus einem Vorkommateil, einem Dezimalpunkt, einem Nachkommateil, einem Exponenten und einem Suffix. Um ein Fließkommaliteral von einem integralen Literal unterscheiden zu können, muss mindestens der Dezimalpunkt, der Exponent oder der Suffix vorhanden sein. Entweder der Vorkomma- oder der Nachkommateil darf ausgelassen werden, aber nicht beide. Vorkommateil und Exponent können wahlweise durch das Vorzeichen + oder - eingeleitet werden. Der Exponent, der durch ein e oder E eingeleitet wird, ist optional. Auch der Suffix kann weggelassen werden, wenn durch die anderen Merkmale klar ist, dass es sich um eine Fließkommazahl handelt. Der Suffix kann entweder f oder F sein, um anzuzeigen, dass es sich um ein float handelt, oder d oder D, um ein double anzuzeigen. Fehlt er, so ist das Literal (unabhängig von seiner Größe) vom Typ double. Gültige Beispiele:????? 47

5 Gleitkommatypen Neben diesen numerischen Literalen gibt es noch einige symbolische Literale in den Klassen Float und Double des Pakets java.lang. NaN entsteht beispielsweise bei der Division durch 0, POSITIVE_INFINITY bzw. NEGATIVE_INFINITY sind Zahlen, die größer bzw. kleiner als der darstellbare Bereich sind. MAX_VALUE und MIN_VALUE repräsentieren die größte bzw. kleinste darstellbare Zahl.

6 Gleitkommatypen import java.io.*; public class Sample { public static void main (String[] argument) throws { } } IOException System.out.println (1d/10.); Ergebnis??

7 Datentyp char Will man mit einzelnen Zeichen arbeiten, so steht der Datentyp char zur Verfügung (2 Byte, UTF -16) Literalkonstanten werden dabei unter ein einfaches Hochkomma gestellt Daten von diesem Datentyp werden intern mit 16 Bit dargestellt (unicode) import java.io.*; public class Buchstabe { public static void main (String[] argument) throws IOException { } } char ersterbuchstabe = 'A'; System.out.println("Der erste Buchstabe des Alphabets ist ein"); System.out.println(ersterBuchstabe);

8 Datentyp char char wird innerhalb der Java Virtual Machine als int betrachtet: import java.io.*; public class Buchstabe { public static void main (String[] argument) throws IOException { } } char ersterbuchstabe = 'A'; char zweiterbuchstabe = 'B'; System.out.println( Die Addition von erstem und zweitem Buchtaben ergibt"); System.out.println(ersterBuchstabe+zweiterBuchstabe); Ergebnis??

9 Wahrheitswerte Beim Programmieren steht man des öfteren vor dem Problem, dass man Werte miteinander vergleichen muss. Das Ergebnis des Vergleichs liefert dann WAHR oder FALSCH. In Java existieren die Wahrheitswerte true und false Die Auswertung von logischen Ausdrücken liefert als Ergebnis Werte des Typs boolean Siehe auch Folie Logische Operatoren

10 Implizite/Explizite Typumwandlung Es kann vorkommen, dass man einen gewissen Datentyp für eine Operation benötigt, jedoch einen anderen vorliegen hat. Will man z.b.: eine 64 Bit Zahl mit einer 32 Bit Zahl addieren, so steht man vor dem Problem, dass die Addition nur für denselben Typ definiert ist. In einem solchen fall benötigt man also eine Typumwandlung, damit die Operation überhaupt durchgeführt werden kann. Bei der oben beschriebenen Problemstellung muss man gar nichts tun. Denn der Compiler erkennt, dass die eine Zahl einen Zahlenbereich hat, der den der anderen Zahl umschliesst. Aus diesem Grund wird einfach die int Zahl in eine long Zahl umgewandet, und die Addition kann ausgeführt werden. Diese (automatische) Vorgehensweise nennt man implizite Typkonvertierung (implicite typecast) Implizite Typkonvertierungen treten immer dann auf, wenn ein kleinerer Zahlenbereich in einen größeren Zahlenbereich abgebildet wird. byte short int long float double

11 Implizite/Explizite Typumwandlung Eine automatische Konvertierung wird vom Compiler in folgenden Fällen vorgenommen Bei einer Zuweisung, wenn der Typ der Variablen und des zugewiesenen Ausdrucks nicht identisch ist. Bei der Auswertung eines arithmetischen Ausdrucks, wenn Operanden unterschiedlich typisiert sind. int a; float b,c; c=a+b; Beim Aufruf einer Methode, falls die Typen der aktuellen Parameter nicht mit denen der formalen Parameter übereinstimmen. public double dosomething (double a, double b) {... } float x,y,z; Z=doSomething(x,y); 54

12 Implizite/Explizite Typumwandlung Vorsicht bei Konvertierung in char bzw. von char in byte, short oder int!! Konvertierung von short in char: Class Short2Char { public static void main (String args[]) { char poschar, negchar; Short pos Short = 1; Short negshort = -1; poschar = (char) posshort; neg Char = (char )negshort; } } Da die Breite von short und char gleich ist bleibt das Bitmuster erhalten. Da char aber nur für pos. Ganzzahlige Werte definiert ist, geht jedoch die Bedeutung des Vorzeichens verloren System.out.println( positiver Short + posshort + ist als char +(int) poschar); System.out.println( negativer Short + negshort + ist als char +(int) negchar); Ausgabe: Positiver Short 1 ist als Char 1 Negativer Short -1 ist als Char

13 Implizite/Explizite Typumwandlung Will man beispielsweise eine Variable vom typ double in eine Variable vom Typ int konvertieren, so kann man das nicht so ohne weiteres tun, denn es geht ja durch diese einschränkende Konvertierung Information verloren. Daher nimmt der Compiler an, dass es sich um einen Fehler handelt und gibt eine Fehlermeldung aus: Incompatible type for declaration Explicit cast needed to convert from double to int Der Grund für dieses Verhalten liegt darin begründet, dass es sich bei einer solchen Vorgangsweise häufig um einen Programmierfehler handelt. Um jedoch eine Konvertierung vornehmen zu können, muss man den Compiler dazu zwingen, es zu tun. Dies nennt man explizite Typkonvertierung (explicit typecast): int result = (int) Math.Pi; Eine Umwandlung von boolean in einen anderen Datentyp ist nicht möglich! 55

14 Definite Assignment In Java gibt es ein Konzept, das sich Definite Assignment nennt. Gemeint ist damit die Tatsache, dass jede lokale Variable vor ihrer ersten Verwendung definitiv initialisiert sein muss. Dazu muss im Quelltext eine Datenflussanalyse durchgeführt werden, die jeden möglichen Ausführungspfad von der Deklaration einer Variablen bis zu ihrer Verwendung ermittelt und sicherstellt, dass kein Weg existiert, der eine Initialisierung auslassen würde. PROBLEM?

15 Wrapper-Klassen/Objekte Wrapper-Objekte nehmen einen einfachen Datentyp in einem Objekt auf. Damit erfüllen sie zwei wichtige Aufgaben: Die Datenstrukturen, die in Java Verwendung finden, können nur Objekte aufnehmen (zb java.util.vector). So stellt sich das Problem, wie primitive Datentypen zu diesen Containern hinzugefügt werden können. Die Klassenbibliothek bietet daher für jeden primitiven Datentyp eine entsprechende Wrapper-Klasse (auch»ummantelungsklasse«oder»envelope Class«genannt) an. Exemplare dieser Klassen kapseln je einen Wert des zugehörigen primitiven Typs. Zusätzlich zu dieser Eigenschaft bieten die Wrapper-Klassen Funktionen zum Zugriff auf den Wert und einige Umwandlungsfunktionen. Bsp: int i=10; String s = "10"; Integer ii = new Integer( i ); int i = Integer.parseInt( s ); String s = ii.tostring(); float f = Float.parseFloat( s ); Es existieren Wrapper-Klassen zu allen primitiven Datentypen und zusätzlich eine Klasse für void.

16 Ausdrücke und Operatoren Obwohl wir Ausdrücke schon in unseren ersten kleinen Programmen kennengelernt haben, wollen wir diese jetzt noch einmal etwas genauer unter die Lupe nehmen. Merke: Ein Ausdruck ist die kleinste ausführbare Einheit eines Programms. Ein Ausdruck besteht immer aus mindestens einem Operator und einem oder mehreren Operanden, auf die der Operator angewendet wird. Nach den Typen der Operatoren unterscheidet man zwischen arithmetischen / nummerischen, relationalen, logischen, (bitweise) Zuweisungs, und sonstigen Operatoren (oft als Methode implementiert zb instanceof) Neben dem Typ ist auch die Stelligkeit eines Operators von zentraler Bedeutung (siehe auch Vorlesungsunterlagen vom )

17 Arithmetische Operatoren Es existiert die Addition, Subtraktion, Multiplikation, Division und der Restwertoperator Zusätzlich gibt es den einstelligen Operator für ein positives oder negatives Vorzeichen Arithmetische Operatoren erwarten numerische Operanden und liefern einen numerischen Rückgabewert. Haben die Operanden unterschiedliche Datentypen, so wird ein automatischer Type-Cast durchgeführt. + positivesvorzeichen +n gleichbedeutend mit n - negatives Vorzeichen -n kehrt das Vorzeichen um + Summe a+b ergibt Summe von a,b - Differenz a-b * Multiplikation a*b / Quotient a/b % Restwert a modulo b ++ Prä/Postinkement a=a+1 -- Prä/Postdekrement a=a-1

18 Relationale Operatoren Relationale Operatoren dienen dazu, Ausdrücke miteinander zu vergleichen und in Abhängigkeit davon einen logischen Rückgabewert zu produzieren == Gleich a==b => true wenn a=b!= Ungleich a!=b => true wenn a ungleich b < Kleiner a<b => true wenn a kleiner b <= Kleiner gleich a<=b => true wenn a kleiner oder gleich b > Größer a>b >= Größer gleich a>=b 59

19 Logische Operatoren Logische Operatoren dienen dazu, boolsche Werte miteinander zu verknüpfen. Im Gegensatz zu relationalen Operatoren, die durch Vergleiche einen boolschen Wert produzieren, werden logische Operatoren zur Weiterverarbeitung von Wahrheitswerten verwendet. Es gibt die Grundoperationen UND, ODER und NICHT. UND und ODER werden in zwei Varianten zur Verfügung gestellt: Short-Circuit-Evaluation es wird ein logischer Ausdruck (weiter rechts) nur dann ausgewertet, wenn er für das Ergebnis noch von Bedeutung ist keine Short-Circuit-Evaluation! logisches NICHT!a => false, wenn a true und vice versa && UND mit SCE ODER mit SCE & UND ohne SCE a&&b => true wenn a und b true sonst false a b => true, wenn mind. einer der Ausdrücke true ist, sonst false ODER ohne SCE ^ Exklusiv-Oder a^b => true, wenn beide Ausdrücke einen unterschiedlichen Wert haben

20 Bitweise Operatoren Mit diesen Operatoren kann auf die Binärdarstellung von numerischen Operanden zugegriffen werden. Ein numerischer Datentyp wird dabei binär (dual) repräsentiert, und es können die einzelnen Bits direkt manipuliert werden. ~a entsteht aus a, indem alle Bits von a invertiert ~ Einerkomplement werden & bitweises UND a&b ergibt den Wert, der entsteht, wenn die korrespondierenden Bits von a und b miteinander UND verknüpft werden bitweises ODER ^ bitweises XOR a b ergibt den Wert, der entsteht, wenn die korrespondierenden Bits von a und b miteinander ODER verknüpft werden >> rechtsschieben mit Vorzeichen a>>b schiebt um b bits in a nach rechts >>> << rechtsschieben ohne Vorzeichen linksschieben

21 Bitweise Operatoren Beispiele: 14 & & 0001 = = = 15 8 >> = abschneidende Ganzahldivision durch 8 (=2 3 ) -7 >> >>>

22 Zuweisungsoperatoren = Einfache Zuweisung += Additionszuweisung a+=3; entspricht a=a+3; -= Subtraktionszuweisung *= Multiplikationszuweisung /= Divisionszuweisung %= Modulozuweisunng &= UND Zuweisung a&=b weist a den Wert zu von a&b = ODER Zuweisung ^= XOR Zuweisung <<= Linksschiebungszuweisung >>= Rechtsschiebungszuweisung

23 Sonstige Operatoren Fragezeichenoperator Type-Cast Operator Bsp: int c = (int) 4.2; InstanceOf Operator Bsp: BMW instanceof Auto 63 63

24 Priorität von Operatoren Wie bereits erwähnt sind Operatoren sind in Java mit so genannten Prioritäten versehen, wodurch gewisse Reihenfolgen bei der Auswertung (=operator ranking) eingehalten werden Darüber hinaus gibt es folgende Regeln zur Auswertung eines Ausdrucks in JAVA: 1. Als erstes werden Teilausdrücke in Klammern ausgewertet. 2. Danach werden Ausdrücke mit unären Operatoren ausgewertet 3. Abschließend werden Teilausdrücke mit mehrstelligen Operatoren ausgewertet 4. Bei Operatoren mit gleicher Priorität (siehe auch Tabelle) wird die Reihenfolge der Auswertung anhand Ihrer Assoziativität bestimmt Bsp: a b + c. Es wird zuerst die Operation a-b durchgeführt bevor die Addition mit c erfolgt -> linksassoziativ (beachte Reihenfolge der Auswertung kann durch Setzung von Klammern beeinflusst werden: a-(b+c) (siehe auch Regel 1)) In Java sind Zuweisungsoperatoren, der Bedingungsoperator und unäre Operatoren rechtsassoziativ. Alle anderen Operatoren sind linksassoziativ.

25 Priorität von Operatoren Wie bereits erwähnt sind Operatoren sind in Java mit so genannten Prioritäten versehen, wodurch gewisse Reihenfolgen bei der Auswertung eingehalten werden (Punkt vor Strich)

26 Operatoren für Objekte Auch wenn wir noch nicht genau wissen, wie man ein Objekt erzeugt, bzw. was ein Objekt ist, so wollen wir uns trotzdem der Vollständigkeit halber anschauen, welche Operatoren für Objekte zur Verfügung stehen. String Verkettung Der + Operator kann nicht nur mit numerischen Operanden verwendet werden, sondern auch für eine Konkatenation von Strings - also Zeichenketten. Dabei gilt es folgende Regel zu beachten: Ist ein Operand vom Typ String, so werden alle weiteren als Typ String betrachtet und der + Operator wird als Konkatenator verwendet. In Java ist die Konvertierung in einen String von nahezu jeden Typen definiert. Bei primitiven Datentypen wird diese Konvertierung direkt vom Compiler, und bei Referenzdatentypen durch die Methode (Funktion) tostring() ausgeführt. System.out.println ( 3+4= +3+4); System.out.println ( 3+4= +(3+4));

27 Referenztypen-Dynamische Variablen Referenztypen sind neben den primitiven Datentypen die zweite wichtige Klasse von Datentypen in Java. Objekte sind Referenztypen Objekte werden in Java als dynamische Variablen angelegt auf dem Heap abgelegt HEAP??

28 Speicherbereiche in JAVA In Java unterschiedet man 3 verschiedene Speicherbereiche Stack Heap Method Area Stack (=Stapel): Informationen werden hier temporär abgelegt Im Stack werden zb lokale Variablen einer Methode gespeichert Auf Information, die zuletzt abgelegt wurden, kann als erstes wieder zugegriffen werden ( last in first out = LIFO stack) Heap (=Halde): stellt Speicherplatz für dynamische Variablen zur Verfügung Größe des Heaps ist beschränkt Garbage Collector gibt Speicherplatz der nicht mehr referenziert wird frei und ordnet Speicherbereich neu Method Area: Speicherbereich für Klassenvariablen Plus gesamter Programmcode der Klasse

29 Referenztypen-Dynamische Variablen Speichermanagement Während primitive Datentypen einfach deklariert werden, und dann verwendet werden können, reicht dies bei Referenztypen nicht mehr aus. Sie müssen mithilfe des new-operators erzeugt werden (Ausnahme Arrays und Strings) StringBuffer mystringbuffer = new StringBuffer (); Auto mercedes = new Auto(150,rot); Klasse / Typ Var.-Name Operator Konstruktor Parameter (Spez. Methode zur Initialisierung eines Objekts) Was passiert im Speicher??

30 Speicherbereiche in JAVA Stack Nicht definierte Referenz Stack Auto bmw; bmw bmw = bmw new Auto(150,rot); Definierte Referenz: Das im Heap erzeugte Objekt wird referenziert. Heap Heap Auto-Objekt

31 Referenztypen-Dynamische Variablen Referenztypen können prinzipiell genauso benutzt werden wie primitive Typen. Da sie jedoch lediglich einen Verweis (Alias) darstellen, ist die Semantik einiger Operatoren anders als bei primitiven Typen Die Zuweisung einer Referenz kopiert lediglich den Verweis auf das betreffende Objekt. Das Objekt selbst wird nicht kopiert. Nach einer Zuweisung zweier Referenztypen zeigen diese also auf ein und das selbe Objekt. Sollen Referenztypen kopiert werden, so ist ein Aufruf der Methode clone()erforderlich Der Gleichheitstest zweier Referenzen testet, ob beide Verweise gleich sind, d.h. auf dasselbe Objekt zeigen. Soll auf inhaltliche Gleichheit getestet werden, so kann die equals() Methode verwendet werden.

32 Referenztypen Wie wir bereits gehört haben verfügt Java über ein automatisches Speichermanagement. Dadurch muss man sich nicht um die Speicherbereinigung kümmern. Wird ein Objekt nicht mehr benötigt, oder kann es nicht mehr erreicht werden, so wird es vom Garbage Collector entfernt. Um trotz des Verzichts auf die expliziten Destruktoren (=Objektvernichter) doch noch bestimmte Anweisungen direkt vor der Entfernung von Objekten durchführen zu können, besitzt jede Klasse die Methode finalize(): Ähnlich wie der implizite Konstruktor (Objekterzeuger und Initialisierer) muss diese Methode nicht extra implementiert werden. Es kann aber auch ein expliziter Finalizer geschrieben werden. Die Methode finalize() eines Objektes wird automatisch aufgerufen, bevor es vom Garbage Collector entfernt wird.

33 Arrays Wie bereits erwähnt sind Arrays in Java im Grunde genommen Objekte. Obwohl dies bei der Benutzung kaum auffällt hat dies folgende Konsequenzen: Array Variablen sind Referenzen Arrays besitzen Instanz-Variablen und Methoden Arrays werden erst zur Laufzeit erzeugt Dennoch bleiben Arrays immer eine Reihung von Elementen eines festen Grundtyps. Arrays sind semidynamisch - d.h. ihre Größe wird zur Laufzeit festgelegt, kann jedoch im Nachhinein nicht mehr geändert werden.

34 Arrays Ein Array wird in Java wie folgt deklariert Deklaration der Array-Variablen Erzeugen eines Arrays und Zuweisung an die Array-Variable Die Deklaration entspricht dabei syntaktisch der einer einfachen Variable, mit dem Unterschied, dass am Typnamen eckige Klammern angehängt werden int[] a; double [] b; Die eckigen Klammern können theoretisch auch hinter dem Variablennamen geschrieben werden, aber es sollte jedoch vermieden werden. 71

35 Zugriff auf Arrayelemente Bei der Erzeugung eines Arrays mit n Elementen werden die Elemente von 0 bis n-1 durchnummeriert Erzeugung eines int-arrays mit 3 Elementen oder a[] = new int[3]; Int[] a = {1, 5, 3}; Der Zugriff auf die Elemente erfolgt dabei über den numerischen Index, der nach der Arrayvariable in eckigen Klammern angegeben wird values ai index i public class Test { public static void main (String[] args) { int[] values = new int[10]; values[0] = 20; values[1] = 15; } } System.out.println ( Erstes Element: + values[0]);

36 Mehrdimensionale Arrays Mehrdimensionale Arrays werden erzeugt, indem zwei oder mehr Paare eckiger Klammern bei der Deklaration angegeben werden. Mehrdimensionale Arrays werden als Arrays von Arrays angelegt. Die Initialisierung erfolgt analog zu eindimensionalen Arrays. Beispiel: int [][] twodim = new int[2][3]; 74

37 Zeichenketten -Strings Mehrere Zeichen des Datentyps char können zu einer Zeichenkette zusammengefasst werden. Zeichenketten werden dabei als Strings bezeichnet. Strings werden in Java allerdings nicht als Werte eines einfachen Datentyps gewertet, sondern stellen Objekte dar (siehe auch link) Strings werden unter einem doppelten Hochkomma eingeschlossen Für die Erzeugung eines String Objekts gibt es 2 Möglichkeiten: 1. Mit dem new Operator: String name = new String( Klaus ); 2. Implizite Erzeugung bei Verwendung einer konstanten Zeichenkette: String name = Klaus ; Implizit erzeugte String Objekte können wiederverwendet werden:.class Datei kleiner Interpreter kann Klassenübergreifend optimieren String name = Klaus ; String gleichername = Klaus ; name gleichername Heap String Klaus

38 Übungsfragen 1. Was versteht man unter Typumwandlung? 2. Wie kann es bei einer Typumwandlung zu unerwünschten Veränderungen im Wert kommen? 3. Was versteht man unter expliziter bzw. impliziter Typumwandlung? Nennen sie jeweils ein Beispiel. 4. Was sind Operatoren? In welche Klassen können Operationen eingeteilt werden? 5. Was versteht man unter der Priorität eines Operator s? In diesem Zusammenhang fällt auch manchmal der Begriff operator ranking. Was versteht man darunter?

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

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

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

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

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

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

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

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

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

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

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

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

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

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

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

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

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

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 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

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

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

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

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 Arrays Wiederholung (1/5) Array = GEORDNETE

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

Kapitel 11: Wiederholung und Zusammenfassung

Kapitel 11: Wiederholung und Zusammenfassung Wiederholung und Zusammenfassung 1: Begriff und Grundprobleme der Informatik Begriff Informatik Computer als universelle Rechenmaschine Grenzen der Berechenbarkeit Digitalisierung Problem der Komplexität

Mehr

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung Guido Krüger Handbuch der Java-Programmierung 4. Auflage An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam 4 4.1 Lexikalische

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

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

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

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

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Programmieren mit. Java. Lars Knipping. Februar 2002

Programmieren mit. Java. Lars Knipping. Februar 2002 Programmieren mit Java Lars Knipping Februar 2002 1 Java nach Sun Java ist eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutral portable, hochleistungsfähige,

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

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Primitive Datentypen. Dr. Wolfgang Süß Thorsten Schlachter

Primitive Datentypen. Dr. Wolfgang Süß Thorsten Schlachter Dr. Wolfgang Süß Thorsten Schlachter Java-Bezeichner Für Variablen, Methoden, Klassen und Schnittstellen werden Bezeichner auch Identifizierer (von engl. identifier) genannt vergeben. Ein Bezeichner ist

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

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

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

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Java-Vorkurs 2015. Wintersemester 15/16

Java-Vorkurs 2015. Wintersemester 15/16 Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung)

Themen der Übung. Java. Java installieren. Java installieren. Installation (Fortsetzung) Themen der Übung Java CoMa-Übung II TU Berlin 1 Java-Installation Hello World 3 Temperature 4.10.01 CoMa-Übung II (TU Berlin) Java 4.10.01 1 / 8 CoMa-Übung II (TU Berlin) Java 4.10.01 / 8 Java installieren

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Erster Kontakt mit Java und Pseudocode

Erster Kontakt mit Java und Pseudocode Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27 Themen der Übung 1 Java auf meinem Rechner 2

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

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

Dynamische Sprachen auf der JVM

Dynamische Sprachen auf der JVM Dynamische Sprachen auf der JVM Christian Müller Leibniz Universität Hannover 1 Einführung Der Begriff dynamische Sprache ist nicht genau definiert, sehr oft wird er lediglich mit dynamischer Typprüfung

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

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

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

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

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

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013 Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de

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

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Grundwissen Informatik JS 10 24. September 2015

Grundwissen Informatik JS 10 24. September 2015 Grundwissen Informatik JS 10 24. September 2015 Grundlagen der Objektorientierung 1. Erkläre die Begriffe Klasse, Attribut, Attributwert, Objekt, Methode und Dienst. Beispiel! Allgemein Eine Klasse ist

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

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel: Die Funktionen print() und println() Die Funktion System.out.printf() Format eines Funktionsaufrufs funktionsname(); Innerhalb der Klammern können Argumente angegeben werden Die Funktion kann ein Ergebnis

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

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

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 Grundelemente der Java-Programmierung... 3-2 3.1 Alphabet... 3-2 3.2 Bezeichner... 3-3 3.3 Kommentare... 3-3 3.4 Elementardatentypen... 3-5 3.5 Konstanten (Literale)... 3-7 3.5.1 Unbenannte Konstanten...

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

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. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

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

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

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

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr