"Grundkurs Programmieren in Java - (7. Auflage, 2014)"
2001-2014, Carl Hanser Verlag

Lösungsvorschlag zu Aufgabe 8.11 (Version 3.1)

(c) 2001-2014 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger

a)

Zeilen-Nummern beziehen sich auf den in der Aufgabenstellung im Buch abgedruckten Quelltext

b)

Ausgabe des Programms:
  E:\hiwi\temp>java AchJa
  ja(5,2) = 3 + 3 + 5 = 11


Herleitung Nr.1:
Darstellung als Baum:

Baumdarstellung

Herleitung Nr.2:
  ja(5,2) = ja(3,2)             + ja(5,0)
          = ja(1,2) + ja(3,0)   + ja(5,0)
          = 3       + 3         + 5        = 11

c)

Nein, der Compiler würde das Programm nicht mehr übersetzen:
  E:\hiwi\temp>javac AchJa.java
  AchJa.java:24: non-static method ja(int,int) cannot be referenced from a static
  context
      ach = ja(n,k);
            ^
  1 error
Grund: von der Klassenmethode main aus kann nicht auf die Instanzmethode ja zugegriffen werden

Quelltext:
AchJa.java

Anmerkung:
Diese Aufgabe ist eine ehemalige Klausuraufgabe ("Kommerzielles Programmieren", Wintersemester 1999, Aufgabe 3, 3 + 8 + 6 Punkte)