MathSqrt

Retourne la racine carrée du nombre.

double  MathSqrt(
   double  value      // nombre positif
   );

Paramètres

value

[in]  Valeur numérique positive.

Valeur de Retour

La racine carrée du nombre. Si value est négative, MathSqrt retourne NaN (valeur indéterminée).

Note

On peut utiliser la fonction sqrt() au lieu de la fonction MathSqrt().

 

Exemple :

#define GRAPH_WIDTH  750
#define GRAPH_HEIGHT 350
 
#include <Graphics\Graphic.mqh>
 
CGraphic ExtGraph;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtient 11 valeurs de 0 à 10 avec un pas de 1
   vector X(11,VectorArange);
   Print("vector X = \n",X);
//--- calcule la racine carrée de chaque valeur du vecteur X
   X=MathSqrt(X);
   Print("MathSqrt(X) = \n",X);
   
//--- transfére les valeurs calculées du vecteur vers le tableau
   double y_array[];
   X.Swap(y_array);
 
//--- dessine un graphique des valeurs vectorielles calculées
   CurvePlot(y_array,clrDodgerBlue);
 
//--- attend l'appui sur les touches Escape ou PgDn pour supprimer le graphique (prendre une capture d'écran) et quitter
   while(!IsStopped())
     {
      if(StopKeyPressed())
         break;
      Sleep(16);
     }
 
//--- nettoyage
   ExtGraph.Destroy();
   /*
  résultat :
   vector X = 
   [0,1,2,3,4,5,6,7,8,9,10]
   MathSqrt(X) = 
   [0,1,1.414213562373095,1.732050807568877,2,2.23606797749979,2.449489742783178,2.645751311064591,2.82842712474619,3,3.16227766016838]
   */
  }
//+------------------------------------------------------------------+
//| Remplit un vecteur avec 'value' par incréments de 'step'         |
//+------------------------------------------------------------------+
template<typename T
void VectorArange(vector<T> &vec,T value=0.0,T step=1.0
  { 
   for(ulong i=0i<vec.Size(); i++,value+=step
      vec[i]=value
  }
//+------------------------------------------------------------------+
//| si appui sur ESC, retourne 'vrai'                                |
//| Si appui sur PgDn, prends une capture d'écran et retourne 'true' |
//| Sinon, retourne 'false'                                          |
//+------------------------------------------------------------------+
bool StopKeyPressed()
  {
//--- si ESC est enfoncé, renvoie 'true'
   if(TerminalInfoInteger(TERMINAL_KEYSTATE_ESCAPE)!=0)
      return(true);
//--- si PgDn est enfoncé et qu'une capture d'écran graphique est prise avec succès, renvoie 'true'
   if(TerminalInfoInteger(TERMINAL_KEYSTATE_PAGEDOWN)!=0 && MakeAndSaveScreenshot(MQLInfoString(MQL_PROGRAM_NAME)+"_Screenshot"))
      return(true);
//--- retourne 'false'
   return(false);
  }
//+------------------------------------------------------------------+
//| Crée un objet graphique et dessine une courbe                    |
//+------------------------------------------------------------------+
void CurvePlot(double &x_array[], double &y_array[], const color colour)
  {
   ExtGraph.Create(ChartID(), "Graphic"000GRAPH_WIDTHGRAPH_HEIGHT);
   ExtGraph.CurveAdd(x_arrayy_arrayColorToARGB(colour), CURVE_LINES);
   ExtGraph.IndentUp(30);
   ExtGraph.CurvePlotAll();
   string text1="Press ESC to delete the graph and stop the script, or";
   string text2="Press PgDn to create a screen, delete the graph and stop the script";
   ExtGraph.TextAdd(549text1ColorToARGB(clrBlack));
   ExtGraph.TextAdd(54,21text2ColorToARGB(clrBlack));
   ExtGraph.Update();
  }
//+------------------------------------------------------------------+
//| Prend une capture d'écran et l'enregistre dans un fichier        |
//+------------------------------------------------------------------+
bool MakeAndSaveScreenshot(const string file_name)
  {
   string file_names[];
   ResetLastError();
   int selected=FileSelectDialog("Save Picture"NULL"All files (*.*)|*.*"FSD_WRITE_FILEfile_namesfile_name+".png");
   if(selected<1)
     {
      if(selected<0)
         PrintFormat("%s: FileSelectDialog() function returned error %d"__FUNCTION__GetLastError());
      return false;
     }
   
   bool res=false;
   if(ChartSetInteger(0,CHART_SHOW,false))
      res=ChartScreenShot(0file_names[0], GRAPH_WIDTHGRAPH_HEIGHT);
   ChartSetInteger(0,CHART_SHOW,true);
   return(res);
  }

 

Résultat :

MathSqrt_Screenshot

Voir aussi

Les types réels (double, float)