kolejne odwołania się do funkcji bez wprowadzania początkowych wartości.

0

Witam, mam pewien problem, tu są 2 funkcję:

double wybor()
{
string warunek;
int y;
int n;
cout << "Jaki wzor funkcji chcesz wybrac??" << endl;
cout << "1.Wielomian" << endl
cin >> y;

switch( y )
{
case 1:
    do
    {
        cout << "Podaj stopien wielomianu: " << endl;
        cin >> n;
        double * tab = new double[ n ];
        for( int i = n; i >= 0; i-- )
        {
            if( i > 1 )
            {
                cout << "Podaj wyraz przy x^" << i << ": ";
                cin >> tab[ i ];
            }
            if( i == 1 )
            {
                cout << "Podaj wyraz przy x: ";
                cin >> tab[ 1 ];
            }
            if( i == 0 )
            {
                cout << "Podaj wyraz wolny: ";
                cin >> tab[ 0 ];
            }
        }
       
        cout << "twoja funkcja to: ";
        for( int i = n; i > 1; i-- )
        {
            cout << tab[ i ] << "x^" << i << " + ";
        }
        cout << tab[ 1 ] << "x + " << tab[ 0 ] << endl;
        cout << "Potwierdzasz ?? tak/nie" << endl;
        cin >> warunek;
    } while( warunek == "nie" );
   
}

}
double CalkaProstokaty( double * wska, double * wskb, int * wskn )
{
double a = * wska;
double b = * wskb;
int n = * wskn;

double dx =( b - a ) / n;
double S = 0;
for( double i = 1; i <= n; i++ )
{
    S = S + wybyor( a +( i / n ) *( b - a ) );
}
return S * dx;

}

Jak zrobić, żeby za pierwszym wywołaniem, wywołała się cała funkcja wybor(), a następnie tylko wartości tablicy ??

0

Zacznij od podzielenia tego na sensowne funkcje, bo póki co masz tutaj jeden, wielki dom publiczny.

0

Oto chodzi ?? Co dalej ?? muszę jakoś rozłożyć tą pętle for, żeby na początku było wyświetlane "Podaj wyraz przy x^..." a potem żeby od razu z tablicy sobie wyciągał.

 
double wielomian()
{
    cout <<"Podaj stopien wielomianu: ";
    cin>>n;
    double *tab=new double[n];

    for(double i=n;i>=0;i--)
    {
        if(i>1)
        {
            cout << "Podaj wyraz przy x^"<<i<<": ";
            cin>>tab[i];
        }

        if(i==1)
        {
            cout << "Podaj wyraz przy x: ";
            cin>>tab[1];
        }
        if(i==0)
        {
            cout << "Podaj wyraz wolny: ";
            cin >>tab[0];
        }
    }

double* wybor()
{
        int y;
        cout <<"Jaki wzor funkcji chcesz wybrac??"<<endl;
        cout <<"1.Wielomian"<<endl
             <<"2.Funkcja trygonometryczna"<<endl
             <<"3.Funkcja ...."<<endl;
        cin>>y;

        switch(y)
        {
        case 1:
            wielomian();
        break;
        }

}
0

Zrobiłem tak:
Co o tym myślisz?

double wielomian(double x,int a=0)
{
    int n;
    double zwroc;
    double *tab=new double[n];
    if(a==1)
    {
        cout <<"Podaj stopien wielomianu: ";
        cin>>n;
        double zwroc;
        for(int i=n;i>=0;i--)
        {
            if(i>1)
            {
                cout << "Podaj wyraz przy x^"<<i<<": ";
                cin>>tab[i];
            }

            if(i==1)
            {
                cout << "Podaj wyraz przy x: ";
                cin>>tab[1];
            }
            if(i==0)
            {
                cout << "Podaj wyraz wolny: ";
                cin >>tab[0];
            }
        }
    }else
    {
        for(int i=n;i>=0;i--)
        {
            if(i>1)
            {
                zwroc=zwroc+tab[i]*pow(x,i);
            }

            if(i==1)
            {
                zwroc=zwroc+tab[1]*x;
            }
            if(i==0)
            {
                zwroc=zwroc+tab[0];
            }
            return zwroc;
        }
    }
} 

1 użytkowników online, w tym zalogowanych: 0, gości: 1