"MQL5 Programlama Temelleri: Diziler" makalesi için tartışma

 

Yeni makale MQL5 Programlama Temelleri: Diziler yayınlandı:

Diziler, değişkenler ve fonksiyonlar ile birlikte, hemen hemen tüm programlama dillerinin entegre bir parçasıdır. Bu makale öncelikle acemi MQL5 programcılarının ilgisini çekecektir, ancak tecrübeli programcılar da bilgilerini özetleme ve sistematize etme fırsatına sahip olacaktır.

Bu, dizinin ilk boyutunun on öğeye sahip olması ve ikinci boyutun üç öğeye sahip olması anlamına gelir. Aşağıdaki şekilde gösterilebilir:

Çok boyutlu dizi

İki boyutlu bir dizi, kolay anlaşılması için bir düzlem olarak gösterilebilir. Birinci boyutun boyutu uzunluğu belirler, ikinci boyutun boyutu genişliği belirler ve öğenin değeri örneğin deniz seviyesinden yükseklik olmak üzere düzlemde belirli bir noktanın parametrelerini tanımlar.

Yazar: Dmitry Fedoseev

 

Genel olarak fena bir makale değil - programlama ders kitaplarından daha iyi, çok kuru değil ve oldukça anlaşılır

Örneği beğenmedim:" OOP kullanarakçok boyutlu dizi ". Basit bir uygulama, ancak böyle dinamik bir dizi ile sonraki çalışma oldukça "zor", bana göre bu örneğin olmaması böyle korkutucu bir yapıdan daha iyi olurdu, imho.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Makale özellikle yeni başlayanlar için gerçekten fena değil.
 

Kötü yazılmış değil, ancak makale CArray ve onun soyundan gelenler hakkında tek kelime etmiyor.

Yeni başlayanlar, dizilerle OOP tarzında çalışmak için kendi sınıflarınızı yazmanız gerektiğini düşünebilir, ancak bunlar uzun zaman önce yazılmıştır.

 

MQL5 programlama eğitiminin başlangıcı neredeyse bitti

Tek şey, OOP üzerindeki dizi uygulamasının çok zorlanmış görünmesidir

 
avoitenko:

Kötü yazılmış değil, ancak makale CArray ve onun soyundan gelenler hakkında tek kelime etmiyor.

Yeni başlayanlar, dizilerle OOP tarzında çalışmak için kendi sınıflarınızı yazmanız gerektiğini düşünebilir, ancak bunlar uzun zaman önce yazılmıştır.

Bu arada, bu yazarın makale serisine devam etmesi için bir konudur.
 
avoitenko:

Kötü yazılmış değil, ancak makale CArray ve onun torunları hakkında tek kelime etmiyor.

CArray ve onun tüm torunları anatematize edilmelidir.

Bu tür şeyler şablonlara yazılmalıdır.

Vladix:

Tek şey, OOP üzerinde dizi uygulamasının çok zorlanmış görünmesi

Biraz öyle :)

 

Bu dizinin OOP'de nasıl daha iyi yapılabileceğine dair bir öneriniz var mı?

JavaScript'teki gibi bir şey elde etmeye çalışıyorum:

var ar=new Array();
ar[0]=new Array();
ar[1]=new Array();
ar[2]=new Array();

ar[0][0]=1;
ar[0][1]=2;

alert(ar[0][1]);

En büyük takılma noktası, JavaScript'te bir listeyi bir kerede bir diziye koyabilmenizdir:

ar[0][2]=Array(131,132,133,134);
alert(ar[0][2][3]);

Ve burada böyle bir şey bulmanın hiçbir yolu yoktur. Bu nedenle, nasıl bakarsanız bakın. iyi bir varyant olmayacaktır.

 
Integer: Bu diziyi OOP üzerinde nasıl daha iyi hale getirebileceğimize dair bir öneriniz var mı?

Yurich 'in dinamik dizileri uygulamasını seviyorum https://www.mql5.com/ru/forum/6729/page3, performans açısından ne kadar verimli olduğunu bilmiyorum, ancak kod okunabilirliği açısından süper.

 

Yeni başlayanlar için olduğu kadar MT5'e yeni başlayan deneyimli programcılar için de çok iyi bir makale. Sadece son bölüm "OOP Kullanarak Çok Boyutlu Diziler Oluşturma" en az ilgi çekicidir.

Yine de, küçük bir hata :

Array indexing order can be determined using the ArrayIsSeries() function:

bool series=ArrayIsSeries(ar);

Dizi ters sırada dizinlenmişse, işlev true değerini döndürecektir.

Bu yanlıştır. Bir dizinin indeksleme sırasını bilmek için kullanılacak fonksiyon ArrayGetAsSeries() dir.

ArrayIsSeries() bir dizinin TimeSeries olup olmadığını belirlemek için kullanılır.

 

There is only one method that allows you to do a search in an unsorted array

Bu tam olarak doğru değildir, Hash Tabanlı Arama Algoritmasına bir göz atın. Ancak bu algoritma muhtemelen ticaret için geçerli değildir.