Print

Imprime un certain message au journal des experts. Les paramètres peuvent avoir n'importe quel type.

void  Print(
   argument,     // première valeur
   ...           // valeurs ultérieures
   );

Paramètres

...

[in]  N'importe quelles valeurs divisées par les virgules.La quantité de paramètres ne peut pas excéder 64.

Note

On ne peut pas transmettre les tableaux à la fonction Print(). Les tableaux doivent être déduits par les éléments.

Les données de type double sont déduites à près de 16 chiffres décimaux après le point, de plus les données peuvent être déduites au format  traditionnel ou dans le format scientifique — suivant quelle inscription sera plus compacte. Les données du type float sont déduites avec 5 chiffres décimaux après le point. Pour la sortie des nombres réels avec une autre exactitude ou dans le format spécifié il est nécessaire d'utiliser la fonction PrintFormat().

Les données du type bool sont déduites en forme des chaînes "true" et "false". Les dates sont déduites comme YYYY.MM.DD HH:MI:SS. Pour la sortie de la date dans un autre format il est nécessaire d'utiliser la fonction TimeToString(). Les données du type color sont déduites en forme de la chaîne R,G,B, ou en forme du nom de la couleur, si cette couleur assiste dans l'ensemble des couleurs.

При работе в тестере стратегий в режиме оптимизации функция Print() не выполняется.

Exemple:

void OnStart()
  {
//--- déduisons DBL_MAX à l'aide de Print(), c'est égal à PrintFormat(%%.16G,DBL_MAX)
   Print("---- comment apparaît DBL_MAX -----");
   Print("Print(DBL_MAX)=",DBL_MAX);
//---maintenant nous déduisons le nombre DBL_MAX à l'aide de PrintFormat()
   PrintFormat("PrintFormat(%%.16G,DBL_MAX)=%.16G",DBL_MAX);
//--- Déduit au journal "Experts"
// Print(DBL_MAX)=1.797693134862316e+308
// PrintFormat(%.16G,DBL_MAX)=1.797693134862316E+308
 
//--- regardons comment on déduit le type float
   float c=(float)M_PI// il faut évidemment rendre égal au type cible
   Print("c=",c, "    Pi=",M_PI"    (float)M_PI=",(float)M_PI);
// c=3.14159    Pi=3.141592653589793    (float)M_PI=3.14159
   
//--- montrons ce qui peut se passer aux opérations arithmétiques sur les types réels
   double a=7,b=200;
   Print("---- avant les opérations arithmétiques");
   Print("a=",a,"   b=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- devisons a sur b (7/200)
   a=a/b;
//---comme si nous restaurons la valeur dans la variable b maintenant
   b=7.0/a; // il est prévu que b=7.0/(7.0/200.0)=>7.0/7.0*200.0=200 - mais ce n'est pas vrai
//--- déduisons une nouvelle valeur calculée b
   Print("-----après les opérations arithmétiques");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- déduit au journal "Experts"
// Print(b)=200.0
// Print(DoubleToString(b,16))=199.9999999999999716 ( voyons qu'en fait b n'est pas égal déjà à 200.0)   
 
//--- créons une très petite valeur epsilon=1E-013
   double epsilon=1e-13;
   Print("---- créons un très petit nombre");
   Print("epsilon=",epsilon); // recevrons  epsilon=1E-013
//--- maintenant nous décomptons l'epsilon du nombre b et nous déduisons de nouveau la valeur au journal "Experts"
   b=b-epsilon;
//--- déduisons par deux moyens
   Print("---- après la soustraction d'epsilon de la variable b");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- déduit au journal "Experts"
// Print(b)=199.9999999999999  (maintenant la valeur b après la soustraction de l'epsilon ne peut pas être arrondi à 200)
// Print(DoubleToString(b,16))=199.9999999999998578
//    (maintenant la valeur b après la soustraction de l'epsilon ne peut pas être arrondi à 200)
  }

Voir aussi

DoubleToString, StringFormat