Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Return в функции типа double


Автор: XSonicX 10.6.2010, 12:38
Здравствуйте!
Постараюсь как можно кратче изъяснить суть.
пс. в этом всем еще полный нуб... прощу прощения если чего как..
Код

// как по моим представлениям должна работать функция
double alphaExist(double alr)
        {
        double sina=sin(alr);
        double cosa=sqrt(1-pow(sina,2));
        double tana=sina/cosa;
        return sina, cosa, tana;
                }
//конец функции и начало кнопки
void CTrianglesolutionDlg::OnBnClickedRun()
{
UpdateData(true);
    int i=0;
    while(i<=10)
        {
        double alr=al*M_PI/180;
    double ber=be*M_PI/180;
    double gar=ga*M_PI/180;
    double cota;

    if(al!=0)
    {
                // постоянный код начало:
        sina=sin(alr);
        cosa=sqrt(1-pow(sina,2));
        tana=sina/cosa;
                // конец
        alphaExist(alr); // вместо кода чтобы была простая функция и выводила значения в формы EDIT(sina, cosa, tana) после нажатия кнопки

    }
    else
    {
        if(sina!=0)
        {
            al= asin(sinh(sina)); // СЮДА
        }
        else
        {
            S!=0&&b!=0&&c!=0? sina=2*S/b*c: S=S;
            a!=0&&sinb!=0&&b!=0? sina=a*sinb/b: a=a;
            a!=0&&sing!=0&&c!=0? sina=a*sing/c: a=a;
        }
        
        if(cosa!=0)
        {
            al= acos(cosh(cosa)); //СЮДА
        }
        else
        {
            cosa=0;
        }
        
        if(tana!=0)
        {
            al= atan(tanh(tana)); //СЮДА и т.д
            cota=1/tana;
        }
        else
        {
            tana=0;
        }
    if(be!=0)
    {
        sinb=sin(ber);
        cosb=sqrt(1-pow(sinb,2));
        tanb=sinb/cosb;
    }
    if(ga!=0)
    {
        sing=sin(gar);
        cosg=sqrt(1-pow(sing,2));
        tang=sing/cosg;
    }
    
    } 
    i++;
    }//WHILE END
UpdateData(false);
}


Вобщем как сделать так, чтобы функция (или может какой другой обработчик) вбивал в формы EDIT сразу по одному значению. И может ли вообще функция вбивать значения в формы? Если нет то как мне поступить в моем случае. (пс часть кода убрал, т.к слишком длинный, но нужное оставил)

Спасибо большое зарание

Автор: Albor 10.6.2010, 12:54
Создай функцию принимающую ссылки на переменные, тогда твоя функция сможет "вернуть" более одного значения, например:
Код

void alphaExist(double alr, double & sina, double & cosa, double & tana)
{
  sina=sin(alr);
  cosa=sqrt(1-pow(sina,2));
  tana=sina/cosa;

}

Автор: XSonicX 13.6.2010, 20:52
Albor, спасибо большое, был бы рад узнать как точно называется такой вариант функции и почитать про нее что нибудь, очень полезная штука smile

Автор: Albor 14.6.2010, 06:18
Тема называется "Передача параметров по ссылке", а функция обычная и называется прсто - функция. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)