Laden...

Werte in einer ObservableCollection berechnen

Erstellt von Mert93 vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.004 Views
M
Mert93 Themenstarter:in
64 Beiträge seit 2015
vor 4 Jahren
Werte in einer ObservableCollection berechnen

Guten Abend liebe C#'ler-Gemeinde 😄

Ich stoße derzeit auf ein kleines Problem wo es mir schwer fällt einen Ansatz zu finden dieses zu lösen.
**Kernaufgabe: **
Ich versuche derweil eine Anwendung zu entwickeln welche mir die Widerstände von Schaltungen berechnet.

Mein bisheriger Ansatz
Ich speichere die Werte bisher in eine ObservableCollection<double>


        private ObservableCollection<double> schaltungenList = new ObservableCollection<double>();

        public ObservableCollection<double> SchaltungList
        {
            get { return schaltungenList; }
            set
            {
                schaltungenList = value; OnPropertyChanged();
            }
        }

        private void AddWiderstand()
        {
            if(Widerstand > 0)
            {
                SchaltungList.Add(widerstand);
            }
        }

und lasse Sie übersichtshalber dem user in eine Listbox anzeigen um später bei falscheingabe die Werte nochmal ändern zu können.

Problemstellung
Es kann nun sein, dass mehr als 2 Werte drinne enthalten sind. Wie kann ich jetzt auf den ObservacbleCollection ansprechen, dass er
Widerstandgesamt = Wert1 + Wert2.
Widerstandgesamt = Wert12 + Wert3.
Widerstandgesamt = Wert123 + Wert4 usw ?

Jemand eventuell ein Ansatz für mich wie ich an die Aufgabe heran gehen kann ?
Naher, wenn ich an die Parallelschaltung denke wie ich das Lösen soll läuft es mir schon Eiskalt den rücken runter ._.

3.003 Beiträge seit 2006
vor 4 Jahren

Bitte noch einmal deutlicher werden. Zumindest für mich ist nicht klar, was du eigentlich erreichen möchtest. Wo können mehr als zwei Werte "drinne" sein? Wieso ist Widerstandgesamt nicht die Summe der Widerstände in der Liste, sondern nur die Summe aus zwei sich offenbar ändernden (?) Werten?

Geh bitte davon aus, dass wir weder deine Aufgabenstellung noch dein konkretes Problem kennen.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

M
Mert93 Themenstarter:in
64 Beiträge seit 2015
vor 4 Jahren

Grüß dich LaTino:
Es können im ObservableCollection mehr als 2 Werte drinne enthalten sein.
Je nachdem wie viele Schaltungen der User berechnet haben will.
Wieso der Gesamtwiderstand nicht einfach nur die Summe aller Widerstände ist? Dass kannst du gerne unsere Kollegen aus der Mathematik ( Elektrotechnik ) fragen, .. Die Formel lautet aber wie folgt.
Rges = R1 +* R2 / R2 + R1
Rges = R12 * R3 / R12 + R3
RGes = R123 * R4 / R123 + R4
So wurde es uns zumindest beigebracht .
.

Und die Widerstände speichere ich in dem ObservableCollection.

Beispiel:
User gibt ein ( Widerstand 15, 8, 29, 4 ).
Nun wäre in dem ObservableCollection die Werte 15,8,29,4 gespeichert.
Diese müsste ich jetzt irgendwie verwenden um RGes auszurechnen. :c

C
132 Beiträge seit 2008
vor 4 Jahren

Also um Ehrlich zu sein mir erschließt es sich auch nicht so recht.
Zumal sich die Aufgabenstellung im Vergleich zum Initialpost geändert hat.
Wenn ichs richtig sehe sind wir jetzt bei der Parallelschaltung wo wir vorher nur bei der Reihenschaltung waren?

Wenn dein User diese Werte eingibt ist es klar das die dann auch in der Liste "gespeichert" sind.
Aber das Beispiel liefert z.B. kein Ergebnis der Kalkulation damit man mal sehen kann ob das Ergebnis am Ende erwartungsgemäß wäre.

1.029 Beiträge seit 2010
vor 4 Jahren

Hi,

grundsätzlich:

Die von dir gezeigte Formel ist für die Parallelschaltung soweit für mich als Laien ersichtlich - für Reihenschaltung wäre es soweit ich mich einlesen konnte schlicht die Summe aller Widerstände.

Ich für meinen Teil habe mir mit Hilfe folgender Seite 2 Methoden gebaut:
https://www.gut-erklaert.de/physik/parallelschaltung-wiederstaende.html
, deren Endergebnisse mit folgender Website übereinstimmen:
https://www.digikey.de/de/resources/conversion-calculators/conversion-calculator-parallel-and-series-resistor
(Die Parallelschaltung baut ja scheinbar auf der Linearschaltung auf - zumindest in der Berechnung)

(Hab deine Formel nämlich nicht verstanden)

Bei mir sähe das folgendermaßen aus:


static double Linear(IList<double> values)
        {
            return values.Sum();
        }

        static double Parallel(IList<double> values)
        {
            var lin = Linear(values);
            var x = values.Sum(v => lin/v);
            return lin/x;
        }

LG