Einführung in die Programmiersprache Perl

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Programmiersprache Perl"

Transkript

1 Einführung in die Programmiersprache Perl Teil 2: Binäre Stringoperatoren Zuweisungsoperatoren Zeichen und Zahlen Geordnete Listen und Arrays Assoziative Listen (Hashes) Kontext Referenzen auf Variablen /

2 Binäre Stringoperatoren (1) Der Punkt-Operator. verknüpft zwei Zeichenketten miteinander. Der Zeichenketten links und rechts des Punktes werden in dieser Reihenfolge miteinander verbunden. Beispiel: my $foo = "Hello"; my $bar = $foo. " World" $bar hat danach den Wert: "Hello World". Das Verketten von Zeichenketten wird in der Fachsprache Konkatenation (engl. concatenation) genannt.

3 Binäre Stringoperatoren (2) Der x-operator vervielfacht eine Zeichenkette. Links vom Operator x muss eine Zeichenkette stehen und rechts davon eine ganze Zahl n. Das Ergebnis besteht aus einer Verkettung von n Kopien der Zeichenkette. Beispiel: my $foo = "Bla" x 5; $foo hat danach den Wert: "BlaBlaBlaBlaBla". Achtung: Der x-operator ist nicht kommutativ!

4 Zuweisungsoperatoren (1) Wir kennen bereits den Zuweisungsoperator =. Beachte: Es handelt sich dabei nicht um ein Gleichheitszeichen im mathematischen Sinne. Der Zuweisungsoperator wertet zuerst den Ausdruck rechts aus (rvalue) und ordnet anschliessend diesen Wert der links stehenden Variable (lvalue) zu. Beispiel: $a = * 10**2; Übungsfrage: Wie interpretiert Perl den folgenden Ausdruck? 7 = $a; Perl wertet die Variable $a aus und möchte diesen Wert der Variable 7 zuordnen. Da 7 jedoch kein gültiger Variablenname ist, bricht Perl die Kompilierung mit einer Fehlermeldung ab.

5 Zuweisungsoperatoren (2) Perl und viele andere Programmiersprachen kennen Zuweisungsoperatoren, bei denen vor der Zuweisung noch eine Operation mit dem lvalue und dem rvalue ausgeführt wird. my $a = 5; $a += 3; # => $a = $a + 3 => $a = 8 my $b = 7; $b -= 3; # => $b = $b - 3 => $b = 4 my $c = 2; $c *= 3; # => $c = $c * 3 => $c = 6 my $d = 6; $d /= 3; # => $d = $d / 3 => $d = 2 my $e = 8; $e %= 3; # => $e = $e % 3 => $e = 2 my $f = 3; $f **= 3; # => $f = $f ** 3 => $f = 27 my $g = x ; $g.= y ; # =>... $g = xy Es gibt noch 8 weitere solcher Zuweisungsoperatoren, die jedoch erst bei Bedarf erläutert werden. Moral: Diese kombinierten Zuweisungsoperatoren machen den Code vielleicht etwas kürzer aber nicht unbedingt besser lesbar.

6 Vermischen von Zeichen und Zahlen (1) Da sowohl Zahlen als auch Zeichenketten von Perl als skalare Daten betrachtet werden, fragt man sich vielleicht, was geschieht, wenn man versucht, einen numerischen Operator auf Zeichenketten anzuwenden oder eine Stringoperator auf Zahlen anzuwenden? Perl behandelt das Problem in einer lockeren und naheliegenden Weise. Führe das Programm auf der folgenden Folie vom Perl-Interpreter aus.

7 prog pl 1 #!/ usr / bin / perl 2 3 use strict ; 4 # use warnings ; 5 6 print "7" + " 3", "\n"; 7 print "7" + "3 zahl ", "\n"; 8 print "7" + " zahl3 ", "\n"; 9 print 7 * "5-4", "\n"; 10 print 7. 3, "\n"; 11 print 7. 3, "\n"; Welche Regeln beim Operieren mit gemischten Daten vermutest du aufgrund der Ausgabe?

