Lernpfad:Rekursion in Java/Definition: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Navigation}}
==Definition==
==Definition==
{{Schublade |
{{Schublade |
Definition: Eine rekursive Methode besteht aus  
Eine rekursive Methode besteht aus  
# einer Abbruchbedingung,
# einer '''Abbruchbedingung''',
# einer Reduktion des Problems,
# einer '''Reduktion''' des Problems,
# mindestens einem Aufruf der rekursiven Methode.
# mindestens einem '''rekursiven Aufruf''' der Methode.
| Farbe=#c7d210}}
| Farbe=#c7d210}}


==Erstes Beispiel Rekursion: Fakultät==
== Erstes Beispiel Rekursion: Fakultät ==
Mit der folgenden Methode wird die Fakultät berechnet.  
Mit der folgenden Methode wird die Fakultät berechnet.  


Die Fakultät ist ein mathematischer Operator und wird in der Regel durch ein Ausrufezeichen dargestellt:
Die Fakultät ist ein mathematischer Operator und wird in der Regel durch ein Ausrufezeichen dargestellt: <math>4! = 4\cdot 3\cdot 2\cdot 1</math> (Das Ausrufezeichen steht dabei hinter der Zahl).
* 4! = 4*3*2*1; (Das Ausrufezeichen steht dabei hinter der Zahl).


In Java wird dieser Operator bzw. diese Funktion nicht zur Verfügung gestellt, deshalb muss sie programmiert werden.  
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:
Der Quelltext für die Methode sieht wie folgt aus:
<syntaxhighlight lang="java" line="1" >
<syntaxhighlight lang="java" line="1">
public int fakultät (int n){
public int fakultaet(int n) {
  if (n < 2){
if(n < 2) {
    return 1;
return 1;
  }else{
} else {
    return n*fakultät (n-1);
return n*fakultaet(n-1);
  }
}
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Aufgabe:Start}}
{{Aufgabe:Start}}
Aufgabe 1.1: Ordnen Sie den Quelltext-Teilen die einzelnen Bestandteile einer rekursiven Methode zu.<br />
Ordne den Quelltext-Teilen die einzelnen Bestandteile einer rekursiven Methode zu.<br />
public int fakultät (int n){
<lückentext>
<zuordnung>
public int fakultaet(int n) {
::  if (n < 2){::Abbruchbedingung
    if(n < 2) { '''Abbruchbedingung'''
::    return 1;::Abbruch der Rekursion
        return 1; '''Abbruch der Rekursion'''
::    return n*fakultät (n-1);::rekursiver Aufruf::Reduktion des Problems
    } else {
</zuordnung>
        return n*fakultaet(n-1); '''rekursiver Aufruf''' '''Reduktion des Problems'''
    }
}
</lückentext>
{{Aufgabe:End}}
{{Aufgabe:End}}

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

Definition

Eine rekursive Methode besteht aus

  1. einer Abbruchbedingung,
  2. einer Reduktion des Problems,
  3. mindestens einem rekursiven Aufruf der Methode.

Erstes Beispiel Rekursion: Fakultät

Mit der folgenden Methode wird die Fakultät berechnet.

Die Fakultät ist ein mathematischer Operator und wird in der Regel durch ein Ausrufezeichen dargestellt: [math]\displaystyle{ 4! = 4\cdot 3\cdot 2\cdot 1 }[/math] (Das Ausrufezeichen steht dabei hinter der Zahl).

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:

public int fakultaet(int n) {
	if(n < 2) {
		return 1;
	} else {
		return n*fakultaet(n-1);
	}
}
Icon Heft.png
Arbeitsauftrag

Ordne den Quelltext-Teilen die einzelnen Bestandteile einer rekursiven Methode zu.

public int fakultaet(int n) {
   if(n < 2) { Abbruchbedingung
       return 1; Abbruch der Rekursion
   } else {
       return n*fakultaet(n-1); rekursiver Aufruf Reduktion des Problems
   }
}