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?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
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 {//...}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
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 © 2025, 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!