Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для XEN_STRANGER

Старожил


Сообщения: 158
Благодарности: 4

Профиль | Отправить PM | Цитировать


Admiral, crashtuak, Всё вобщем я прогу написал, только при компиляции кода:
Отрывок кода:

Код: Выделить весь код
//----------Кубические уравнения-----------------------------------------------------------------------

int x3yravn ()
{
    cout << "-----NEXT-------------------------------------------------------" << endl;
    double a, b, c, x;
    double error;

    cout << "Ввод уравнения: " << endl;
    cout << endl << "(a=) ";
    cin >> a;
    cout << "(b=) ";
    cin >> b;
    cout << "(c=) ";
    cin >> c;

error = GetX3yravn (x, a, b, c);

    if (!error)
	{
		backer ();
	}

    else
	{
		cout << endl << "Ошибка! а=0 или b=0, уравнение не кубическое" << endl;
	}
	char response;
	cin >> response;
	return 0;
}


// Функция нахождения корней кубического уравнения

double GetX3yravn (double *x,double a,double b,double c)
{
    double value = 0;
    if ((a == 0) || (b == 0))
	value = 1;
    else
    {
        double q, r, q3, r2;
        value = 0;
        q=(a*a-3.*b)/9.; 
        r=(a*(2.*a*a-9.*b)+27.*c)/54.;
        r2=r*r; 
        q3=q*q*q;
        if(r2<q3) 
        { 
	    double t=acos(r/sqrt(q3));
	    a/=3.; 
	    q=-2.*sqrt(q);
                    x[0]=q*cos(t/3.)-a; 
	    x[1]=q*cos((t+M_2PI)/3.)-a;
	    x[2]=q*cos((t-M_2PI)/3.)-a; 
                   cout << "=====РЕЗУЛЬТАТ==================================================";
	    cout << endl << "Найдено три корня, x1 = " << x[0] << ", x2 = " << x[1] << ", x3 = " << x[2] << endl;
                   cout << "================================================================" << endl;
       }
       else
       {
		    double aa,bb;
		    if(r<=0.) r=-r; 
		    aa=-pow(r+sqrt(r2-q3),1./3.);  
		    if(aa!=0.) bb=q/aa; 
		    else bb=0.; 
		    a/=3.; q=aa+bb; r=aa-bb; 
		    x[0]=q-a; 
		    x[1]=(-0.5)*q-a;
	     	    x[2]=(sqrt(3.)*0.5)*fabs(r);
              if(x[2]==0.)
              {
                cout << "=====РЕЗУЛЬТАТ==================================================";
                cout << "Найдено два корня, x2 = " << x[1] << ", x3 = " << x[2] << endl;
                cout << "================================================================" << endl;
              }
		
	    	cout << "=====РЕЗУЛЬТАТ==================================================";
		cout << "Найден один корень, x = " << x[0] << endl;
                                cout << "================================================================" << endl;
         }
                value = 0; 
     }
    return value; 
}

//-------END-------------------------------------------------------------------------------------
Появляется ошибка: error C2664: 'GetX3yravn' : cannot convert parameter 1 from 'double' to 'double *'
There is no context in which this conversion is possible

Как это исправить?

Отправлено: 13:20, 31-03-2009 | #5