Potrebno je realizovati program koji radi sa trodimenzionalnom (3D) matricom celih brojeva dimenzija N x N x N.

Korisnik na početku unosi vrednost N, pri čemu važi uslov:  1 < N < 20

Unos mora biti proveren, što znači da program ne sme nastaviti rad dok se ne unese ispravna vrednost.

Nakon unosa dimenzije:

  • formira se 3D matrica,

  • svaki element dobija vrednost:  mat[i][j][k] = i + j + k

Indeksiranje počinje od 0.


Operacije koje program treba da podrži

Program radi sve dok se ne unese komanda:

QUIT

Komande ne smeju biti osetljive na veličinu slova:

update
UPDATE
UpDaTe

sve mora biti prihvaćeno.


1.1 Prikaz matrice

Potrebno je ispisati sve elemente matrice nakon inicijalizacije.

Pošto je matrica 3D, najlakše je prikazati:

  • jedan sloj (i)

  • unutar njega redove (j)

  • i kolone (k)

Primer:

Layer 0
0 1 2
1 2 3
2 3 4

1.2 UPDATE operacija

Komanda:

UPDATE 2,2,2 -1

znači:

mat[2][2][2] = -1

Potrebno je:

  1. pročitati indekse,

  2. pročitati novu vrednost,

  3. izmeniti element,

  4. ponovo prikazati matricu.


1.3 SUM operacija

Komanda:

SUM 1,1,1 3,3,3

znači:

izračunati sumu svih elemenata u opsegu:

i = 1..3
j = 1..3
k = 1..3

uključujući granice.

Potrebno je koristiti tri ugneždene petlje.


1.4 NEW operacija

Formira se nova matrica istih dimenzija.

Svaki element nove matrice predstavlja:

  • zbir susednih elemenata iz stare matrice.

Susedi su:

  • gore/dole

  • levo/desno

  • napred/nazad

Dijagonale se NE računaju.


Ciklično povezivanje (wrap-around)

Ako je element na ivici:

i = 0

njegov sused „iznad“ je:

i = N-1

Isto važi za sve dimenzije.

Ovo je kružna (torusna) matrica.


1.5 MOVE operacija

Komanda:

MOVE 1,1,1 0,1,1

znači:

  • uzeti elemente u istoj osi,

  • pomeriti ih za zadati broj mesta.

Pomeranje može biti:

  • pozitivno,

  • negativno.

Pošto je matrica ciklična, pomeranje „izlazi“ sa jedne strane i vraća se na drugu.


Struktura programa

Program se može podeliti na funkcije:

Funkcija Opis
InitMatrix Popunjava matricu
PrintMatrix Ispisuje matricu
Update Menja element
SumRange Računa sumu
CreateNewMatrix Formira NEW matricu
Move Vrši pomeranje
ParseCommand Obrada komandi

Pseudokod

Učitati N

Dok N nije u opsegu 2..19
    ponovo učitati N

Kreirati 3D matricu N x N x N

Za i od 0 do N-1
    Za j od 0 do N-1
        Za k od 0 do N-1
            mat[i][j][k] = i + j + k

Dok je komanda različita od QUIT

    Učitati komandu

    Ako je komanda PRINT
        ispisati matricu

    Ako je komanda UPDATE
        učitati i,j,k,value
        mat[i][j][k] = value
        ispisati matricu

    Ako je komanda SUM
        učitati opseg
        sum = 0

        Za i kroz opseg
            Za j kroz opseg
                Za k kroz opseg
                    sum += mat[i][j][k]

        ispisati sum

    Ako je komanda NEW

        kreirati newMat

        Za sva polja
            izračunati 6 suseda
            upisati zbir u newMat

        ispisati newMat

    Ako je komanda MOVE
        izvršiti ciklično pomeranje
        ispisati matricu


Poslednja izmena: уторак, 12. мај 2026, 18:29