#include <iostream>
#include <cmath>
using namespace std;
double a(const double x) {
return tan(x) + 3.0;
}
double b(const double x) {
return pow(cos(x), 2) + 1.0;
}
double c(const double x) {
return sin(2.0 * x) + 5.0;
}
double f(const double x) {
if (x < 0.0) return a(x);
if (x > 1.0) return c(x);
return b(x);
}
double parse(const char* prompt) {
cout << prompt;
double value;
cin >> value;
cin.ignore(0x1000, '\n');
return value;
}
void setoutput(const streamsize prec = 15) {
cout.setf(ios::fixed);
cout.precision(prec);
}
void output(const char* prompt, const double value) {
cout << prompt << value << '\n';
}
int main() {
const auto x = parse("x: ");
const auto y = f(x);
setoutput();
output("y: ", y);
}