8 Vermischen von Zeichen und Zahlen (2) (a) Falls eine Zahl dort steht, wo eine Zeichenkette erwartet wird, wandelt Perl die Zahl in eine Zeichenkette um "2". "3" "23" (b) Falls ein String dort steht, wo eine Zahl erwartet wird, versucht Perl die Zeichenkette als Zahl zu interpretieren: Führende Leerzeichen oder Tabulatoren werden ignoriert. 5 + " 1.2" 5 + "1.2" Falls danach Zeichen folgen, die vernünftig als Zahlen gedeutet werden können (dazu gehören auch die Vorzeichen + oder -), wandelt Perl diese Zeichen bis zum nächsten nicht numerischen Zeichen in eine Zahl um. Die übrigen Zeichen im String werden ignoriert. 2 + "3.14abc" Falls am Anfang des Strings keine Zeichen stehen, die als Zahlen aufgefasst werden können, verwendet Perl den Wert "abc3.14"

9 Übung Welchen Wert haben die folgenden Perl-Ausdrücke? 1. "12" + 3; => "12". 3; => "123" 3. "7x" * "3y"; => 7 * 3 = "fun4you" - "5th Avenue"; => 0-5 = * "3 Musketiere"; => 12

10 Was sind Listen? Eine Liste ist eine geordnete Sammlung skalarer Werte. Darstellung im Quellcode: Eine durch Kommas getrennte Aufzählung skalarer Werte oder Ausdrücke, die von einem Paar runder Klammern eingeschlossen ist. Beispiele: (1, 2, 3, 4) Liste aus vier Werten ( a, 9, "blue") Liste aus drei Werten (4+5, $abc, 3) Liste aus drei Werten Beantworte die folgende Frage aufgrund der obigen Beispiele: Müssen die Elemente einer Perl-Liste homogen (d.h. vom gleichen Datenyp) sein? Nein, In einer Perl-Liste dürfen Gleitkommazahlen, ganze Zahlen, Zeichenketten, Referenzen und Ausdrücke gemischt auftreten.

11 Listen als Argument von print Im Zusammenhang mit der Funktion print() sind wir bereits mit Listen in Kontakt gekommen. print() nimmt als Argument eine Liste entgegen und gibt deren Argumente der Reihe nach aus: print("die Summe beträgt ", $x, " Fr.\n"); print() weiss, dass jetzt eine Liste kommen muss und erlaubt dem Programmierer, die äusseren runden Klammern wegzulassen. print "Die Summe beträgt ", $x, " Fr.\n"; Achtung: es gibt Fälle, wo man vorsichtig mit dieser Nachlässigkeit sein muss ( Übungen)

12 Verschachtelte Listen Eine verschachtelte Liste ist eine Liste innerhalb einer Liste. Perl löst innere Listen automatisch auf. Man spricht in diesem Zusammenhang auch vom Verflachen von Listen. Beispiel: (1, 2, (3, 4, 5), 6) wird automatisch zu (1, 2, 3, 4, 5, 6) Manchmal ist dieses Verhalten unerwünscht. Wir werden später erfahren, wie man dieses automatische Auflösen innerer Listen mit Hilfe von Referenzen verhindert.

13 Listen aus Wort-Strings Manchmal müssen Listen aus einfachen Zeichenketten mit Hochkommas gebildet werden. Beispiel: ( eins, zwei, drei, vier ) Bei längeren solchen Listen, kann der Code wegen der vielen Kommas und Hochkommas unleserlich werden und das Risiko von Tippfehlern steigt. Die Funktion quote() hilft dabei, dieses Problem etwas zu entschärfen. quote() nimmt als Argument eine Liste von Zeichenketten, die durch Leerzeichen (Space, Tabulator, Return) getrennt sind und macht damit eine Liste aus Zeichenketten in Hochkommas: qw(eins zwei drei vier) ist dasselbe wie ( eins, zwei, drei, vier )

