Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- Logik (http://www.informatikerboard.de/board/board.php?boardid=16)
----- Objekte - Logik (http://www.informatikerboard.de/board/thread.php?threadid=2621)


Geschrieben von Java_Beginner am 25.11.2015 um 23:25:

  Objekte - Logik

Meine Frage:
Hallo,

ich habe die Aufgabe, dass ich ein Programm RechteckListe schreiben soll, das 1000 Rechteck-Objekte mit zufälligen Kantenlängen im Bereich 1-10 erzeugt und diese in einem Array speichert.

Die Methode arrayFuellen() habe ich nur eingebaut, weil eine reine for-Schleife ständig als Fehler angezeigt wird? Woran kann dies liegen?

Meine Ideen:
Habe bis jetzt folgenden Code, bin mir aber total unsicher in wie weit dieser stimmt. Werft doch bitte einmal einen Blick darauf :-)

Vielen Dank.

code:
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:

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


class Rechtecke1000
{
    RechteckListe2 [] array = new RechteckListe2 [1000];
    int zufall1 = (int) (10*Math.random()+1);
    int zufall2 = (int) (10*Math.random()+1);
    
    public void arrayFuellen()
    {
        for (int i=0;i<array.length;i++)
        {
            array = new RechteckListe2[zufall1*zufall2];
        }
    }



Geschrieben von eulerscheZahl am 26.11.2015 um 06:10:

 

Eine Schleife muss in eine Methode, du darfst sie nicht in die Klasse direkt schreiben. So funktioniert Java eben.

Du legst in jedem Schleifendurchlauf ein neues array an. Stattdessen solltest du aber was ist das Array reinschreiben.

Ich hoffe, der Code ist nicht zu kompliziert, wenn doch kannst du gerne nachrfragen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public class Main {
	public static void main(String[] args) {
		Rechteck[] array = new Rechteck[1000];
		for (int i = 0; i < array.length; i++) {
			int zufall1 = (int) (10 * Math.random() + 1);
			int zufall2 = (int) (10 * Math.random() + 1);
			array[i] = new Rechteck(zufall1, zufall2);
		}
		System.out.println(array[0].breite);
		System.out.println(array[1].breite);
	}
}


code:
1:
2:
3:
4:
5:
6:
7:
8:
class Rechteck {
	int breite, hoehe;

	public Rechteck(int breite, int hoehe) {
		this.breite = breite;
		this.hoehe = hoehe;
	}
}


Forensoftware: Burning Board, entwickelt von WoltLab GmbH