» »

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

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. ;)
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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Vsota določenih elementov matrike [C]

Oddelek: Programiranje
10995 (683) RatedR
»

[C] Pomoč pri programu za fax (matrike)

Oddelek: Programiranje
111292 (1035) alphasaphir
»

Program v C

Oddelek: Programiranje
51932 (1771) darkkk
»

[Naloga][C++] Mnozenje vecdimenzionalnih polj.

Oddelek: Programiranje
51622 (1515) wat56
»

[C++] razpršene matrike

Oddelek: Programiranje
151690 (1400) petrina

Več podobnih tem