Brückenkurs Programmieren
|
|
- Miriam Junge
- vor 5 Jahren
- Abrufe
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 Verzweigungen, Operatoren, Schleifen, Arrays Christopher Schölzel Technische Hochschule Mittelhessen 01.10.2013 Christopher Schölzel (THM) Brückenkurs Programmieren 01.10.2013
MehrBrü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
MehrObjektorientierte 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
MehrSoftware 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
MehrTo 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
MehrTag 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
MehrOOP 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
Mehr7. 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
MehrInformatik 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
Mehr2. 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
MehrInformatik 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
Mehrzu 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
MehrInhalt 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
MehrProgrammieren 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! =
MehrAbschnitt 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
Mehrzu 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
Mehr9. 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
MehrVorkurs 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
MehrSyntax 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 +
MehrVorsemesterkurs 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.
MehrWS2018/ 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
MehrOperatoren 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
MehrEinfü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)
MehrKurs 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,
MehrProgrammieren 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,
Mehr3AA. 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:
MehrProgramm 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
MehrEinfü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
MehrJavaScript. 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
MehrErste 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/
MehrAlgorithmen 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
MehrKapitel 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
MehrVorkurs 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,
MehrMathematische 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
MehrEinfü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
MehrLö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
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
MehrC++ 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
Mehr5.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) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen
MehrFHZ. 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
MehrFunktionen. 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.........................
Mehr5.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
MehrJava 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
MehrWS2017/ 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
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrGirls 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
MehrBru 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
MehrEINFÜ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/
MehrRekursion. 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
MehrRekursive 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?
MehrStand 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
MehrEinfü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
MehrRekursion. 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
Mehr1. 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
MehrOperatoren 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
MehrKapitel 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
MehrRekursion 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
MehrFunktionen 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
MehrStatistisches 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
MehrEinfü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,
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
MehrFunktionen; 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) Aufgabe 1 Logische Operatoren Manchmal ist es wichtig zwei Werte miteinander zu vergleichen. Dazu gibt es in Java folgende Vergleichsoperatoren: Text Math. Zeichen
Mehr1. 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
Mehr4 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
MehrSchleifen. 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.
MehrKapitel 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
MehrSoftware 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
MehrProgrammieren 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)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrKorrektheit 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
MehrProgrammierkurs 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
MehrEinfü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
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
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
MehrDatenstrukturen 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
MehrFACHHOCHSCHULE 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
Mehr4.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):
MehrProgrammiersprache 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) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrRepetitorium 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
MehrEINFÜ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!
MehrModul 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
MehrSchleifen: 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
MehrProgrammiervorkurs 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) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrKorrektheit 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
MehrBeispiel: 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
MehrKlassen 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
MehrSchleifen 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
MehrEinfache 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
MehrSemantik 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