Вывести в виде таблицы значения функции, заданной графически

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

К чему тут шах dx ?


yuriybolotin99, производные?


****** y(****** x)
{
   if(x<-5) return -x-8;
   if(x<-3) return 1.5*x+4.5;
   if(x<3) return sqrt(9-x*x);
   if(x<8) return 0.6*x-1.8;
   return -1.5*x+15; 
}
void main(int argc,char **argv)
{
    setlocale(LC_ALL,"Rus");
    ****** a=-9,b=11;
    cout<<"Xнач Xкон: ";
    cin>>a>>b;
    ****** dx=1;
    cout<<"dX: ";
    cin>>dx;
    int n=(int)((b-a)/dx)+1;
    cout<<"\n  X        Y\n";
    cout<<"--------------\n";
    ****** x=a;
    for(int i=0; i<n; i++, x+=dx)
        printf("%6.2lf%7.2lf\n",x,y(x));


Biger18, dmz222, считаю что функция определена только на отрезке [-8;10] (Biger18 Вы насколько я вижу берёте все числа) + обработал особенности вычисления правой границы и вывода на печать вещественных чисел. мой вариант:
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    ****** xstart, xend, dx, y, eps=0.0000000001;
    cout << "xstart="; cin >>xstart;
    cout << "xend="; cin >>xend;
    cout << "dx="; cin >>dx;
    cout <<"TABLE1:\nx     y\n";
    for (****** x=xstart; x<xend+eps; x+=dx)
    {    
    if ((x>-8-eps&&x<-8+eps)||(x>-3-eps&&x<-3+eps)||(x>3-eps&&x<=3+eps)||(x>10-eps&&x<10+eps)) y=0.0;
    else if (x>=-8+eps&&x<=-5) y=-x-8;
    else if (x>-5&&x<=-3-eps) y=3/2.*x+9/2.;
    else if ((x>=-3+eps&&x<=-eps)||(x>=eps&&x<=3-eps)) y=sqrt(9-x*x);    
    else if (x>=3+eps&&x<=8) y=3/5.*x-9/5.;
    else if (x>8&&x<=10-eps) y=-3/2.*x+15;
    if (x>-eps&&x<eps)
    cout <<0.0<<"  "<<3.0<<"\n";
    else cout <<x<<"  "<<y<<"\n";
    }
system("pause");
return 0;
}