Leo59 : Yerden tasarruf etmek ve algıyı iyileştirmek için - tek bir işlevde. Hala çalışmıyor.
gelecek için - işlevin sonucuna (en azından çalışılmış / çalışılmamış) ihtiyaç duyulabilirse, onu geçersiz kılmayın. "Antrenman" kriterinin ne olduğunu üstünkörü bir bakışla belirlemek zordur - aynı zamanda geçersizdir, nasıl atarsanız atın her şey yolundadır.
hata ayıklayıcı olarak:
yeniden hesapladığınız (artı dSSxx[] dizileri), günlüğe yazıp yazmamaya karar verdiğiniz ve ardından referansa veya değere göre bir yere ilettiğiniz Count_XXX, Range_XXX bir sürü global değişkeniniz var.
Tekrar çağrıldıklarında, yeniden hesaplamalarında bir sorun olduğu açıktır - Count_dSS 0 çıkıyor. Print, anlamaya veya kesme noktalarına ve izlemeye yardımcı olabilir.
gelecek için - işlevin sonucuna (en azından çalışılmış / çalışılmamış) ihtiyaç duyulabilirse, onu geçersiz kılmayın. "Antrenman" kriterinin ne olduğunu üstünkörü bir bakışla belirlemek zordur - aynı zamanda geçersizdir, nasıl atarsanız atın her şey yolundadır.
hata ayıklayıcı olarak:
yeniden hesapladığınız (artı dSSxx[] dizileri), günlüğe yazıp yazmamaya karar verdiğiniz ve ardından referansa veya değere göre bir yere ilettiğiniz Count_XXX, Range_XXX bir sürü global değişkeniniz var.
Tekrar çağrıldıklarında, yeniden hesaplamalarında bir sorun olduğu açıktır - Count_dSS 0 çıkıyor. Print, anlamaya veya kesme noktalarına ve izlemeye yardımcı olabilir.
Geri arama ne demek? Basitleştirilmiş sürüm:
double dSSd[][ 90 ]; // Динамический Массив SelectSort соответствия пары массива dSe1_Bal_W паре массива dSe1_Bal_Dint Count_dSSd= 0 ; // Счётчик записей (строк) в массиве dSSd[][90]int Range_dSSd_one= 0 ; // = ArrayRange(dSS, 0); Размер первого измерения (число строк) с индексом_измерения=[0] массива dSSd[][90];int Range_dSSd_two= 0 ; // = ArrayRange(dSS, 1); Размер второго измерения (число столбцов) с индексом_измерения=[1] массива dSSd[][90];double dSSw[][ 90 ]; // Динамический Массив SelectSort соответствия пары массива dSe1_Bal_W паре массива dSe1_Bal_Dint Count_dSSw= 0 ; // Счётчик записей (строк) в массиве dSSw[][90]int Range_dSSw_one= 0 ; // = ArrayRange(dSS, 0); Размер первого измерения (число строк) с индексом_измерения=[0] массива dSSw[][90];int Range_dSSw_two= 0 ; // = ArrayRange(dSS, 1); Размер второго измерения (число столбцов) с индексом_измерения=[1] массива dSSw[][90];int init()
{
ArrayResize (dSSd, 200000 , 200000 ); // Задаём новый размер массива с резервированием памяти на 200000 записей (строк) ArrayResize (dSSw, 200000 , 200000 ); // Задаём новый размер массива с резервированием памяти на 200000 записей (строк)
Fun_Select_2();
return ( 0 );
}
void Fun_Select_2()
{
// Находим соответствие между [1]-"Num1 А" и [4]-"Num1 B" в массивах dSe1_Bal_D и dSe1_Bal_Wint t= 0 ; // Техническая переменнаяint d= 0 ; // Техническая переменнаяint w= 0 ; // Техническая переменнаяint D= 0 ; // Техническая переменнаяint W= 0 ; // Техническая переменнаяint S= 0 ; // Техническая переменная// Если есть соответствие тогда записываем её в массив dSSd[][90]for (d= 0 , t= 0 ; d<Range_dSe1_Bal_D_one; d++)
{
for (w= 0 ; w<Range_dSe1_Bal_W_one; w++)
{
if ( (dSe1_Bal_W[w][ 1 ]==dSe1_Bal_D[d][ 1 ]) && (dSe1_Bal_W[w][ 4 ]==dSe1_Bal_D[d][ 4 ]) )
{
Count_dSSd++; // Счётчик записей (строк) в массиве dSSd[][90]ArrayResize (dSSd, Count_dSSd, 200000 ); // Задаём новый размер массива с резервированием памяти на 100000 записей (строк) for (S= 0 , D= 0 ; D< 45 ; D++, S++)
dSSd[t][S] = dSe1_Bal_D[d][D]; // Значения строки массива dSe1_Bal_Dfor (S= 45 , W= 0 ; W< 45 ; W++, S++)
dSSd[t][S] = dSe1_Bal_W[w][W]; // Значения строки массива dSe1_Bal_W
t++; // Увеличили индекс массива dSSd на "1"
}
}
}
Range_dSSd_one = ArrayRange (dSSd, 0 ); // Размер первого измерения (число строк) с индексом_измерения=[0] массива dSSd[][90];
Range_dSSd_two = ArrayRange (dSSd, 1 ); // Размер второго измерения (число столбцов) с индексом_измерения=[1] массива dSSd[][90];// Если есть соответствие тогда записываем её в массив dSSw[][90]for (d= 0 , t= 0 ; d<Range_dSe1_Bal_D_one; d++)
{
for (w= 0 ; w<Range_dSe1_Bal_W_one; w++)
{
if ( (dSe1_Bal_W[w][ 1 ]==dSe1_Bal_D[d][ 1 ]) && (dSe1_Bal_W[w][ 4 ]==dSe1_Bal_D[d][ 4 ]) )
{
Count_dSSw++; // Счётчик записей (строк) в массиве dSSw[][90]ArrayResize (dSSw, Count_dSSw, 200000 ); // Задаём новый размер массива с резервированием памяти на 100000 записей (строк) for (S= 0 , W= 0 ; W< 45 ; W++, S++)
dSSw[t][S] = dSe1_Bal_W[w][W]; // Значения строки массива dSe1_Bal_Wfor (S= 45 , D= 0 ; D< 45 ; D++, S++)
dSSw[t][S] = dSe1_Bal_D[d][D]; // Значения строки массива dSe1_Bal_D
t++; // Увеличили индекс массива dSSw на "1"
}
}
}
Range_dSSw_one = ArrayRange (dSSw, 0 ); // Размер первого измерения (число строк) с индексом_измерения=[0] массива dSSw[][90];
Range_dSSw_two = ArrayRange (dSSw, 1 ); // Размер второго измерения (число столбцов) с индексом_измерения=[1] массива dSSw[][90];
}
// Получаенный результат:// Count_dSSd = 280// Range_dSSd_one = 280// Range_dSSd_two = 90// Массив dSSd заполнен правильными значениями// Count_dSSw = 280// Range_dSSw_one = 0// Range_dSSw_two = 90// Массив dSSw заполнен "0"
// Görevin özü aşağıdaki gibidir: // A[2] ve B[][2] dinamik dizileri var // "0" ilk boyut dizinindeki eşleşmeleri arayın // Dizi A Dizi B // 31 25 19 66 // 44 15 62 30 // 62 47 54 71 // 31 94 // Şunu elde etmek istiyoruz: // Dizi dSSd[][4] Dizi dSSw[][4] // 31 25 31 94 31 94 31 25 // 62 47 62 30 62 30 62 47
Leo59 : Geri arama ne demek? Basitleştirilmiş sürüm:
Birincisine benzer bir işlevi kastediyorum (ayrıntılarda farklılık gösterebilir). Böyle bir sorunuz vardı - neden bu işlevler ayrı ayrı çalışıyor, ancak birbiri ardına (sıradan bağımsız olarak) çalışmıyor. Daha doğrusu çalışır ve yalnızca ilki orada bir şeyler kaydeder.
iyi falan - pokh@#eno global bir durum, yani bu fonksiyonların ilkinin ilk çağrısında ya global değişkenler ya da dizilerin içerikleri değişti. Niye ya? bir dosyaya yazarken bunu neden değiştirmeniz gerektiğini muhtemelen daha iyi biliyorsunuzdur :-) Dürüst olmak gerekirse - ara verin
Range_dSe1_Bal_W_one
ve benzeri, örneğin, benim için zor ve isteksiz. Zaten bir hata ayıklayıcı alın veya tüm şüpheli yerlere parmak izi koyun. Ayrıca isimlerin mantığını anlıyorsunuz ve nasıl çalışması gerektiğine dair bir fikriniz var (ki bu gerçekle pek örtüşmüyordu :-))
PS/ girişte ve çıkışta ne olduğunun açıklamasından, iki dizi dSSx[][4] yerine bir dSS[][3] yeterli olduğunu görüyorum :-)
Birincisine benzer bir işlevi kastediyorum (ayrıntılarda farklılık gösterebilir). Böyle bir sorunuz vardı - neden bu işlevler ayrı ayrı çalışıyor, ancak birbiri ardına (sıradan bağımsız olarak) çalışmıyor. Daha doğrusu çalışır ve yalnızca ilki orada bir şeyler kaydeder.
iyi falan - pokh@#eno global bir durum, yani bu fonksiyonların ilkinin ilk çağrısında ya global değişkenler ya da dizilerin içerikleri değişti. Niye ya? bir dosyaya yazarken bunu neden değiştirmeniz gerektiğini muhtemelen daha iyi biliyorsunuzdur :-) Dürüst olmak gerekirse - ara verin
ve benzeri, örneğin, benim için zor ve isteksiz. Zaten bir hata ayıklayıcı alın veya tüm şüpheli yerlere parmak izi koyun. Ayrıca isimlerin mantığını anlıyorsunuz ve nasıl çalışması gerektiğine dair bir fikriniz var (ki bu gerçekle pek örtüşmüyordu :-))
PS/ girişte ve çıkışta ne olduğunun açıklamasından, iki dizi dSSx[][4] yerine bir dSS[][3] yeterli olduğunu görüyorum :-)
Maxim, kayıtsız kalmadığın için teşekkürler. Sorun çözüldü. Her şeyin bir hafıza eksikliği olduğu ortaya çıktı.
Lütfen bana buna neyin sebep olabileceğini söyle? :
Fun_1() ve Fun_2() işlevleri benzerdir.
Lütfen bana buna neyin sebep olabileceğini söyle? :
Fun_1() ve Fun_2() işlevleri benzerdir.
akademik - işlevler saf değildir ve küresel durumu değiştirir.
kısaca - her iki işlev de genel bir değişken veya dosyaya okur ve yazar .
akademik - işlevler saf değildir ve küresel durumu değiştirir.
kısaca - her iki işlev de genel bir değişken veya dosyaya okur ve yazar .
Evet, her biri bir dosya yazar. Ne olmuş?
ve birlikte çalışmayın :-)
not. kaynak kodları olmadan yeraltı darbelerinin kaynağı hakkında daha kesin bir şey söylemek mümkün değildir. Bir yerde bir hata var - düzeltin
Yerden tasarruf etmek ve algıyı iyileştirmek için - tek bir işlevde. Hala çalışmıyor.
gelecek için - işlevin sonucuna (en azından çalışılmış / çalışılmamış) ihtiyaç duyulabilirse, onu geçersiz kılmayın. "Antrenman" kriterinin ne olduğunu üstünkörü bir bakışla belirlemek zordur - aynı zamanda geçersizdir, nasıl atarsanız atın her şey yolundadır.
hata ayıklayıcı olarak:
yeniden hesapladığınız (artı dSSxx[] dizileri), günlüğe yazıp yazmamaya karar verdiğiniz ve ardından referansa veya değere göre bir yere ilettiğiniz Count_XXX, Range_XXX bir sürü global değişkeniniz var.
Tekrar çağrıldıklarında, yeniden hesaplamalarında bir sorun olduğu açıktır - Count_dSS 0 çıkıyor. Print, anlamaya veya kesme noktalarına ve izlemeye yardımcı olabilir.
gelecek için - işlevin sonucuna (en azından çalışılmış / çalışılmamış) ihtiyaç duyulabilirse, onu geçersiz kılmayın. "Antrenman" kriterinin ne olduğunu üstünkörü bir bakışla belirlemek zordur - aynı zamanda geçersizdir, nasıl atarsanız atın her şey yolundadır.
hata ayıklayıcı olarak:
yeniden hesapladığınız (artı dSSxx[] dizileri), günlüğe yazıp yazmamaya karar verdiğiniz ve ardından referansa veya değere göre bir yere ilettiğiniz Count_XXX, Range_XXX bir sürü global değişkeniniz var.
Tekrar çağrıldıklarında, yeniden hesaplamalarında bir sorun olduğu açıktır - Count_dSS 0 çıkıyor. Print, anlamaya veya kesme noktalarına ve izlemeye yardımcı olabilir.
Basitleştirilmiş sürüm:
// A[2] ve B[][2] dinamik dizileri var
// "0" ilk boyut dizinindeki eşleşmeleri arayın
// Dizi A Dizi B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Şunu elde etmek istiyoruz:
// Dizi dSSd[][4] Dizi dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
Geri arama ne demek?
Basitleştirilmiş sürüm:
Birincisine benzer bir işlevi kastediyorum (ayrıntılarda farklılık gösterebilir). Böyle bir sorunuz vardı - neden bu işlevler ayrı ayrı çalışıyor, ancak birbiri ardına (sıradan bağımsız olarak) çalışmıyor. Daha doğrusu çalışır ve yalnızca ilki orada bir şeyler kaydeder.
iyi falan - pokh@#eno global bir durum, yani bu fonksiyonların ilkinin ilk çağrısında ya global değişkenler ya da dizilerin içerikleri değişti. Niye ya? bir dosyaya yazarken bunu neden değiştirmeniz gerektiğini muhtemelen daha iyi biliyorsunuzdur :-) Dürüst olmak gerekirse - ara verin
ve benzeri, örneğin, benim için zor ve isteksiz. Zaten bir hata ayıklayıcı alın veya tüm şüpheli yerlere parmak izi koyun. Ayrıca isimlerin mantığını anlıyorsunuz ve nasıl çalışması gerektiğine dair bir fikriniz var (ki bu gerçekle pek örtüşmüyordu :-))
PS/ girişte ve çıkışta ne olduğunun açıklamasından, iki dizi dSSx[][4] yerine bir dSS[][3] yeterli olduğunu görüyorum :-)
Birincisine benzer bir işlevi kastediyorum (ayrıntılarda farklılık gösterebilir). Böyle bir sorunuz vardı - neden bu işlevler ayrı ayrı çalışıyor, ancak birbiri ardına (sıradan bağımsız olarak) çalışmıyor. Daha doğrusu çalışır ve yalnızca ilki orada bir şeyler kaydeder.
iyi falan - pokh@#eno global bir durum, yani bu fonksiyonların ilkinin ilk çağrısında ya global değişkenler ya da dizilerin içerikleri değişti. Niye ya? bir dosyaya yazarken bunu neden değiştirmeniz gerektiğini muhtemelen daha iyi biliyorsunuzdur :-) Dürüst olmak gerekirse - ara verin
ve benzeri, örneğin, benim için zor ve isteksiz. Zaten bir hata ayıklayıcı alın veya tüm şüpheli yerlere parmak izi koyun. Ayrıca isimlerin mantığını anlıyorsunuz ve nasıl çalışması gerektiğine dair bir fikriniz var (ki bu gerçekle pek örtüşmüyordu :-))
PS/ girişte ve çıkışta ne olduğunun açıklamasından, iki dizi dSSx[][4] yerine bir dSS[][3] yeterli olduğunu görüyorum :-)