Pošto je tek pre neki dan objavljen Pravilnik, oprostiću ti nepoštovanje
tačke 14.
(Upravo sam u podešavanjima foruma povećao visinu polja za programski kôd, kako bi se ceo kôd video odjednom umesto da se skroluje; možda će biti potrebno da u svom browseru stisnete CTRL+F5, kako bi isti, tj. browser, registrovao promenu.)U ovom bloku se ispituje da li na poziciji b1 imamo prvo pojavljivanje slova u toj reči:
- Kôd: Obeleži sve
3. Ako b1>0 tada
1. Za b2=1 do b1-1
1. P1=B1-to slovo u RIJEC
2. P2=B2-to slovo u RIJEC
3. Ako je p1=p2 tada
1. NADJENO=true
2. Prekini ponavljanje
Izlazni rezultat tog bloka je promenljiva NADJENO. Ako je NADJENO=true, znači da se to slovo već pojavljivalo na nekoj od prethodnih pozicija u datoj reči, a ako je NADJENO=false, to znači da na toj poziciji imamo prvo pojavljivanje tog slova u datoj reči.
S tim, da je u liniji "Ako b1>0 tada" verovatno greška – trebalo bi da bude "Ako b1>1 tada", budući da je b1 ionako uvek veće od nule. Uslov da je b1>1 je i logičan i potreban, zbog naredne linije koja glasi "Za b2=1 do b1-1", u kojoj b1-1 mora biti najmanje 1, tj. b1 mora biti najmanje 2, dakle, mora biti veće od 1.
Naredni blok se izvršava samo ako smo utvrdili da se slovo na tekućoj poziciji prvi put pojavljuje u datoj reči; u suprotnom, ako je već bilo pojavljivanja tog slova, naredni blok preskačemo, vraćamo se na početak petlje i pomeramo na narednu poziciju.
- Kôd: Obeleži sve
4. Ako je NADJENO<>true tada
1. Ako je b1<DULJINA tada
1. Za b2=b1+1 do DULJINA
1. P1=B1-to slovo u RIJEC
2. P2=B2-to slovo u RIJEC
3. Ako je p1=p2 tada
1. BROJAC=BROJAC+1
2. Ispiši B1-to slovo u RIJEC, BROJAČ
U tom bloku se vrši brojanje koliko se puta slovo koje se nalazi na tekućoj poziciji ponavlja do kraja reči. Pošto smo do ovog bloka došli onda kada nije bilo pojavljivanja tog slova na prethodnim pozicijama u reči, broj njegovih ponavljanja od te pozicije pa do kraja reči biće jednak ukupnom broju ponavljanja tog slova u reči – znači, upravo ono što tražimo.
Međutim, mislim da je i ovde greška, jer s ovakvim algoritmom, ako se na kraju reči (na poslednjoj poziciji) nalazi slovo kojem je to jedino pojavljivanje u reči, onda se ono neće ispisivati u rezultatu. Zato bi trebalo poslednju liniju, "Ispiši B1-to slovo u RIJEC, BROJAČ" staviti izvan uslova da je b1<DULJINA, tako da taj poslednji blok izgleda ovako:
- Kôd: Obeleži sve
4. Ako je NADJENO<>true tada
1. Ako je b1<DULJINA tada
1. Za b2=b1+1 do DULJINA
1. P1=B1-to slovo u RIJEC
2. P2=B2-to slovo u RIJEC
3. Ako je p1=p2 tada
1. BROJAC=BROJAC+1
2. Ispiši B1-to slovo u RIJEC, BROJAČ