(bez obzira koji se programski jezik koristi za rešavanje)

Zadatak je sekvencijalni (pipeline): svaki korak proizvodi rezultat koji se koristi u sledećem.  Svaki deo treba da se ispisuje u

************** Odgovor 1 **************
...

************** Odgovor 2 **************
...

************** Odgovor 3 **************
...

************** Odgovor 4 **************
...

************** Odgovor 5 **************
...

🔹 2.1. PROVERA URAVNOTEŽENOSTI

Šta se radi:

  1. Unosi se string s
  2. Broje se mala slova, velika slova i cifre
  3. Proverava se uslov da li je mala = velika = cifre 
  4. Ako je uslov zadovoljen ispisuje se String je uravnotezen., a ako nije onda se ispisuje String nije uravnotezen.

Učitaj string s
odredi dužinu stringa
N ← duzina / 4 

RibaRibiGrizeRep2026

mala ← 0
velika ← 0
cifre ← 0

ZA svaki karakter c u s:
    AKO je c malo slovo:
        mala ← mala + 1
    INAČE AKO je c veliko slovo:
        velika ← velika + 1
    INAČE AKO je c cifra:
        cifre ← cifre + 1

AKO mala = velika I velika = cifre:
    Ispis "String je uravnotezen"
INAČE:
    Ispis "String nije uravnotezen"

2.2. FORMIRANJE SEKVENCI

Od ulaznog stringa treba da se formira N sekvenci, svaka dužine 4. Sekvenca i uzima elemente: i, i+N, i+2N, i+3N

Izlaz je svaka sekvenca u novom redu i bez dodatnog teksta.

Riip
ibz2
bie0
aGR2
Rre6

kreiraj praznu listu sekvence

ZA i od 0 do N-1:
    sek ← prazan string

    ZA j od i do duzina-1, korak N:
        sek ← sek + s[j]

    dodaj sek u sekvence
    ispiši sek

🔹 2.3. TRANSFORMACIJA SEKVENCI

Od sekvenci iz prethodnog koraka treba da se dobiju nove sekvence, uzimajući u obzir sledeća pravila transformacije:

Tip Pravilo
malo slovo sledeće (z → a)
veliko slovo prethodno (A → Z)
cifra cifra + indeks u sekvenci

Napomena: Indeks je pozicija unutar sekvence (0–3)

Izlaz je svaka transformisana sekvenca u novom redu

Qjjq
jca5
cjf3
bFQ5
Qsf9

kreiraj praznu listu noveSekvence

ZA svaku sekvencu sek u sekvence:
    nova ← prazan string

    ZA i od 0 do dužina(sek)-1:
        c ← sek[i]

        AKO je c malo slovo:
            AKO je c = 'z':
                nova ← nova + 'a'
            INAČE:
                nova ← nova + sledeće slovo od c

        INAČE AKO je c veliko slovo:
            AKO je c = 'A':
                nova ← nova + 'Z'
            INAČE:
                nova ← nova + prethodno slovo od c

        INAČE AKO je c cifra:
            vrednost ← (numerička vrednost cifre c) + i
            nova ← nova + karakter te vrednosti

    dodaj nova u noveSekvence
    ispiši nova

2.4. FORMIRANJE s2 I NAJDUŽI PODNIZ

Prvo treba sve sekvence da se spajaju redom u string: s2 = sek1 + sek2 + ... + sekN

Prikazati dobijeni string s2

Zatim treba da se odredi najduži podniz slova, gde cifre prekidaju niz.

s2 ← prazan string

ZA svaku sekvencu sek u noveSekvence:
    s2 ← s2 + sek

ispiši s2

maxPodniz ← prazan string
trenutni ← prazan string

ZA svaki karakter c u s2:
    AKO je c slovo:
        trenutni ← trenutni + c

        AKO dužina(trenutni) > dužina(maxPodniz):
            maxPodniz ← trenutni
    INAČE:
        trenutni ← prazan string

ispiši maxPodniz
ispiši dužinu(maxPodniz)

s2: Qjjqjca5cjf3bFQ5Qsf9
Najduzi podniz slova: Qjjqjca
Duzina: 7

2.5. FORMIRANJE MATRICE

Od stringa koji je dobijen u prethodnom koraku prvo izračunati dimenziju kvadratne matrice koja nam je potrebna

Korak 1 - dimenzija matrice: Traži se najmanje m takvo da je  m² ≥ dužina(s2)

Korak 2 - popunjavanje: popunjava se red po red:

Tip karaktera Upis
slovo ASCII vrednost
cifra negativna vrednost
prazno mesto 0

Korak 3 - Izlaz:  matrica dimenzije m × m gde su elementi razdvojeni razmakom ili tabom.

81      106     106     113     106
99      97      -5      99      106
102     -3      98      70      81
-5      81      115     102     -9
0       0       0       0       0

// FORMIRANJE MATRICE

len ← dužina(s2)
m ← 1

DOK m * m < len:
    m ← m + 1

// POPUNJAVANJE MATRICE

k ← 0

ZA i od 0 do m-1:
    ZA j od 0 do m-1:

        AKO k < len:
            AKO je s2[k] slovo:
                ispiši ASCII vrednost s2[k]
            INAČE (cifra):
                ispiši negativnu vrednost cifre

            k ← k + 1
        INAČE:
            ispiši 0

    novi red

Kako izgleda tok podataka u ovom zadatku - gde svaki korak zavisi od prethodnog:

ulazni string s
        ↓
sekvence
        ↓
transformisane sekvence
        ↓
s2
        ↓
najduži podniz
        ↓
matrica



Last modified: Wednesday, 29 April 2026, 1:19 PM