C# :: Aufgabe #332

2 Lösungen Lösungen öffentlich

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ß


Lösungen:

vote_ok
von Luigi (990 Punkte) - 17.11.2020 um 10:00 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}
vote_ok
von JKooP (7540 Punkte) - 04.01.2021 um 17:01 Uhr
NET 5.x; C# 9.x
Quellcode ausblenden 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());