1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
473
473
EMPFEHLEN
-
30.08.10 11:50 #1
- Registriert seit
- Aug 2010
- Beiträge
- 6
Hi an alle.Bin Java-Anfänger und habe hier einen Code wo ich die Fehler beheben soll doch leider hab ich keine Ahnung wo der Fehler im Code ist.Vielleicht kann mir jemand helfen...
public class Fibo_3 {
/**
* @param args
*/
public static void main(String[] args) {
int klein = 0;
int groß = 1;
int werte [] = new int [11];
werte [0] = klein;
werte [1] = groß;
for(int i = 2;i<=11;i++){
werte [i] = werte[i-2] + werte[i-1];
groß = werte[i];
klein = werte[i-1];
}
int i=0;
while (i < werte.length) {
System.out.println("f" + i + ": " + werte[i]);
i++;
}
if (werte[10] >= 60)
System.out.println("f10 ist zu groß");
else
System.out.println("\nf10 könnte korrekt sein.");
}
}
-
30.08.10 11:56 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.298
Hallo franzleitinger und Herzlich Willkommen hier bei tutorials.de

Bitte fasse deinen Code in die entsprechenden Tags ein ([ java] Code ...... [/ java]), so ist der um einiges leichter zu lesen:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
public class Fibo_3 { /** * @param args */ public static void main(String[] args) { int klein = 0; int groß = 1; int werte[] = new int[11]; werte[0] = klein; werte[1] = groß; for(int i = 2;i<=11;i++){ werte[i] = werte[i-2] + werte[i-1]; groß = werte[i]; klein = werte[i-1]; } int i=0; while (i < werte.length) { System.out.println("f" + i + ": " + werte[i]); i++; } if (werte[10] >= 60) System.out.println("f10 ist zu groß"); else System.out.println("\nf10 könnte korrekt sein."); } }
Nun zu deinem Problem:
Ich kann da auf die schnelle keinen Fehler finden, gibt es eine Fehlermeldung? Oder bringt es falsche Zahlen? Eine etwas genauere Angabe wäre sehr hilfreich
Ein kleiner Hinweis noch: In der for-Schleife setzt du immer wieder die Variablen "groß" und "klein", dies ist unnötig. Setze diese einmal nach der Schleife.
Des weiteren hast du bei deinem Array ab und zu ein Leerzeichen vor der öffnenden Klammer. Weiß jetzt nicht, ob das falsch ist, würde ich aber weglassen.
Gruß
BKGeändert von Bratkartoffel (30.08.10 um 11:58 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
30.08.10 12:01 #3
- Registriert seit
- Aug 2010
- Beiträge
- 6
Die genaue Angabe lautet:
Das folgende Codefragment berechnet die ersten elf Fibonacci-Zahlen f0, f1, … , f10 und gibt diese anschließend auf der Konsole aus. Korrigieren Sie die Fehler im Code und geben Sie den Inhalt des Arrays „werte“ an!
und ich bekomme eine Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at Fibo_3.main(Fibo_3.java:16)
-
30.08.10 12:03 #4
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.298
Hallo,
ja der Fehler klingt logisch. Schau dir mal Zeile 16 (was ich sowiso schon rausstreichen wollte
) genau an, vorallem welchen Wert "i" beim letzten Durchgang haben wird.
Hier wird dann versucht, auf das 11te Element von "werte" zuzugreifen. Das Array hat zwar 11 Elemente, diese sind aber von 0 bis 10 nummeriert. Daher die Exception.
Wirf die Zeilen 16 und 17 raus, dann sollte es weitergehen
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
30.08.10 12:11 #5
- Registriert seit
- Aug 2010
- Beiträge
- 6
Nein,leider bekomm ich noch immer die gleiche Fehlermeldung....
Gruß
FL
-
Das Problem müsste eher in der Abbruchbedingung der Schleife liegen die i bis zu einem Wert von 11 erhöht und 11 selbst noch zulässt. Damit versuchst du auch schon in Zeile 15 auf das Feld mit dem Index 11 im Array zu zu greifen. Das gibt es allerdings nicht.
Du musst also die Schleife etwas anpassen. Soviel als Tipp von mir.
-
30.08.10 12:31 #7Elmu Tutorials.de Gastzugang
Der Wolf hat recht.
Ich erweitere den Tipp mal etwas =>
Ein Feld beginnt immer bei 0.
Erstellst du ein Array mit 9Elementen, dann läuft das Array von 0-8.
Dein Array hast du mit 11 Elementen erstellt, dann läuft es von 0-?.
Willst du auf ein Feld darüber zugreifen, dann gibs Fehler.
-
30.08.10 12:45 #8
- Registriert seit
- Aug 2010
- Beiträge
- 6
Hab das Problem!!Danke!in der for-Schleife einfach i<=10
Gruß
FL
Ähnliche Themen
-
Fibonacci-Schleife als PSD
Von mikkele im Forum PhotoshopAntworten: 5Letzter Beitrag: 12.04.10, 02:29 -
Fibonacci jenseits der Millionen
Von chris_de_luxe im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 11Letzter Beitrag: 12.03.09, 14:26 -
Gestaltungsraster mit Hilfe der Fibonacci-Reihe
Von Jan-Frederik Stieler im Forum Creative LoungeAntworten: 14Letzter Beitrag: 29.05.05, 13:55 -
Fibonacci - Zahlenfolge
Von Gambit050 im Forum C/C++Antworten: 5Letzter Beitrag: 21.10.04, 10:35 -
Fibonacci und Komplexität
Von PPhilipp im Forum Coders TalkAntworten: 5Letzter Beitrag: 04.01.04, 20:22





Zitieren

Login




