#include "stdafx.h" struct turbina { float Moc; float Procent; }; class elektrownia { turbina Turbina[4]; float MocZadana; public //konstruktor :elektrownia(float Moc1, float Moc2, float Moc3, float Moc4); //wartosci do odczytywania float MocMax(void); float MocAktualna(); float MocAktualnaTurbiny(char Nr); //wartosci do ustawiania void UstawMocDlaTurbiny(char Nr, float Procent); void UstawMocCalkowita(float Moc); }; //inicjalizuje clase i ustawia moce turbin elektrownia::elektrownia(float Moc1, float Moc2, float Moc3, float Moc4) { char i = 4; while (i--) Turbina[i].Procent = 0; Turbina[0].Moc = Moc1; Turbina[1].Moc = Moc2; Turbina[2].Moc = Moc3; Turbina[3].Moc = Moc4; MocZadana = 0; }; //zwraca max moc elektrowni float elektrownia::MocMax(void) { float Suma = 0; char i = 4; while (i--) Suma += Turbina[i].Moc; return Suma; } //zwraca aktualna moc elektrowni float elektrownia::MocAktualna() { float Suma = 0; char i = 4; while (i--) Suma += Turbina[i].Moc * Turbina[i].Procent; return Suma; } float elektrownia::MocAktualnaTurbiny (char Nr) { return Turbina[Nr].Moc * Turbina[Nr].Procent; } //steruje jedna turbina void elektrownia::UstawMocDlaTurbiny(char Nr, float Procent) { Turbina[Nr].Procent = Procent; } //steruja wszystkimi turbinami void elektrownia::UstawMocCalkowita(float Moc) { char i = 0; while (i < 4) { if (Moc >= Turbina[i].Moc) { Turbina[i].Procent = 100; Moc -= Turbina[i].Moc; } else { Turbina[i].Procent = Moc * 100 / Turbina[i].Moc; return; } i++; } } int _tmain(int argc, _TCHAR* argv[]) { elektrownia Elektrownia(10, 20, 30, 40); Elektrownia.UstawMocCalkowita(50); return 0; }