[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 204

 
borilunad :
Merhaba Allis ! Kene ile okuma yapılmayan yerlerde baskının kaydedilmesi gerekir! Bir hata varsa çıktısını alıyorum, açılırsa açtığı dergiye yazılacak, hem de sadece bir kez!

Evet, sen bir Sihirbazsın)) Teşekkürler!
 
Allis :

Evet, sen bir Sihirbazsın)) Teşekkürler!
Aynen, programlamada "Sihirbaz"dan çok uzağım, ama sadece öğreniyorum, ama belki diğer bazı endüstrilerde!)) Teşekkürler!
 

Herkese iyi akşamlar 0 No'lu çubuğa (+1.0, -1) değerlerini çizen bir gösterge (şekilde üstte) var ve hesaplama 1 No'lu çubuğa dayanıyor. Bir gösterge yazmam gerekiyor. bu, her birindeki çubuk sayısını üst göstergenin +1 ve -1'lik ayrı bir sürekli bloğu olarak sayar ve TÜM TARİHTE (şekilde ortadaki, histogram sütununun birim cinsinden yüksekliği çubuk numarasına karşılık gelir) .Bir gösterge yaptım (şekilde altta olan), ama sadece pencereye takıldığı andan itibaren mavi dikey çizgi çizmeye başlıyor.Kimler yardım edebilir!


kod

 int start()
  {
    
     int i;
      
     for (i= 1 ;i< Bars - 34 - 1 ;i++)                                               
     {
       double AO_Sig_Sig_1 = iCustom ( NULL , 0 , "AO_His_l-b_Signal-Signal_sploshnoy_PSR" , 0 ,i);                           
       double AO_Sig_Sig_2 = iCustom ( NULL , 0 , "AO_His_l-b_Signal-Signal_sploshnoy_PSR" , 0 ,i+ 1 );
      
                                  
       if ((AO_Sig_Sig_1!=AO_Sig_Sig_2)) break ;                                                                
     }
         
    i=i*(AO_Sig_Sig_1);         
               
     if (i> 0 )            
     {
      UpMapBuffer[ 0 ]=i;
     }
     else
     {
      UpMapBuffer[ 0 ]= 0 ;
     } 
         
     if (i< 0 )         
     {
      DnMapBuffer[ 0 ]=i;
     }
     else
     {
      DnMapBuffer[ 0 ]= 0 ;
     }          
                 
      
  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
borilunad :

Bu bölümün geri kalanı! Aritmetik işlemlere ve baskınıza bakın!

Yapıştır ve dönüşümlü olarak yalnızca iki sonuç göreceksiniz:

 int x = MathRand () % 2 ;
   Print ( "x =" ,x);


Mantığını anlamadığım bir şey. Kitapta okuduğum:

a değişkeninin b değişkenine bölünmesinin kalanını hesaplamanız ve sonucu ostatok değişkenine yazmanız gerekiyorsa, atama operatörü şöyle görünür:

ostatok = a % b;

Bizim durumumuzda MathRand ()'ı 2'ye bölerken x değerinin 0 veya 1 olması gerektiği ortaya çıktı. Neden aniden 0 veya 1 çıktı? Örneğin rastgele bir sayı 9 çıkacaktır.%9 2 = 4,5. kalan 4'e eşittir.
 
hoz :


Mantığını anlamadığım bir şey. Kitapta okuduğum:

Bizim durumumuzda MathRand ()'ı 2'ye bölerken x değerinin 0 veya 1 olması gerektiği ortaya çıktı. Neden aniden 0 veya 1 çıktı? Örneğin rastgele bir sayı 9 çıkacaktır.%9 2 = 4,5. kalan 4'e eşittir.

Bir şey yolunda gitmediğinde, yanıt almak için yalnızca birkaç tıklama yeterlidir...

PS kalan = %9 2 = 1.

 
TarasBY :

Bir şey yolunda gitmediğinde, yanıt almak için yalnızca birkaç tıklama yeterlidir...

PS kalan = %9 2 = 1.


Pekala, şöyle yazılmış:

Kalanla bölme ( modulo bölme , bölmeden kalanı bulma , bölme işleminden kalanı bulma ) - aritmetik   iki tamsayı ile sonuçlanan bir işlem : kısmi bölüm ve bir tamsayının başka bir tamsayıya bölümünden kalan . "

9 : 2 = 4.5 Bunlar çiftler

Kesirli kısmı düşürürseniz 4 olur. 1'i nereden aldınız?

 
hoz :


Mantığını anlamadığım bir şey. Kitapta okuduğum:

Bizim durumumuzda MathRand ()'ı 2'ye bölerken x değerinin 0 veya 1 olması gerektiği ortaya çıktı. Neden aniden 0 veya 1 çıktı? Örneğin rastgele bir sayı 9 çıkacaktır.%9 2 = 4,5. kalan 4'e eşittir.

Victor, int'yi double ile karıştırma! Bu nedenle int x = MathRand () % 2 ; 0 veya 1 verir! 0.1 veya 0.9 veremez, 1.1 veya 1.9 da veremez, çünkü int'deki ondalık sayılar yuvarlanır ve 0,5'ten küçük sayılar atılır! Ve % işareti bölme işareti değil, bölmenin geri kalanı anlamına gelir. Bölme işareti / şeklindedir.

Örneğinizi 9 ile koydum ve tek sonucu elde ettim, çünkü 1 rastgele olmadan:

   int x = 9 % 2 ; //MathRand()
   Print ( "x =" ,x);

Sen sor:

9 : 2 = 4.5 Bunlar çiftler

Kesirli kısmı atarsak 4 olur. 1'i nereden aldınız?

Cevap veriyorum: Yani 0,5, 1'e yuvarlanır!

İlginç bir şekilde, iki yerine bir nokta ve sıfırı (2.0) koyduğumda, derleyici bana %'nin yalnızca bir tamsayı gerektiren bir hata verdi!

Bu nedenle, double x koysanız bile, yine de bir int tamsayısı çıkıyor. Şüpheleriniz için teşekkürler Victor! Onlar ve sizler sayesinde benim için matematiksel dönüşümlerin olanaklarını genişletecek ilginç bir çalışma yaptım! Benimle bir bardak (sanal)! :))

 
hoz :


Pekala, şöyle yazılmış:

Kalanla bölme ( modulo bölme , bölmeden kalanı bulma , bölme işleminden kalanı bulma ) - aritmetik   iki tamsayı ile sonuçlanan bir işlem : kısmi bölüm ve bir tamsayının başka bir tamsayıya bölümünden kalan . "

9 : 2 = 4.5 Bunlar çiftler

Kesirli kısmı düşürürseniz 4 olur. 1'i nereden aldınız?

9'dan 2'ye kalansız bölünebilen en yakın küçük tam sayı kaçtır? Ve sonra bu sayıyı temettüden (9) çıkarın. Ne oldu?

Not Eğer işe yaramadıysa, sonucu yazdırabilirsiniz: Yazdır ("ostatok = ", 9 % 2);

 

07.03.2013 21:15

İyi günler. Bana Ordersend() "EURUSD" parametrelerinde Symbol() yerine nasıl bir sembol yazacağımı söyle ya da nasıl?

 
Mathemat :

07.03.2013 21:15

İyi günler. Bana Ordersend() "EURUSD" parametrelerinde Symbol() yerine nasıl bir sembol yazacağımı söyle ya da nasıl?

BOŞ