Trig_calculator_2Angles_add_functions

Author: Roll
Miscellaneous
It issuies visual alerts to the screenIt opens Message Boxes to the user
0 Views
0 Downloads
0 Favorites
Trig_calculator_2Angles_add_functions
//+-------------------------------------------+
//| 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