Brückenkurs Programmieren

Größe: px
Ab Seite anzeigen:

Download "Brückenkurs Programmieren"

Transkript

1 Brückenkurs Programmieren Funktionen, Dokumentation, Rekursion Christopher Schölzel Technische Hochschule Mittelhessen Christopher Schölzel (THM) Brückenkurs Programmieren / 31

2 Inhalt 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

3 Inhalt Wiederholung 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

4 Wiederholung Wiederholung Verzweigungen If ˆ= Weiche Ternärer Operator Operatoren Logische Operatoren Arithmetische Operatoren Schleifen Arrays While For, For-in Schleifenkontrolle, Endlosschleife speichert mehrere Werte gleichzeitig Christopher Schölzel (THM) Brückenkurs Programmieren / 31

5 Inhalt Funktionen 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

6 Funktionen Funktionen: Einleitung Aufgabe Bestimme wieviele verschiedene Kombinationen entstehen können wenn man aus einer Urne mit n Kugeln k herausnimmt (ohne zurücklegen). Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Christopher Schölzel (THM) Brückenkurs Programmieren / 31

7 Funktionen Funktionen: Binomialkoezient - Lösung 1 Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Javascript var n = 10; var k = 4; var fn = 1; var fk = 1; var fnk = 1; for (var i = 1; i <= n; i++) { fn = fn*i; } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

8 Funktionen Funktionen: Binomialkoezient - Lösung 1 Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Javascript var n = 10; var k = 4; var fn = 1; var fk = 1; var fnk = 1; for (var i = 1; i <= n; i++) { fn = fn*i; } for (var i = 1; i <= k; i++) { fk = fk*i; } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

9 Funktionen Funktionen: Binomialkoezient - Lösung 1 Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Javascript var n = 10; var k = 4; var fn = 1; var fk = 1; var fnk = 1; for (var i = 1; i <= n; i++) { fn = fn*i; } for (var i = 1; i <= k; i++) { fk = fk*i; } for (var i = 1; i <= n-k; i++) { fnk = fnk*i; } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

10 Funktionen Funktionen: Binomialkoezient - Lösung 1 Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Javascript var n = 10; var k = 4; var fn = 1; var fk = 1; var fnk = 1; for (var i = 1; i <= n; i++) { fn = fn*i; } for (var i = 1; i <= k; i++) { fk = fk*i; } for (var i = 1; i <= n-k; i++) { fnk = fnk*i; } println(fn / (fk*fnk)); Christopher Schölzel (THM) Brückenkurs Programmieren / 31

11 Funktionen Funktionen: Denition Problem: Man muss dreimal den (fast) gleichen Code schreiben. n Lösung: Wie in der Mathematik: Statt k schreiben wir nur n!. Eine Funktion gibt einer oft benötigten Teillösung einen Namen, damit man sie für verschiedene Eingabewerte anwenden kann und den richtigen Rückgabewert bekommt. k=1 Christopher Schölzel (THM) Brückenkurs Programmieren / 31

12 Funktionen Funktionen: Ka eemaschine als Funktion Eingabe: Wasser, Kaffee-Pad Anweisungen: Wasser kochen; Kaffee aufbrühen; Ausgabe: Leckerer Kaffee Christopher Schölzel (THM) Brückenkurs Programmieren / 31

13 Funktionen Funktionen: Syntax Syntax function <Name> (<Parameter1>,<Parameter2>,..) { <Anweisungsblock> return <Rückgabewert>; } Javascript function fak(n) { var f = 1; for (var i = 1; i <= n; i++) { f = f * i; } return f; } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

14 Funktionen Funktionen: Binomialkoezient - Lösung 2 Mathe: Binomialkoezient ( ) n n! = k k!(n k)! n wobei n! = k k=1 Javascript var n = 10; var k = 4; function fak(n) { var f = 1; for (var i = 1; i <= n; i++) { f = f * i; } return f; } println(fak(n)/(fak(k)*fak(n-k))); Christopher Schölzel (THM) Brückenkurs Programmieren / 31