14 Listenvariablen = Arrays Auch eine Liste kann in einer Variable gespeichert werden. Variablennamen für Listen beginnen mit dem Man denke an ein stilisiertes a wie array dem englischen Wort für Liste oder Vektor. Für Variablennamen von Listen gelten dieselben Regeln wie für skalare Variablen. Um eine Liste einer Listenvariable zuzuweisen, verwendet man den Zuweisungsoperator. = (1, 2, three = ($a, $b, In Perl bezeichnet man eine Listenvariable als Array.

15 Bildliche Darstellung = (42, 13, $array[1] Möchte man auf ein einzelnes Element des Arrays zugreifen, wird durch das $-Zeichen ersetzt (warum?) und der Index des betreffenden Elements in eckigen Klammern dahinter gesetzt. Achtung: Die Indizierung (=Nummerierung) der Arrayelemente beginnt bei Perl und den meisten anderen Programmiersprachen bei Null!

16 Übung my $a = 3; = ( x, 3.14, 5 * 8, $a); Welchen Wert hat der Ausdruck? 1. $b[1] => $b[2] => $b[0]. "yz" => "xyz" 4. $b[3]. "8" => "38" 5. $b[4] => Fehlermeldung 6. $b[-2] => 40 Ein negativer Index bedeut, dass die Position, vom Listenende in Richtung des Listenanfangs gezählt wird.

17 Namenskonflikte? Perl kann skalare Variablen und Listenvariablen mit gleichem Namen (aber entsprechendem Typensymbol) unterscheiden. Warum? = (5, 6, 7, 8, 9); my $foo = Liste (5, 6, 7, 8, 9); $foo Skalar 42; wegen $-Symbol $foo[3] Element 8 der Liste; wegen [...]

18 Mehrfachzuweisungen Listen können auch im Zusammenhang mit Zuweisungen auftreten. Was bewirken die folgenden Ausdrücke? my ($a, $b) = (35, 12); => my $a = 35; => my $b = 12; ($a, $b) = ($b, $a); => $a = 12 => $b = 35 Warum funktioniert das? Weil die Ausdrücke rechts vom Zuweisungsoperator vor der Zuweisung ausgewertet werden.

19 Der Bereichsoperator Einfache Folgen von Zahlen oder Buchstaben können in Perl mit dem Bereichsoperator.. (range operator) erzeugt werden: (3.. 7) => (3, 4, 5, 6, 7) ( a.. g ) => ( a, b, c, d, e, f, g ) (0.. 9, A.. F ) => (0, 1,..., 9, A, B,..., F ) ( aa.. zz ) => ( aa, ab,..., az, ba, bb,..., bz,... za, zb,..., zz ) (7.. 4) => () [da 7 > 4]

20 Slices (1) Führe das Programm prog pl aus und versuche die Ausgabe zu verstehen. = ( 1, 2, 3, 4, 5, 6 ) ; [ 1, 3, 4 ] ; [ ] ; = ( a.. z ) ; ] ; p r i n t a ; p r i n t b ; p r i n t c ; p r i n t d ; p r i n t e ;

21 Slices (2) Werden innerhalb der eckigen Klammern mehrere Indizes angegeben, so geht Perl davon aus, dass die entsprechenden Elemente aus dem Array ausgewählt werden. Da es sich bei der Auswahl von mehr als einem Element wieder um eine Liste handelt (Teilliste oder slice), muss als Typensymbol des Rückgabwerts verwendet werden. Der Bereichsoperator wird sinnvollerweise dort eingesetzt, wo ein zusammenhängender Bereich aus einem Array ausgwählt werden soll.

22 Übungen = (3, 4, 5, 6, 7, 8, 9); => (3, 5, 7) 2. ( a.. z, A.. Z ) => (a, b,..., z, A, B,... Z) -4] => keine Ausgabe, da (-2) > (-4) -2] => (6, 7, 8)

23 Arrayoperationen (1) shift ARRAY Diese Funktion bewirkt folgendes: Schiebt das erste (d. h. das nullte ) Element aus dem Array heraus und gibt es als Funktionswert zurück. Verkürzt das Array um ein Element und rückt alle Elemente um eine Position nach vorne. Beispiel: = (3, 4, 5, 6, 7); my $wert hat danach den Wert: (4, 5, 6, 7) $wert hat danach den Wert: 3

