Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Aufgabe Konstruktor Werteübergabe » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Mike90

Danke für die Antwort.

Zitat:
double durchschnitt = rt[j].flaeche()/2; Was wird das denn? Du sollst die Flächen aller Rechtecke zusammenaddieren und dann durch die Anzahl teilen.


Sorry, da habe ich die Aufgabe falsch gelesen.
eulerscheZahl

Was spricht dagegen, die Methode public zu machen oder in den Konstruktor zu schreiben?
Bei istQuadrat gefällt mir der counter nicht. Wenn du die Methode nochmal aufrufst, hast du da plötzlich 2 Quadrate. Setze den Rückgabewert doch auf boolean.

double durchschnitt = rt[j].flaeche()/2;
Was wird das denn? Du sollst die Flächen aller Rechtecke zusammenaddieren und dann durch die Anzahl teilen.
Mike90

Guten Morgen,

ich schließe einmal an diese Aufgabe an, da meine Aufgabenstellung recht ähnlich ist.

Schreiben Sie ein Programm RechteckListe, dass 1000 Rechteck-Objekte mit zufälligen Kantenlängen im Bereich 1-10 erzeugt und diese in einem Array speichert. Aus diesen Rechtecken errechnen Sie die durchschnittliche Fläche eines Rechtecks und bestimmen, wie viele von den Rechtecken Quadrate sind.

Ich habe das Programm soweit fertig, mir stellt sich nur ein "Problem":

In der Klasse RechteckListe muss ich 1000 Rechteck-Objekte anlegen, nur mit einer for-Schleife (ohne Methode) funktioniert dies nicht? Und die Methode müsste ich dann eigentlich public machen? Habe sie jetzt als Zwischenlösung auf protected gesetzt unglücklich


Hier mein Code:

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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
public class Übungsblatt8Aufgabe3_1 
{
    public static void main(String[] args) 
    {
        RechteckListe rt = new RechteckListe ();
        rt.initalzing();
        rt.durchschnittsFlaeche();
        
    }
}

class Rechteck
{
    private int laenge; 
    private int breite;
    private int counter = 0; 
    
    public Rechteck (int laenge, int breite)
    {
        this.laenge = laenge;
        this.breite = breite; 
    }
    
    public double flaeche ()
    {
        return laenge*breite; 
    }
    
    public int istQuadrat()
    {
        if (laenge==breite)
        {
            ++counter; 
        }
    return counter;
    }
}

class RechteckListe
{
    Rechteck []  rt = new Rechteck [1000];
    
    protected void initalzing ()
    {
        for (int i=0; i<rt.length;i++)
        {
            rt[i] = new Rechteck ((int)(Math.random()*10+1), (int)(Math.random()*10+1));
        }
    }
    
    public void durchschnittsFlaeche ()
    {
        int sindQuadrate=0;
        for (int j=0; j<rt.length;j++)
        {
            double durchschnitt = rt[j].flaeche()/2;
            sindQuadrate = rt[j].istQuadrat();
            System.out.println(durchschnitt);
        }
        System.out.println("Anzahl Quadrate: " + sindQuadrate);
    }
    
}

Karlito

Danke ebenso Daumen hoch Wink
SarahK.

Klingt super. Dann wünsche ich Dir weiterhin viel Erfolg im Studium :-)
Karlito

Ich befasse mich seit meinem 10. Lebensjahr mit Informatik und das sind nun 21 Jahre... Dazu habe ich eine abgeschlossene Berufsausbildung als Fachinformatiker für Anwendungsentwicklung, habe zwei Jahre im Beruf gearbeitet und Studiere nun im 11. Semester Informatik (Bachelor/Master)... Und es ist immernoch interessant smile
SarahK.

Dankeschön :-) Darf ich fragen, wie lange du dich schon mit der Informatik befasst? Ich muss sagen, dass das Fach sehr interessant ist (aber bis die nötigsten Grundlagen einmal sitzen auch sehr komplex).
Karlito

Du muss die Parameter in den Methoden in der Klasse weg lassen.

Hier das Beispiel entsprechend bearbeitet:
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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
class Rechteck
{
	int laenge;
	int breite;
	
	public Rechteck (int laenge, int breite)
	{
		this.laenge = laenge;
		this.breite = breite;
	}

	//Methoden
	public void flaeche ()
	{
		int flaeche = laenge*breite; //die beiden Werte stammen nun aus den Klassenvariablen
		System.out.println("Die Flaeche betraegt " + flaeche + " cm²");
	}
	public void istQuadrat ()
	{
		if (laenge == breite)
		{
			System.out.println("Es handelt sich um ein Quadrat");
		}
		else
		{
			System.out.println("Es liegt kein Quadrat vor");
		}
	}
}


public class RechteckListe
{
	public static void main (String[]args)
	{
		Rechteck r = new Rechteck (23,5); //hier wird eine neues Objekt der Klasse Rechteck erstellt
		r.flaeche();
		r.istQuadrat();
		r = new Rechteck (20,20); //hier wird ein weiteres Objekt der Klasse Rechteck erstellt
		r.flaeche();
		r.istQuadrat();
	}
}


Gruß,

Karlito
SarahK.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
public class RechteckListe
{
	public static void main (String[]args)
	{
		Rechteck h = new Rechteck (23,5); //Übergabe?
		flaeche(laenge, breite);
		h.istQuadrat(laenge,breite);
	}
}



An der Klasse selber habe ich nichts verändert, nur in der main-Funktion.
Karlito

Dann poste doch mal bitte deinen aktuellen Quelltext.
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.