Shop Im Otter 98665 Sicherheitsschnürstiefel Otter Sicherheitsschnürstiefel lc3KJT1F
Programmieren in C
  • 1 Intro C Grundlagen Dauer: 01:11
  • 2 Algorithmen und Programmstruktur Dauer: 04:58
  • 3 Quellcode und Konventionen Dauer: 05:14
  • 4 Compiler Dauer: 04:00
  • 5 Funktionen in C - Grundlagen Dauer: 03:13
  • 6 Typen und Werte Dauer: 04:56
  • 7 Variablen und Ausdrücke Dauer: 04:28
  • Schuhe Scarosso Für Herren Italienische Damen Und GqUpzMLVS 8 Die Kommandozeile - Ausführen von Programmen Dauer: 03:30
  • 9 ASCII-Code in der Informatik Dauer: 03:46

Programmieren in C
C vertiefend

  • 10 Intro C vertiefend Dauer: 00:57
  • 11 Ungültige Eingaben - Fehlerbehandlung Dauer: 03:30
  • 12 Datentypen - Speicherbedarf und Typumwandlung Dauer: 05:01
  • 13 Arrays Dauer: 03:51
  • 14 Strings Dauer: 03:06
  • 15 Variablen vertiefend I Dauer: 04:03
  • 16 Variablen vertiefend II Dauer: 05:03

KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs
Programmieren in C
C fortgeschritten I

  • 17 Intro C fortgeschritten I Dauer: 01:03
  • 18 Modularisierung Dauer: 03:15
  • 19 Header-Dateien Dauer: 02:44
  • 20 Makros und symbolische Konstanten Dauer: 02:41
  • 21 Pufferfehler Dauer: 05:46
  • 22 Programmablaufpläne Dauer: 03:32 KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs
  • 23 Pseudo-Code und Struktogramme Dauer: 02:49
  • 24 Iterativ und rekursiv Dauer: 03:16
  • 25 Iterativ und rekursiv - Übung Dauer: 03:54

Programmieren in C
C fortgeschritten II

Programmieren in C
Datenstrukturen in C
KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs

  • 36 Intro Datenstrukturen in C Dauer: 00:47
  • 37 Strukturierte Datentypen I Dauer: 02:54
  • 38 Strukturierte Datentypen II Dauer: 03:20
  • 39 Strukturierte Datentypen III Dauer: 03:47
  • 40 Stacks Dauer: 02:11
  • 41 Queues Dauer: 02:46

Programmieren in C
Funktionen in C
KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs

  • 42 Intro Funktionen in C Dauer: 01:32
  • 43 Main-Funktion Dauer: 03:50
  • 44 printf und scanf Dauer: 04:16
  • 45 Bibliotheken und Kommentare Dauer: 04:41
  • 46 Die getchar()-Funktion Dauer: 04:20
  • 47 Bedingungen und Operatoren Dauer: 05:08
  • 48 if, else und switch-case Dauer: 05:55
  • 49 Operatoren - Grundwissen Dauer: 04:13
  • 50 for-Schleifen in C Dauer: 03:48
  • 51 while-Schleifen in C Dauer: 06:40
Jette Jette Stiefelette Schwarz Schwarz Jette Stiefelette Stiefelette Schwarz Stiefelette Stiefelette Schwarz Jette Jette TlJc3K1Fu
Merken

Du willst dich mit iterativen und rekursiven Funktionen etwas genauer beschäftigen? Im folgenden Beitrag erklären wir dir den Unterschied zwischen beiden Funktionen in C.

Iterative und rekursive Funktion C

Iterative Funktionen kennst du bestimmt, wenn du dich bereits näher mit C beschäftigt hast. Dazu zählen beispielsweise die while- und die for-Schleife oder die if-Anweisung. Aber was sind jetzt diese rekursiven Algorithmen?

Iterative und rekursiv

Rekursiv bedeutet in der Informatik, dass sich dein Algorithmus entweder über andere Funktionen oder direkt selbst aufruft. Deswegen unterteilen wir die Rekursion auch in zwei verschiedene Varianten: Die direkte und die indirekte Rekursion.

Direkte Rekursion C – Beispiel

Bei der direkten Rekursion wirst du irgendwo innerhalb deiner Funktion einen Aufruf von ihr finden. Um eine direkte Rekursion korrekt umsetzen zu können, kannst du dich an diesem Schema orientieren: Eine direkt rekursive Funktion braucht immer eine Eingabe, eine Abbruchbedingung und einen rekursiven Aufruf. Fehlt die Eingabe oder der rekursive Aufruf, handelt es sich um eine ganz andere Funktionsart, und arbeitet dementsprechend vielleicht nicht korrekt. Vergisst du aber die Abbruchbedingung, so bist du in einer endlosen Schleife gefangen.

Ein recht beliebtes Beispiel für die direkte Rekursion ist die Fakultätsberechnung, da man hier immer das Produkt für braucht, um n auszurechnen.

KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs
Direkte Rekursion

Wie du siehst, erhalten wir als Eingabe eine Zahl. Dann prüfen wir, ob diese Zahl Null ist. Das ist unsere Abbruchbedingung, denn von Null kann man keine Fakultät mehr berechnen. Als Nächstes widmen wir uns dem Aufruf, denn wir brauchen für unsere Rechnung ja schließlich noch . Ist unsere rekursive Kette abgeschlossen, geben wir zum Schluss noch unser Ergebnis aus.

Viele Studenten haben am Anfang Probleme, das Prinzip dahinter zu verstehen, da es recht abstrakt ist. Aber du kannst es dir ganz einfach so vorstellen, wie Klammern in der Mathematik. Du berechnest also praktisch auf diese Weise:

Dabei ist jede Klammer eine Rekursionsstufe beziehungsweise ein Funktionsaufruf.

Indirekte Rekursion und Vor -und Nachteile der Rekursion

Es gibt allerdings nicht nur die direkte Rekursion, sondern auch die indirekte. Deshalb schauen wir uns auch diese an: Für die indirekte Rekursion brauchen wir mindestens zwei Algorithmen, die sich in einem Zyklus gegenseitig aufrufen. Das heißt, dass z.B. Algorithmus A Algorithmus B aufruft und dieser wiederum A. Ansonsten bleibt das Prinzip aber identisch.

Nachteile der Rekursion

Aber was bringt dir die Rekursion jetzt? Es ginge doch auch alles mit iterativen Funktionen? Rekursive Implementierungen sind oft leichter zu realisieren als die iterative Alternative, außerdem sparst du dir meistens eine Menge Schreibarbeit. Allerdings haben sie auch einige Nachteile. Zum Beispiel den, dass sie sehr viel mehr Arbeitsspeicher verbrauchen und deswegen nicht sonderlich effizient sind. Deshalb kann durch zu große Rekursionstiefe auch ein Stack Overflow entstehen.

Jetzt weißt du, wie man mit rekursiven Algorithmen umgehen kann. Nun wollen wir uns die Rekursion noch an einem Beispiel anschauen.

Iterativ und rekursiv Übung

Du hast die Rekursion in C zwar theoretisch verstanden, weißt aber noch nicht genau, wie man sie praktisch anwenden kann? Im folgenden Beitrag zeigen wir dir die Rekursion an einem einfachen Beispiel.

Beispiel: Die Türme von Hanoi

Das beliebteste und auch am besten darzustellende Problem, das man oft rekursiv löst, sind die Türme von Hanoi. Dabei handelt es sich aber nicht etwa um richtige Türme, sondern um ein Spiel. Zur Vorbereitung werden drei Stäbe in die Erde gesteckt. Dann nehmen wir einfache Holzscheiben und stecken sie auf einen der Stäbe. Die größte Scheibe kommt nach unten, dann stapeln wir die nächst kleinere darauf, bis wir bei der kleinsten angekommen sind. Die Mindestmenge an Scheiben für dieses Spiel ist drei, wir können aber auch bis zu 5 Scheiben dazu nehmen, um den Schwierigkeitsgrad zu steigern, und das tun wir auch.

Türme von Hanoi

Aber was ist jetzt das Ziel dieses Spiels? Tatsächlich sollen hier der oder die Spieler einfach dafür sorgen, dass alle Scheiben in der selben Reihenfolge, wie sie jetzt auf unserem ganz linken Stapel liegen, auf unserem ganz rechten Stab stecken. Da das so noch zu einfach wäre, gelten noch einige Regeln. Zum einen darf immer nur eine Scheibe, und zwar die oberste eines jeden Turmes abgehoben werden, zum anderen darfst du nie eine größere auf eine kleinere Scheibe legen.

Rekursive Lösung des Spiels – Drei Schritte

Um das Ganze jetzt rekursiv zu lösen, benennen wir zunächst unsere Stapel: Der erste ist der Source-Stapel, der zweite der help-Stapel und der dritte ist der goal-Stapel. Jetzt müssen wir uns aber wirklich Gedanken machen, wie wir das Problem konkret lösen.

Drei Schritte zur Lösung

Hast du schon eine Idee? Hier ist ein kleiner Tipp: Wir brauchen drei Schritte, um dieses Problem zu lösen. Der erste sorgt dafür, dass, wenn unser Turm aus mehr als einer Scheibe besteht, die oberen Scheiben zur Zielposition transportiert werden. Genauer definiert bedeutet das, dass, wenn unser Turm n>1 Scheiben aufweist, der obere Turm bestehend aus n-1 Scheiben nach help bewegt wird.

Der zweite Schritt ist dann, die verbleibende Scheibe von source nach goal zu transportieren. Schritt 3 wird ausgeführt, wenn ein Turm aus n>1, also mehr als einer Scheibe besteht. Tritt das ein, so schaffen wir den aus n-1 Scheiben bestehenden Turm nach goal.

In Programmcode sieht das Ganze dann so aus:

Programmcode Lösung

Lassen wir das jetzt durchlaufen, erhalten wir genau die Anweisungen, die wir zur Lösung unseres Problems brauchen.

Reitstiefel Königs Schwarz Komet Gr538W37 H 5044 F1JTKlc

Ausführung der Schritte

Aber wie funktioniert das jetzt? Unsere Main-Methode ist hier unsere erste Station. Hier rufen wir unsere move_disk Funktion auf und definieren deren Start-Parameter. Der Einfachheit halber nehmen wir dazu char Variablen, weswegen unser source-Turm nun zu s wird, der help-Stapel zu h und der goal-Stapel zu g.

Beschreibung der Schritte

In der Funktion move_disk selbst passiert allerdings die eigentliche Magie. Zunächst einmal haben wir eine Fallunterscheidung, bei der geprüft wird, wie viele Scheiben auf Stapel a liegen. Liegt dort nur eine, so legen wir sie einfach direkt auf Stapel c. Beim ersten Durchlauf ist Stapel a der Source-Stapel, weshalb n definitiv nicht eins ist. Wir springen also in den else-Block und führen die dortigen Anweisungen aus. Bei diesen handelt es sich um rekursive Aufrufe. Als Erstes rufen wir, wie wir bereits in Schritt eins festgelegt haben, dieselbe Funktion für n-1 nochmal auf. Haben wir das hinter uns, können wir mit dem nächsten Aufruf weitermachen. Dieser macht dasselbe, vertauscht aber unsere Türme, damit wir alles, was wir nach b gestapelt haben weiter nach h stapeln können. Als Letztes bewegen wir jetzt alles nach g.

Du hast jetzt ein kompliziertes Problem mit sehr wenig Code gelöst. Wenn du immer noch nicht genug hast, kannst du ja mit einigen Werten experimentieren.

Kleider Von Four Und Schicke SchuheStilvolle Flavor bYf6gyv7

Weitere Videos zum Thema Programmieren in C

  • Intro C fortgeschritten II Dauer: 01:10
  • Pointer - Einführung Dauer: 03:57 KaufenEbay Für Stiefeletten Damen Günstig Rieker tCBQhrdxs
  • Pointer - Zeichenketten und Rückgabetypen Dauer: 02:41
GelbVon Beppo Gummistiefel Made Eu In Step Grand Shoes nXkO80wP

Hallo, leider nutzt du einen AdBlocker. Kombiniert In Stiefeletten Im Paul Braun 035 Green 9623 H9eYb2IWED

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.