Trig_9calculator

Author: Roll
Miscellaneous
It opens Message Boxes to the userIt issuies visual alerts to the screen
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---