Index Out of Range C#és progelmélet?
C#környezetben programozok.
Hogy lehet egy kétdimenziós tömbben, egy adott (i,j) pontot körülvevő elemek értékeit meghatározni, úgy, hogy ne legyen IndexOutOfRange?
Moduláris számolással, tehát modulo tekinted az értékeket.
Vagy esetszétválasztással, ekkor nem fog összeragadni a széle.
//A négy sarok
if ((i == 0) && (j == 0)) {//...}
else if ((i == 0) && (j == m)) {//...}
else if ((i == n) && (j == 0)) {//...}
else if ((i == n) && (j == m)) {//...}
//Az oldalak
else if ((i > 0) && (i < n) && (j == 0)) {//...}
else if ((i > 0) && (i < n) && (j == m)) {//...}
else if ((j > 0) && (j < m) && (i == 0)) {//...}
else if ((j > 0) && (j < m) && (i == n)) {//...}
//A belső terület
//((i > 0) && (i < n) && (j > 0) && (j < m))
else {//...}
Szerintem így a legegyszerűbb
tomb[x,y] -> vizsgált pont
nyolcirany[] -> ide tesszük be az értékeket
int szamlalo = 0;
for(int i = -1; i <= 1; i++)
for(int j = -1; j <= 1; j++)
{
nyolcirany[szamlalo] = tomb[x + i,y + j];
szamlalo++;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!