[JAVA]Reiskörner berechnen

Diskutiere [JAVA]Reiskörner berechnen im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, wir sollen ein Programm schreiben, dass die Reiskörner berechnet bei 60 Schachfeldern. Die Formel ist ja 2^(Felder-1) oder? Wir...
  • [JAVA]Reiskörner berechnen Beitrag #1
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Hallo,

wir sollen ein Programm schreiben, dass die Reiskörner berechnet bei 60 Schachfeldern. Die Formel ist ja 2^(Felder-1) oder?
Wir sollen Variablen vom Typ long nehmen. Ich lese also erstmal die Anzahl der Felder ein, aber wie mache ich dann weiter? Wie berechne ich das ganze mit dem Exponenten? So wie es unten steht, geht es ja nicht. Was mache ich falsch und kann mir jemand vielleicht an diesem Beispiel hier auch die Bedingungen in der for-Schleife erklären?

Code:
public void button1_ActionPerformed(ActionEvent evt)
  {
   int Felder = Integer.parseInt(textField1.getText());
   long Reis = 0;
    for(int i=1; i<=Felder; i++)
     {
       Reis = 2^(Felder-1);
     }
     textField2.setText(Long.toString(Reis));
  }
 
  • [JAVA]Reiskörner berechnen Beitrag #2
C

COGE

Bekanntes Mitglied
Dabei seit
13.01.1999
Beiträge
6.151
Reaktionspunkte
3
Ort
hinten wie von vorne
wieso nur 60 Schachfelder?

Willst du die Körner bis zum jeweiligen Feld oder die auf dem jeweiligen Feld?
 
  • [JAVA]Reiskörner berechnen Beitrag #3
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Wir sollen die Belohnung ausrechnen, also alle Felder zusammen...

Nur 60 Felder, weil es in der Aufgabe steht und die Zahl sonst zu groß wäre...
 
  • [JAVA]Reiskörner berechnen Beitrag #4
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

schau doch mal nach, was in Java das Dach ("^") macht. Vielleicht hilft das ja schon weiter... ;)

Gruss, FFNB.
 
  • [JAVA]Reiskörner berechnen Beitrag #5
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Habe jetzt gelesen, dass es ^bei Java nicht gibt. Habe das gefunden: public static double pow(double a,double b). Aber wie wende ich das jetzt im o.g. Beispiel an? Außerdem habe ich ja noch Felder-1...
 
  • [JAVA]Reiskörner berechnen Beitrag #6
Lambo-Benni

Lambo-Benni

Bekanntes Mitglied
Dabei seit
23.03.2007
Beiträge
7.601
Reaktionspunkte
3
Ort
Medizinmanndiscount
Ähh... und wieso nicht so?

Code:
Reis=1;
for(int i=0; i<Felder; i++) {
  Reis+=Reis;
}
Reis-=1;
 
  • [JAVA]Reiskörner berechnen Beitrag #7
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

doch doch... das "^" gibt es schon - ist aber ein "exklusives oder" und kein "hoch".

Na sag doch mal genau wo es nun noch klemmt. Moechte das nur ungern "vorsagen" - weil: da kommst Du nun ganz sicher auch selbst drauf.

Gruss, FFNB.
 
  • [JAVA]Reiskörner berechnen Beitrag #8
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
public static double pow(double a,double b): a ist die Basis, b der Exponent. Also a=2 und b=(Felder-1)?! Muss das double bleiben oder kann ich das auch ändern? Und wofür ist das public static double pow? Ist pow der Variablenname?
 
  • [JAVA]Reiskörner berechnen Beitrag #10
C

COGE

Bekanntes Mitglied
Dabei seit
13.01.1999
Beiträge
6.151
Reaktionspunkte
3
Ort
hinten wie von vorne
pow ist der Funktionsname
 
  • [JAVA]Reiskörner berechnen Beitrag #11
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Ja und wo schreibe ich das jetzt hin? "public static double pow(double 2,double (Felder - 1));" Das public static... steht doch immer an Anfängen von "Absätzen"?!
Muss ich die auch importieren? "import java.math.*;"
 
  • [JAVA]Reiskörner berechnen Beitrag #12
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

