MathExp

La funzione restituisce il valore di e elevato alla potenza di d.

double  MathExp(
   double  value      // potenza per il numero e
   );

Parametri

valore

[in] Un numero che specifica la potenza.

Valore restituito

Un certo numero di tipo double. In caso di overflow, la funzione restituisce INF (infinito), in caso di underflow MathExp restituisce 0.

Nota

Al posto di MathExp() è possibile utilizzare exp().

 

Esempio:

#define GRAPH_WIDTH  750
#define GRAPH_HEIGHT 350
 
#include <Graphics\Graphic.mqh>
 
CGraphic ExtGraph;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ottenere 9 valori da 0 a 8 con il passo 1
   vector X(9,VectorArange);
   Print("vector X = \n",X);
//--- calcolare la "e" (numero di Eulero) alla potenza di ogni valore vettoriale di X
   X=MathExp(X);
   Print("MathExp(X) = \n",X);
   
//--- trasferire i valori calcolati dal vettore all'array
   double y_array[];
   X.Swap(y_array);
 
//--- traccia un grafico dei valori vettoriali calcolati
   CurvePlot(y_array,clrDodgerBlue);
 
//--- attendere di aver premuto i tasti Escape o PgDn per eliminare il grafico (prendere uno screenshot) ed uscire
   while(!IsStopped())
     {
      if(StopKeyPressed())
         break;
      Sleep(16);
     }
 
//--- pulire
   ExtGraph.Destroy();
  }
//+-------------------------------------------------------------------------------+
//| Riempire un vettore con 'valori' con incremento di 'passo'                    |
//+-------------------------------------------------------------------------------+
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
  }
//+-----------------------------------------------------------------------------------------------------------+
//| Quando si preme ESC, restituire 'true'                                                                    |
//| Quando si preme PgDn, prendere uno screenshot del grafico e restituire 'true'                             |
//| Altrimenti restituire 'false'                                                                             |
//+-----------------------------------------------------------------------------------------------------------+
bool StopKeyPressed()
  {
//--- se viene premuto ESC, restituisce 'true'
   if(TerminalInfoInteger(TERMINAL_KEYSTATE_ESCAPE)!=0)
      return(true);
//--- se PgDn viene premuto e uno screenshot del grafico viene preso correttamente, restituisce 'true'
   if(TerminalInfoInteger(TERMINAL_KEYSTATE_PAGEDOWN)!=0 && MakeAndSaveScreenshot(MQLInfoString(MQL_PROGRAM_NAME)+"_Screenshot"))
      return(true);
//--- restituisce 'false'
   return(false);
  }
//+------------------------------------------------------------------+
//| Crea un oggetto grafico e disegna una curva |
//+------------------------------------------------------------------+
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();
  }
//+------------------------------------------------------------------+
//| Fa uno screenshot e salva l'immagine in un file                  |
//+------------------------------------------------------------------+
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);
  }

 

Risultato:

MathExp_Screenshot

Vedi anche

Tipi reali (double, float)