Halli-Hallo!
Ich habe folgendes Problem:
Ich habe ein kleines Programm, welches mir ein Rechteck erstellen soll , dann dessen Fläche ausrechenen und überprüfen, ob es sich um ein Quadrat handelt:
das funktioniert soweit ganz gut, nun habe ich im selben Packet , noch ein kleines Programm,
welches mir 1000 Rechtecke mit zufälliger Seitenabmessung in eine ArrayList ablegt.Anschließend
soll der gesamte Flächeninhalt aller Rechtecke überprüft und ausgegeben werden und die Anzahl der Quadrate
soll auch überprüft werden:
Aber irgendwo liegt der Hund begraben!!!
Rot unterwellt in Eclipse sind:
Zeile 32 liste.add(new Rechteck(b,h));
Zeile 39 liste.get
Beim Ausführen gibt der Compiler folgende Fehler Meldung aus:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Cannot invoke add(Rechteck) on the array type ArrayList[]
liste.get cannot be resolved or is not a field
at Rechteck.Rechteckliste.main(Rechteckliste.java:32)
Und ich komme einfach nicht dahinter woran das ganze scheitert :autsch:
Dankeschön für eure Hilfe!!!
mfg coffeecup
Ich habe folgendes Problem:
Ich habe ein kleines Programm, welches mir ein Rechteck erstellen soll , dann dessen Fläche ausrechenen und überprüfen, ob es sich um ein Quadrat handelt:
Code:
package Rechteck;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Rechteck {
private static int b,h,x,f ;
static boolean q;
public Rechteck(int h, int b) {
super();
this.h = h;
this.b = b;
}//dieser Part (public Rechteck) ist zwar nicht notwendig, aber ich brauche ihn für das
//zweite Programm oder??
public static void main(String[] args)
throws NumberFormatException, IOException
{
BufferedReader dIn = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("0=Eingabe der Parameter,1=Zufallszahlen");
x=Integer.parseInt(dIn.readLine());
if (x == 0) {
System.out.println("Bitte geben Sie die gewünschte Breite ein(Zahl>0):");
b = Integer.parseInt(dIn.readLine());
System.out.println("Bitte geben Sie die gewünschte Höhe ein(Zahl>0):");
h = Integer.parseInt(dIn.readLine());
}
else
{
b = (int) (Math.random() * 99+1);
h = (int) (Math.random() * 99+1);
}
f = flaeche();
q = isQuadrat();
System.out.println("Die Breite beträgt: " + b + " und die Höhe :" + h);
System.out.println("Die Fläche beträgt "+f+".");
System.out.println("Ist dieses Rechteck auch ein Quadrat?");
System.out.println(q);
}
static boolean isQuadrat() {
if(h==b)return(true);
else return false;
}
static int flaeche()
{
int flaeche= b*h;
return flaeche;
}
}
das funktioniert soweit ganz gut, nun habe ich im selben Packet , noch ein kleines Programm,
welches mir 1000 Rechtecke mit zufälliger Seitenabmessung in eine ArrayList ablegt.Anschließend
soll der gesamte Flächeninhalt aller Rechtecke überprüft und ausgegeben werden und die Anzahl der Quadrate
soll auch überprüft werden:
Code:
package Rechteck;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Random;
public class Rechteckliste {
private static int b,h,x,,c,d ;
static boolean q;
public static void main(String[] args)
throws NumberFormatException, IOException
{
f = Rechteck.flaeche();
q = Rechteck.isQuadrat();
x=1000;
d=100;//die Zufällige Seitenlänge soll 100 nicht überschreiten
c=d-1;//wegen (int) (Math.random() * c+1);
int zähler = 0;
int a = 0;
ArrayList liste []= new ArrayList[x];
for (int i = 0; i < x; i++)
{
b = (int) (Math.random() * c+1);
h = (int) (Math.random() * c+1);//bei Eingabe 0 =0+1;-)
liste.add(new Rechteck(b,h));
}
long gesamtgflaeche=0;
int anzQuadrate=0;
for (int i=0;i <x;i++){
Rechteck tempRechteck=(Rechteck)liste.get[i];
gesamtgflaeche += tempRechteck.flaeche();
if(tempRechteck.isQuadrat())
anzQuadrate++;
}
}
}
//Um am Ende gesamtgflaeche u. anzQuadrate ausgeben zu können
Aber irgendwo liegt der Hund begraben!!!
Rot unterwellt in Eclipse sind:
Zeile 32 liste.add(new Rechteck(b,h));
Zeile 39 liste.get
Beim Ausführen gibt der Compiler folgende Fehler Meldung aus:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Cannot invoke add(Rechteck) on the array type ArrayList[]
liste.get cannot be resolved or is not a field
at Rechteck.Rechteckliste.main(Rechteckliste.java:32)
Und ich komme einfach nicht dahinter woran das ganze scheitert :autsch:
Dankeschön für eure Hilfe!!!
mfg coffeecup