C/C++

Нужно написать код на с++

Вычислить и вывести на экран в виде таблицы значения функции, заданной
графически , на интервале от хнач до хкон с шагом dx. Интервал и шаг вводить
с клавиатуры. Таблицу снабдить заголовком и шапкой
#include <iostream>
#include <cmath>

using namespace std;

// будем считать, что за пределами графика, значени равно нулю
double y(double x)
{
double Y;
if(x >= -9.0 && x <= -6.0)
{
// (x - a)^2 + (y - b)^2 = R^2
// (y - b)^2 = R^2 - (x - a)^2
// y - b = √(R^2 - (x - a)^2)
// y = b + √(R^2 - (x - a)^2)
// нижнее значение окружности будет со знаком минус
Y = -1.0*(0.0 + sqrt(3.0*3.0 - (x - (-6.0))*(x - (-6.0))));
}
else if(x > -6.0 && x <= -3.0)
{
Y = x + 3.0;
}
else if(x > -3.0 && x <= 0.0)
{
Y = 0.0 + sqrt(3.0*3.0 - x*x);
}
else if(x > 0.0 && x < 3.0)
{
Y = -x + 3.0;
}
else if(x >= 3.0 && x <= 5.0)
{
Y = -1.5*x + 7.5;
}
else if(x > 5.0 && x <= 9.0)
{
Y = 0.75*x - 3.75;
}
else
{
Y = 0.0; // выход за пределы диапазона графика
}
return Y;
}

int main()
{
double begin,end,step;
do
{
cout << "Ведите начальное значение для x: ";
cin >> begin;
}while(begin < -9.0 || begin > 9.0);
do
{
cout << "Введите конечное значение для x: ";
cin >> end;
} while(end < begin || end > 9.0);
do
{
cout << "Введите размер шага для цикла: ";
cin >> step;
} while(step > end - begin);
cout << endl << '\t';
cout << "Таблица значений функций." << endl;
cout << 'x' << '\t' << 'y' << endl;
for(int x = begin; x <= end; x += step)
{
cout << x << '\t';
cout << y(x) << endl;
}
return 0;
}
СК
Сергей Костюшин
68 777
Лучший ответ
Сергей Костюшин по правде говоря, нужно было так записать
Y = 0.0 + -1.0*(sqrt(3.0*3.0 - (x - (-6.0))*(x - (-6.0))));
это вытекает от извлечения значения из под корня.
Но в данной задачи это на результат не повлияло