[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 184

 
   double Mas[]; //массив куда надо заносить данные

Sıfırlar gösteriyorsa, kodu eklemek ve parmaklarda açıklamamak daha iyidir.

Açık bir dizi bildirilirse, ArrayResize yapmak veya hemen daha büyük bir boyut bildirmek istenir.

 
double mas[];
int start()
  {
   double v1=mas[ 1 ];
  mas[ 1 ]= 89 ;
   double v2=mas[ 1 ];
   ArrayResize (mas, iBars ( NULL , 0 ));
   double v3=mas[ 1 ];
  mas[ 1 ]= 89 ;
   double v4=mas[ 1 ];
   Alert (v1, "-" ,v2, "-" ,v3, "-" ,v4);
   return ( 0 );
  }

Komut dosyası tamamen komşudur ve ayrıca Alert(GetLastError()); işlevini de yakalayabilirsiniz. alma

ERR_ARRAY_INDEX_OUT_OF_RANGE 4002 Dizi dizini - aralık dışında
 
splxgf :

Sıfırlar gösteriyorsa, kodu eklemek ve parmaklarda açıklamamak daha iyidir.

Açık bir dizi bildirilirse, ArrayResize yapmak veya hemen daha büyük bir boyut bildirmek istenir.

Kodu ilk mesaja ekledim. Sadece bir yere dizi oluşturmak için birkaç doğru satır eklemeniz gerekiyor. Asıl soru buydu.)

Temel olarak, şöyle bir şey olması gerektiğini düşünüyorum:

ArrayResize (Mas,n);

Mas[n]={fark};

n yeni boyuttur, diff ortaya çıkan farklılıkların değeridir.

Ama böyle olmuyor, aradaki 0.00000 farkını gösteriyor. Zaten döngüye ve döngünün arkasına ve hatta koşula eklemeye çalıştım.

Kısacası, bir sersemlik içindeyim.)

Nasıl yazılacağını biliyorsanız, size çok minnettar olacağım.

 
splxgf :

Komut dosyası tamamen komşudur ve ayrıca Alert(GetLastError()); işlevini de yakalayabilirsiniz. alma

ERR_ARRAY_INDEX_OUT_OF_RANGE 4002 Dizi dizini - aralık dışında

Hayır, burada kodda dizinin hem boyutunu hem de değerini açıkça belirttiğiniz ortaya çıktı. Bunu nasıl yapacağımı makalede anladım.

Ama benim örneğimde bir şekilde işe yaramıyor. (

 
NickXXX :

açıkça kodda dizinin hem boyutunu hem de değerini belirtirsiniz

Başka seçenek yok.

   double v1=mas[ 1 ];
  mas[ 1 ]= 89 ;
   Alert ( GetLastError ());
   double v2=mas[ 1 ];
   Alert ( GetLastError ());
   ArrayResize (mas, iBars ( NULL , 0 ));

Öğeler, erişildiklerinde oluşturulmaz.

 
splxgf :

Başka seçenek yok.

Öğeler, erişildiklerinde oluşturulmaz.

Evet bak. Doğru şekilde anladım?

Örneğinizde, tek değer 89'dan oluşan tek boyutlu bir dizi oluşturuyorsunuz.

Bu arada, boyut derken tek boyutlu bir dizideki eleman sayısını kastetmiştim. Bana öyle geldi ki, programın seyri ile değiştirebilirsiniz. Sonuçta, başlangıçta dizimizi örtük olarak ayarlamamız boşuna değil. Yani, örneğin:

doubleMas[]; //tek boyutlu bir diziyi başlat

intn=0; // dizi elemanlarının sayısı için kullanışlıdır

ayrıca, örneğin, benim örneğimde olduğu gibi, bir işleme döngüsü yapıyoruz

için(...)

{

if(...)//ilgilendiğimiz koşul

{

n++;// kaç kez çalıştığını say

diff=... ilgilendiğimiz değerler

}

}

ama sonra bir yerde tek boyutlu Mas[n] dizimizi diff değerleriyle doldururuz, n eleman sayısıdır

Bana bu oldukça normal geldi ve bu yapılabilir ... Ya da değil mi?

 

ArrayResize'ı istenen sayıda öğeye eklemek için önce

Örneğin, bir çizgi

   ArrayResize (mas, iBars ( NULL , 0 ));

geçerli penceredeki grafik çubuklarının sayısına odaklanır veya iBar'lar yerine astronomik olana yakın herhangi bir sayı belirtebilirsiniz.

Başlangıçta, dizi boş oluşturulur, ona erişmeden önce, içinde kaç tane eleman saklamak istediğinizi belirtmeniz gerekir. Tam kodu gönderin, böylece gezinmek daha kolay olacaktır.

 
splxgf :

ArrayResize'ı istenen sayıda öğeye eklemek için önce

Örneğin, bir çizgi

geçerli penceredeki grafik çubuklarının sayısına odaklanır veya iBar'lar yerine astronomik olana yakın herhangi bir sayı belirtebilirsiniz.

Ama daha önce eleman sayısını bilmediğimiz için ancak if koşulunun sayısını saydığımızda öğreneceğiz. 0 çıktıları için ArrayResize'ı eleman olarak koymaya çalıştım.
 

Örnekte, eleman sayısının belirtilmediği bir diziyi kullanamayacağınızı gösteriyorum.

İlk iki çağrı bir hataya neden olur ve 0 döndürür.

Hamamböceğinizi temizlemek için hemen reçete yazın

 double mas[999999];

işe yararsa, hamamböceği ile uğraşın.

 
splxgf :

Örnekte, eleman sayısının belirtilmediği bir diziyi kullanamayacağınızı gösteriyorum.

İlk iki çağrı bir hataya neden olur ve 0 döndürür.

Hamamböceğinizi temizlemek için hemen reçete yazın

işe yararsa, hamamböceği ile uğraşın.

Evet, başlangıçta eleman sayısını ayarlamak gerekli değildir, çift Mas[] yapısı da uygundur.

Neden: