Lernpfad:Rekursion in Java: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
 
(33 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Status/In Bearbeitung von|thi}}{{Warnung|Dieser Lernpfad ist derzeit noch im Aufbau.}}
{{Kurzlink|rekursion}}
{{Navigation}}
{{Navigation}}
{{Inhalt}}
{{Inhalt}}


=Einführung Rekursion=
=Einführung Rekursion=
In diesem Lernpfad lernst du die Grundlagen der ''rekursiven Programmierung'' kennen. Dieses Prinzip wird in vielen Anwendungen verwendet.  
[[Datei:Screenshot_Recursion_via_vlc.png|thumb|right|Rekursion bei der Aufnahme eines Bildschirmfotos mit dem VLC-Player.]]
In diesem Lernpfad lernst du die Grundlagen der [[wikipedia:Rekursion|rekursiven Programmierung]] kennen. Dieses Prinzip wird in vielen Anwendungen verwendet. Es entsteht aber auch ganz aus Versehen im Alltag, wenn du beispielsweise das Bild eines Monitors mit [https://www.videolan.org VLC] aufzeichnest und dabei in diesem Bild auch der VLC-Player selber zu sehen ist. Einen ähnlichen Effekt erhältst du, wenn du deinen Handy-Bildschirm auf einen Monitor überträgst und den Monitor filmst.  


{{Schublade |
An diesen Beispielen wird deutlich, dass ''Rekursion'' ein Verfahren ist, bei dem eine ''Wiederholung des Gleichen'' verwendet wird.  
Definition: Eine rekursive Methode besteht aus
#einer Abbruchbedingung
#einer Reduktion des Problems
#mindestens einem Aufruf der rekursiven Methode 
| Farbe=#c7d210}}
==Beispiel Rekursion==
Mit der folgenden Methode wird die Fakultät berechnet. <br />
Die Fakultät ist ein mathematischer Operator und wird durch ein Ausrufezeichen dargestellt <br />
4! = 4*3*2*1; (Das Ausrufezeichen steht dabei hinter der Zahl).<br />
In Java wird dieser Operator bzw. diese Funktion nicht zur Verfügung gestellt, deshalb muss sie programmiert werden.
Der Quelltext für die Methode sieht wie folgt aus:
<syntaxhighlight lang="java" line="1" >
public int fakultät (int n){
  if (n > 1){
    return n*fakultät (n-1);
  }else{
    return 1;
  }
}
</syntaxhighlight>
{{Aufgabe:Start}}
Aufgabe 1.1: Markieren Sie im Quelltext die einzelnen Bestandteile einer rekursiven Funktion.
<zuordnung>
::public int fakultät (int n){
::  if (n > 1){::Abbruchbedingung
::    return n*fakultät (n-1);::rekursiver Aufruf::Reduktion des Problems
::  }else{
::    return 1;
::  }
::}
</zuordnung>
{{Aufgabe:End}}


{{Aufgabe:Start}}
[[Datei:Sierpinski-zoom4-ani.gif|left|Animation des Sierpinski-Dreiecks.]]
Ergänzen Sie den Aufrufbaum zu dem Methodenaufruf z(5) .
Auch das [[wikipedia:Sierpinski-Dreieck|Sierpinski-Dreieck]] ist ein Beispiel für Rekursion. Das Dreieck besteht aus Dreiecken, die aus Dreiecken bestehen, die aus ...
<syntaxhighlight lang="java" line="1" >
 
public int z(x) {
Im {{PfadNext|nächsten Schritt}} geht es weiter.
  if (x > 1){
<!--
    return a + z(x - 2);
=Weitere Quellen=
  }else{
- http://www.saar.de/~awa/jrekursion.html
    return 1;
-->
  }
[[Kategorie:Lernpfade]][[Kategorie:Lernpfade Informatik]][[Kategorie:Lernpfade zu Java]][[Kategorie:Lernpfade Q1/Q2]]
}
</syntaxhighlight>
{{Aufgabe:End}}

Aktuelle Version vom 12. Februar 2022, 11:01 Uhr

style="margin-right:-24px;"
Inhalt Lernpfad
Rekursion in Java
  1. Rekursion in Java
  2. Definition
  3. Aufrufstapel
  4. Aufrufbaum
  5. Rekursion bei Schachproblemen
  6. Selbst eine rekursive Methode schreiben
Inhalt bearbeiten

Einführung Rekursion

 
Rekursion bei der Aufnahme eines Bildschirmfotos mit dem VLC-Player.

In diesem Lernpfad lernst du die Grundlagen der rekursiven Programmierung kennen. Dieses Prinzip wird in vielen Anwendungen verwendet. Es entsteht aber auch ganz aus Versehen im Alltag, wenn du beispielsweise das Bild eines Monitors mit VLC aufzeichnest und dabei in diesem Bild auch der VLC-Player selber zu sehen ist. Einen ähnlichen Effekt erhältst du, wenn du deinen Handy-Bildschirm auf einen Monitor überträgst und den Monitor filmst.

An diesen Beispielen wird deutlich, dass Rekursion ein Verfahren ist, bei dem eine Wiederholung des Gleichen verwendet wird.

Auch das Sierpinski-Dreieck ist ein Beispiel für Rekursion. Das Dreieck besteht aus Dreiecken, die aus Dreiecken bestehen, die aus ...

Im nächsten Schritt geht es weiter.