Dvodimenzionalni nizovi

Уобичајен

Ponekad je velike količine podataka teško predstaviti i manipulisati njima u jednodimenzionalnom nizu.U određenom broju slučajeva podacima se lakše manipuliše kada su smešteni u dvodimenzionalnoj tabeli.

Dvodimenzionalni nizovi u matematici se nazivaju matrica, pa ćemo taj termin koristiti na dalje čisto iz praktičnih razloga.

U članku o komponenti StringGrid možete videti kako se pomoću te komponente kreira tabelaa za unos podataka. Primer dat u tom članku podatke uzima direktno iz komponente bez pamćenja podataka u memoriji. U slučaju kada podatke unete u komponentu StringGrid želimo da zapamtimo u memoriji radi dalje manipulacije moramo definisati novi tip podataka – dvodimenzionalni niz.

Kako deklarisati dvodimenzionalni niz?

Kod jednodimenzionalnog niza rekli smo da svi elementi niza moraju biti istog tipa. Bilo kog tipa ali bitno je da su istog tipa . Ako je tako, onda je logično da elementi niza mogu biti i tipa niz. U tom slučaju imali bi niz čiji su elementi nizovi.

PRIMER: Definišemo dvodimenzionalni niz (matricu) X koja može imati najviše 20 kolona i 30 redova u kojima će biti smešteni celi brojevi.

Možemo je deklarisati na jedan od sledećih načina:

  • Kao niz nizova:

Type niz=ARRAY[1..30] of integer;

matrica=ARRAY[1..20] of niz;

var x: matrica;

  •  Kao niz nizova na drugi način:

Type matrica=ARRAY[1..20] of ARRAY[1..30] of integer;

var     x: matrica;

  • Skraćena verzija zapisa:

Type  matrica=ARRAY[1..20,1..30] of integer;

var    x: matrica;

  •  Direktnim opisom u odeljku var:

Var   x: ARRAY[1..20,1..30] of integer;

Najčešće se koristi jedan od zadnja dva prikazana primera.

Pri zadavanju dimenzija matrice koriste se prirdni (celi) brojevi n i m koji govore da se matrica dimenzija nxm sastoji iz n kolona i m redova.

Svaki element dvodimenzionalnog niza (matrice) nalazi se u jednoj ćeliji tabele čiju adresu određuju dva indeksa i , j. Indeks i predstavlja redni broj kolone u kojoj se niz nalazi a j redni broj reda.

Opšti element matrice X možemo predstaviti kao:

X[i,j]

Imamo primer dvodimenzionalnog niza x dimenzija 3×2 (3 kolone, 2 reda).

x

5 7 9
4 9 8

-U prvoj koloni na prvom mestu(u prvom redu) nalazi se broj 5.

· 5 je element matrice

· Adresa ovog elementa matrice je x[1,1]

-U trećoj koloni na drugom mestu (u drugom redu) je broj 8

· 8 je element matrice

· Adresa ovog elementa matrice je x[3,2]

itd

ZADATAK:

Kreirati aplikaciju koja omogućava unos matrice nxm i klikom na dugme ”računaj “ računa zbir elemenata matrice (ispisuje ga u labeli) i prosečnu vrednost elemenata (ispisuje je u edit boxu).

Kao što možete primetiti radi se o potpuno istom zadatku koji je urađen u članku o komponenti StringGrid gde je urađen tako što se podaci direktno uzimaju iz komponente i sabiraju.

Ovoga puta deklarisaćemo tip matrica (dvodimenzionalni niz) i podatke koji se unesu u komponentu zapamtimo u memoriju i sabiramo iz memorije.

Koraci u izradi aplikacije:

  • Postaviti komponente na formu
  • Podesiti osobine za StringGrid tako da nema zaglavlja i da je omogućen unos podataka.
  • Napisati proceduru za događaj klik mišem za komponentu StringGrid za postavljanje proizvoljnih dimenzija tabele (kao što je prethodno prikazano u članku o komponenti StringGrid).
  • Procedura za dugme “racunaj” koja pamti unete vrednosti iz tabele, sabira ih i računa prosečnu vrednost

clip_image002

Advertisements

3 responses »

  1. Повратни пинг: Dvodimenzionalni nizovi | Dragan Ilić Blog

  2. Повратни пинг: 3. Razred: Dvodimenzionalni nizovi | Dragan Ilić Blog

  3. Повратни пинг: Jednodimenzionalni i dvodimenzionalni nizovi | Učimo informatiku 2

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google photo

Коментаришет користећи свој Google налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s