die modifier "public" und "static" der pow-Methode bedeuten folgendes:

- public: Die Methode ist nach aussen hin (auch ueber die Packagegrenzen hinaus) sichtbar
- static: Die Methode kann "statisch" aufgerufen werden. Also ohne eine Instanz der Klasse "Math" zu erzeugen.

Du kannst Die Methode also wie folgt aufrufen:
Code:
Math.pow(a, b);

Gruss, FFNB.
 
  • [JAVA]Reiskörner berechnen Beitrag #13
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Ok, danke das funktioniert jetzt. Allerdings braucht das den Typ "double" oder? Wir sollen eigentlich "long" verwenden und damit klappt es nicht...
 
  • [JAVA]Reiskörner berechnen Beitrag #14
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

da Dir die pow-Methode einen double zurueckliefert, muesstest Du diesen am Ende noch in den von Dir gewuenschten Datentyp casten.

Gruss, FFNB.
 
  • [JAVA]Reiskörner berechnen Beitrag #15
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Und das wandle ich so um?!
int i = 12345;
long l = i;
Die Variable, die ich umwandeln will ist ja "Reis", ich habe die anderen jetzt einfach mal ähnlich benannt, jetzt kommt aber noch ein Error (loss of precision)
Was ist daran jetzt noch falsch?
double Reise = Reis;
long Reiss = Reise;
 
  • [JAVA]Reiskörner berechnen Beitrag #16
C

COGE

Bekanntes Mitglied
Dabei seit
13.01.1999
Beiträge
6.151
Reaktionspunkte
3
Ort
hinten wie von vorne
long Reis = (long) DeineDoubleVariable;
(geht das in Java so?)
 
  • [JAVA]Reiskörner berechnen Beitrag #18
willikufalt

willikufalt

Bekanntes Mitglied
Dabei seit
28.08.2001
Beiträge
1.481
Reaktionspunkte
0
Nur mal so als kleine Randbemerkung:

Wenn man schon eine for-Schleife verwendet, um eine Ausgabe für 1,..,60 Felder zu erzeigen, dann sollte man tunlichst auf die Verwendung der pow-Funktion verzichten.

Genauer: Wenn man nur eine Ausgabe macht für das 60.te Feld, dann benutzt man natürlich die pow-Funktion, benötigt aber die Schleife nicht. Will man 60 Ausgaben machen (für die 60 Felder), dann kann und sollte man auf die pow-Funktion verzichten, weil diese dann unnötig ist.
 
  • [JAVA]Reiskörner berechnen Beitrag #19
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Und ich bin mir relativ sicher, dass das Übungsbeispiel auch genau so gedacht ist. :)
 
  • [JAVA]Reiskörner berechnen Beitrag #20
J

Jakob

Bekanntes Mitglied
Dabei seit
24.06.2007
Beiträge
1.200
Reaktionspunkte
0
Ort
Hessen
Erklärt mir bitte mal die genauen Schritte der for-Schleife, da wir das in der Schule noch nicht besprochen haben. Am besten anhand des Codes, den Lambo-Benni oben gepostet hat, mit dem funktioniert es nämlich auch:
Code:
Reis=1;
for(int i=0; i<Felder; i++) 
{
  Reis+=Reis;
}
Reis-=1;
Wenn ich z.B. bei "Felder" 3 eingebe, wie genau "arbeitet" dann die for-Schleife und warum muss ich am Ende wieder 1 abziehen? Das in der Schleife wird ja ausgeführt, solange i<Felder ist und es soll i=i+1 gerechnet werden. Aber wie funktioniert das konkret mit dem Reis+=Reis? Wäre schön, wenn mir das jemand mal erklären würde...
 
Thema:

[JAVA]Reiskörner berechnen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben