#include <iostream>
class PWMDriver {
private:
// TODO: This member is exposed. Encapsulate it.
// TODO: Ensure valid range [0, 100].
int ccr_reg;
public:
PWMDriver() : ccr_reg(0) {}
void setCCR(int creg){
if(creg>=0 && creg<=100){
ccr_reg = creg;
}
else{
creg = (creg>100)?ccr_reg=100:creg;
creg = (creg<0)?ccr_reg=0:creg;
}
}
int get() const{
return ccr_reg;
}
// TODO: Add getter if necessary for printing
};
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.setCCR(val);
// Output current state
std::cout << "CCR: " << driver.get() << std::endl;
}
return 0;
}
Input
3 50 150 -20
Expected Output
CCR: 50 CCR: 100 CCR: 0