54. Sensor Clamp Function Template

#include <iostream>
using namespace std;

template<typename T>
T clampValue(T val, T minVal, T maxVal) {
    if (val < minVal) return minVal;
    if (val > maxVal) return maxVal;
    return val;
}

int main() {
    int minVal, maxVal, val;
    cin >> minVal >> maxVal;
    cin >> val;

    cout << "Clamped Value: " << clampValue(val, minVal, maxVal) << "\n";
    return 0;
}

 

Solution Explanation

  • clampValue<T> works for integers, floats, or other comparable types.
  • Input is taken as minVal maxVal, then the value to be clamped.
  • The function ensures the value is always between min and max.

 

Layman’s Terms

Think of it like setting safety rails: if a reading goes below the minimum, lift it up; if it goes above the maximum, push it down.

 

Significance for Embedded Developers

Clamping is essential when:

  • Limiting PWM duty cycle between 0% and 100%.
  • Keeping ADC values within sensor ranges.
  • Avoiding overflow/underflow when scaling sensor data.

 

Loading...

Input

0 10 5

Expected Output

Clamped Value: 5