PWM Constructor Modes

#include <iostream>
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), enabled(true) {
                if (dutyCycle<0)
                    duty = 0; 
                else if (dutyCycle>100) 
                    duty = 100; 
                else duty = dutyCycle; 
            }

        void setDuty(int d) {
            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); // 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