#include #include using namespace std; class TakistusKomponent{ double pinge; public: virtual double kysiTakistus()=0; virtual void pingesta(double uusPinge){pinge=uusPinge;} double kysiPinge(){return pinge;} double kysiVool(){return pinge/kysiTakistus();} double kysiV6imsus(){return pinge*kysiVool();} }; class Takisti : public TakistusKomponent{ double takistus; double maxVoimsus; public: Takisti(double t, double v){ takistus=t; maxVoimsus=v; } virtual double kysiTakistus(){return takistus;} double kysiMaxVoimsus(){return maxVoimsus;} double voolVastavaltPingele(double pinge){return pinge/takistus;} }; class JadaYhendus :public TakistusKomponent{ vector takistid; public: void lisaTakistusKomponent(TakistusKomponent *t){ takistid.push_back(t); } virtual double kysiTakistus(){ double summa=0; for(int i=0; ikysiTakistus(); } return summa; } void pingesta(double uusPinge){ TakistusKomponent::pingesta(uusPinge); double vool=this->kysiVool(); for(int i=0; ipingesta(vool*takistid[i]->kysiTakistus()); } } }; //Lisage klass rööpühenduse tarbeks sarnaselt JadaYhendusega class R88pYhendus :public TakistusKomponent{ vector takistid; public: void lisaTakistusKomponent(TakistusKomponent *t){ takistid.push_back(t); } virtual double kysiTakistus(){ double summa=0; for(int i=0; ikysiTakistus(); } return 1/summa; } void pingesta(double uusPinge){ TakistusKomponent::pingesta(uusPinge); for(int i=0; ipingesta(uusPinge); } } }; int main(void){ Takisti *lamp=new Takisti(484, 100); Takisti *pesumasin=new Takisti(24, 2000); R88pYhendus *suvila=new R88pYhendus(); suvila->lisaTakistusKomponent(lamp); suvila->lisaTakistusKomponent(pesumasin); JadaYhendus *j=new JadaYhendus(); Takisti *juhtmeTakistus=new Takisti(5, 5000); j->lisaTakistusKomponent(juhtmeTakistus); j->lisaTakistusKomponent(suvila); cout << j->kysiTakistus() << endl; j->pingesta(220); cout << "suvila " << suvila->kysiPinge() << "V" << endl; cout << "lamp " << lamp->kysiPinge() << "V" << endl; cout << "pesumasin " << pesumasin->kysiPinge() << "V" << endl; cout << "juhtmestik " << juhtmeTakistus->kysiPinge() << "V" << endl; //Pange tööle //Trükkige välja ja voolud ja võimsused juhtme, pesumasina ja lambi juures return 0; }