import math class Takisti: def __init__(self, takistus, maxvoimsus): self.R=takistus self.maxN=maxvoimsus def __str__(self): return "Takisti "+str(self.R)+" oomi, "+str(self.maxN)+" vatti." def kysiR(self): return self.R def kysiMaxN(self): return self.maxN def voolVastavaltPingele(self, pinge): return pinge/self.R def voimsusVastavaltPingele(self, pinge): return pinge*self.voolVastavaltPingele(pinge) def kysiSuurimLubatudPinge(self): return self.maxN/math.sqrt(self.maxN/self.R) #Lisage k2sklus suurima lubatud voolu leidmiseks def kysiSuurimLubatudVool(self): return self.voolVastavaltPingele(self.kysiSuurimLubatudPinge()) class JadaYhendus: def __init__(self): self.hoidla=[] def lisaTakisti(self, t): self.hoidla.append(t) def __iadd__(self,t): self.lisaTakisti(t) return self def copy(self): uus = JadaYhendus() uus.hoidla = self.hoidla[:] def __add__(self,teine): if isinstance(teine,JadaYhendus): uus = JadaYhendus() uus.hoidla = self.hoidla + teine.hoidla elif isinstance(teine,Takisti): uus = self.copy() uus += takisti return uus # __mul__ __div__ __pow__ __and__ ... def __str__(self): vastus="JadaYhendus, mille liikmeteks on:\n" for t in self.hoidla: vastus+=str(t)+"\n" return vastus #Lisage k2sklus jadayhenduse kogutakistuse arvutamiseks def koguTakistus(self): kokku=0 for t in self.hoidla: kokku+=t.kysiR() return kokku #Looge k2sklus pingele vastava voolu leidmiseks def pingeleVastavVool(self, pinge): return pinge/self.koguTakistus() #Lisage k2sklus suurima lubatud voolu leidmiseks #mis sobib kõigile komponentidele def suurimLubatudVool(self): if(len(self.hoidla)==0): return 16 vool=self.hoidla[0].kysiSuurimLubatudVool() nr=1 while(nr