Antwort schreiben  Thema schreiben 
Verfasser Nachricht
SparkMonkay
KaptainBio
*****


Beiträge: 1.434
Gruppe: User
Registriert seit: May 2012

Status: Abwesend
Danke erhalten: 515
Beitrag: #1
xGames  Java Schleife, wie anstellen?

Hallo Leute

Ich lerne zur Zeit Java und bin bei den Schleifen angekommen.

Nun würde ich gerne wissen, wie ich eine Schleife gestalten soll um die Fibonachi Zahlen mit zu erzeugen?

Also aufwändig sähe es so aus

Code:
public class FibonachiZahlen1 {
public static void main(String[]args){
    int a=1;
    int b=a+a;
    int c=b+a;
    int d=c+b;
    int e=d+c;
    (...)
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    System.out.println(d);
    System.out.println(e);
    (...)
}
}


Wie kann ich die Schleife gestalten, dass ich ihm sage, dass e das in Schleifen-Version machen soll.

Code:
int a=1
int b=1
a+b=c;
c=b,

dann in der nächsten Zeile wird das alte c=a, damit das neue c an die Stelle des altens c`s rücken kann, jemand eine Idee?

Mit der while schleife kann ich nix anfangen.

MfG

PS: Wer Googeln sagt, der soll mir mal sagen wonach ich googeln soll, denn ich habe keinen Plan wonach ich googeln soll. So viel google in einem Satz Big Grin


HAVE A NICE DAY BITCH! ACHTUNG: POST KANN EDITIERT SEIN! teufel
KINGXlers PC
Mein neuer Taschenrechner

Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2013 18:58 von SparkMonkay.

06.07.2013 18:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
fkrone
*meow*
**


Beiträge: 3.421
Gruppe: Super Moderator
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 5342
Beitrag: #2
xGames  RE: Java Schleife, wie anstellen?

Es geht mit ein paar wenigen Variablen, die man im Kreis zuweisen kann, ich mache mich mal kurz daran, meine Idee in Code umzusetzen Wink

Edit: Umsetzung in einer for-Schleife (finde ich persönlich am sinnigsten, falls anders gefordert einfach sagen):

Code:
public class FibonachiZahlen1 {
    public static void main(String...args){
        int previous = 1; //Startwert
        System.out.println(previous);
        int current = previous + previous; //Erste Berechnung
        System.out.println(current);
        int result;
        
        
        int loopCount = 100; //so oft laufen lassen wie benoetigt
        for ( int i = 0; i < loopCount; i++) {
            result = current + previous; //Berechnet Ergebnis
            System.out.println(result);
            previous = current; //Variablen neu zuweisen, um neue Berechnung anzustellen
            current = result;
        }
    }
}


Muss dazu sagen, ist untested. Zudem meine Empfehlung: Kein Physikercode (aka 1-Buchstaben-Variablen, ist schlechter Stil und schlecht zu lesen). Werde das Ding gleich noch durchkommentieren.

Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2013 19:15 von fkrone.

06.07.2013 19:03
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
SparkMonkay (Jul-6-2013)
SparkMonkay
KaptainBio
*****


Beiträge: 1.434
Gruppe: User
Registriert seit: May 2012

Status: Abwesend
Danke erhalten: 515
Beitrag: #3
RE: Java Schleife, wie anstellen?

Danke, denn ich arbeite mit dem Buch von Markt und Technik, nur grade weiß ich nciht wo man das finden kann.

Danke noch für die Info, das man die Variablen im Kreis drehen kann. :3

PS: Auf dich hab ich gewartet Big Grin
PS2:

Zitat:
Zudem meine Empfehlung: Kein Physikercode (aka 1-Buchstaben-Variablen, ist schlechter Stil und schlecht zu lesen).

Joa ich weiß, aber ich komme persönlich etwas besser mit den "aka 1-Buchstaben-Variablen" klar. Big Grin
PS3:
hab es durchlaufen lassen, und da funktioniert der Teil mit dem "Variablentauschen" nicht, hab es auseinander genommen, um das herauszufinden


HAVE A NICE DAY BITCH! ACHTUNG: POST KANN EDITIERT SEIN! teufel
KINGXlers PC
Mein neuer Taschenrechner

Dieser Beitrag wurde zuletzt bearbeitet: 06.07.2013 19:40 von SparkMonkay.

06.07.2013 19:05
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
fkrone
*meow*
**


Beiträge: 3.421
Gruppe: Super Moderator
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 5342
Beitrag: #4
RE: Java Schleife, wie anstellen?

Ich teste es mal in Eclipse, bisher nur in reinem Text-Editor gearbeitet Wink

06.07.2013 19:49
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
SparkMonkay
KaptainBio
*****


Beiträge: 1.434
Gruppe: User
Registriert seit: May 2012

Status: Abwesend
Danke erhalten: 515
Beitrag: #5
RE: Java Schleife, wie anstellen?

Ich mache es nur mit Eclipse.

PS: mir ist noch was aufgefallen

Code:
public class FibonachiZahlen2 {
     public static void main(String[]args){
            int a = 1; //Startwert
            System.out.println(a);
          //Erste Berechnung
            int b = a + a;
            System.out.println(b);
            int c;
            
            //so oft laufen lassen wie benoetigt
            int Schleife = 45;
            for ( int Anzahl = 0; Anzahl < Schleife; Anzahl++) {
                //Berechnet Ergebnis
                c = b + a;
                System.out.println(c);
              //Variablen neu zuweisen, um neue Berechnung anzustellen
                a = b;
                b = c;
            }
        }    
}


Mach mal Copy Paste und guck mal was unten rauskommt.

"-1323752223"
Dafuq?


HAVE A NICE DAY BITCH! ACHTUNG: POST KANN EDITIERT SEIN! teufel
KINGXlers PC
Mein neuer Taschenrechner

06.07.2013 19:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
fkrone
*meow*
**


Beiträge: 3.421
Gruppe: Super Moderator
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 5342
Beitrag: #6
RE: Java Schleife, wie anstellen?

Durch deinen Code kämpfe ich mich bald nicht mehr bei den Variablen. Damit machst du keinem eine Freude (vor allem später im Berufsleben nicht). Man blickt irgendwann einfach nicht mehr durch.

Beim Testen hat es funktioniert, man läuft nur irgendwann an das Problem, dass int nicht mehr ausreicht von der Größe. Daher hier eine überarbeitete Version, die das kann:

Code:
public class FibonachiZahlen1 {
    public static void main(String...args){
        double previous = 1; //Startwert
        System.out.println(previous);
        double current = previous + previous; //Erste Berechnung
        System.out.println(current);
        double result;
        
        
        int loopCount = 100; //so oft laufen lassen wie benoetigt
        for ( int i = 0; i < loopCount; i++) {
            result = current + previous; //Berechnet Ergebnis
            System.out.println(result);
            previous = current; //Variablen neu zuweisen, um neue Berechnung anzustellen
            current = result;
        }
    }
}

06.07.2013 19:57
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
SparkMonkay (Jul-6-2013)
SparkMonkay
KaptainBio
*****


Beiträge: 1.434
Gruppe: User
Registriert seit: May 2012

Status: Abwesend
Danke erhalten: 515
Beitrag: #7
RE: Java Schleife, wie anstellen?

Ok, werde vorher gucken wenn ich soetwas ausgebe die Variablen zu überarbeiten.

und int ist für solch eine Zahlengröße nicht geeignet, nur double!


HAVE A NICE DAY BITCH! ACHTUNG: POST KANN EDITIERT SEIN! teufel
KINGXlers PC
Mein neuer Taschenrechner

06.07.2013 20:00
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
KICKinYaFACE
Experte
****


Beiträge: 749
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 240
Beitrag: #8
xGames  RE: Java Schleife, wie anstellen?

Das ganze lässt sich auch wunderbar über eine Rekursive Methode gestalten, also über eine Funktion die sich selbst aufruft. Ist meistens aber nicht so leicht zu verstehen, wenns man es aber verstanden hat spart man sich seehr viel programmierarbeit.

Könnte ungefähr so aussehen:

Code:
public static void main(String [] args){
   int n = Integer.parseInt(args[0]);
         if (n >= 1){
           int i;
           for (i=1; i<=n; i++){
                 System.out.print(fib(i)+" ");
           }
}

        else
          System.out.print("zahl is nicht positiv");
}

public static int fib(int n){
         if (n<=2)
               return 1;
         else
               return fib(n-2)+fib(n-1);
}


Und noch zu der normalen, also iterativen Lösung von meinem Vorredner: Wenn dir int nicht genug ist nimm anstatt Double doch lieber ein long int, das müsste dir vollkommen reichen. Mit double holst du dir noch Kommazahlen mit ins Boot und das willst du bei Fibonacci zahlen ja eigentlich nicht, oder?

mfg kick

06.07.2013 23:27
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Tepoo
Banned


Beiträge: 586
Gruppe: Banned
Registriert seit: May 2012

Status: Offline
Danke erhalten: 331
Beitrag: #9
xGames  RE: Java Schleife, wie anstellen?

für Fibonacci (nicht mit ch sondern cc) ist big int oder long am besten.

Und was ich damals im Studium gelernt habe: Ob jemand sprechende Variablen nimmt oder nur 1-Buchstaben Variablen zeigt ob er ein Programmierer ist oder ein Coder.

Und wer später Geld damit verdienen will, sollte aufpassen das er kein Coder ist/wird.


1. PS3 DEX 4.40 | 3. PS3 OFW 4.XX
2. PS3 CFW 4.40 | 4. PS3 OFW 4.XX
1. PSP CFW 6.XX | 1. PSV OFW 2.06
07.07.2013 08:22
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xGames Ubuntu - SublimeText das Terminal und Java SparkMonkay 0 1.017 18.12.2014 18:55
Letzter Beitrag: SparkMonkay
xGames Datenbank in Java durchsuchen loader72 9 2.665 14.11.2014 21:03
Letzter Beitrag: laughingMan
xGames Java: Frage zum Focus System ~MaX~ 2 1.075 25.11.2013 18:04
Letzter Beitrag: laughingMan
xGames Java Update?? Mr Burns 3 1.127 07.07.2013 21:14
Letzter Beitrag: SchokoMilch
xGames Java Update Mr Burns 3 1.068 22.02.2013 11:26
Letzter Beitrag: Mr Burns

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang