Böyle bir işlev var, kimse görmese de (ne yardımda ne de sitede), ama öyle)
Böyle bir işlev var, kimse görmese de (ne yardımda ne de sitede), ama öyle)
Böyle bir işlev var, kimse görmese de (ne yardımda ne de sitede), ama öyle)
yakında gelecek
Tek bir elemanı kaldırmak için bu işlev oldukça uygundur.
void OnStart () { double array[]; CopyOpen ( _Symbol , PERIOD_CURRENT , 0 , 6 , array); ArrayPrint (array); dellArrayElement( 3 , array); ArrayPrint (array); } /*******************************************************************/ void dellArrayElement( int shift, double &arr[]) { int arrSize = ArraySize (arr); if (shift > arrSize) return ; if (shift < arrSize) ArrayCopy (arr, arr, shift, shift+ 1 ); ArrayResize (arr, arrSize- 1 ); }
Sonuç
2018.12 . 22 09 : 55 : 06.206 ! 00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13612 1.13586 1.13614 2018.12 . 22 09 : 55 : 06.206 ! 00 (EURUSD,M15) 1.13588 1.13607 1.13588 1.13586 1.13614
Ardından, yürütme gerçeğini kontrol edebilmeniz için bu işlevi bağımsız olarak bool türüne dönüştürebilirsiniz. Ama prensipte eller eğri değilse ve ona hangi değerleri göndereceğinizi kontrol edebiliyorsanız yine de kullanabilirsiniz...
Statik dizilerin boyutunun küçültülemeyeceğini unutmayın.
Tek bir öğeyi kaldırmak için bu işlev oldukça uygundur
Sonuç
Ardından, yürütme gerçeğini kontrol edebilmeniz için bu işlevi bağımsız olarak bool türüne dönüştürebilirsiniz. Ama prensipte eller eğri değilse ve ona hangi değerleri göndereceğinizi kontrol edebiliyorsanız yine de kullanabilirsiniz...
Statik dizilerin boyutunun küçültülemeyeceğini unutmayın.
Bir arkadaş diyor ki: tek boyutlu ve iki boyutlu . 2D ile işleviniz çalışmıyor. Aynı isimli bir fonksiyonun her iki konu ile de nasıl çalışacağını göster :)
Dizinin boyutunu küçültmüyorum ama ondan bir eleman çıkarıyorum, bunlar farklı şeyler. Anladığım kadarıyla, 1.13612 değeri işlevinizden kaldırılmış, dellArrayElement( 3 , array); satırında belirtilmiş. dizi yani 3. eleman diziden kaldırıldı, doğru anladım mı? Bu tür deneylerin programı yoğun bir şekilde yükleme hızı nedir?
oh, gizli işlev ve nasıl çalışıyor?
C++ da böyle fonksiyonlar var, kütüphaneye bağlanıyorsunuz ve bu işlem yapılıyor. Ama mql'de böyle bir fonksiyonun olmadığını ve el yazısı fonksiyonları kullanmak istediğimi hesaba katar.
Bunu http://kvodo.ru/urok-7-2-massivyi-osnovnyie-operatsii.html (ve ayrıca bu https://purecodecpp.com/archives/1935 ) buldum
n öğeden oluşan X dizisinden, m -inci öğeyi sayıya göre çıkarmak gerekli olsun . Bunun için m elemanı yerine ( m + 1 )-th elemanı , ( m + 1)-th yerine ( m + 2 )-th, ( yerine n - 1 yazmak yeterlidir. n-2) ve bu diziyle daha fazla çalışırken n-1 öğelerini kullanın:
cout<< "\n m=" ; cin>>m; //ввод номера элемента, подлежащего удалению for (i=m; i<n- 1 ; X[i+ 1 ],i++); //удаление m-го элемента for (i= 0 ; i<n- 1 ; i++) cout<<X[i]<< "\t" ; //вывод измененного массива n--; //уменьшение количества элементов в массиве
Ama bu c++ ile. Ancak burada dizide depolanan öğelerin sayısını bilmeniz gerekir. Elemanları yazıldığı gibi sayacak bir fonksiyon yazmak gerekiyor.
Tek bir öğeyi kaldırmak için bu işlev oldukça uygundur
Ve diziden örneğin bir fiyat değeri değil, bir tarih çıkarmanız gerekirse, CopyOpen yardımdan tarihlerle çalışır mı, bu işlevin fiyatlar ile çalıştığı bana netleşti mi?
Böyle bir işlev var, kimse görmese de (ne yardımda ne de sitede), ama öyle)
işlev nasıl çalışır
int ArrayRemove()
Kılavuzda bununla ilgili bir açıklama yok, nereden okuyabilirim?
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz