#include <iostream>
using namespace std;
class PWMController {
private:
int frequency;
int duty;
bool enabled;
public:
// Basic initialization constructor
PWMController(int freq)
: frequency(freq), duty(0), enabled(false) {}
// Full initialization constructor
PWMController(int freq, int dutyCycle)
: frequency(freq), enabled(true)
{
if (dutyCycle < 0)
duty = 0;
else if (dutyCycle > 100)
duty = 100;
else
duty = dutyCycle;
}
void setDuty(int d) {
if (d < 0)
duty = 0;
else if (d > 100)
duty = 100;
else
duty = d;
}
void disable() {
enabled = false;
}
void print() {
cout << "F=" << frequency
<< " D=" << duty
<< " EN=" << (enabled ? 1 : 0);
}
};
int main() {
int mode;
cin >> mode;
PWMController pwm(0);
if (mode == 1) {
int f;
cin >> f;
pwm = PWMController(f);
}
else {
int f, d;
cin >> f >> d;
pwm = PWMController(f, d);
}
int x;
cin >> x;
if (x == -1)
pwm.disable();
else
pwm.setDuty(x);
pwm.print();
return 0;
}
Explanation & Logic Summary
Firmware Relevance & Real-World Context
Input
1 1000 50
Expected Output
F=1000 D=50 EN=0