Forum » Programiranje » C# matrike
C# matrike

Neon87 ::
Pozdravljeni!
Sem gledal malo po netu, vendar nisem prišel do neke ideje, kako bi naredil sledeče:
Imam matriko 9X9, v njej zapisane podatke, zdaj pa bi rad to matriko razbil na 9 3X3 podmatrik?
Rad bi seveda da mi vsi podatki ostanejo. 81 prirejanj se mi ne da delat in tudi ni najlepš za videt v kodi, zato me zanima kk bi to vi naredil?
Gre pa za sudoku.
LP
Sem gledal malo po netu, vendar nisem prišel do neke ideje, kako bi naredil sledeče:
Imam matriko 9X9, v njej zapisane podatke, zdaj pa bi rad to matriko razbil na 9 3X3 podmatrik?
Rad bi seveda da mi vsi podatki ostanejo. 81 prirejanj se mi ne da delat in tudi ni najlepš za videt v kodi, zato me zanima kk bi to vi naredil?
Gre pa za sudoku.
LP
kihc ::
offtopic: v C/C++ bi se pomoje dalo zadevo elegantno rešiti z kazalci.
Za C# pa nisem ziher kako ima to porihtano, samo kazalcev naj se ne bi uporabljalo, čeprav se jih da. Bo povedal nekdo z melo več C# skillz. ;)
Za C# pa nisem ziher kako ima to porihtano, samo kazalcev naj se ne bi uporabljalo, čeprav se jih da. Bo povedal nekdo z melo več C# skillz. ;)
x

PaX_MaN ::
S for zanko.
int[][] temp = new int[3][3];
for(i=0;i<9;i +=3)
{
for(j=0;j<9;j +=3)
{
//shraniš elemente podmatriko
temp[i mod 3][j mod 3] = podatki[i][j];
}
//dodaš podmatriko na nek seznam
seznam_podmatrik.add(temp);
}
Genetic ::
class Matrix
{
private int r, c;
private int[][] data;
public Matrix(int rows, int cols)
{
r = rows;
c = cols;
data = new int[r][c]; // ali ikako se ze inicializira 2d array
}
public void Set(int row, int col, int value)
{
// TODO: preveri ce sta row in col dovoljena
data[row][col] = value;
}
public int Get(int row, int col)
{
// TODO: preveri ce sta row in col dovoljena
return data[row][col];
}
public Matrix Submatrix(int r_offset, int c_offset, int rows, int cols)
{
// TODO: preveri ce so offseti, rows in cols dovoljeni
Matrix m(rows, cols);
for (int i=0; i<rows; ++i)
for (int j=0; j<cols; ++j)
{
if ((r_offset + i < r) && (c_offset + j < c))
m.Set(i,j,data[r_offset+i][c_offset+j];
}
return m;
}
public Matrix[] Split9x9to3x3()
{
Matrix m[] = new Matrix[9];
for (int i =0; i<9; ++i)
{
m[i] = Submatrix((i/3)*3, (i%3)*3, 3, 3);
}
return m;
}
}
Tako nekakao ...
edit: nekaj me daje prehlad ...
Zgodovina sprememb…
- spremenil: Genetic ()
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Vsota določenih elementov matrike [C]Oddelek: Programiranje | 1106 (794) | RatedR |
| » | [C] Pomoč pri programu za fax (matrike)Oddelek: Programiranje | 1379 (1122) | alphasaphir |
| » | Program v COddelek: Programiranje | 2086 (1925) | darkkk |
| » | [Naloga][C++] Mnozenje vecdimenzionalnih polj.Oddelek: Programiranje | 1763 (1656) | wat56 |
| » | [C++] razpršene matrikeOddelek: Programiranje | 1807 (1517) | petrina |