Zum Inhalt springen

Arrays im Java Hamster Simulator über geben


Tidus

Empfohlene Beiträge

Hallo ich habe mal eine Frage.

ich bin schon ziemlich geübt im Programmieren, allerdings habe ich nicht viel Erfahrungen mit Arrays, bezüglich des Hamster Simulators von Java.

Meine Aufgabe ist es, fünf Werte, die als Körner auf fünf Feldern hintereinander liegen, aufzunehmen und in ein Array zu Speichern.

Mein jetztiger Code sieht so aus:

void main()

{

int felder = 5;

int counter = 0;

int werte = 0;

int[] anzahl = new int [5];

anzahl[0] = 0;

anzahl[1] = 0;

anzahl[2] = 0;

anzahl[3] = 0;

anzahl[4] = 0;

while(felder>0&&vornFrei())

{

vor();

while(kornDa())

{

nimm();

werte++;

}

anzahl[counter] = werte;

werte = 0;

counter++;

felder--;

}

}

Die Körner werden alle aufgenommen und dem dazu passenden Array auch als Wert zugewiesen.

Jetzt kommt der Clou. Die Werte sollen der größe nach sortiert, und dann wieder abgelegt werden. Ich habe jetzt vor die obige Prozedur, als int Funktion zu schreiben, und die gespeicherten Werte des Arrays in eine weitere Funktion zu übergeben, in der ich dann die Sortierung vor nehmen werde. Ich weiß aber nicht wie ich das ganze Array mit den Werten mit "return" übergeben kann :(

Kann mir da vielleicht jemand helfen?

mit:

return anzahl[];

return anzahl;

und vielen weiteren Möglichkeiten habe ich es schon probiert.

Allerdings Syntaxfehler. Vielen Dank im Voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich gehe mal davon aus, dass du dein Array aus der Funktioni, die dieses Array sortiert hat, zurück geben willst. Dann funktioniert das ganz einfach wie du schon geschrieben hast, indem du einfch return anzahl; schreibst, wobei anzahl dann ja dein Array ist. Du solltest nur dran denken, dass deine Funktion dann als Rückgabewert auch int[] hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also mit return gibst du das Ergebnis einer Funktion aus dieser zurück, aber damit übergibst du keine Werte an eine Funktion.

Werte an eine Funktion übergibt man über Parameter:

public int[] sort([B]int[] array[/B]) {}
Und die Funktion rufst du dann wie folgt auf:
int[] erg = sort(anzahl)

Das sollte aber eigentlich klar sein, wenn man schon etwas geübt im Programmieren ist ;)

PS: Ist es eigentlich nur Zufall, dass hier gerade gleichzeitig 2 Threads zu diesem komischen "Java Hamster Simulator" offen sind?

Link zu diesem Kommentar
Auf anderen Seiten teilen

jaaaa das weiß ich doch alles.

die funktion in der das array übergeben werden soll, schreibe ich ja noch. aber mir gehts jetzt erstmal darum, das ich das array aus der jetztigen funktion, iwie mit return rausbekomme. ich würde dann die zurueckgelieferten werte von return in ein weiteres globales array speichern. aber ich kenne die syntax dafür nicht.

ich will nur wissen wir man ein array zurueckliefert

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann noch immer mit return anzahl in deinem Fall. Aber wie schon geschrieben, dazu muss der Rückgabewert deiner Funktion auch int[] sein, sonst wirste da immer nen Fehler bekommen.

Und wenn ich jetzt davon ausgehe dass die Funktion, die du meinst deine main-Funktion ist, ist bei der zurzeit noch immer void, also nichts, der Rückgabewert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

sorry aber das passt hier hinten und vorne nicht...:(

mein code ist jetzt wie folgt:

void main()

{

laufeUndSammle();

funktionZumSortieren();

}

int [] laufeUndSammle()

{

int felder = 5;

int counter = 0;

int werte = 0;

int[] anzahl = new int [5];

anzahl[0] = 0;

anzahl[1] = 0;

anzahl[2] = 0;

anzahl[3] = 0;

anzahl[4] = 0;

while(felder>0&&vornFrei())

{

vor();

while(kornDa())

{

nimm();

werte++;

}

anzahl[counter] = werte;

werte = 0;

counter++;

felder--;

}

return anzahl;

}

int [] funktionZumSortieren(int[] anzahl)

{

bums code

}

sag mal bitte ganz konkret was hier nicht hin haut

sonst hätt ich noch ne frage:

bei einer int-funktion kann man den wert mit der variable einfach über return übergeben und in eine weitere variable speichern..

bsp:

int zahl = funktionDieWasBerechnet();

geht sowas auch mit einer array übergabe?

int[] array = new int [laufeUndSammleEin()];

oder so?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Güte, was du hier alles durcheinander schmeißt...

So wie ich das sehe hilft hier kein Vorkauen der Details. Fang nochmal von vorne mit einem Tutorial/Buch zu Java-Programmierung an und lass die ersten Kapitel nicht aus. Du willst schon das Erdgeschoß bauen bevor das Fundament trocken ist - und das funktioniert nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich füge mal ein paar Kommentare in deinen Code ein


void main()

{


/* da die funktion  laufeUndSammle() einen rückgabewert hat solltest du den auch auffangen z.B. int[] anzahl = laufUndSammle();

 anzahl2 ist jetz das gleiche wie das anzahl welches du mit return  zurückgibst, nicht aber das selbe*/

        laufeUndSammle();  

/* gleiches gilt hier, jedoch fehlt anzahl als parameter */

        funktionZumSortieren();

}


int [] laufeUndSammle() 

{

      int felder = 5;

      int counter = 0;

      int werte = 0;


/* hier solltest du vllt darüber nachdenken das ganze etwas dynamischer  zu gestalten z.B. int[] anzahl = new int[felder]; for(int i = 0; i < felder; i ++) {anzahl[i] = 0;} 

jetzt könntest du z.B. felder von der main ind laufUndSammle übergeben*/

     int[] anzahl = new int [5];

      anzahl[0] = 0;

      anzahl[1] = 0;

      anzahl[2] = 0;

      anzahl[3] = 0;

      anzahl[4] = 0;


      while(felder>0&&vornFrei())

     {

          vor();

          while(kornDa())

          {

               nimm();

               werte++;

          }

          anzahl[counter] = werte;

          werte = 0;

          counter++;

          felder--;

    }

    return anzahl;

}


int [] funktionZumSortieren(int[] anzahl)

{

bums code

}

 // denk aber an das return in dieser funktion

bei einer int-funktion kann man den wert mit der variable einfach über return übergeben und in eine weitere variable speichern.. bsp: int zahl = funktionDieWasBerechnet(); geht sowas auch mit einer array übergabe?
klar, mit allen objekten links vom zuweisungsoperator(=) muss lediglich ein objekt vom gleichen typ des rückgabewertes der funktion rechts vom zuweisungsoperator stehen
int[] array = laufeUndSammleEin();

wie oben bereits erwähnt.

Bearbeitet von ShamaN
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...