Schaltkreis 3.)

Raynien

Mitglied
Aufgabe für den Gesamtüberblick:
1. Definieren Sie eine abstrakte Basisklasse Net für Widerstandsnetze mit einem Datenelement
resistors vom Typ java.util.TreeSet, das die eindeutigen Namen (ID) aller
im Netz vorkommenden Widerstände als Strings enthält.
Ferner gibt es
(a) eine abstrakte Methode ohm() mit Rückgabetyp double, das den Gesamtwiderstand
des Netzes zurückgibt;
(b) eine implementierte Methode show(), die die Menge resistors mit einer foreach-
Schleife durchläuft und alle IDs der Widerstände im Netz als String zurückgibt.
2. Leiten Sie eine Klasse Resistor für einfache Widerstände ab. Der Widerstandswert
vom Typ double wird in einem Datenelement gespeichert und ist unveränderlich.
Die Klasse enthält einen Konstruktor mit einem double-Parameter und einem String-
Parameter für den Widerstandswert bzw. für die ID. Beide Datenelemente werden initialisiert.
3. Leiten Sie von Net außerdem zwei Klassen Serial für serielle und Parallel für parallele
Schaltungen von Netzen ab. Die Konstruktoren dieser Klassen erwarten je zwei
Widerstandsnetze als Argumente und speichern diese als Werte von Datenelementen.
Bei der Initialisierung des Datenelemets resistors wird geprüft, ob die IDs aller Widerst
ände aus beiden zusammenzuschaltenden Netzwerken konfl
iktfrei in die Menge
überfuhrt werden Können, so dass die Menge genau so viele Strings enthält, wie Widerst
ände im Netz vorhanden sind.
Sollte diese Prüfung ergeben, dass eine ID doppelt vorkommt und deshalb bei der Mengenbildung
verloren gehen wurde, dann wird eine IDNotUniqueException ausgelost.
Diesen Exception-Typ müssen Sie selbst als Unterklasse von RuntimeException geeignet
definieren. Behandeln Sie diesen Laufzeitfehler an allen Stellen in Ihren Anwendungen,
an denen er ausgelöst werden konnte.
4. Schreiben Sie eine Anwendung, die folgendes Netzwerk aufbaut und den Gesamtwiderstand
sowie die Menge der IDs auf die Konsole ausgibt. Nutzen Sie, wenn immer es
möglich ist, die Methoden Ihrer Klassen! Die Widerstände R1 bis R6 haben dabei die
Werte 100, 200, 300, 400, 500 bzw. 600 Ohm.

Frage:
Ich weiß das ist ne ganze Menge, aber kann mir vieleiecht jemand erklären, wie die Klassen serial und parallel implementiert sind, da ich einfach nicht darauf komme wie die Werte in den Klassen verwaltet werden?
 

Neumi5694

Top Contributor
Deine Widerstandsnetze (gespeichert in den durch den Konstruktor übergebenen Variablen) liefern jeweils einen Gesamtwiderstand.
Der Rückgabewert der Serial-Klasse ist die Summer des Widerstands der Teilnetze.
Sofern ich mich richtig an meine Schulzeit erinnere, ist der Rückgabewert der Parallel-Klasse 1/ (1/R1 + 1/R2), wobei R1 und R2 der Widerstand des jeweiligen Teilnetzes ist.
 

Raynien

Mitglied
Deine Widerstandsneze (gespeichert in den durch den Konstruktor übergebenen Variablen) liefern jeweils einen Gesamtwiderstand.
Der Rückgabewert der Serial-Klasse ist die Summer des Widerstands der Teilnetze.
Sofern ich mich richtig an meine Schulzeit erinnere, ist der Rückgabewert der Parallel-Klasse 1/ (1/R1 + 1/R2), wobei R1 und R2 der Widerstand des jeweiligen Teilnetzes ist.
Ok vielen Dank und wie kann ich aus den übergebenen Netzen die Widerstände auslesen?
 

Neumi5694

Top Contributor
Über die gemeinsame abstrakte Methode, das ist Sinn und Zweck der Übung. Eine gemeinsame Methode für alle Netz-Typen.
Die Bezeichnungen hab ich einfach mal frei gewählt.

Java:
abstract class Net {
    public abstract double getResistance();
}
public SingleResistor extends Net {
    //TODO: Konstruktoren usw.
    double resistance = 14;
    @Override
    public double getResistance() {
         return resistance;
    }
}
public SerialNet extends Net {
    //TODO: Konstruktoren usw.
    private Net n1;
    private Net n2;
    @Override
    public double getResistance() {
         return n1.getResistance() + n2.getResistance();
    }
}
//TODO: Umsetzung der Parallel-Klasse
 

Neue Themen


Oben