//+-------------------------------------------+
//| Trig_calculator_2Angles_add_functions.mq4 |
//| Roll |
//+-------------------------------------------+
#property copyright "Roll"
#include <WinUser32.mqh>
#property show_inputs
/*Òðèãîíîìåòðè÷åñêèé êàëüêóëÿòîð äëÿ 2-õ óãëîâ ñ áèáëèîòåêîé:
- åä. èçìåðåíèÿ - ãðàäóñ,ðàäèàí;
- ôóíêöèè äëÿ îäíîãî óãëà: Sin(A),Cos(A),Tang(A),Cotang(A),ArcSin(A),ArcCos(A),ArcTang(A),ArcCotang(A)
Sin(2A),Cos(2A),Tang(2A),Cotang(2A),Sin(A/2),Cos(A/2),Tang(A/2),Cotang(A/2),1+Cos(2A),1-Cos(2A);
Ïðè ðàñ÷åòàõ ñ ôóíêöèÿìè äëÿ îäíîãî óãëà çíà÷åíèÿ óãëîâ çàäàâàòü ìîæíî ïàðàìè.
- ôóíêöèè äëÿ äâóõ óãëîâ:
Sin(A+B),Sin(A-B),Cos(A+B),Cos(A-B),Tang(A+B),Tang(A-B),Cotang(A+B),Cotang(A-B),Sin(A)+Sin(B),Sin(A)-Sin(B),
Cos(A)+Cos(B),Cos(A)-Cos(B),Tang(A)+Tang(B),Tang(A)-Tang(B),Cotang(A)+Cotang(B),
Cotang(A)-Cotang(B),Cos(A-B)+Cos(A+B),Cos(A-B)-Cos(A+B),Sin(A-B)+Sin(A+B),ArcSin(A)+ArcSin(B),
ArcSin(A)-ArcSin(B),ArcCos(A)+ArcCos(B),ArcCos(A)-ArcCos(B),ArcTang(A)+ArcTang(B),ArcTang(A)-ArcTang(B).
Òîæäåñòâà:Cos(A-B)+Cos(A+B)=2*CosA*CosB
Cos(A-B)-Cos(A+B)=2*SinA*SinB
Sin(A-B)+Sin(A+B)=2*SinA*CosB
1+Cos2A=2*CosA*CosA
1-Cos2A=2*SinA*SinA
- Ðàñ÷åò ïðîèçâîäèòñÿ çà îäèí ïðîõîä:
1.Åñëè Formula=true,òî â Alert(å) áóäåò(óò) ïîêàçàíà(û) òðèãîíîìåòðè÷åñêàÿ(èå) ôîðìóëà(û),
ïî êîòîðîé(ûì)êàëüêóëÿòîð ïðîèçâîäèë ðàñ÷åò è ñîîòâåòñòâóþùèå ôîðìóëû;
2.Äëÿ ðàñ÷åòà íåîáõîäèìî:
- íàçíà÷èòü â êàêèõ åäèíèöàõ èçìåðåíèÿ(ãðàäóñàõ/ðàäèàíàõ)ñ÷èòàòü è,ñîîòâåñòâåííî,âûñòàâèòü
çíà÷åíèå óãëà(îâ).Äëÿ îáðàòíûõ ôóíêöèé åäèíèöû èçìåðåíèÿ òå,â êîòîðûõ òðåáóåòñÿ ïîëó÷èòü îòâåò;
- íàçíà÷èòü òðåáóåìóþ ôóíêöèþ è ÎÊ.*/
extern bool Formula = false;
extern string óãîë_ãðàä_A = "-------â ãðàäóñàõ-------";
extern double Angle_A = 0;
extern string óãîë_ãðàä_B = "-------â ãðàäóñàõ-------";
extern double Angle_B = 0;
extern string óãîë_ðàä_A = "-------â ðàäèàíàõ-------";
extern double Corner_A = 0;
extern string óãîë_ðàä_B = "-------â ðàäèàíàõ-------";
extern double Corner_B = 0;
extern bool _Sin = false;
extern bool _Cos = false;
extern bool _Tang = false;
extern bool _Cotang = false;
extern bool _ArcSin = false;
extern bool _ArcCos = false;
extern bool _ArcTang = false;
extern bool _ArcCotang = false;
extern bool _Sin_A_PLUS_B = false;
extern bool _Sin_A_MINUS_B = false;
extern bool _Cos_A_PLUS_B = false;
extern bool _Cos_A_MINUS_B = false;
extern bool _Tang_A_PLUS_B = false;
extern bool _Tang_A_MINUS_B = false;
extern bool _Cotang_A_PLUS_B = false;
extern bool _Cotang_A_MINUS_B = false;
extern bool _Sin_2_A = false;
extern bool _Cos_2_A = false;
extern bool _Tang_2_A = false;
extern bool _Cotang_2_A = false;
extern bool _Sin_05_A = false;
extern bool _Cos_05_A = false;
extern bool _Tang_05_A = false;
extern bool _Cotang_05_A = false;
extern bool _Sin_A_PLUS_Sin_B = false;
extern bool _Sin_A_MINUS_Sin_B = false;
extern bool _Cos_A_PLUS_Cos_B = false;
extern bool _Cos_A_MINUS_Cos_B = false;
extern bool _Tang_A_PLUS_Tang_B = false;
extern bool _Tang_A_MINUS_Tang_B = false;
extern bool _Cotang_A_PLUS_Cotang_B = false;
extern bool _Cotang_A_MINUS_Cotang_B = false;
extern bool _ArcSin_A_PLUS_ArcSin_B = false;
extern bool _ArcSin_A_MINUS_ArcSin_B = false;
extern bool _ArcCos_A_PLUS_ArcCos_B = false;
extern bool _ArcCos_A_MINUS_ArcCos_B = false;
extern bool _ArcTang_A_PLUS_ArcTang_B = false;
extern bool _ArcTang_A_MINUS_ArcTang_B= false;
extern string f_1 = "Cos(A-B)+Cos(A+B)=2*CosA*CosB";
extern bool _F_1 = false;// MF_1
extern string f_2 = "Cos(A-B)-Cos(A+B)=2*SinA*SinB";
extern bool _F_2 = false;// MF_2
extern string f_3 = "Sin(A-B)+Sin(A+B)=2*SinA*CosB";
extern bool _F_3 = false;// MF_3
extern string f_4 = "1+Cos2A=2*CosA*CosA";
extern bool _F_4 = false;// MF_4
extern string f_5 = "1-Cos2A=2*SinA*SinA";
extern bool _F_5 = false;// MF_5
int Ret;
double var_1,var_2,var_3,var,pi,pi_2;string text,OP;
//-------------------------- init ------------------------------------+
int init(){pi=3.141592653589793;pi_2=pi/180;return(0);}
//+----------script program ------------------------------------------+
int start()
{if(Angle_A!=0&&Corner_A!=0){if(!err_val("\nAngle_A èëè Corner_A ! "))return(0);}
if(Angle_B!=0&&Corner_B!=0){if(!err_val("\nAngle_B èëè Corner_B ! "))return(0);}
if(Angle_A!=0&&Corner_B!=0){if(!err_val("\nAngle_A èëè Corner_B ! "))return(0);}
if(Angle_B!=0&&Corner_A!=0){if(!err_val("\nAngle_B èëè Corner_A ! "))return(0);}
if(Angle_A==0&&Corner_A==0&&Angle_B==0&&Corner_B==0)
{Ret=MessageBox(" Çàäàé óãîë è ôóíêöèþ ! "," Âíèìàíèå ! ",MB_OK|MB_ICONINFORMATION);if(Ret==IDOK)return(0);}
int a=_Sin+_Cos+_Tang+_Cotang+_Sin_A_PLUS_B+_Sin_A_MINUS_B+_Cos_A_PLUS_B+_Cos_A_MINUS_B+
_Tang_A_PLUS_B+_Tang_A_MINUS_B+_Cotang_A_PLUS_B+_Cotang_A_MINUS_B+_Sin_2_A+_Cos_2_A+
_Tang_2_A+_Cotang_2_A+_Sin_05_A+_Cos_05_A+_Tang_05_A+_Cotang_05_A+_Sin_A_PLUS_Sin_B+
_Sin_A_MINUS_Sin_B+_Cos_A_PLUS_Cos_B+_Cos_A_MINUS_Cos_B+_Tang_A_PLUS_Tang_B+_Tang_A_MINUS_Tang_B+
_Cotang_A_PLUS_Cotang_B+_Cotang_A_MINUS_Cotang_B+_F_1+_F_2+_F_3+_F_4+_F_5+_ArcSin+_ArcCos+
_ArcTang+_ArcCotang+_ArcSin_A_PLUS_ArcSin_B+_ArcSin_A_MINUS_ArcSin_B+_ArcCos_A_PLUS_ArcCos_B+
_ArcCos_A_MINUS_ArcCos_B+_ArcTang_A_PLUS_ArcTang_B+_ArcTang_A_MINUS_ArcTang_B;
if(a==0){Ret=MessageBox(" Çàäàé ôóíêöèþ ! "," Âíèìàíèå ! ",MB_OK|MB_ICONINFORMATION);if(Ret==IDOK)return(0);}
if( a>1){Ret=MessageBox(" Ôóíêöèé > 1 ! "," Âíèìàíèå ! ",MB_OK|MB_ICONINFORMATION);if(Ret==IDOK)return(0);}
if((_ArcSin+_ArcCos+_ArcSin_A_PLUS_ArcSin_B+_ArcSin_A_MINUS_ArcSin_B+_ArcCos_A_PLUS_ArcCos_B+
_ArcCos_A_MINUS_ArcCos_B>=1)&&(Angle_A>1||Angle_B>1||Corner_A>1||Corner_B>1))
{if(!err_val("\n(Value>1)! "))return(0);}
if(_Sin) OP=" Sin ";
if(_Cos) OP=" Cos ";
if(_Tang) OP=" Tang ";
if(_Cotang) OP=" Cotang ";
if(_ArcSin) OP=" ArcSin ";
if(_ArcCos) OP=" ArcCos ";
if(_ArcTang) OP=" ArcTang ";
if(_ArcCotang) OP=" ArcCotang ";
if(_Sin_A_PLUS_B) OP=" Sin(A + B) ";
if(_Sin_A_MINUS_B) OP=" Sin(A - B) ";
if(_Cos_A_PLUS_B) OP=" Cos(A + B) ";
if(_Cos_A_MINUS_B) OP=" Cos(A - B) ";
if(_Tang_A_PLUS_B) OP=" Tang(A + B) ";
if(_Tang_A_MINUS_B) OP=" Tang(A - B) ";
if(_Cotang_A_PLUS_B) OP=" Cotang(A + B) ";
if(_Cotang_A_MINUS_B) OP=" Cotang(A - B) ";
if(_Sin_2_A) OP=" Sin 2A ";
if(_Cos_2_A) OP=" Cos 2A ";
if(_Tang_2_A) OP=" Tang 2A ";
if(_Cotang_2_A) OP=" Cotang 2A ";
if(_Sin_05_A) OP=" Sin A/2 ";
if(_Cos_05_A) OP=" Cos A/2 ";
if(_Tang_05_A) OP=" Tang A/2 ";
if(_Cotang_05_A) OP=" Cotang A/2 ";
if(_Sin_A_PLUS_Sin_B) OP=" Sin A + Sin B ";
if(_Sin_A_MINUS_Sin_B) OP=" Sin A - Sin B ";
if(_Cos_A_PLUS_Cos_B) OP=" Cos_A + Cos B ";
if(_Cos_A_MINUS_Cos_B) OP=" Cos_A - Cos B ";
if(_Tang_A_PLUS_Tang_B) OP=" Tang_A + Tang B ";
if(_Tang_A_MINUS_Tang_B) OP=" Tang A - Tang B ";
if(_Cotang_A_PLUS_Cotang_B) OP=" Cotang A + Cotang B ";
if(_Cotang_A_MINUS_Cotang_B) OP=" Cotang A - Cotang B ";
if(_ArcSin_A_PLUS_ArcSin_B) OP=" ArcSin A + ArcSin B ";
if(_ArcSin_A_MINUS_ArcSin_B) OP=" ArcSin A - ArcSin B ";
if(_ArcCos_A_PLUS_ArcCos_B) OP=" ArcCos_A + ArcCos B ";
if(_ArcCos_A_MINUS_ArcCos_B) OP=" ArcCos_A - ArcCos B ";
if(_ArcTang_A_PLUS_ArcTang_B) OP=" ArcTang_A + ArcTang B ";
if(_ArcTang_A_MINUS_ArcTang_B)OP=" ArcTang_A - ArcTang B ";
if(_F_1) OP=" Cos(A-B)+Cos(A+B) ";
if(_F_2) OP=" Cos(A-B)-Cos(A+B) ";
if(_F_3) OP=" Sin(A-B)+Sin(A+B) ";
if(_F_4) OP=" 1+Cos 2A ";
if(_F_5) OP=" 1-Cos 2A ";
if(Angle_A!=0||Angle_B!=0)
{Ret=MessageBox(TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+"\n"+"\n"+OP+" = ... \n(A = "+Angle_A+" ãðàä,"+
" B = "+Angle_B+" ãðàä )"+"\nÓçíàòü ðåçóëüòàò? "," Ôóíêöèè â ãðàäóñàõ ",MB_YESNO|MB_ICONQUESTION);
if(Ret==IDNO)return(0);text="ãðàä.";var_2=Angle_A;var_3=Angle_B;oper(OP,var_2,var_3,text);}
if(Corner_A!=0||Corner_B!=0)
{Ret=MessageBox(TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+"\n"+"\n"+OP+" = ... \n(A = "+Corner_A+" ðàä,"+
" B = "+Corner_B+" ðàä )"+"\nÓçíàòü ðåçóëüòàò? "," Ôóíêöèè â ðàäèàíàõ ",MB_YESNO|MB_ICONQUESTION);
if(Ret==IDNO)return(0);text="ðàä.";var_2=Corner_A;var_3=Corner_B;oper(OP,var_2,var_3,text);}return(0);}
//+------------------------------------------------------------------+
void alert_1(string op,double rez){Alert(op," = ",rez);}
void alert_2(string op,double rez,string ed){Alert(op," = ",rez," ",ed);}
bool err_val(string val)
{Ret= MessageBox("\nÍåâåðíîå çíà÷åíèå "+val,"Îøèáêà!",MB_OK|MB_ICONWARNING);if(Ret==IDOK)return(0);}
//+------------------------------------------------------------------+
void oper(string op,double arg_1,double arg_2,string Text)
{OP=op;text=Text;
if(OP==" ArcSin ")
{if(arg_1!=0){OP=" ArcSin ("+arg_1+") ";var=ArcSin(arg_1,text);alert_2(OP,var,text);}
if(arg_2!=0){OP=" ArcSin ("+arg_2+") ";var=ArcSin(arg_2,text);alert_2(OP,var,text);}}
if(OP==" ArcCos ")
{if(arg_1!=0){OP=" ArcCos ("+arg_1+") ";var=ArcCos(arg_1,text);alert_2(OP,var,text);}
if(arg_2!=0){OP=" ArcCos ("+arg_2+") ";var=ArcCos(arg_2,text);alert_2(OP,var,text);}}
if(OP==" ArcTang ")
{if(arg_1!=0){OP=" ArcTang ("+arg_1+") ";var=ArcTang(arg_1,text);alert_2(OP,var,text);}
if(arg_2!=0){OP=" ArcTang ("+arg_2+") ";var=ArcTang(arg_2,text);alert_2(OP,var,text);}}
if(OP==" ArcCotang ")
{if(arg_1!=0){OP=" ArcCotang ("+arg_1+") ";var=ArcCotang(arg_1,text);alert_2(OP,var,text);}
if(arg_2!=0){OP=" ArcCotang ("+arg_2+") ";var=ArcCotang(arg_2,text);alert_2(OP,var,text);}}
if(OP==" Sin ")
{if(arg_1!=0){OP=" Sin ("+arg_1+text+") ";var=Sin(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Sin ("+arg_2+text+") ";var=Sin(arg_2,text);alert_1(OP,var);}}
if(OP==" Cos ")
{if(arg_1!=0){OP=" Cos ("+arg_1+text+") ";var=Cos(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cos ("+arg_2+text+") ";var=Cos(arg_2,text);alert_1(OP,var);}}
if(OP==" Cotang ")
{if(arg_1!=0){OP=" Cotang ("+arg_1+text+") ";var=Cotang(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cotang ("+arg_2+text+") ";var=Cotang(arg_2,text);alert_1(OP,var);}}
if(OP==" Tang ")
{if(arg_1!=0){OP=" Tang ("+arg_1+text+") ";var=Tang(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Tang ("+arg_2+text+") ";var=Tang(arg_2,text);alert_1(OP,var);}}
if(OP==" Sin(A + B) "){OP=" Sin ("+arg_1+text+" + "+arg_2+text+") ";
var=Sin_A_PLUS_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Sin(A - B) "){OP=" Sin ("+arg_1+text+" - "+arg_2+text+") ";
var=Sin_A_MINUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cos(A + B) "){OP=" Cos ("+arg_1+text+" + "+arg_2+text+") ";
var=Cos_A_PLUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cos(A - B) "){OP=" Cos ("+arg_1+text+" - "+arg_2+text+") ";
var=Cos_A_MINUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Tang(A + B) "){OP=" Tang ("+arg_1+text+" + "+arg_2+text+") ";
var=Tang_A_PLUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Tang(A - B) "){OP=" Tang ("+arg_1+text+" - "+arg_2+text+") ";
var=Tang_A_MINUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cotang(A + B) "){OP=" Cotang ("+arg_1+text+" + "+arg_2+text+") ";
var=Cotang_A_PLUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cotang(A - B) "){OP=" Tang ("+arg_1+text+" - "+arg_2+text+") ";
var=Cotang_A_MINUS_B (arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Sin 2A ")
{if(arg_1!=0){OP=" Sin 2A ("+arg_1+text+") ";var=Sin_2_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Sin 2A ("+arg_2+text+") ";var=Sin_2_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Cos 2A ")
{if(arg_1!=0){OP=" Cos 2A ("+arg_1+text+") ";var=Cos_2_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cos 2A ("+arg_2+text+") ";var=Cos_2_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Tang 2A ")
{if(arg_1!=0){OP=" Tang 2A ("+arg_1+text+") ";var=Tang_2_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Tang 2A ("+arg_2+text+") ";var=Tang_2_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Cotang 2A ")
{if(arg_1!=0){OP=" Cotang 2A ("+arg_1+text+") ";var=Cotang_2_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cotang 2A ("+arg_2+text+") ";var=Cotang_2_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Sin A/2 ")
{if(arg_1!=0){OP=" Sin A/2 ("+arg_1+text+") ";var=Sin_05_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Sin A/2 ("+arg_2+text+") ";var=Sin_05_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Cos A/2 ")
{if(arg_1!=0){OP=" Cos A/2 ("+arg_1+text+") ";var=Cos_05_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cos A/2 ("+arg_2+text+") ";var=Cos_05_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Tang A/2 ")
{if(arg_1!=0){OP=" Tang A/2 ("+arg_1+text+") ";var=Tang_05_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Tang A/2 ("+arg_2+text+") ";var=Tang_05_A(arg_2,text);alert_1(OP,var);}}
if( OP==" Cotang A/2 ")
{if(arg_1!=0){OP=" Cotang A/2 ("+arg_1+text+") ";var=Cotang_05_A(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" Cotang A/2 ("+arg_2+text+") ";var=Cotang_05_A(arg_2,text);alert_1(OP,var);}}
if(OP==" Sin A + Sin B "){OP=" Sin ("+arg_1+text+") + Sin ("+arg_2 +text+") ";
var=Sin_A_PLUS_Sin_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cos_A + Cos B "){OP=" Cos ("+arg_1+text+") + Cos ("+arg_2 +text+") ";
var=Cos_A_PLUS_Cos_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Tang_A + Tang B "){OP=" Tang ("+arg_1+text+") + Tang ("+arg_2 +text+") ";
var=Tang_A_PLUS_Tang_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cotang A + Cotang B "){OP=" Cotang ("+arg_1+text+") + Cotang("+arg_2 +text+") ";
var=Cotang_A_PLUS_Cotang_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Sin A - Sin B "){OP=" Sin ("+arg_1+text+") - Sin ("+arg_2 +text+") ";
var=Sin_A_MINUS_Sin_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cos_A - Cos B "){OP=" Cos ("+arg_1+text+") - Cos ("+arg_2 +text+") ";
var=Cos_A_MINUS_Cos_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Tang A - Tang B "){OP=" Tang ("+arg_1+text+") - Tang("+arg_2 +text+") ";
var=Tang_A_MINUS_Tang_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cotang A - Cotang B "){OP=" Cotang ("+arg_1+text+") - Cotang ("+arg_2 +text+") ";
var=Cotang_A_MINUS_Cotang_B(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" ArcSin A + ArcSin B "){OP=" ArcSin ("+arg_1+") + ArcSin ("+arg_2 +") ";
var=ArcSin_A_PLUS_ArcSin_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" ArcCos_A + ArcCos B "){OP=" ArcCos ("+arg_1+") + ArcCos ("+arg_2 +") ";
var=ArcCos_A_PLUS_ArcCos_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" ArcTang_A + ArcTang B "){OP=" ArcTang ("+arg_1+") + ArcTang ("+arg_2 +") ";
var=ArcTang_A_PLUS_ArcTang_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" ArcSin A - ArcSin B "){OP=" ArcSin ("+arg_1+") - ArcSin ("+arg_2 +") ";
var=ArcSin_A_MINUS_ArcSin_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" ArcCos_A - ArcCos B "){OP=" ArcCos ("+arg_1+") - ArcCos ("+arg_2 +") ";
var=ArcCos_A_MINUS_ArcCos_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" ArcTang_A - ArcTang B "){OP=" ArcTang ("+arg_1+") - ArcTang ("+arg_2 +") ";
var=ArcTang_A_MINUS_ArcTang_B(arg_1,arg_2,text);alert_2(OP,var,text);}
if(OP==" Cos(A-B)+Cos(A+B) "){OP=" 2 * Cos ("+arg_1+text+") * Cos ("+arg_2 +text+") ";
var=F_1(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Cos(A-B)-Cos(A+B) "){OP=" 2 * Sin ("+arg_1+text+") * Sin ("+arg_2 +text+") ";
var=F_2(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" Sin(A-B)+Sin(A+B) "){OP=" 2 * Sin ("+arg_1+text+") * Cos ("+arg_2 +text+") ";
var=F_3(arg_1,arg_2,text);alert_1(OP,var);}
if(OP==" 1+Cos 2A ")
{if(arg_1!=0){OP=" 2 * Cos ("+arg_1+text+") * Cos ("+arg_1 +text+") ";var=F_4(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" 2 * Cos ("+arg_2+text+") * Cos ("+arg_2 +text+") ";var=F_4(arg_2,text);alert_1(OP,var);}}
if(OP==" 1-Cos 2A ")
{if(arg_1!=0){OP=" 2 * Sin ("+arg_1+text+") * Sin ("+arg_1 +text+") ";var=F_5(arg_1,text);alert_1(OP,var);}
if(arg_2!=0){OP=" 2 * Sin ("+arg_2+text+") * Sin ("+arg_2 +text+") ";var=F_5(arg_2,text);alert_1(OP,var);}}}
//+------------------------------------------------------------------+
double ArcSin(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=180/pi;if(Arg!=0){var_1=MathArcsin(Arg)*var;return(var_1);}}
double ArcCos(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=180/pi;if(Arg!=0){var_1=MathArccos(Arg)*var;return(var_1);}}
double ArcTang(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=180/pi;if(Arg!=0){var_1=MathArctan(Arg)*var;return(var_1);}}
double ArcCotang(double Arg,string TEXT)
{if(Arg!=0)
{if(TEXT=="ðàä.")var=1;var_1=MathArctan(1/Arg);if(TEXT=="ðàä."&&var_1>0)return(var_1);
if(TEXT=="ãðàä.")var=180/pi;if(var_1>0)var_1=MathRound(var_1*var);
if(var_1<=0)var_1=(pi/2+MathAbs(MathArctan(Arg)))*var;return(var_1);}}
double Sin(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=pi_2;if(Arg!=0){var_1=MathSin(Arg*var);return(var_1);}}
double Cos(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=pi_2;if(Arg!=0){var_1=MathCos(Arg*var);return(var_1);}}
double Tang(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=pi_2;if(Arg!=0){var_1=MathTan(Arg*var);return(var_1);}}
double Cotang(double Arg,string TEXT)
{if(TEXT=="ðàä.")var=1;if(TEXT=="ãðàä.")var=pi_2;if(Arg!=0){var_1=1/MathTan(Arg*var);return(var_1);}}
double Sin_A_PLUS_B(double Arg_1,double Arg_2,string TEXT)
{var_1=Sin(Arg_1,TEXT)*Cos(Arg_2,TEXT)+Sin(Arg_2,TEXT)*Cos(Arg_1,TEXT);
if(Formula)Alert("Sin(A+B)= SinA*CosB+SinB*CosA");return(var_1);}
double Sin_A_MINUS_B(double Arg_1,double Arg_2,string TEXT)
{var_1=Sin(Arg_1,TEXT)*Cos(Arg_2,TEXT)-Sin(Arg_2,TEXT)*Cos(Arg_1,TEXT);
if(Formula) Alert("Sin(A-B)= SinA*CosB-SinB*CosA");return(var_1);}
double Cos_A_PLUS_B(double Arg_1,double Arg_2,string TEXT)
{var_1=Cos(Arg_1,TEXT)*Cos(Arg_2,TEXT)-Sin(Arg_2,TEXT)*Sin(Arg_1,TEXT);
if(Formula)Alert("Cos(A+B)=CosA*CosB-SinA*SinB");return(var_1);}
double Cos_A_MINUS_B(double Arg_1,double Arg_2,string TEXT)
{var_1=Cos(Arg_1,TEXT)*Cos(Arg_2,TEXT)+Sin(Arg_2,TEXT)*Sin(Arg_1,TEXT);
if(Formula)Alert("Cos(A-B)=CosA*CosB+SinA*SinB");return(var_1);}
double Tang_A_PLUS_B(double Arg_1,double Arg_2,string TEXT)
{var_2=Tang(Arg_1,TEXT);var_3=Tang(Arg_2,TEXT);
if(Formula)Alert("Tang(A+B)=(TangA+TangB)/(1-TangA*TangB)");
var_1=(var_2+var_3)/(1-var_2*var_3);return(var_1);}
double Tang_A_MINUS_B(double Arg_1,double Arg_2,string TEXT)
{var_2=Tang(Arg_1,TEXT);var_3=Tang(Arg_2,TEXT);
if(Formula)Alert("Tang(A-B)=(TangA-TangB)/(1+TangA*TangB)");
var_1=(var_2-var_3)/(1+var_2*var_3);return(var_1);}
double Cotang_A_PLUS_B(double Arg_1,double Arg_2,string TEXT)
{var_2=Cotang(Arg_1,TEXT);var_3=Cotang(Arg_2,TEXT);
if(Formula)Alert("Cotang(A+B)=(CotangA*CotangB-1)/(CotangA+CotangB)");
var_1=(var_2*var_3-1)/(var_2+var_3);return(var_1);}
double Cotang_A_MINUS_B(double Arg_1,double Arg_2,string TEXT)
{var_2=Cotang(Arg_1,TEXT);var_3=Cotang(Arg_2,TEXT);
if(Formula)Alert("Cotang(A-B)=(CotangA*CotangB+1)/(CotangA-CotangB)");
var_1=(var_2*var_3+1)/(var_2-var_3);return(var_1);}
double Sin_2_A(double Arg,string TEXT)
{var_1=2*Sin(Arg,TEXT)*Cos(Arg,TEXT);if(Formula)Alert("Sin2A=2*SinA*CosA");return(var_1);}
double Cos_2_A(double Arg,string TEXT)
{var_2=Cos(Arg,TEXT);if(Formula)Alert("Cos2A=2*CosA*CosA-1=CosA*CosA-SinA*SinA =1-2*SinA*SinA ");
var_1=2*var_2*var_2-1;return(var_1);}
double Tang_2_A(double Arg,string TEXT)
{var_2=Tang(Arg,TEXT);if(Formula)Alert("Tang2A=2*TangA/(1-TangA*TangA)");var_1=2*var_2/(1-var_2*var_2);return(var_1);}
double Cotang_2_A(double Arg,string TEXT)
{var_2=Cotang(Arg,TEXT);if(Formula)Alert("Cotang2A=(CotangA*CotangA-1)/(2*CotangA)=1/2(CotangA-TangA)");
var_1=(var_2*var_2-1)/(2*var_2);return(var_1);}
double Sin_05_A(double Arg,string TEXT)
{if(Formula)Alert("Sin1/2A=MathSqrt((1-CosA)/2)");var_1=MathSqrt((1-Cos(Arg,TEXT))/2);return(var_1);}
double Cos_05_A(double Arg,string TEXT)
{if(Formula)Alert("Cos1/2A=MathSqrt((1+CosA)/2)");var_1=MathSqrt((1+Cos(Arg,TEXT))/2);return(var_1);}
double Tang_05_A(double Arg,string TEXT)
{if(Formula)Alert("Tang1/2A = Sin1/(1+CosA)=(1-CosA)/SinA");
var_1=Sin(Arg,TEXT)/(1+Cos(Arg,TEXT));return(var_1);}
double Cotang_05_A(double Arg,string TEXT)
{if(Formula)Alert("Cotang1/2A = SinA/(1-CosA)=(1+CosA)/SinA");
var_1=Sin(Arg,TEXT)/(1-Cos(Arg,TEXT));return(var_1);}
double Sin_A_PLUS_Sin_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("SinA + SinB = 2*Sin1/2(A+B)*Cos1/2(A-B)");
var_1=2*Sin_05_A(Arg_1+Arg_2,TEXT)*Cos_05_A(Arg_1-Arg_2,TEXT);return(var_1);}
double Sin_A_MINUS_Sin_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("SinA - SinB = 2*Sin1/2(A-B)*Cos1/2(A+B)");
var_1=2*Sin_05_A(Arg_1-Arg_2,TEXT)*Cos_05_A(Arg_1+Arg_2,TEXT);return(var_1);}
double Cos_A_PLUS_Cos_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("CosA + CosB = 2*Cos1/2(A+B)*Cos1/2(A-B)");
var_1=2*Cos_05_A(Arg_1+Arg_2,TEXT)*Cos_05_A(Arg_1-Arg_2,TEXT);return(var_1);}
double Cos_A_MINUS_Cos_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("CosA - CosB = (-2)*Sin1/2(A+B)*Sin1/2(A-B)");
var_1=(-2)*Sin_05_A(Arg_1+Arg_2,TEXT)*Sin_05_A(Arg_1-Arg_2,TEXT);return(var_1);}
double Tang_A_PLUS_Tang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("TangA + TangB = Sin(A+B)/(CosA * CosB)");
var_1=Sin_A_PLUS_B(Arg_1,Arg_2,TEXT)/(Cos (Arg_1,TEXT)*Cos (Arg_2,TEXT));return(var_1);}
double Tang_A_MINUS_Tang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("TangA - TangB = Sin(A-B)/(CosA * CosB)");
var_1=Sin_A_MINUS_B(Arg_1,Arg_2,TEXT)/(Cos(Arg_1,TEXT)*Cos(Arg_2,TEXT));return(var_1);}
double Cotang_A_PLUS_Cotang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("CotangA + CotangB = Sin(A+B)/(SinA*SinB)");
var_1=Sin_A_PLUS_B(Arg_1,Arg_2,TEXT)/(Sin(Arg_1,TEXT)*Sin(Arg_2,TEXT));return(var_1);}
double Cotang_A_MINUS_Cotang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("CotangA - CotangB=Sin(B-A)/(SinA*SinB)");
var_1=Sin_A_MINUS_B(Arg_2,Arg_1,TEXT)/(Sin(Arg_1,TEXT)*Sin(Arg_2,TEXT));return(var_1);}
double F_1(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("Cos(A-B)+Cos(A+B)=2*CosA*CosB");var_1=2*Cos(Arg_1,TEXT)*Cos(Arg_2,TEXT);return(var_1);}
double F_2(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("Cos(A-B)-Cos(A+B)=2*SinA*SinB");var_1=2*Sin(Arg_1,TEXT)*Sin(Arg_2,TEXT);return(var_1);}
double F_3(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("Sin(A-B)+Sin(A+B)=2*SinA*CosB");var_1=2*Sin(Arg_1,TEXT)*Cos(Arg_2,TEXT);return(var_1);}
double F_4(double Arg,string TEXT)
{if(Formula)Alert("1+Cos2A=2*CosA*CosA");var_1=2*Cos(Arg,TEXT)*Cos(Arg,TEXT);return(var_1);}
double F_5(double Arg,string TEXT)
{if(Formula)Alert("1-Cos2A=2*SinA*SinA");var_1=2*Sin(Arg,TEXT)*Sin(Arg,TEXT);return(var_1);}
double ArcSin_A_PLUS_ArcSin_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcSinA + ArcSinB = ArcSin (A*MathSqrt(1-B*B)) + B*MathSqrt(1 - A*A))= ArcCos (MathSqrt(1-A*A)*MathSqrt(1-B*B) - A*B)");
var_1=ArcSin(Arg_1*MathSqrt(1-Arg_2*Arg_2)+Arg_2*MathSqrt(1-Arg_1*Arg_1),TEXT);return(var_1);}
double ArcSin_A_MINUS_ArcSin_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcSinA - ArcSinB = ArcSin (A*MathSqrt(1-B*B))- B*MathSqrt(1 - A*A))= ArcCos (MathSqrt(1 - A*A)*MathSqrt(1-B*B) + A*B)");
var_1=ArcSin(Arg_1*MathSqrt(1-Arg_2*Arg_2)-Arg_2*MathSqrt(1-Arg_1*Arg_1),TEXT);return(var_1);}
double ArcCos_A_PLUS_ArcCos_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcCosA + ArcCosB = ArcCos (A*B-MathSqrt(1 - A*A) * MathSqrt(1 - B*B)) = ArcSin (B*MathSqrt(1-A*A)+A*MathSqrt(1-B*B))");
var_1=ArcCos(Arg_1*Arg_2-MathSqrt(1-Arg_1*Arg_1) * MathSqrt(1-Arg_2*Arg_2),TEXT);return(var_1);}
double ArcCos_A_MINUS_ArcCos_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcCosA - ArcCosB = ArcCos (A*B+MathSqrt(1 - A*A) * MathSqrt(1 - B*B)) = ArcSin (B*MathSqrt(1-A*A)-A*MathSqrt(1-B*B))");
var_1=ArcCos(Arg_1*Arg_2+MathSqrt(1-Arg_1*Arg_1)* MathSqrt(1-Arg_2*Arg_2),TEXT);return(var_1);}
double ArcTang_A_PLUS_ArcTang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcTangA + ArcTangB = ArcTang ((A+B) / (1-A*B))");
var_1=ArcTang(((Arg_1+Arg_2)/(1-Arg_1*Arg_2)),TEXT);return(var_1);}
double ArcTang_A_MINUS_ArcTang_B(double Arg_1,double Arg_2,string TEXT)
{if(Formula)Alert("ArcTangA - ArcTangB = ArcTang ((A+B) / (1+A*B))");
var_1=ArcTang(((Arg_1+Arg_2)/(1+Arg_1*Arg_2)),TEXT);return(var_1);}
Comments