15 Funktionen Funktionen: Beispiel e e = k=0 1 k! Christopher Schölzel (THM) Brückenkurs Programmieren / 31

16 Funktionen Funktionen: Beispiel e e = k=0 1 k! 100 k=0 1 k! Christopher Schölzel (THM) Brückenkurs Programmieren / 31

17 Funktionen Funktionen: Beispiel e e = k=0 1 k! 100 k=0 1 k! Javascript var e = 0; for (var i = 0; i < 100; i++) { e = e + 1 / fak(k); } println(e); Christopher Schölzel (THM) Brückenkurs Programmieren / 31

18 Funktionen Funktionen: Beispiel e e = k=0 1 k! 100 k=0 1 k! Javascript function e() { var e = 0; for (var i = 0; i < 100; i++) { e = e + 1 / fak(k); } return e; } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

19 Inhalt Dokumentation 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

20 Dokumentation Dokumentation Man schreibt Funktionen um seinen Code wiederverwendbar zu machen. Das heiÿt irgendwann in der Zukunft wird jemand (vielleicht man selbst) auf diese Funktion stoÿen und sich fragen: Was tut diese Funktion? Was tut diese Funktion? function copy(file1,file2) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

21 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: Christopher Schölzel (THM) Brückenkurs Programmieren / 31

22 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: a) Die Datei im Pfad file1 wird zum Pfad file2 kopiert. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

23 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: a) Die Datei im Pfad file1 wird zum Pfad file2 kopiert. b) Die Datei im Pfad file2 wird zum Pfad file1 kopiert. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

24 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: a) Die Datei im Pfad file1 wird zum Pfad file2 kopiert. b) Die Datei im Pfad file2 wird zum Pfad file1 kopiert. a 1 ) Die Funktion bricht ab, wenn file2 bereits existiert. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

25 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: a) Die Datei im Pfad file1 wird zum Pfad file2 kopiert. b) Die Datei im Pfad file2 wird zum Pfad file1 kopiert. a 1 ) Die Funktion bricht ab, wenn file2 bereits existiert. a 2 ) Die Funktion überschreibt file2, falls nötig. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

26 Dokumentation Dokumentation: Motivation Was tut diese Funktion? function copy(file1,file2) {... } Vorschläge, was passiere könnte: a) Die Datei im Pfad file1 wird zum Pfad file2 kopiert. b) Die Datei im Pfad file2 wird zum Pfad file1 kopiert. a 1 ) Die Funktion bricht ab, wenn file2 bereits existiert. a 2 ) Die Funktion überschreibt file2, falls nötig. Fazit: Man muss aus dem Code in der Funktion entziern, was genau bei welcher Vorbedingung passiert. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

27 Dokumentation Dokumentation: Denition Eine Dokumentation ist ein Vertrag zwischen dem Ersteller und dem Nutzer der Funktion. Sie gibt an, wie man die Funktion benutzen muss und was man als Ergebnis erwarten kann. Grobe Beschreibung: Was macht die Funktion? Was ist ihr Zweck? Parameter: Was bedeuten sie? Welche Werte werden akzeptiert? Rückgabewert: Was bedeutet er? Welche Form hat er? Vorbedingungen: Was muss der Nutzer vorher sicherstellen? Nachbedingungen: Was wird nach der Ausführung garantiert? Christopher Schölzel (THM) Brückenkurs Programmieren / 31

28 Dokumentation Dürftige Dokumentation Javascript /** * Kopiert eine Datei. */ function copy(file1,file2) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

29 Dokumentation Ausreichende Dokumentation Javascript /** * Kopiert die Datei im Pfad file1 nach file2. * * Existiert bereits eine Datei in file2, findet kein * Kopiervorgang statt. * file1 Pfad der zu kopierenden Datei file2 Pfad an den die Datei kopiert werden soll true, falls die Datei kopiert wurde, false sonst */ function copy(file1,file2) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

