Print

Uzman Danışman günlüğüne bir mesaj girer. Parametreler herhangi bir tipte olabilirler.

void  Print(
   argument,     // ilk değer
   ...           // sonraki değerler
   );

Parametreler

...

[in]  Virgül ile ayrılmış herhangi bir değer. Parametre sayısı 64'ü geçemez.

Not

Diziler Print() fonksiyonuna geçirilemez. Diziler elemen eleman girilmelidir.

double tipi veriler, noktadan sonra 16 hanelik kesinliğe kadar gösterilebilir ve hangi girdinin daha düzenli olduğuna bağlı olarak bilimsel veya geleneksel biçimlerde çıktılanabilir. float tipi veri, noktadan sonra 5 hane ile çıktılanır. Reel sayıları önceden tanımlanmış bir biçimde veya farklı bir kesinlikte çıktılamak için, PrintFormat() fonksiyonunu kullanın.

bool tipi veriler, "true" veya "false" dizgileri ile çıktılanırlar. Tarihler YYYY.MM.DD HH:MM:SS şeklinde gösterilir. Veriyi farklı bir biçimde göstermek için TimeToString()fonksiyonunu kullanın. color tipli verilere ya R,G,B dizgileri şeklinde veya renk kümesinde mevcut olan bir rengin ismiyle dönüş yapılır.

Print() function does not work during optimization in the Strategy Tester.

Örnek:

void OnStart()
  {
//--- DBL_MAX değerini Print() kullanarak çıktıla, bu şuna eşdeğerdir PrintFormat(%%.16G,DBL_MAX)
   Print("---- DBL_MAX nasıl görünüyor -----");
   Print("Print(DBL_MAX)=",DBL_MAX);
//--- Şimdi PrintFormat() kullanarak bir DBL_MAX sayısını çıktıla
   PrintFormat("PrintFormat(%%.16G,DBL_MAX)=%.16G",DBL_MAX);
//--- Uzmanlar bültenine çıktıla
// Print(DBL_MAX)=1.797693134862316e+308
// PrintFormat(%.16G,DBL_MAX)=1.797693134862316E+308
 
//--- float tipinin nasıl çıktılandığına bak
   float c=(float)M_PI// Hedef tipe açık olarak dönüştürmeliyiz
   Print("c=",c, "    Pi=",M_PI"    (float)M_PI=",(float)M_PI);
// c=3.14159    Pi=3.141592653589793    (float)M_PI=3.14159
   
//--- Reel tiplerin aritmetik işlemlerinde ne olabilir göster
   double a=7,b=200;
   Print("---- Aritmetik işlemlerden önce");
   Print("a=",a,"   b=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- a'yı b'ye böl (7/200)
   a=a/b;
//--- Şimdi b değişkeni içine yalandan bir değer kaydet
   b=7.0/a; // Beklenen şu b=7.0/(7.0/200.0)=>7.0/7.0*200.0=200 - ama farklı
//--- b'nin yeni hesaplanan değerini çıktıla
   Print("----- Aritmetik işlemlerden sonra");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- Uzmanlar bültenine çıktıla
// Print(b)=200.0
// Print(DoubleToString(b,16))=199.9999999999999716 (b'nin atrk 200.0 olmadığını gör)   
 
//--- çok küçük bir değer oluştur, epsilon=1E-013
   double epsilon=1e-13;
   Print("---- Çok küçük bir değer oluştur");
   Print("epsilon=",epsilon); // epsilon=1E-013 değerini al
//--- Şimdi epsilonu b'den çıkar ve Uzmanlar günlüğünde yeniden çıktıla
   b=b-epsilon;
//--- İki yol kullan
   Print("---- epsilonu b değişkeninden çıkardıktan sonra");
   Print("Print(b)=",b);
   Print("Print(DoubleToString(b,16))=",DoubleToString(b,16));
//--- Uzmanlar bültenine çıktıla
// Print(b)=199.9999999999999  (artık epsilonu çıkarmadan sonra b'nin değeri 200'e yuvarlanamaz)
// Print(DoubleToString(b,16))=199.9999999999998578
//    (artık epsilonu çıkarmadan sonra b'nin değeri 200'e yuvarlanamaz)
  }

Ayrıca Bakınız

DoubleToString, StringFormat