24 Arrayoperationen (2) unshift ARRAY, LIST Die Funktion unshift ist so etwas wie ein Gegenspieler von shift: unshift schiebt die Elemente von LIST von vorne in die Liste mit dem Variablennamen ARRAY Der Wert von unshift ist nicht der veränderte ARRAY sondern die neue Anzahl der Elemente in ARRAY. Beispiel: = ( x, y, z ); my $wert = ( a, b hat danach den Wert: ( a, b, x, y, z ) $wert hat danach den Wert: 5

25 Arrayoperationen (3) pop ARRAY Die Funktion pop bewirkt folgendes: Entfernt das letzte Element aus dem Array und gibt es als Funktionswert zurück. Verkürzt das Array um das letzte Element. Beispiel: = (3, 4, 5, 6, 7); my $wert hat danach den Wert: (3, 4, 5, 6) $wert hat danach den Wert: 7

26 Arrayoperationen (4) push ARRAY, LIST push ist so etwas wie ein Gegenspieler von pop: push hängt die Elemente von LIST an das Ende von ARRAY an. Der Wert von push ist die neue Anzahl der Elemente in ARRAY. Beispiel: = ( a, b ); my $wert = c hat danach den Wert: ( a, b, c ) $wert hat danach den Wert: 3

27 Zusammenfassung shift... unshift push

28 Übung Wie sieht das nach jeder Operation aus? = (4, 5, 6); 1. 11, 12); = (4, 5, 6, 11, 12) 2. = (5, 6, 11, 12) 3. = (5, 6, 11) 4. 13, 14, 15); = (13, 14, 15, 5, 6, 11)

29 Hashes (1) Es ist nicht immer sinnvoll, eine Sammlung von Daten in Form einer nummerierten Liste anzulegen. Beispiel: = ( Meier, Tim, Heimweg 7, 6370, Stans ); Mit $person[0] kann man auf den Familennamen oder mit $person[3] auf die Postleitzahl der Person zugreifen. Sind diese Bezeichnungen in einem Programm selbsterklärend?

30 Hashes (2) Es gibt Situationen, in denen man die Daten einer Datenmenge besser mit einem Etikett als mit einer Nummer identifiziert. Diese Art von Datenstruktur wird in der Informatik auch als assoziative Liste oder Menge von Schlüssel/Wert-Paaren genannt. Auf das Beispiel von vorhin angewendet: Schlüssel Wert name "Meier" vorname "Tim" strasse "Heimweg 7" plz "6370" ort "Stans"

31 Hashes (3) Perl kennt assoziative Listen als eigenen Datentyp. Im Gegensatz zu Listen müssen assoziative Listen jedoch an eine Variable gebunden werden. Aufgrund der Art und Weise, wie Perl assoziative Listen intern speichert, werden sie Hashes genannt. Das Typensymbol für eine Hash-Variable ist das Prozentzeichen (%). (Man kann sich das so merken, dass das Kreislein oben links den Schlüssel und das Kreislein unten rechts den Wert darstellt.)

32 Hashes (4) Hash-Variablen werden über den Umweg einer Liste definiert: my %person = ( name, "Meier", vorname, "Tim", strasse, "Heimweg 7", plz, "6370", ort, "Stans"); Jeweils zwei aufeinanderfolgende Elemente einer Liste bilden in dieser Reihenfolge ein Schlüssel/Wert-Paar. Man kann sich gut vorstellen, dass die oben gezeigte Art der Eingabe schnell zu Fehlern führt: Komma vergessen Apostroph vergessen Schlüssel vergessen Wert vergessen

33 Hashes (5) In Perl gibt es das Synonym => für das Komma. In diesem Fall dürfen auch die Hochkommas der Schlüssel weggelassen werden. my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans"); Durch Leerzeichen und Zeilenschaltungen können wir die Eingabe noch übersichtlicher formatieren: my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans");

