Miscellaneous
0
Views
0
Downloads
0
Favorites
Trig_9calculator
//+------------------------------------------------------------------+
//| Trig_calculator.mq4 |
//| Roll |
//+------------------------------------------------------------------+
#property copyright "Roll"
#property link ""
#include <WinUser32.mqh>
#property show_inputs
/*Ñêðèïò "Trig_ñalculator" - òðèãîíîìåòðè÷åñêèé êàëüêóëÿòîð:
- åä. èçìåðåíèÿ - ãðàäóñ, ðàäèàí;
- ôóíêöèè - sin(x), cos(x), tg(x), ctg(x), arcsin(x), arccos(x), arctg(x), arcctg(x).
*/
extern string óãîë_ãðàä = "-------â ãðàäóñàõ-------";
extern double Angle = 0;
extern string óãîë_ðàä = "-------â ðàäèàíàõ-------";
extern double Corner = 0;
extern string ôóíêöèÿ = "1-Sin, 2-Cos, 3-Tang, 4-Cotang";
extern int Func = 1;
extern string îáðàòíûå_ôóíêöèè ="-- èñõîäíîå çíà÷åíèå----";
extern double Value = 0;
extern string arc_ôóíêöèÿ="1-ArcSin,2-ArcCos,3-ArcTang,4-ArcCotang";
extern int ArcFunc = 1;
int Ret;
//+----------script program ------------------------------------------+
int start()
{ double sin,cos,tan,cotan,arcsin,arccos,arctan,arccotan,angle,var,pi=3.141592653589793;
bool Sin,Cos,Tang,Cotang,ArcSin,ArcCos,ArcTang,ArcCotang;
string text,OP="";
if(Angle==0&&Corner==0&&Value==0)
{MessageBox("Angle=0, Corner=0 è Value=0 ! ","Âíèìàíèå!",MB_OK|MB_ICONINFORMATION);
if(Ret==IDOK) return(0);}
if(Angle!=0&&Corner!=0) {if(!err_val("\nAngle èëè Corner ! "))return(0);}
if((ArcFunc==1||ArcFunc==2)&&Value>1){if(!err_val("\n(Value>1)! "))return(0);}
if(Angle!=0||Corner!=0)
{if(!err_func(Func))return(0);
switch(Func)
{case 1: Sin=true; OP="Sin "; break;
case 2: Cos=true; OP="Cos "; break;
case 3: Tang=true; OP="Tang "; break;
case 4: Cotang=true;OP="Cotang ";break;}
if(Angle!=0)
{Ret=MessageBox(TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+"\n"+"\n"+OP+" ("+Angle+" ãðàä ) = ... "+
"\nÓçíàòü ðåçóëüòàò? ","Ôóíêöèÿ â ãðàäóñàõ",MB_YESNO|MB_ICONQUESTION);
if(Ret==IDNO) return(0);
var=pi/180;text="ãðàä.";
if(Sin) {sin=MathSin(Angle*var);alert_1(OP,Angle,sin,text);}
if(Cos) {cos=MathCos(Angle*var);alert_1(OP,Angle,cos,text);}
if(Tang){tan=MathTan(Angle*var);alert_1(OP,Angle,tan,text);}
if(Cotang){cotan=1/MathTan(Angle*var);alert_1(OP,Angle,cotan,text);}
}//if(Angle!=0)
if(Corner!=0)
{Ret=MessageBox(TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+"\n"+"\n"+OP+" ("+Corner+" ðàä ) = ... "+
"\nÓçíàòü ðåçóëüòàò? ","Ôóíêöèÿ â ðàäèàíàõ",MB_YESNO|MB_ICONQUESTION);
if(Ret==IDNO) return(0); text="ðàä.";
if(Sin) {sin=MathSin(Corner);alert_1(OP,Corner,sin,text);}
if(Cos) {cos=MathCos(Corner);alert_1(OP,Corner,cos,text);}
if(Tang){tan=MathTan(Corner);alert_1(OP,Corner,tan,text);}
if(Cotang){cotan=1/MathTan(Corner);alert_1(OP,Corner,cotan,text);}
}//if(Corner!=0)
}//if(Angle!=0||Corner!=0)
if(Value!=0)
{if(!err_func(ArcFunc))return(0);
switch(ArcFunc)
{case 1: ArcSin=true; OP="ArcSin "; break;
case 2: ArcCos=true; OP="ArcCos "; break;
case 3: ArcTang=true; OP="ArcTang "; break;
case 4: ArcCotang=true;OP="ArcCotang ";break;}
Ret=MessageBox(TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+"\n"+"\n"+OP+" ("+Value+") = ... "+
"\nÓçíàòü ðåçóëüòàò?","Àðêôóíêöèÿ", MB_YESNO|MB_ICONQUESTION);
if(Ret==IDNO) return(0);
var=180/pi;
if(ArcSin) {arcsin=MathArcsin(Value);angle=(arcsin*var);alert_2(OP,Value,angle,arcsin);}
if(ArcCos) {arccos=MathArccos(Value);angle=(arccos*var);alert_2(OP,Value,angle,arccos);}
if(ArcTang){arctan=MathArctan(Value);angle=(arctan*var);alert_2(OP,Value,angle,arctan);}
if(ArcCotang)
{arccotan=MathArctan(1/Value);if(arccotan>0) angle=MathRound(arccotan*var);
if(arccotan<=0){arccotan=pi/2+MathAbs( MathArctan(Value));angle= (arccotan*var);}
alert_2(OP,Value,angle,arccotan);}
}return(0);}
//+------------------------------------------------------------------+
void alert_1(string op,double angl,double arg,string ed)
{Alert(op," (",angl," ",ed,") = ",arg);}
void alert_2(string oP,double value,double angel,double argument)
{Alert(oP,"(",value,") = ",angel," ãðàä. = ",argument," ðàä.");}
bool err_func(int func)
{if(func>4||func<0)Ret=MessageBox("Íåâåðíàÿ ôóíêöèÿ!","Îøèáêà!",MB_OK|MB_ICONWARNING);
if(Ret==IDOK) return(0);return(1);}
bool err_val(string val)
{Ret= MessageBox("\nÍåâåðíîå çíà÷åíèå "+val,"Îøèáêà!",MB_OK|MB_ICONWARNING);
if(Ret==IDOK) return(0);}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---