Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 567

 

Alexey Vik, Vladon ,

Evet, her zamanki gibi, her şey oldukça açık. Ya dikkatsizliğim ya da fazla çalışmam. Bahşiş için teşekkürler.

Bir tane daha vardı, hatta bir hata bile değil, fonksiyonda bir uyarı vardı:

 // 1.5 Возвращает массив INT из элементов массива STRING. =================================================================================
void fCreat_StrToInt ( string & fsa_Value[],                                     // Массив элементов string
                      int & fia_OUT[],                                          // Возвращаемый массив int
                      int fi_IND,                                              // Количество ячеек в массиве
                      int fi_Factor = 1 ,                                       // Множитель
                      string fs_NameArray = "" )                                // Имя возвращаемого массива
{
    int    li_size = ArraySize (fsa_Value);
    string ls_row = "" ;
//----
    ArrayResize (fia_OUT, fi_IND);
    
    for ( int li_int = 0 ; li_int < fi_IND; li_int++)
    {
        if (li_int < li_size)
        {
            fia_OUT[li_int] = StrToInteger (fsa_Value[li_int]) * fi_Factor;
        }
        else
        {
            fia_OUT[li_int] = StrToDouble (fsa_Value[li_size - 1 ]) * fi_Factor;
        }
        ls_row = StringConcatenate (ls_row, fs_NameArray, "[" , li_int, "] = " , fia_OUT[li_int], "; " );
    }
    
    if (fs_NameArray != "" ) Print (ls_row);
//----
}

Çizgide:

            fia_OUT[li_int] = StrToDouble (fsa_Value[li_size - 1 ]) * fi_Factor;
Normal kod gibi görünüyor. Bu uyarılar dikkate alınmamalı mı?
 
uyarı nedir?
 
hoz :

Alexey Vik, Vladon ,


Normal kod gibi görünüyor . Bu uyarılar dikkate alınmamalı mı?


Orada normal olan ne?

 void fCreat_StrToInt ( string & fsa_Value[],                                     // Массив элементов string
                        int & fia_OUT[],                                            // Возвращаемый массив int
                       int fi_IND,                                               // Количество ячеек в массиве
                       int fi_Factor = 1 ,                                       // Множитель
                       string fs_NameArray = "" )                                 // Имя возвращаемого массива
{
     int     li_size = ArraySize (fsa_Value);
     string ls_row = "" ;
//----
     ArrayResize (fia_OUT, fi_IND);
    
     for ( int li_int = 0 ; li_int < fi_IND; li_int++)
    {
         if (li_int < li_size)
        {
            fia_OUT[li_int] = StrToInteger (fsa_Value[li_int]) * fi_Factor; // это верно
        }
         else
        {
             fia_OUT[li_int] = StrToDouble (fsa_Value[li_size - 1 ]) * fi_Factor; // Это НЕ ВЕРНО !
        }
        ls_row = StringConcatenate (ls_row, fs_NameArray, "[" , li_int, "] = " , fia_OUT[li_int], "; " );
    }
    
     if (fs_NameArray != "" ) Print (ls_row);

Tip uyumsuzluğunuz var (kırmızı ile vurgulanmış): Değer aralığı int'ninkinden çok daha geniş olan int tipine double type değeri iletmeye çalışıyorsunuz. Anlam kaybı olabilir. Elbette derleyici bu konuda uyarır.
 
Vladon :
uyarı nedir?
possible loss of data due to type conversion
 
VladislavVG :

Orada normal olan ne?

Tip uyumsuzluğunuz var (kırmızı ile vurgulanmış): Değer aralığı int'ninkinden çok daha geniş olan int tipine double type değeri iletmeye çalışıyorsunuz. Anlam kaybı olabilir. Elbette derleyici bu konuda uyarır.
Örtük tür dönüşümü ne olacak? Kabul etsem de, bu bir hataya yol açabilir. StrToInteger aracılığıyla hemen dönüştürmek daha iyidir.
 

Karakter sayısı nasıl sayılır?

Ve bir gün izin olup olmadığını nasıl öğrenebilirim (Cumartesi, Pazar)?

 
hoz :
Örtük tür dönüşümü ne olacak? Kabul etsem de, bu bir hataya yol açabilir. StrToInteger aracılığıyla hemen dönüştürmek daha iyidir.

Çifte geçtiyseniz, o zaman sorun olmaz. Daha küçük bir aralığa sahip bir türün değerini, daha büyük olan bir türe geçirmiş olursunuz. Ve olası bir veri kaybı olmazdı. Ve buna göre, herhangi bir uyarı da olmayacaktı.
 

Herkese selam!

MQL4 belgeleri değişti. Ders kitabı değişmedi.

Yeni MQL4 özelliklerini kullanmak için MQL 5 eğitimini incelemeniz mi gerekiyor?

Yoksa başka özel literatür var mı?

 
kosmos0975 :

Herkese selam!

MQL4 belgeleri değişti. Ders kitabı değişmedi.

Yeni MQL4 özelliklerini kullanmak için MQL 5 eğitimini incelemeniz mi gerekiyor?

Yoksa başka özel literatür var mı?

Hayır, ihtiyacı yok. 4-ku çalışıyorsanız, 4-ke belgelerini inceleyin. Buna rağmen, bir şekilde iç içe geçmişler.

Gördüğüm kadarıyla derleyici artık birleşik (hem 4-ku altında hem de altında-ku yazabilirsiniz). Bu nedenle, bazı farklılıklar dışında dokümantasyon tekrarlanır. Genel olarak, 4'üncü belgeyi okumanızı, ancak 5'e tırmanmamanızı tavsiye ederim. İlk bakışta daha zor. Bundan hiçbir şey kaybetmeyeceksin.

 
Bilgisayardan teletrade firması üzerinden gerçek hesaba geçiyorum her şey tabletten çalışıyor android 4.2.2'de gerçek tablet hesabı açılmıyor. söyle bana sebep ne