34 Zugriff auf Hashes Um beispeilsweise auf den Vornamen in unserem Beispieldatensatz zuzugreifen, verwenden wir die folgende Syntax: $person{vorname} Wir geben den Schlüsselnamen in geschweiften Klammern hinter dem Variablennamen an. Aus dem Typensymbol % wird das Typensymbol $. Warum? Ein einzelner Werte ist in Perl ein Skalar und skalare Variablen haben das $-Zeichen als Typensymbol. Bemerkung: Die Hochkommas um den Schlüsselnamen können in der Regel weggelassen werden. Dieselbe Schreibweise wird auch dazu verwendet einem Schlüssel einen neuen Wert zuzuordnen: $person{vorname} = "Timothy";

35 Die Funktion keys keys HASH Liefert eine Liste, die aus allen Schlüsseln des angegebenen Hashes besteht. Im skalaren Kontext (dazu bald mehr) liefert die Funktion die Anzahl der Schlüssel. Achtung: Die Schlüssel werden in scheinbar zufälliger Reihenfolge ausgegeben. Beispiel: my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans"); = keys(%person) print Ausgabe: ort vorname strasse plz name

36 Die Funktion values values HASH Liefert eine Liste, die aus allen Werten des angegebenen Hashes besteht. Im skalaren Kontext liefert die Funktion die Anzahl der Schlüssel (dazu bald mehr). Achtung: Die Werte werden in derselben zufälligen Reihenfolge wie bei keys ausgegeben. my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans"); = values(%person) print Ausgabe: Stans Tim Heimweg Meier

37 Hash-Slices my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans"); vorname, name }; print Ausgabe: Tim Meier

38 Die Funktion delete delete EXPRESSION Löscht das (oder die) Schlüssel/Wert-Paar(e) aus dem Hash, gemäss der EXPRESSION. Die Funktion liefert eine Liste mit den gelöschten Werten zurück. my %person = (name => "Meier", vorname => "Tim", strasse => "Heimweg 7", plz => "6370", ort => "Stans"); = delete $person{vorname}; print Ausgabe: "Tim"; [ genauer: ("Tim") ]

39 Kontext (1) Perl unterscheidet primär zwischen skalaren Werten und Listen. Diese Trennung geht über die Schreibweise von Variablen hinaus. Sie beeinflusst auch die Art und Weise, wie gewisse Ausdrücke ausgewertet werden. Dazu ein erstes = (7, 8, 9); $bar In der ersten Zeile erwartet das dass ihm eine Liste zugewiesen wird. Das Array erwartet eine Liste, also wird der Ausdruck (korrekt) im Listenkontext ausgewertet. Analog dazu erzeugt die skalare Variable $bar einen skalaren Kontext, weil sie rechts einen skalarer Wert erwartet. Nun steht dort aber eine Liste. Perl erzwingt nun diesen skalaren Kontext, indem er an Stelle der Liste die Anzahl der Elemente der Liste setzt.

40 Kontext (2) Was geschieht umgekehrt, wenn wir einem Array einen skalaren Wert zuweisen = 12; Da das Array einen Listenkontext erzeugt, verwandelt Perl den skalaren Wert 12 in die Liste (12), die nur aus einem Element besteht. Dasselbe hätten wir auch gleich mit der = (12); erledigen können.

41 Kontext (3) Offenbar liefern einige Perl-Funktionen unterschiedliche Werte zurück und zwar in Abhängigkeit davon, ob sie im skalaren- oder im Listenkontext aufgerufen werden. Als letztes Beispiel soll hier noch der Komma-Operator dargestellt werden. Listen-Kontext: Die Argumente links und rechts des Kommas werden ausgewertet und in eine Liste eingefügt. Bei mehr als einem Komma finden dieser Vorgang von links nach rechts = (1, 3 + 5, 4); # = (1, 8, 4) Skalarer Kontext: Der Komma-Operator wertet das linke Argument aus und wirft den Wert weg. Danach wird das rechte Argument ausgwertet und dessen Wert zurückgegeben. Bei mehreren Kommas verhält sich der Operator ebenfalls linksassoziativ. $foo = 1, 3 + 5, 4; # => $foo = 4

