Doğru düşünülen diziler kavramını anlıyorsunuz? birden çok indeksli bir değişken?
Tüm başlatma, tüm dizinlere bir başlangıç değeri ayarlamaktır.
Gönderdiğiniz örneklerde olduğu gibi her dizine ayrı ayrı değer atayabilir veya
Eğer başlangıç değerinin tüm indeksler için aynı olmasını istiyorsanız değeri bir defa bu şekilde girebilirsiniz,
int myarray[ 100 ]={ 0 }; //initializes all 100 indexes to value zero
veya,
int myarray[ 100 ][ 5 ]={- 1 }; //multi dimensions, initializes all 500 indexes to -1.
Ayrıca mql4 kitabında bazı hatalar olduğunu da unutmayın. Sanırım ikinci örnekte şöyle diyor:
"Başlatılan dizide bir veya birkaç sabit atlanabilir. Böyle bir durumda, sayısal türdeki karşılık gelen dizi öğeleri sıfırla başlatılır , dize türündeki dizilerin öğeleri, "" dize değeriyle başlatılır (boşluksuz tırnak işaretleri), yani boş bir satırla (boşlukla karıştırılmamalıdır )."
ve sonra bu örneği gösterir,
string Mas_s[ 4 ] = { "a" , "b" , , "d" }; // String array
muhtemelen şu anlama geliyordu:
string Mas_s[ 4 ] = { "a" , "b" , "" , "d" }; // String arrayayrıca kitabın bir yerinde "tüm diziler varsayılan olarak statik türdedir" diyor, bu da diğer değişkenler gibi bir hatadır, genel oldukları durumlar dışında statik olarak tanımlanmadıkça statik değildir.
Doğru düşünülen diziler kavramını anlıyorsunuz? birden çok dizine sahip bir değişken?
Tüm başlatma, tüm dizinlere bir başlangıç değeri ayarlamaktır.
Tüm indeksler için başlangıç değerinin aynı olmasını istiyorsanız değeri bir kez bu şekilde girebilirsiniz.
int myarray[100] {0} //100 dizinin tümünü sıfır değerine başlatır.
Doğru
Hala biraz kafam karıştı.
Yani bir dizim varsa
Çift myarray[100]
Dizi türünü (double), Dizi adını (myarray) ve dizin sayısını (100) bildirdim.
MyArray dizisinin değeri Double myarray[100] = {1, 2, 3, ....} kullanılarak atanabilir mi, böylece myarray[1]=1 ve myarray[2]=2 vb.
Şimdiye kadar sadece döngülerden değer almak amacıyla diziler oluşturdum ve o zaman bile dizi çok gevşek bir şekilde kullanıldı.
Teşekkürler, bu hatayı belirtmek, sahip olduğum küçük bir soruyu temizledi.
İlk dizi dizini sıfırdır, yani yaparsanız,
double myarray[100] = {1,2,3 .....};
yapacak, myarray[0] == 1, myarray[1] ==2 vb.
Ah doğru tamam.
Peki ya çok boyutlu bir Dizim varsa
Double Myarray[3][4] = {0.1,0.2,0.3,0.4,0.5} (daha önce tamsayı kullandığımı fark ettiğim için üzgünüm)
Bir değeri nasıl çağırabilirim?
buna myarray[index,index] gibi diyorsunuz; veya myarray[index][index]; aynı şeyi yapar.
val = dizim[2,2]; //dizi indeksi 2,2'den değeri alır, onu val'e koyar.
Yazdır(myarray[2,2]); // yazdırır
Uyarı(myarray[2][2]); // uyarır
Değer ne olurdu?
Çift Myarray[3][4] = {0.1,0.2,0.3,0.4,0.5}
Myarray[1][3]=?
3 x 4 diziniz var
double Myarray[3][4] = {0.1,0.2,0.3,0.4,0.5} ;
böyle dolduracaktı
Myarray[0,0] = 0.1;
Myarray[0,1] = 0.2;
Myarray[0,2] = 0.3;
Myarray[0,3] = 0.4;
Myarray[1,0] = 0,5;
Myarray[1,1] = 0.0;
Myarray[1,2] = 0.0;
vb
şu an kararsızım..
Myarray[3][4] çok boyutlu değil mi, öyleyse neden sadece boyutlardan birinin değerini değiştirerek değerleri çağırabiliyorum?
- Ü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
mql4 kılavuzundan diziler hakkında bilgi alıyorum ve sorun yaşadığım bir konu ile karşılaştım; dizi başlatma biraz şaşırtıcı Aşağıdaki ifadeyi anlamıyorum
"
Dizi Başlatma
Bir dizi yalnızca karşılık gelen türdeki sabitlerle başlatılabilir. Tek boyutlu ve çok boyutlu diziler, virgülle ayrılmış tek boyutlu sabitler dizisiyle başlatılır. Dizi, küme parantezlerine dahil edilmiştir:
"
Bir dizinin yalnızca karşılık gelen türdeki sabitlerle başlatılabileceği gerçeği kafamı karıştırmıyor, ancak dizi başlatma kavramı ve tek boyutlu bir dizinin çok boyutlu bir diziyi başlatabilmesi konusunda kafam karıştı.
Aşağıdakilerle kafam karıştı.
"
Başlatılan dizide bir veya birkaç sabit atlanabilir. Böyle bir durumda, sayısal türdeki karşılık gelen dizi öğeleri sıfırla başlatılır, dize türündeki dizilerin öğeleri, "" dize değeriyle (boşluksuz tırnak işaretleri), yani boş bir satırla (boşlukla karıştırılmamalıdır) başlatılır. ). Sonraki program, bazı değerlerin çıkarıldığı bir dizi tarafından başlatılan dizilerin değerlerini görüntüler (script arrayalert.mq4 ) :
"
Sonuçta dizi başlatma kavramını kavrayamıyorum.