30 Dokumentation Ausführliche Dokumentation Javascript /** * Kopiert die Datei im Pfad file1 nach file2. * * Existiert bereits eine Datei in file2, findet kein * Kopiervorgang statt. * file1 Pfad der zu kopierenden Datei file2 Pfad an den die Datei kopiert werden soll true, falls die Datei kopiert wurde, false sonst der Pfad file1 führt zu einer existierenden Datei und file2 * führt zu einem Dateinamen in einem existierenden Ordner ist die Ausgabe true, enthält file2 eine Kopie von file1, * sonst bleibt file2 unverändert */ function copy(file1,file2) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

31 Dokumentation Dokumentation: Beispiel Javascript /** */ function fak(n) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

32 Dokumentation Dokumentation: Beispiel Javascript /** * Berechnet die Fakultät einer Zahl. * */ function fak(n) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

33 Dokumentation Dokumentation: Beispiel Javascript /** * Berechnet die Fakultät einer Zahl. * n die Zahl deren Fakultät berechnet wird */ function fak(n) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

34 Dokumentation Dokumentation: Beispiel Javascript /** * Berechnet die Fakultät einer Zahl. * n die Zahl deren Fakultät berechnet wird Die Fakultät der Zahl k */ function fak(n) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

35 Dokumentation Dokumentation: Beispiel Javascript /** * Berechnet die Fakultät einer Zahl. * n die Zahl deren Fakultät berechnet wird Die Fakultät der Zahl k k ist eine ganze Zahl. - */ function fak(n) {... } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

36 Inhalt Rekursion 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

37 Rekursion: Fibonacci Rekursion F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F 8 F Aufgabe Schreibe eine Funktion, die zu einer beliebigen Zahl n die Zahl F n aus der Fibonacci-Folge bestimmt. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

38 Rekursion Rekursion: Fibonacci Die Fibonacci-Folge lässt sich wie folgt denieren: F 0 = 0 F 1 = 1 F n = F n 1 + F n 2 für n N, n > 1 Christopher Schölzel (THM) Brückenkurs Programmieren / 31

39 Rekursion Rekursion: Fibonacci Die Fibonacci-Folge lässt sich wie folgt denieren: F 0 = 0 F 1 = 1 F n = F n 1 + F n 2 für n N, n > 1 Javascript function fib(n) { if (n == 0) {return 0;} if (n == 1) {return 1;} else {return fib(n-1) + fib(n-2);} } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

40 Rekursion Rekursion In order to understand recursion, you must understand recursion. Christopher Schölzel (THM) Brückenkurs Programmieren / 31

41 Rekursion: Schema Rekursion fib(4) fib(2) fib(3) fib(0) fib(1) fib(1) fib(2) fib(0) fib(1) Christopher Schölzel (THM) Brückenkurs Programmieren / 31

42 Rekursion: Schema Rekursion fib(4) 4<2 4<3 fib(2) fib(3) 2<0 2<1 3<1 3<2 fib(0) fib(1) fib(1) fib(2) 2<0 2<1 fib(0) fib(1) Christopher Schölzel (THM) Brückenkurs Programmieren / 31

43 Rekursion: Beispiel Rekursion Aufgabe Schreibe eine rekursive Funktion sumto(n), die die Summe der Zahlen von 1 bis n bildet. Javascript function sumto(n) { } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

44 Rekursion: Beispiel Rekursion Aufgabe Schreibe eine rekursive Funktion sumto(n), die die Summe der Zahlen von 1 bis n bildet. Javascript function sumto(n) { if (n == 1) { return 1; } } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

45 Rekursion: Beispiel Rekursion Aufgabe Schreibe eine rekursive Funktion sumto(n), die die Summe der Zahlen von 1 bis n bildet. Javascript function sumto(n) { } if (n == 1) { return 1; } else { return n+sumto(n-1); } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

