Lernpfad:Rekursion in Java/Selbst eine rekursive Methode schreiben: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der [[Lernpfad:Rekursion in Java/Definition | Definition]] implementiert werden.
Um eine rekursive Methode zu schreiben müssen die drei Bestandteile der {{Pfad|Definition}} implementiert werden.
{{Aufgabe:Start}}
{{Fenster|
Hast du die drei Bestandteile noch vor Augen?
Hast du die drei Bestandteile noch vor Augen?
 
|Farbe={{Farbe:Info}}}}
{{Aufgabe:End}}




Zeile 10: Zeile 9:
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?
Auf einem Schachbrett kann man entlang der Kanten Quadrate zeichnen. Wie viele Quadrate aller Längen passen denn auf ein Schachbrett bzw. Gitter?


Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen um dann ein allgemeines Muster für große Gitter zu bestimmen.
Um dieses Problem zu lösen, solltest du zunächst das Problem für kleine Gitter lösen, um dann ein allgemeines Muster für große Gitter zu bestimmen.


{{Aufgabe:Start}}
{{Aufgabe:Start}}
Bestimme die Anzahl der Kästchen in einem
Bestimme die Anzahl der Kästchen in einem
# 2x2-Gitter.
* 2x2-Gitter,
# 3x3-Gitter.
* 3x3-Gitter,
# 4x4-Gitter.
* 4x4-Gitter.
Lösung für 2x2 und 3x3:
{{Aufgabe:End}}{{Lösung:Start|Lösung 2x2 und 3x3}}
{{Collapse:Start}}
* 2x2-Gitter: vier 1x1 Kästchen und ein 2x2 Kästchen .  
#Für das 2x2-Gitter gibt es: vier 1x1 Kästchen und ein 2x2 Kästchen .  
* 3x3-Gitter: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen.  
#Für das 3x3-Gitter gibt es: neun 1x1 Kästchen und vier 2x2 Kästchen und ein 3x3 Kästchen.  
 
Die Zahlen 1,4,9,16, usw. werden als Quadratzahlen bezeichnet.
Die Zahlen 1, 4, 9, 16, usw. werden als ''Quadratzahlen'' bezeichnet.
{{Collapse:End}}
{{Lösung:End}}{{Lösung:Start|Lösung 4x4}}
Lösung für 4x4:
Für das 4x4-Gitter gibt es sechzehn 1x1 Kästchen, neun 2x2 Kästchen, vier 3x3 Kästchen und ein 4x4 Kästchen. Insgesamt also <math>1+4+9+16 = 30</math>.  
{{Collapse:Start}}
{{Lösung:End}}
Für das 4x4-Gitter gibt es:sechzehn 1x1 Kästchen und neun 2x2 Kästchen und vier 3x3 Kästchen und ein 4x4 Kästchen und.  
{{Collapse:End}}
{{Aufgabe:End}}


{{Aufgabe:Start}}
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.
Natürlich lässt sich auch eine Methode für die Anzahl der Kästchen programmieren. Die Beobachtungen aus den Beispielen für ein 2x2, 3x3 und 4x4-Gitter können bei der Formulierung einer rekursiven Formel helfen.
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.
Aber dieses Problem lässt sich auch sehr gut iterativ lösen.


Rekursive Lösung
{{Aufgabe:Start}}
{{Collapse:Start}}
Implementiere eine rekursive und eine iterative Lösung für das Kästchen-Problem.
<syntaxhighlight lang="java">
{{Aufgabe:End}}
public int k_rek(int n){
{{Lösung:Start|Rekursive Lösung}}
  if(n > 1){
<syntaxhighlight lang="java" line="1">
    return n*n+k_rek(n-1);
public int k_rek(int n) {
  }else{
if(n > 1) {
    return 1;  
return n*n+k_rek(n-1);
  }
} else {
return 1;  
}
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Collapse:End}}
{{Lösung:End}}
 
{{Lösung:Start|Iterative Lösung}}
Iterative Lösung
<syntaxhighlight lang="java" line="1">
{{Collapse:Start}}
public int k_it(n) {
<syntaxhighlight lang="java">
int sum = 0;
public int k_it(n){
for(int i = 1; i<n+1 ;i++) {
  int sum = 0;
sum = sum + i*i;  
  for(int i = 1; i<n+1 ;i++){
}
    sum = sum + i*i;  
return sum;  
  }
  return sum;  
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Collapse:End}}
{{Lösung:End}}
{{Aufgabe:End}}


== Suche in einem Array ==
== Suche in einem Array ==
8.581

Bearbeitungen