PWM Constructor Modes

#include <iostream>
using namespace std;

// Write your PWMController class here
class PWMController{
    private:
    int frequency ;
    int duty;
    bool enabled;
    static int clampDuty(int v) {
        if (v < 0) return 0;
        if (v > 100) return 100;
        return v;
    }
    public:
    PWMController(int freq)
    {
        frequency = freq;
        duty =0;
        enabled =  false;

    }

        PWMController(int freq, int dutyCycle)
        : frequency(freq), duty(clampDuty(dutyCycle)), enabled(true) {}

    void setDuty(int d)
    {
        if(d >100)
        {
           d = 100;
        }else if(d<0)
        {
            d = 0;
        }
        duty = d;
    }

    void disable();
    void print();
};

void PWMController::disable()
{
    enabled = false;
}


void PWMController::print()
{
    cout<<"F="<<frequency<<" "<<"D="<<duty<<" "<<"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