46 Rekursion: Beispiel Rekursion Aufgabe Schreibe eine rekursive Funktion sumto(n), die die Summe der Zahlen von 1 bis n bildet. Javascript function sumto(n) { } if (n == 1) { return 1; } else { return n+sumto(n-1); } Frage: Was passiert, wenn jemand sumto(0) oder sumto(1.5) aufruft? Christopher Schölzel (THM) Brückenkurs Programmieren / 31

47 Rekursion Rekursion: Beispiel Error: too much recursion Dokumentieren! Javascript /** * Berechnet die Summe aller ganzen Zahlen von 1 bis n. * n die Grenze bis zu der summiert werden soll die Summe aller ganzen Zahlen von 1 bis n n ist eine ganze Zahl, n > 0 kein Absturz, versprochen ;) */ function sumto(n) { if (n == 1) { return 1; } else { return n+sumto(n-1); } } Christopher Schölzel (THM) Brückenkurs Programmieren / 31

48 Rekursion vs Iteration Rekursion Weitere Eigenschaften von Rekursion: funktionale Sprachen kennen nur Rekursion meist existiert sowohl iterative als auch rekursive Lösung für Problem aber nicht immer! (z.b. Ackermann-Funktion) oft natürlicher/kompakter formulierbar Christopher Schölzel (THM) Brückenkurs Programmieren / 31

49 Inhalt Zusammenfassung 1 Wiederholung 2 Funktionen 3 Dokumentation 4 Rekursion 5 Zusammenfassung Christopher Schölzel (THM) Brückenkurs Programmieren / 31

50 Zusammenfassung Zusammenfassung Funktionen Wiederverwendbarkeit Eingabewerte, Ausgabewerte Dokumentation Auswirkungen schlechter Dokumentation 5 zentrale Bestandteile Rekursion Funktionsaufrufe nachvollziehen Terminierung Rekursion vs Iteration Christopher Schölzel (THM) Brückenkurs Programmieren / 31

51 Danke für Ihre Aufmerksamkeit... noch Fragen? Christopher Schölzel (THM) Brückenkurs Programmieren / 31

Brückenkurs Programmieren

Brückenkurs Programmieren Brückenkurs Programmieren Verzweigungen, Operatoren, Schleifen, Arrays Christopher Schölzel Technische Hochschule Mittelhessen 01.10.2013 Christopher Schölzel (THM) Brückenkurs Programmieren 01.10.2013

Mehr

Brückenkurs Programmieren

Brückenkurs Programmieren Brückenkurs Programmieren Tag 2: Schleifen und Funktionen Christopher Schölzel Technische Hochschule Mittelhessen 27. März 2018 Inhalt Schleifen Einleitung While For Funktionen 2 / 23 Inhalt Schleifen

Mehr

Objektorientierte Programmierung (ZQ1u2B)

Objektorientierte Programmierung (ZQ1u2B) Objektorientierte Programmierung (ZQ1u2B) Woche 4 Rekursion Christopher Scho lzel Technische Hochschule Mittelhessen 4. November 2015 Inhalt Rekursion Lineare Rekursion Verzweigte Rekursion Verschränkte

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Rekursive Prozeduren zu charakterisieren. Terminierung von rekursiven Prozeduren mit Hilfe von geeigneten Abstiegsfunktionen

Mehr

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

OOP Aufgabenblatt 7 6. Dezember 2013

OOP Aufgabenblatt 7 6. Dezember 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public

Mehr

2. Variablen, Kontrollstrukturen, Rekursion

