Python :: Aufgabe #293

3 Lösungen Lösungen öffentlich

Berechnung von Widerständen

Anfänger - Python 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 Gisbert5020 (3120 Punkte) - 16.10.2020 um 17:34 Uhr
Quellcode ausblenden Python-Code
import sys

def berechnung(art, widerstaende):
    print(widerstaende)
    summe = 0
    if art  == "s":
        for w in widerstaende:
            summe += w
        print("Der Gesamtwiderstand in Serienschaltung ist: ",summe, "Ohm")
    if art == "p":
        for w in widerstaende:
            summe += 1/w
        print("Der Gesamtwiderstand in Paralleschaltung ist: ",int(1/summe), "Ohm")

widerstaende=[]
print("Widestandsberechnung:")
print("---------------------")
print("Wenn Sie fertig sind geben Sie s für Serien- und p für Parallelschaltung ein.")
print()
while 1:
   widerstand = input("Geben Sie einen Widerstanswert ein:")
   if widerstand == "s" or widerstand == "p":
       berechnung(widerstand, widerstaende)
       break
   widerstaende.append(int(widerstand))
vote_ok
von AlexGroeg (590 Punkte) - 27.10.2020 um 19:28 Uhr
Quellcode ausblenden Python-Code

# -*- coding: utf-8 -*-
# Python 3.8.5 

def parallel(a):
    ''' Parallele Wiederstandsberechnung: 
        R = 1 / (1/R1 + 1/R2 + 1/R3 + ...) usw. Anzahl beliebig 
    '''
    p = 0
    for i in range(0, a):
        p = p + 1/w[i]
    return 1/p

def seriell():
    ''' Serielle Wiederstandsberechnung:
        R = R1 + R2 + ... usw. Anzahl beliebig 
    '''
    return sum(w)

w = []  # Wiederstandsliste

# Abfrage starten
a = int(input('Anzahl der einzelnen Widerstände? : '))


for i in range(0, a):
    w.append(float(input('Wiederstandswert [{}] : '.format(i+1))))

# Berechnung / Ausgabe
print('\nGesamtwiederstand parallel =', parallel(a))
print('Gesamtwiederstand seriell =', seriell())
    

vote_ok
von Willi (210 Punkte) - 02.11.2020 um 13:56 Uhr
Quellcode ausblenden Python-Code
print("Geben sie vier verschiedene Widerstandswerte in Ohm ein.")
R1 = float(input())
R2 = float(input())
R3 = float(input())
R4 = float(input())

print( "R1=", R1, "Ohm",
       "R2=", R2, "Ohm",
       "R3=", R3, "Ohm",
       "R4=", R4, "Ohm",)

print("Handelt es sich um eine Reihenschaltung oder Parallel"
      "schaltung? Geben sie entsprechend eine 1 oder eine 2 ein")

Zahl=int(input())

if Zahl ==1:
    Rr = R1+R2+R3+R4
    print("Der Reihenwiderstand der vier Widerstände lautet:",Rr, "Ohm")
elif Zahl ==2:
    Rp = 1/R1+1/R2+1/R3+1/R4
    print ("Der Parallelwiderstand der vier Widerstände lautet:",1/Rp,"Ohm")
else:
    print ("Falsche Eingabe!")