MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1208

 
Maxim Kuznetsov :

ancak küresel bir hedef olmadan verileri nasıl vurursa vursun ve bunun gibi sıralamanız gerekmez.

mevcut projeden: (kısa) bir dizi alıyoruz, çıktıda öğelerin dizinlerini istenen sırada alıyoruz:

void BubleSortIndex5(double &data[5],int &index[5])
{
   for(int i=0;i<5;i++)
      index[i]=i;
   for(int i=0;i<4;i++) {
      for(int j=1;j<5;j++) {
         if (data[index[i]]>data[index[j]]) {
            int tmp=index[i];
            index[i]=index[j];
            index[j]=tmp;
         }
      }
   }
}


daha büyük diziler için, sıralama algoritmasını değiştirmeniz gerekir (büyük olanlar için balon yuvarlanmaz) - değiştirin.

ana mesaj - peki, orijinal verilere dokunmayın. Referanslarla veya daha iyisi dizi indeksleriyle çalışın. Aksi takdirde, daha sonra çok gerekli olacak olan bilgiler kaybolur.

Çok teşekkürler.  

"..... Bağlantılarla veya daha da iyisi dizi indeksleriyle çalışın . Aksi takdirde, bilgi kaybolur, bu da çok gerekli olacaktır ..."

Bağlantı yönetimini ilk kez duyuyorum. Linklerle çalışmak ile kaynak verilerle çalışmak arasındaki farkı anlamak için bu konuyu nereden okuyabileceğinizi söylerseniz sevinirim.Kovalev'in ders kitabında böyle bir konu hatırlamıyorum.

 

Meslektaşlarım, lütfen bana mumun istenen hacmine ulaşıldığında sesin çalmasının neden durduğunu söyleyin.

Ses dosyası SOUNDS klasöründedir, bir uyarı ayarlandığında dosya normal şekilde çalar ve göstergede sessizlik olur.

Yoksa göstergeler için sesleri olan özel bir klasöre mi ihtiyacınız var?


/---- Gösterge hesaplamasının ana döngüsü

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
Aralık=(yüksek[bar]-düşük[bar])/_Point;
IndBuffer[bar]=Aralık;

if(Aralık<5)
{
if (önceki_hesaplanan > 0 && Bayrak==0)
{
bayrak=1;
}
}
if(Aralık>=Eşik){
clr=0;
if (prev_calculated > 0 && Flag==1 )
{
bayrak=0;

PlaySound("buzzer");


}
}

Dosyalar:
 
ANDREY :

Hızlı yanıt için çok teşekkürler. Benim durumumda, bir dizi öğesinin her değeri benzersizdir ve tek bir örnekte bulunur. Yani diğer değerler gibi 5 değeri tekrarlanmaz.

Benim durumumda, 5 değeri sıralanmamış bir dizide olmayabilir. Yani, sıralanmamış bir dizide bazı hücreler doldurulamayabilir.
Fakat sıralanmamış dizide 5 değeri yoksa o zaman ArrayBsearch() fonksiyonunda ikinci parametre olarak 5 değerini belirtemeyeceğim.Sadece sıralanmamış dizide olması gereken değerler bu fonksiyona giriyor.
yardım için teşekkürler

O zaman dizi sıralamayı kastetmiyorsanız neden ArrayBsearch() işlevine ihtiyacınız var? Bir sayıyı bulmak için, dizinin hücrelerindeki sayılarla istenen sayının tek tek basit bir karşılaştırmasına ihtiyacınız var. İstenen bir sayı yoksa, sadece false döndürün.

 //+------------------------------------------------------------------+
//|                                                  FindInArray.mq4 |
//|                                       Copyright 2020, © Cyberdev |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev"
#property version    "1.00"
#property strict

#property script_show_inputs

#define size1 2 
#define size2 10

input double value = 5 ;
input int index = 0 ;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int vIndex = - 1 ;

bool searshValue( double & array2D[ 2 ][], const int _len, const int _index, const double _value) {
   int i;
   for (i = 0 ; i < _len; i++) {
     if ( NormalizeDouble (array2D[_index][i], _Digits ) == NormalizeDouble (_value, _Digits )) {
      vIndex = i;
       return true ;
    }
  }
   return false ;
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart () {
   double array[size1][size2] = {
    { 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 }, 
    { 10 , 3 , 8 , 9 , 2 , 1 , 1 , 8 , 8 , 6 }
  };
  
   if (searshValue(array, size2, index, value)) 
     Print ( "value1 array[" +( string )index+ "][" +( string )vIndex+ "]: " , array[index][vIndex]);
   else
     Print ( "Value: " +( string )value+ " not found!" );
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij :

O zaman dizi sıralamayı kastetmiyorsanız neden ArrayBsearch() işlevine ihtiyacınız var? Bir sayıyı bulmak için, dizinin hücrelerindeki sayılarla istenen sayının tek tek basit bir karşılaştırmasına ihtiyacınız var. İstenen bir sayı yoksa, sadece false döndürün.

Çok teşekkürler. Sizin sayenizde benim için değerli bilgiler öğrendim ve MQL4 ile ilgili ufkumu ve bilgimi genişlettim.

 
ANDREY :

Çok teşekkürler. Sizin sayenizde benim için değerli bilgiler öğrendim ve MQL4 ile ilgili ufkumu ve bilgimi genişlettim.

Memnuniyetle yardım ettim.

 
Mihail Matkovskij :

O zaman dizi sıralamayı kastetmiyorsanız neden ArrayBsearch() işlevine ihtiyacınız var? Bir sayıyı bulmak için, dizinin hücrelerindeki sayılarla istenen sayının tek tek basit bir karşılaştırmasına ihtiyacınız var. İstenen bir sayı yoksa, sadece false döndürün.

işlevini doğru anlamış mıyım?

searshValue ()

MQL4 dilinden değil, MQL5'ten bile değil mi?

 
Mihail Matkovskij :

Memnuniyetle yardım ettim.

Keşke senin gibi ...... neşeyle yardım eden daha çok insan olsa

 
ANDREY :

işlevini doğru anlamış mıyım?

MQL4 dilinden değil, MQL5'ten bile değil mi?

https://www.mql5.com/ru/forum/160683/page1208#comment_17279150 örneğe dikkatlice bakın. Orada bir şey bulamadınız mı?

İşte o fonksiyon:

 bool searshValue( double & array2D[ 2 ][], const int _len, const int _index, const double _value) {
   int i;
   for (i = 0 ; i < _len; i++) {
     if ( NormalizeDouble (array2D[_index][i], _Digits ) == NormalizeDouble (_value, _Digits )) {
      vIndex = i;
       return true ;
    }
  }
   return false ;
}
Biraz daha dikkatli olmalısın!
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2020.07.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 

Merhaba! Yardıma ihtiyacım var, paramı çekmek istemeyen bir aracı kurum aracılığıyla bu platformda açılmış bir hesabım var, ne yapmalıyım? s.u.Botagöz

 
Ботагоз Битабарова :

Merhaba! Yardıma ihtiyacım var, paramı çekmek istemeyen bir aracı kurum aracılığıyla bu platformda açılmış bir hesabım var, ne yapmalıyım? s.u.Botagöz

Bu kaynağın aracı kurumlarla hiçbir ilgisi yoktur.