2. Variablen, Kontrollstrukturen, Rekursion 2. Variablen, Kontrollstrukturen, Rekursion 1 Mathematische Funktionen Programmieren Sie die folgenden mathematischen Funktionen in Logo und testen Sie diese anhand der vorgegebenen Testfälle (download

Mehr

Informatik für Schüler, Foliensatz 18 Rekursion

Informatik für Schüler, Foliensatz 18 Rekursion Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. März 2009 1/10 Informatik für Schüler, Foliensatz 18 Rekursion Prof. G. Kemnitz Institut für Informatik, Technische Universität

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Inhalt Kapitel 2: Rekursion

Inhalt Kapitel 2: Rekursion Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion

Mehr

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration Programmieren lernen mit Groovy Rekursion Seite 1 Rekursion Rekursion Ursprung lat. recurrere ~ zurücklaufen rekursive Definition Definition mit Bezug auf sich selbst Beispiel Fakultätsfunktion n! 0! =

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann

Mehr

Syntax der Sprache PASCAL

Syntax der Sprache PASCAL Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +

Mehr

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python Vorsemesterkurs Informatik Übungsaufgaben Tag 4a - Python Aufgabe 1: Listen Mache dich im Python-Interpreter mit dem Umgang mit Listen vertraut. Kapitel 2.6 im Skript (s.40) enthält nützliche Informationen.

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

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

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

Mehr

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am 1 Aufgabe 1 Analysiert man das Verfahren anhand des angegebenen Beispiels, ist schnell zu erkennen, dass das erste Element von infeld2 nach outfeld an Index 2 kopiert wird, das zweite den Index 4 bekommt,

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

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

Mehr

3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006

3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren und Rekursion 29.11.05 Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren Berechnete Sprungadresse Ausführung bestimmter Anweisungen durch Schleifen Stattdessen:

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Einführung in die Programmierung Wintersemester 2010/11

Einführung in die Programmierung Wintersemester 2010/11 Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,

Mehr

Mathematische Rekursion

Mathematische Rekursion Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische

Mehr

Einführung in das Programmieren Probeklausur Lösungen

Einführung in das Programmieren Probeklausur Lösungen Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lösungsvorschlag Serie 2 Rekursion (/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

5.3 Korrektheit und Verifikation

5.3 Korrektheit und Verifikation 5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann

Mehr

Übungsblatt 2. Java Vorkurs (WS 2015)

Übungsblatt 2. Java Vorkurs (WS 2015) Übungsblatt 2 Java Vorkurs (WS 2015) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen

Mehr

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme

Mehr

Funktionen. Theorie. Inhaltsverzeichnis. Programmieren mit Python Modul 4. 1 Modulübersicht 3

Funktionen. Theorie. Inhaltsverzeichnis. Programmieren mit Python Modul 4. 1 Modulübersicht 3 Programmieren mit Python Modul 4 Funktionen Theorie Inhaltsverzeichnis 1 Modulübersicht 3 2 Funktionen 3 2.1 Funktionen ohne Rückgabewert (Prozeduren)............... 3 2.2 Funktionen mit Parametern.........................

Mehr

5.3 Korrektheit und Verifikation

5.3 Korrektheit und Verifikation 5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann

Mehr

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean

Java Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean Java Zusammenfassung Martin Zettwitz, Otto-von-Guericke Universität Magdeburg Standardprogramm - Einstieg/Initialisierung in der main() Funktion - Hier(Basic/Start) die Variablen deklarieren, Methoden

Mehr

WS2017/ Oktober 2017

WS2017/ Oktober 2017 Einführung in die Programmierung Ronja Düffel WS2017/18 09. Oktober 2017 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

Girls Day 2017 Programmierung

Girls Day 2017 Programmierung Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der

Mehr

Bru ckenkurs Programmieren

Bru ckenkurs Programmieren Bru ckenkurs Programmieren Tag 1: Variablen und Verzweigungen Jakob Czekansky Technische Hochschule Mittelhessen 26. September 2016 Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die

Mehr

Rekursive Funktionen

Rekursive Funktionen Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

Einführung in die Programmierung Wintersemester 2017/18

Einführung in die Programmierung Wintersemester 2017/18 Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun

Mehr

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

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

Mehr

Kapitel 08: Rekursion und Terminierung Software Entwicklung 1

Kapitel 08: Rekursion und Terminierung Software Entwicklung 1 Kapitel 08: Rekursion und Terminierung Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Rekursion ist eine elegante Strategie zur Problemlösung, die es erlaubt eine Problemstellung

Mehr

Rekursion und Iteration

Rekursion und Iteration Rekursion und Iteration Programmieren in Derive Aline Rumöller Rekursion und Iteration Programmieren in Derive IF-Anweisungen in Derive Rekursion Vektorfunktionen in Derive Schleifen in Derive Iteration

Mehr

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden Funktionen in Matlab Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung

Mehr

Statistisches Programmieren

Statistisches Programmieren Statistisches Programmieren Session 2 1 Funktionsdefinitionen Berechnungen die immer wieder in ähnlicher Form auftreten, müssen nicht jedesmal vollständig neu in der R Konsole eingeben werden, sondern

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Funktionen; Rekursion

Funktionen; Rekursion restart; Der Operator - Funktionen; Rekursion Mit dem - -Operator definiert man eine Funktion (Abbildung. '-' hat (zunächst einen Namen (den Formalparameter als linken und einen Ausdruck als rechten Operanden.

Mehr

Übungsblatt 2. Java Vorkurs (WS 2017)

Übungsblatt 2. Java Vorkurs (WS 2017) Übungsblatt 2 Java Vorkurs (WS 2017) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun

Mehr

4 Rekursionen. 4.1 Erstes Beispiel

4 Rekursionen. 4.1 Erstes Beispiel 4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während

Mehr

Schleifen. Auch das Berechnen von Produkten kann analog formuliert werden.

Schleifen. Auch das Berechnen von Produkten kann analog formuliert werden. Schleifen Oft ist es notwendig einen Befehl oder einen Befehlsblock mehrmals hintereinander auszuführen. Um dies zu ermöglichen, stellen Programmiersprachen das Steuerkonstrukt der Schleife zur Verfügung.

Mehr

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In

Mehr

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Korrektheit und Hoare-Kalkül für Imperative Programme

Korrektheit und Hoare-Kalkül für Imperative Programme Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES tobias.witt@hhu.de 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!

Mehr

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

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

Mehr

Schleifen: Immer wieder dasselbe tun

Schleifen: Immer wieder dasselbe tun Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung

Mehr

Programmiervorkurs für die Numerik Teil 2/4

Programmiervorkurs für die Numerik Teil 2/4 line 1 1 0.8 0.6 0.4 0.2 0-0.2-0.4 Programmiervorkurs für die Numerik Teil 2/4 Christian Power Mathematisches Institut Universität Tübingen -8-6 -4-2 0 05.10.2016 2 4 6 8-8 -6-4 -2 0 2 4 6 8 Wiederholung

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

Mehr

Korrektheit imperativer Algorithmen

Korrektheit imperativer Algorithmen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Abschnitt 9 Korrektheit imperativer Algorithmen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester

Mehr

Beispiel: Vom Problem zum Code

Beispiel: Vom Problem zum Code Beispiel: Vom Problem zum Code High-Level Pseudo-Code: Eingabe: Anzahl Scheiben: n (jede mit aufgedruckter Nummer) Quell-Stange, Ziel-Stange, Zwischenspeicher-Stange Vorbedingungen: Auf Quell-Stange befinden

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

Schleifen in Javascript

Schleifen in Javascript Schleifen in Javascript Jobst-Hartmut Lüddecke 3. April 2013 Zusammenfassung In dieser Lektion geht es um Schleifen (engl. loop). Diese Schleifen sind in jeder Programmiersprache das beste Werkzeug für

Mehr

Einfache Bedingte Ausführung

Einfache Bedingte Ausführung Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder

Mehr

Semantik von Programmiersprachen SS 2017

Semantik von Programmiersprachen SS 2017 Lehrstuhl für Programmierparadigmen Denis Lohner Sebastian Ullrich denis.lohner@kit.edu sebastian.ullrich@kit.edu Semantik von Programmiersprachen SS 2017 http://pp.ipd.kit.edu/lehre/ss2017/semantik Lösungen

Mehr