webForumDet fria alternativet

ett exekverings fel

3 svar · 620 visningar · startad av liberte

liberteMedlem sedan aug. 20074 inlägg
#1

Hej på er!

Jag är ny här och rätt så nybörjare i Javaprogrammering.
Jag skulle gärna få hjälp för att få min kod att fungera.

Uppgiften är att skriva en kod som ska beräkna och skriva ut de 10 första Fibonacci-talen(1,1,2,3,5,...) och som beräknas med följande formeln:
F(k)= F(k-1)+F(k-2) där F(o) = 1, F(1) = 1.

Koden ser ut så här:

public class Fibonacci {
public static void main(String[]args){

	int\[\] theNbrs ;
	theNbrs\[0\] = 1;
	theNbrs\[1\] =1;
	
	for (int k=2; k\<theNbrs.length; k++)
		theNbrs\[k\] = theNbrs\[k-1\] + theNbrs\[k-2\];

	System.out.println(theNbrs\[k\]);

       }

}

Jag får som exekveringsfel det här:

C:\Documents and Settings\Mina dokument\algorithm\Fibonacci.java:11: cannot find symbol
symbol : variable k
location: class Fibonacci
System.out.println(theNbrs[k]);
^
1 error

Process completed.

Hur ska jag rätta till det här :q ???

Ytterst tacksam för all hjälp

@ndersMedlem sedan juni 200032 969 inlägg
#2

Hej!

Utan att kunna java tycker jag nog att det saknas måsvingar runt det som ska exekveras i din for-slinga.

for (int k=2; k<theNbrs.length; k++) {
     theNbrs[k] = theNbrs[k-1] + theNbrs[k-2];

     System.out.println(theNbrs[k]);
}

Använd gärna [kod]-taggar när du postar kod, så blir allt mycket mer lättläst.

mvh

LimeMedlem sedan sep. 2001961 inlägg
#3

liberte skrev:

Hej på er!

Jag är ny här och rätt så nybörjare i Javaprogrammering.
Jag skulle gärna få hjälp för att få min kod att fungera.

Uppgiften är att skriva en kod som ska beräkna och skriva ut de 10 första Fibonacci-talen(1,1,2,3,5,...) och som beräknas med följande formeln:
F(k)= F(k-1)+F(k-2) där F(o) = 1, F(1) = 1.

Koden ser ut så här:

public class Fibonacci {
public static void main(String[]args){

  int\[\] theNbrs ;
  theNbrs\[0\] = 1;
  theNbrs\[1\] =1;
  
  for (int k=2; k\<theNbrs.length; k++)
  	theNbrs\[k\] = theNbrs\[k-1\] + theNbrs\[k-2\];

  System.out.println(theNbrs\[k\]);

       }

}

Jag får som exekveringsfel det här:

C:\Documents and Settings\Mina dokument\algorithm\Fibonacci.java:11: cannot find symbol
symbol : variable k
location: class Fibonacci
System.out.println(theNbrs[k]);
^
1 error

Process completed.

Hur ska jag rätta till det här :q ???

Ytterst tacksam för all hjälp

Det första som är fel är deklarationen av den array som du använder dig av. Du måste instansiera theNbrs innan du kan göra någon tilldelning i arrayen.

int[] theNbrs;

blir

int[] theNbrs = new int[10];

Du kommer att behöva 10 positioner för att lagra arrayen.

Nästa sak du måste fixa är att fundera på for-satsen. Du vill titta på alla tal upp till 10...

Sedan är att får rätt i måsvingeträsket. Ta till vana att ALLTID använda dig av måsvingar när du öppnar ett nytt scope, så som du t.ex. gör med for-satsen (eller med if, else, switch, metoder o.s.v.). Även om det bara skall köras en enda sak inne i scopet. Måsvingarna gör ingenting för den slutligt kompilerade koden, men hjälper till med läsbarhet och avlusning.

Så här hade jag löst uppgiften:

public class Fibonacci {
	public static void main(String[] args) {

		int theNbrs_minor = 1;
		int theNbrs_major = 1;
		int theNbrs_next = 0;

		System.out.println("F(0) = " + theNbrs_minor);
		System.out.println("F(1) = " + theNbrs_major);
		
		for (int k = 2; k < 10; k++) {
			theNbrs_next = theNbrs_minor + theNbrs_major;

			System.out.println("F("+k+")= " + theNbrs_next);
			theNbrs_minor = theNbrs_major;
			theNbrs_major = theNbrs_next;
		}
	}
}

Det öppnar för att läsa in argument till applikationen så att jag kan ställa vilka fibonacci-talserier jag vill.

liberteMedlem sedan aug. 20074 inlägg
#4

Snyggt!

Tack så mycket för hjälpen!

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)