Lernpfad:Rekursion in Java: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(32 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 < 2){
    return 1;
  }else{
    return n*fakultät (n-1);
  }
}
</syntaxhighlight>
{{Aufgabe:Start}}
Aufgabe 1.1: Markieren Sie im Quelltext die einzelnen Bestandteile einer rekursiven Funktion.<br />
public int fakultät (int n){
<zuordnung>
::  if (n < 2){::Abbruchbedingung
::    return 1;::Abbruch der Rekursion
::  }else{::else
::    return n*fakultät (n-1);::rekursiver Aufruf::Reduktion des Problems
</zuordnung>
  }
}


{{Aufgabe:End}}
[[Datei:Sierpinski-zoom4-ani.gif|left|Animation des Sierpinski-Dreiecks.]]
Auch das [[wikipedia:Sierpinski-Dreieck|Sierpinski-Dreieck]] ist ein Beispiel für Rekursion. Das Dreieck besteht aus Dreiecken, die aus Dreiecken bestehen, die aus ...


{{Aufgabe:Start}}
Im {{PfadNext|nächsten Schritt}} geht es weiter.
Ergänzen Sie den Aufrufbaum zu dem Methodenaufruf z(5) .
<!--
<syntaxhighlight lang="java" line="1" >
=Weitere Quellen=
public int z(x) {
- http://www.saar.de/~awa/jrekursion.html
  if (x > 1){
-->
    return a + z(x - 2);
[[Kategorie:Lernpfade]][[Kategorie:Lernpfade Informatik]][[Kategorie:Lernpfade zu Java]][[Kategorie:Lernpfade Q1/Q2]]
  }else{
    return 1;
  }
}
</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.

Animation des Sierpinski-Dreiecks.

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.