C# :: Aufgabe #332
2 Lösungen

Berechnung von Widerständen
Anfänger - C#
von JKooP
- 04.10.2020 um 10:58 Uhr
Schreibe eine Methode bzw. Funktion, mit der man den Gesamtwiderstand von Parallel- bzw. Reihenschaltungen berechnen kann.
Dabei sollen sowohl die Werte der Einzelwiderstände als auch die Art der Schaltung vom Benutzer erfragt werden.
Variante 1: 2 separate Funktionen: f(float a, float b, … float n)
Variante 2: 1 kombinierte Funktion: f(artDerSchaltung, float a, float b, … float n)
Viel Spaß
Dabei sollen sowohl die Werte der Einzelwiderstände als auch die Art der Schaltung vom Benutzer erfragt werden.
Variante 1: 2 separate Funktionen: f(float a, float b, … float n)
Variante 2: 1 kombinierte Funktion: f(artDerSchaltung, float a, float b, … float n)
Viel Spaß
Lösungen:

using System; namespace _332_Berechnung_von_Widerstaenden { class Program { static void Main(string[] args) { int i = 0; double summe = 0; Console.WriteLine("Welche Widerstandsschaltung soll berechnet werden (Reihe oder Parallel)?"); string strSchaltung = Console.ReadLine(); if (strSchaltung == "Reihe") { summe = 0; Console.WriteLine("Es wird eine Reihenschaltung berechnet!"); Console.WriteLine("Wieviel Widerstände hat Deine Reihenschaltung?"); string strReihe = Console.ReadLine(); double intReihe = Convert.ToDouble(strReihe); for (i = 1; i <= intReihe; i++) { Console.WriteLine("Widerstandswert {0} in Ohm", i); string strR = Console.ReadLine(); double intR = Convert.ToDouble(strR); summe = summe + intR; Console.WriteLine("Durchlauf {0}: {1} Ohm", i, summe); } Console.WriteLine("Summe der Reihenschaltung = {0} Ohm", summe); } else if (strSchaltung == "Parallel") { summe = 0; Console.WriteLine("Es wird eine Parallelschaltung berechnet"); Console.WriteLine("Wieviel Widerstände hat Deine Parallelschaltung?"); string strParallel = Console.ReadLine(); double intParallel = Convert.ToDouble(strParallel); for (i = 1; i <= intParallel; i++) { Console.WriteLine("Widerstandswert {0} in Ohm", i); string strP = Console.ReadLine(); double intP = Convert.ToDouble(strP); if (i > 1) { summe = 1 / (1 / summe + 1 / intP); } else { summe = 1 / (1 / intP); } Console.WriteLine("Durchlauf {0}: {1} Ohm", i, summe); } Console.WriteLine("Summe der Parallelschaltung = {0} Ohm", summe); } else { Console.WriteLine("Schreibweise überprüfen!"); } Console.ReadKey(); } } }
NET 5.x; C# 9.x
C#-Code

using System; using System.Linq; var (parallel, serial) = GetResSum(100, 100, 100); Console.WriteLine($"Parallel: {parallel:F1} Ohm\tSeriell: {serial:F1} Ohm"); static (double parallel, double serial) GetResSum(params double[] resValues) => (resValues.Sum(), 1 / resValues.Select(w => 1 / w).Sum());