42 Referenzen auf Variablen (1) Wir haben früher bereits erwähnt, dass man in einer skalare Variable auch eine Referenz, d. h. die Adresse eines bestimmten Speicherplatzes ablegen kann. Wir haben aber nie erklärt, wie man das macht. Zunächst benötigen wir die Vorstellung, dass eine Variable ein Behälter (Speicherplatz) mit einem Namen und einer Adresse ist. Eine Referenz auf eine (skalare) Variable ist eine skalare Variable, die als Wert die Adresse des Speicherplatzes der Variable enthält, auf die sie verweist. Dazu ein Bild: $foo 42 $foo ref

43 Referenzen auf Variablen (2) Wann immer Perl auf einen Ausdruck wie $foo trifft, erwartet es nach dem $-Symbol etwas, was zu einer Adresse für eine skalare Grösse ausgewertet werden kann. Perl sucht in seiner internen Liste der skalaren Variablen nach dem Namen foo. Falls es ihn findet, wird foo durch die entsprechende Adresse ersetzt und der skalare Wert von dieser Stelle gelesen bzw. bei Zuweisungen an diese Stelle geschrieben. Perl erlaubt es uns nun, die Adressen, wo normale Variablen ihre Werte speichern, in einer weiteren skalaren Variable zu speichern. An die Adresse einer Variablen kommt man mit dem Backslash-Operator: my $foo = 42; my $bar = \$foo; # $bar bekommt die Adresse von $foo

44 Referenzen auf Variablen (3) Wir müssen uns bewusst sein, dass eine Referenz zunächst keinen direkten Zugang zu der Variablen ermöglicht, auf die sie zeigt. Möchte man den Wert einer Referenz ausgeben, so erhält man zunächst eine Adresse. Um nun indirekt an den Wert der Variablen zuzugreifen, auf den die Referenz zeigt, muss die Referenz dereferenziert werden, indem man das jeweiligen Typensymbol vor die Referenzvariable setzt. Zeigt die Referenz $bar auf die Variable $foo, so bekommt man mit $$bar den Wert von $foo: my $foo = 42; my $bar = \$foo; print $bar; # Ausgabe der Adresse SCALAR(0x18334e4) print $$bar; # Ausgabe des Wertes 42

