PWM Constructor Modes

#include <iostream>
#include <algorithm>
using namespace std;

// Write your PWMController class here
class PWMController {
    private:
        int frequency;
        int duty;
        bool enabled;
    public:
        PWMController(int freq):frequency(freq),duty(0),enabled(false){}
        PWMController(int freq, int dutyCycle):frequency(freq),duty(max(0,min(100,dutyCycle))),enabled(true){}
        void setDuty(int d) {
            d = min(d, 100);
            d = max(d, 0);
            duty = d;
        }
        void disable() {enabled = false;}
        void print() {
            cout << "F="<<frequency<<" ";
            cout << "D="<<duty<< " ";
            cout<< "EN="<<enabled;
        }
};

int main() {
    int mode;
    cin >> mode;

    PWMController pwm(0); // temporary placeholder

    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;
}

Solving Approach

 

 

 

 

 

Upvote
Downvote
Loading...

Input

1 1000 50

Expected Output

F=1000 D=50 EN=0