( DRUGAČIJE nego u C )

Nizovi i matrice u C#

Kreiranje niza u programskom jeziku C# :

// deklarisanje niza sa dve naredbe
tip[] niz;
niz = new tip[duzina];
// deklarisanje niza jednom naredbom
tip[] niz = new tip[duzina];
Za kreiranje niza C# iza scene kreira objekat klase Array iz .NET Framework-a pa otuda i operator new u deklaraciji.
Po kreiranju niza svaki element niza se inicijalizuje na podrazumevane vrednosti zavisno od tipa elementa:
- numerički na 0
- char na '\0'
- Boolean na false
- DateTime na 01/01/0001 00:00:00
- pokazivački tip na null

Sam niz je uvek objekat pokazivačkog tipa, nezavisno od toga kojeg su tipa elementi. Na primer, sledeća naredba je ispravna:

int[] a = null;

Inicijalizacija elemenata niza:

tip[] niz1 = new tip[duzina] {vrednost1, vrednost2, vrednost3,...};
// bez navodjenja duzine
tip[] niz1 = new tip[] {vrednost1, vrednost2, vrednost3,...};
// bez navodjenja tipa i duzine
tip[] niz2 = {vrednost1, vrednost2, vrednost3,..., vrednostN};
// Npr.
char[] samoglasnici = new char[] {‘a’,’e’,’i’,’o’,’u’};
// ili, jednostavno:
char[] samoglasnici= {‘a’,’e’,’i’,’o’,’u’};

Zbog toga što su nizovi izvedeni iz klase Array, na raspolaganju su:
- svojstvo Length koje daje broj elemenata niza
- metoda BinarySearch(niz, vrednost) koja daje indeks elementa određene vrednosti
- metoda Sort(niz) koja vrši sortiranje niza u rastući redosled

Matrice

U deklaracijama pravougaonih nizova, zarezi razdvajaju svaku dimenziju. Metoda GetLength niza vraća dužinu zadate dimenzije (počevši od 0):

int[,] matrix = new int [3, 3];
for (int i = 0; i < matrix.GetLength(0); i++)
  for (int j = 0; j < matrix.GetLength(1); j++)
    matrix [i, j] = i * 3 + j;

Inicijalizacija matrice

int[,] matrix = new int[,]
{
 {0,1,2},
 {3,4,5},
 {6,7,8}
};

Nazubljeni nizovi (jagged arrays) 
Nazubljeni nizovi se deklarišu pomoću uzastopnih ugaonih zagrada koje predstavljaju svaku dimenziju niza. U sledećem primeru deklariše se nazubljen dvodimenzioni niz čija je najveći broj redova 3

Broj kolona nije zadat u deklaraciji jer – za razliku od pravougaone matrice – svaki unutrašnji niz može biti proizvoljne dužine - broja kolona. Svaki unutrašnji niz se implicitno inicijalizuje na vrednost null a ne na prazan niz. Svaki unutrašnji niz mora se napraviti ručno:

int[][] matrix = new int[3][];
for (int i = 0; i < matrix.Length; i++)
{
  matrix[i] = new int [3]; // Izrada unutrašnjeg niza
  for (int j = 0; j < matrix[i].Length; j++)
    matrix[i][j] = i * 3 + j;
}

foreach petlja

Opšti oblik foreach petlje je:

foreach (tip promenljiva in izraz)
          telo petlje

promenljiva je promenljiva koja se koristi u petlji za pristup svim elementima specificiranim u izrazu izraz.

Primer:

int[] nekiNiz = { 1, 5, 2, 7, 3 };
 
foreach (int element in nekiNiz)
    Console.WriteLine("Element niza je = " + element);


Last modified: Monday, 23 September 2019, 11:28 PM