MathExp

La fonction retourne la valeur du nombre e donné à la puissance d.

double  MathExp(
   double  value      // puissance pour le nombre e
   );

Paramètres

value

[in]  Le nombre définissant la puissance.

Valeur de Retour

Un nombre de type double. En cas d'overflow, la fonction retourne INF (infiini), en cas d'underflow, MathExp retourne 0.

Note

On peut utiliser la fonction exp()au lieu de la fonction MathExp().

 

Exemple :

#define GRAPH_WIDTH  750
#define GRAPH_HEIGHT 350
 
#include <Graphics\Graphic.mqh>
 
CGraphic ExtGraph;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- prends 9 valeurs, de 0 à 8, avec un pas de 1
   vector X(9,VectorArange);
   Print("vector X = \n",X);
//--- calcule "e" (le nombre d'Euler) à la puissance de chaque valeur de vecteur X
   X=MathExp(X);
   Print("MathExp(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();
  }
//+------------------------------------------------------------------+
//| 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 :

MathExp_Screenshot

Voir aussi

Les types réels (double, float)