#include <iostream> class PWMDriver { int ccr_reg; public: // TODO: This member is exposed. Encapsulate it. // TODO: Ensure valid range [0, 100]. PWMDriver() : ccr_reg(0) {} void set_ccr(int val){ if(val > 100){ ccr_reg = 100; } else if(val < 0){ ccr_reg = 0; } else{ ccr_reg = val; } } // TODO: Add getter if necessary for printing int get_ccr(){ return ccr_reg; } }; int main() { int N; if (!(std::cin >> N)) return 0; PWMDriver driver; for (int i = 0; i < N; ++i) { int val; std::cin >> val; // TODO: Refactor this access to use a safe setter method driver.set_ccr(val); // Output current state std::cout << "CCR: " << driver.get_ccr() << std::endl; } return 0; }
Test Cases
Test Results
Input
3 50 150 -20
Expected Output
CCR: 50 CCR: 100 CCR: 0