Python :: Aufgabe #293
3 Lösungen
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ß
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:
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))
# -*- 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())
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!")