45 Referenzen auf Variablen (4) Auch Referenzen auf Arrays sind skalare Variablen. In gewisser Weise genügt es, dass die Referenz auf das erste Element eines Arrays zeigt. = (5, 8, $array ref = $array ref Um eine Referenz auf einen Array zu dereferenzieren, muss das vor die Referenzvariable gesetzt werden.

46 Referenzen auf Variablen (5) Bis zu diesem Punkt ist es nur wichtig, das Konzept der Referenzen zu verstehen. Die Nützlichkeit von Referenzen wird erst in den folgenden Lektionen deutlich, wenn es darum geht, Parameter an Funktionen zu übergeben oder Datenstrukturen zu erzeugen.

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays'

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays' Was ist ein Hash? 'Assoziative Arrays' Hashes sind array-ähnliche Datenstrukturen, die aus Schlüssel-Wert Paaren bestehen. Artikel + Preis Apfel 0,45 Banane 0,75 Ananas 1,49 Birne 0,59 %Artikel = Apfel

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

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

3 Die Grundrechenarten

3 Die Grundrechenarten 3 Die Grundrechenarten In diesem Kapitel wollen wir uns unter anderem mit folgenden Themen beschäftigen: Operatoren für die Addition, Subtraktion, Multiplikation und Division Modulooperator, auch Restoperator

Mehr

Benutzerfunktionen Was ist eine Funktion, was ist eine Prozedur?

Benutzerfunktionen Was ist eine Funktion, was ist eine Prozedur? Was ist eine Funktion, was ist eine Prozedur? Aufbau einer "Prozedur" (d.h. ohne Rückgabewerte) sub FktName (Parameter) {Anweisungsblock sub ausgabe {print "Hallo Welt!" Aufbau einer "Funktion" (d.h. mit

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

Programmierung mit C Zeiger

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

Mehr

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

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.

Mehr

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Eine Beschreibung des Programms und der dahinter stehenden Philosophie. 1 Geschichte Larry Wall schrieb ein Konfigurationsmanagementsystem und benötigte dazu ein Berichtwerkzeug, das mehrere Dateien gleichzeitig öffnen konnte. Awk konnte es damals nicht, daher schrieb er eine

Mehr

3 Berechnungen und Variablen

3 Berechnungen und Variablen 3 Berechnungen und Variablen Du hast Python installiert und weißt, wie man die Python-Shell startet. Jetzt kannst Du etwas damit machen. Wir fangen mit ein paar einfachen Berechnungen an und wenden uns

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

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

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

Perl-Praxis. Einführung. joern@techfak.uni-bielefeld.de

Perl-Praxis. Einführung. joern@techfak.uni-bielefeld.de Perl-Praxis Einführung Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht Ursprünge von Perl erste Schritte mit Perl Datentypen 2 Warum Perl? Warum nicht? Perl... ist leicht zu erlernen erlaubt kompakten

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

Grundlagen der Programmierung

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

Mehr

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

IT-Zertifikat: Allgemeine Informationstechnologien II PHP IT-Zertifikat: Allgemeine Informationstechnologien II PHP PHP ( PHP: Hypertext Preprocessor ) ist eine serverseitige Skriptsprache: Der PHP-Code wird nicht wie bei JavaScript auf dem Clientrechner ausgeführt,

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

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

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

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

Komplexe Datenstrukturen

Komplexe Datenstrukturen Perl-Praxis Komplexe Datenstrukturen Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba AG Praktische Informatik Technische Fakultät Universität Bielefeld {asczyrba,jkrueger@techfak.uni-bielefeld.de 1

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

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

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

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

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

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

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

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

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

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

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Übung 4: Einführung in die Programmierung mit MATLAB

Übung 4: Einführung in die Programmierung mit MATLAB Übung 4: Einführung in die Programmierung mit MATLAB AUFGABE 1 Was bewirkt der Strichpunkt? - Der Strichpunkt (Semikola) unterdrück die Anzeige der (Zwischen-) Resultate. Welche Rolle spielt ans? - Wenn

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

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

Programmierung I Einführung in Python, Beyond the Basics

Programmierung I Einführung in Python, Beyond the Basics Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Eines der Features, das Python so mächtig macht (VHLL)

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

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

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Python ist leicht zu erlernen, unterstützt mehrere Programmierparadigmen und ist klar strukturiert.

Python ist leicht zu erlernen, unterstützt mehrere Programmierparadigmen und ist klar strukturiert. 1 Einführung In diesem Kapitel wird die moderne Programmiersprache Python vorgestellt. Nach einigen Bemerkungen zur Installation dieser Sprache wird gezeigt, wie Python interaktiv ausgeführt werden kann.

Mehr

Erwin Grüner 15.12.2005

Erwin Grüner 15.12.2005 FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Funktionen in PHP 1/7

Funktionen in PHP 1/7 Funktionen in PHP 1/7 Vordefinierte Funktionen in PHP oder vom Entwickler geschriebene Funktionen bringen folgende Vorteile: gleiche Vorgänge müssen nur einmal beschrieben und können beliebig oft ausgeführt

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

Lua - Erste Schritte in der Programmierung

Lua - Erste Schritte in der Programmierung Lua - Erste Schritte in der Programmierung Knut Lickert 7. März 2007 Dieser Text zeigt einige einfache Lua-Anweisungen und welchen Effekt sie haben. Weitere Informationen oder eine aktuelle Version dieses

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Grundlagen der Informatik I Informationsdarstellung

Grundlagen der Informatik I Informationsdarstellung Grundlagen der Informatik I Informationsdarstellung Einführung in die Informatik, Gumm, H.-P./Sommer, M. Themen der heutigen Veranstaltung. ASCIi Code 2. Zeichenketten 3. Logische Operationen 4. Zahlendarstellung

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

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

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

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 Python Übung 1

Einführung in Python Übung 1 Einführung in Python Übung 1 Rebecca Breu, Bastian Tweddell Oktober 2007 Login: XXXloginXXX Passwort: XXXpasswortXXX Bitte das Passwort ändern (passwd)! Datentypen I Aufgabe 1 (Erste Schritte, Zahlen)

Mehr

Schritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung.

Schritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung. I. Programmierung ================================================================== Programmierung ist die Planung einer Abfolge von Schritten (Instruktionen), nach denen ein Computer handeln soll. Schritt

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

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

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

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

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

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

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

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56 Linux Tutorium 12. Shellprogrammierung Version vom 02.07.2008 13:38:56 im Grunde ist ein Shell-Skript nichts anderes als eine Textdatei, welche Befehlsfolgen enthält Shell-Skripte werden im Wesentlichen

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung. Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung. Die heutige Sitzung dient dem ersten Kennenlernen von MATLAB. Wir wollen MATLAB zuerst

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

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

PERL. Eine Einführung. von Serap Tekke & Elif Öner

PERL. Eine Einführung. von Serap Tekke & Elif Öner PERL Eine Einführung von Serap Tekke & Elif Öner Inhalt 1. Allgemeines 2. Datentypen 3. Algorithmische Elemente 4. Module 5. Objektorientiertes Programmieren 6. Pattern Matching 2 Was ist Perl... Perl

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

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

Statistisches Programmieren

Statistisches Programmieren Statistisches Programmieren Session 1 1 Was ist R R ist eine interaktive, flexible Software-Umgebung in der statistische Analysen durchgeführt werden können. Zahlreiche statistische Funktionen und Prozeduren

Mehr

Unterprogramme, Pointer und die Übergabe von Arrays

Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

3. Grundregeln für die Java-Programmierung

3. Grundregeln für die Java-Programmierung 3. Grundregeln für die Java-Programmierung Sprachaufbau von Java Programmen Stilistische Konventionen JavaDoc Allgemeine Informatik 2 SS09 Folie 2.1 Allgemeine Vorbemerkung Bei Programmiersprachen sind

Mehr

Prüfung Computation, Programming

Prüfung Computation, Programming Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,

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

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

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Aufgabe 33: Felder Felder (oder auch Arrays ) werden dazu benutzt,

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November

Mehr

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung Datenbanken 5 Tabellen Karl Meier karl.meier@kasec.ch 12.10.2010 Tabellen erstellen en Integritätsregeln Inhalt Domänen verwenden Tabellen anzeigen, ändern, löschen Übung 2 1 Einfache Tabellen erstellen

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Programmierung in Python

Programmierung in Python Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P

Mehr

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen 3 Variablen 3.1 Allgemeines Variablen werden in Prozeduren, Mustern und Parameter-Dokumenten definiert und verwendet und bei der Jobgenerierung durch die Werte, die ihnen zugewiesen werden, ersetzt. Variablen

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

Tag 9: Datenstrukturen

Tag 9: Datenstrukturen Tag 9: Datenstrukturen A) Datenstrukturen B) Cell Arrays C) Anwendungsbeispiel: Stimulation in einem psychophysikalischen Experiment A) Datenstrukturen Wenn man komplizierte Datenmengen verwalten möchte,

Mehr

Programmierung von Webapplikationen mit Perl / MySQL

Programmierung von Webapplikationen mit Perl / MySQL Programmierung von Webapplikationen mit Perl / MySQL Markus Schade clt5@markusschade.com Matthias Szusdziara matthias.szusdziara@s1999.tu-chemnitz.de 2. März 2003 5. Chemnitzer LinuxTag Inhalt Für das

Mehr

4 Kontrollfluss-Diagramme

4 Kontrollfluss-Diagramme 4 Kontrollfluss-Diagramme In welcher Weise die Operationen eines Programms nacheinander ausgeführt werden, läßt sich anschaulich mithilfe von Kontrollfluss-Diagrammen darstellen. Ingredienzien: Start Stop

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

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

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2 02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein

Mehr

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. 1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung. Beschreiben Sie ferner je einen frei gewählten Datentyp aus der Gruppe der skalaren und einen aus der Gruppe der strukturierten

Mehr

8 Baum in perfekter Komposition

8 Baum in perfekter Komposition 8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde

Mehr