Feladat:
""" Soros kapcsolás esetén az ellenállások egymás után vannak kötve, így az eredő ellenállás az egyes ellenállások összege: R_eredő = R1 + R2 + R3 + ... + Rn. A programnak: 1. Be kell kérnie az ellenállások értékeit egy while ciklussal. 2. Tárolnia kell őket egy listában. 3. Ki kell számítania az eredő ellenállást. 4. Létre kell hoznia egy kapcsolási rajzot. 5. Ki kell írnia az eredményeket. A program felépítése 1. Ellenállások bekérése • Egy üres listát hozunk létre az ellenállások tárolására: lista = []. • While ciklust használunk, amely addig fut, amíg a felhasználó meg nem szakítja. • A felhasználó az input() függvénnyel adja meg az értékeket, és ha üres sort (csak Enter) ad meg, a ciklus kilép. • Az input() stringet ad vissza, ezért a bekért értéket float-tá alakítjuk. • Ellenőrizzük, hogy az érték nem negatív (mivel az ellenállás fizikailag nem lehet negatív), és ha nem megfelelő, hibaüzenetet adunk. 2. Eredő ellenállás kiszámítása • Ha a lista üres (nem adtak meg ellenállást), az eredő ellenállás 0 ohm, mivel ez egy ideális vezetéknek felel meg. • Ha van legalább egy ellenállás, az eredőt a sum(lista) függvénnyel számítjuk ki. 3. Kapcsolási rajz készítése • A rajz egy egyszerű szöveges ábrázolás lesz, például: ---[R1=10]---[R2=20]---. • Ha a lista üres, a rajz csak egy vezeték: ---. • Ha vannak ellenállások, a lista elemeit enumerate()-val sorszámozzuk (R1, R2 stb.), és az értékeket beillesztjük a rajzba. 4. Eredmények kiírása • Kiírjuk a kapcsolási rajzot és az eredő ellenállást ohmban. """
A python program forrása:
# Üres lista az ellenállások tárolására
lista = []
# Ellenállások bekérése while ciklussal
while True:
ertek = input("Adja meg az ellenállás értékét ohm-ban, (enter a befejezéshez): ")
if ertek == "":
break
print("Az ellenállások értékeinek bekérése befejeződött.")
try:
r = float(ertek)
if r < 0:
print("Az ellenállás nem lehet negatív.")
else:
lista.append(r)
print(f"{r} ohm")
except ValueError:
print("Érvénytelen érték, próbálja újra.")
# Eredő ellenállás és rajz kiszámítása
if len(lista) == 0:
rajz = "---"
eredo = 0
else:
rajz = "---"
for i, r in enumerate(lista):
rajz += "[R" + str(i+1) + "=" + str(r) + "]---"
eredo = sum(lista)
# Eredmények kiírása
print()
print(f"A megadott ellenállások értékei: {rajz}")
#print(rajz)
print("Az eredő ellenállás:", eredo, "ohm")