Fibonacci Zahlenreihe Fehler

Diskutiere Fibonacci Zahlenreihe Fehler im Java Basics - Anfänger-Themen Bereich.
G

Garfild2015

Kann mir jemand sagen warum Java pZahl nicht in der for Schleife annimmt?
Fehlermeldung unexpected typ
Code:
import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;

public class SuMAnwendung extends EBAnwendung
{
    // Objekte
    private Etikett hatEtikettN, hatEtikettN2;
    private Etikett hatEtikettFibn, hatEtikettFibn2;
    private Textfeld hatTextfeldN, hatTextfeldN2;
    private Knopf hatKnopfRechne, hatKnopfRechne2;
    private Knopf hatKnopfBeenden;
    private Etikett hatEtikettErgebnis, hatEtikettErgebnis2;
    private Etikett hatEtikettFibonacciberechnung;

    // Attribute

    /**
     * Konstruktor
     */
    public SuMAnwendung()
    {
        //Initialisierung der Oberklasse
        super(400, 350);

        hatEtikettN = new Etikett(60, 50, 25, 25, "n =");
        hatEtikettN2 = new Etikett(200, 50, 25, 25, "n =");
        // Ausrichtung
        hatEtikettN.setzeAusrichtung(Ausrichtung.LINKS);
        hatEtikettFibn = new Etikett(60, 152, 67, 25, "fib_rek(n)=");
        hatEtikettFibn2 = new Etikett(234, 152, 67, 25, "fib_it(n)=");
        // Ausrichtung
        hatEtikettFibn.setzeAusrichtung(Ausrichtung.RECHTS);
        hatTextfeldN = new Textfeld(88, 50, 60, 25, "10");
        hatTextfeldN2 = new Textfeld(234, 50, 60, 25, "10");
        // Ausrichtung
        hatTextfeldN.setzeAusrichtung(Ausrichtung.LINKS);
        hatKnopfRechne = new Knopf(60, 97, 100, 30, "Rechne");
        hatKnopfRechne2 = new Knopf(200, 97, 100, 30, "Rechne");     

        hatKnopfRechne.setzeBearbeiterGeklickt("hatKnopfRechneGeklickt");
        hatKnopfRechne2.setzeBearbeiterGeklickt("hatKnopfRechne2Geklickt");
        hatKnopfBeenden = new Knopf(60, 190, 100, 30, "Beenden");
        hatKnopfBeenden.setzeBearbeiterGeklickt("hatKnopfBeendenGeklickt");
        hatEtikettErgebnis = new Etikett(131, 152, 315, 25, "Ergebnis");
        hatEtikettErgebnis2 = new Etikett(290, 152, 315, 25, "Ergebnis");
        hatEtikettFibonacciberechnung = new Etikett(177, 23, 150, 25, "Fibonacciberechnung");
        // Ausrichtung
        hatEtikettFibonacciberechnung.setzeAusrichtung(Ausrichtung.LINKS);
    }

    /**
     * Vorher: Ereignis GeklicktvonhatKnopfRechne fand statt.
     * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
     */
    public void hatKnopfRechneGeklickt()
    {
        hatEtikettErgebnis.setzeInhalt(this.fib(hatTextfeldN.inhaltAlsGanzeZahl()));
    }

    public void hatKnopfRechne2Geklickt()
    {
        hatEtikettErgebnis2.setzeInhalt(this.fib2(hatTextfeldN2.inhaltAlsGanzeZahl()));
    }

    /**
     * Vorher: Ereignis GeklicktvonhatKnopfBeenden fand statt.
     * Nachher: das Programm ist beendet.
     */
    public void hatKnopfBeendenGeklickt()
    {
        this.beenden();
    }

    /**
     * Rekursive Berechnung einer Fibonaccizahl
     * @param pZahl die Zahl, zu der die Fibonaccizahl berechnet werden soll
     * @return die entsprechende Fibonaccizahl
     */   
    public int fib(int pZahl)
    {   
        if (pZahl==0||pZahl==1)
            return -1;
            else
            return fib(pZahl-1)+fib(pZahl-2);
        }
    

    public int fib2(int pZahl)
    {
        int lvor =1;
        int lnach=1;

        for(int i=1; i<pZahl; i++)
        {

            fib(pZahl)=fib(pZahl-1)+fib(pZahl-2);
        }
        return lvor;
    }
}
e
 
stg

stg

Die Zeile fib(pZahl)=fib(pZahl-1)+fib(pZahl-2); wird schon einen Compile-Fehler hervorrufen.
Mit = weist du der Variablen links davon einen Wert zu. Bei dir steht links aber ..... (!?)

Kommst du damit schon weiter?
 
G

Garfild2015

Die Zeile fib(pZahl)=fib(pZahl-1)+fib(pZahl-2); wird schon einen Compile-Fehler hervorrufen.
Mit = weist du der Variablen links davon einen Wert zu. Bei dir steht links aber ..... (!?)

Kommst du damit schon weiter?
Leider stehe ich gerade auf dem Schlauch.
Wie muss ich die Zeile den abändern, das sie passt?
 
Kirby_Sike

Kirby_Sike

Naja was möchtest du denn machen?

Du könntest deinen Term auf der rechten Seite des = in eine Variable Speichern ;) Oder meinst du anstatt einem = vielleicht ein == ?
 
J

JustNobody

fib2 soll die iterative Berechnung sein, oder?
fib(...) ist in Java ein Funktionsaufruf. fib2 soll doch eigenständig die Berechnung durchführen, also ist da ein Aufruf einer Funktion komplett falsch.

Bei so Problemen: Überlege Dir doch erst einmal, wie Du es mit Stift und Papier machen würdest. Wie läuft da die Berechnung?

Oder versteh erst einmal den Rahmen, den Du da hast: lvor / lnach: Was sollen die Variablen speichern? (Das man da schon fragen muss zeigt eigentlich, dass die Namen schlecht gewählt sind, aber das ist ein anderes Thema!) Dann die Schleife - was muss in der Schleife passieren? Spiele es durch! (Stift + Papier!)
 
Thema: 

Fibonacci Zahlenreihe Fehler

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben