myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Werte in einer ObservableCollection berechnen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Werte in einer ObservableCollection berechnen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Mert93 Mert93 ist männlich
myCSharp.de-Mitglied

Dabei seit: 25.10.2015
Beiträge: 63
Entwicklungsumgebung: Windows
Herkunft: Türkei


Mert93 ist offline

Werte in einer ObservableCollection berechnen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Guten Abend liebe C#'ler-Gemeinde :D

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>

C#-Code:
        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 ._.
04.11.2019 01:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
LaTino LaTino ist männlich
myCSharp.de-Poweruser/ Experte

avatar-4122.png


Dabei seit: 03.04.2006
Beiträge: 2.999
Entwicklungsumgebung: Rider / VS2019 / VS Code
Herkunft: Thüringen


LaTino ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LaTino am 04.11.2019 07:58.

04.11.2019 07:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Mert93 Mert93 ist männlich
myCSharp.de-Mitglied

Dabei seit: 25.10.2015
Beiträge: 63
Entwicklungsumgebung: Windows
Herkunft: Türkei

Themenstarter Thema begonnen von Mert93

Mert93 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
04.11.2019 08:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Chronos Chronos ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.03.2008
Beiträge: 131
Entwicklungsumgebung: VS 2019 CE
Herkunft: NRW


Chronos ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
04.11.2019 11:23 Beiträge des Benutzers | zu Buddylist hinzufügen
Taipi88 Taipi88 ist männlich
myCSharp.de-Mitglied

avatar-3220.jpg


Dabei seit: 02.02.2010
Beiträge: 1.016
Entwicklungsumgebung: VS 2010
Herkunft: Mainz


Taipi88 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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/paral...derstaende.html
, deren Endergebnisse mit folgender Website übereinstimmen:
 https://www.digikey.de/de/resources/conv...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:

C#-Code:
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
04.11.2019 11:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 10 Monate.
Der letzte Beitrag ist älter als 10 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 23.09.2020 17:52