"Grundkurs Programmieren in Java - (8. Auflage, 2018)"
2001-2018, Carl Hanser Verlag
Lösungsvorschlag zu Aufgabe 7.11 (Version 3.1)
(c) 2001-2018 D. Ratz, D. Schulmeister-Zimolong, D. Seese, J. Wiesenberger
a)
- Variable x in Zeile 3 ist eine Instanz-Variable
- Variable ach in Zeile 4 ist eine Klassen-Variable
- Variable j in Zeile 6 ist eine formale Variable
- Variable y in Zeile 7 ist eine lokale Variable
- Variable n in Zeile 22 ist eine lokale Variable
- Variable so in Zeile 24 ist eine lokale Variable
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:
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)