Algoritmi

U programu je moguće kreirati linijske, razgranate i ciklične strukture algoritama, raditi sa promjenljivama i koristiti ugrađene funkcije.

Ekran je podijeljen na 3 okvira:

Sa lijeve strane se nalazi okvir koji služi za kreiranje dijagrama toka.

Gore desno se nalazi drugi okvir pomoću kojeg korisnik kontroliše izvršavanje programa. Na ovom mjestu algoritam ispisuje rezultate i korisnik unosi vrijednosti kada se zatraže.

Treći okvir se nalazi dolje desno. U ovom okviru se prikazuju vrijednosti promjenljivih tokom izvršavanja algoritma.

Komande

Novi algoritam
Ova komanda trenutno poništava trenutni algoritam i kreira novi.

Zadaci (rađeni na času)
Ova komanda služi za učitavanje algoritama koji su rađeni na časovima.

Otvori
Ova komanda služi za učitavanje sačuvanog algoritma.

Sačuvaj
Pomoću ove komande čuvamo algoritam koji smo napravili.

Pokreni
Pomoću ove komande pokrećemo algoritam.

Korak po korak
Ova komanda takođe pokreće algoritam, ali moramo da kliknemo na ovu komandu da bi se izvršio svaki sledeći korak. Korak koji se izvršio obojen je žutom bojom i moguće je pratiti vrijednosti promjenljivih tokom izvršavanja algoritma..

Stop
Ova komanda će pauzirati izvršavanje algoritma. Poslije nje je moguće nastaviti izvršavanje korak po korak ili ponovo pokrenuti izvršavanje.

Pomoć
Prikazuje ovaj tekst.

Smjernice
Kod nekih zadataka dostupna je ova ikonica. Klikom na nju prikazuju se dodatne pomoćne informacije o zadatku.

Dodavanje koraka

Treba da pozicioniramo miš ispod onog koraka gdje želimo da dodamo novi korak. Ako je na tom mjestu dozvoljeno izvršiti dodavanje, pojaviće se plavi krug. Kada kliknemo lijevim dugmetom miša na njega, pojaviće se panel iz koga možemo izabrati novi korak.

Obrada podataka
Ovo je korak u kome manipulišemo promjenljivama, pozivamo funkcije i sl.

Ulaz
Ovaj korak služi za unos vrijednosti. Promjenljive u koje se smještaju vrijednosti mogu se navesti pojedinačno u više koraka ili u jednom koraku, odvojene zarezom.

Izlaz
Pomoću ovog koraka možemo ispisati neku vrijednost. Navodi se literal, promjenljiva ili bilo kakav izraz koji ima vrijednost.

Naredba grananja
Ovaj korak kreira račvanje u dvije grane. Unutar njega se navodi uslov — izraz koji ima logičku vrijednost. Ako je uslov zadovoljen, izvršiće se koraci na jednoj grani, a ako nije, na drugoj.

Višestruko grananje
Veoma kompleksan korak koji otvara više grana. U koraku se navodi neki izraz. Za svaku granu može se navesti jedna ili više vrijednosti, odvojenih tačka-zarezima. Ako je vrijednost izraza jednaka nekoj od navedenih vrijednosti, izvršiće se taj korak. Ako se vrijednost nigdje ne pronađe, izvršiće se "default" grana.

Uslovni ciklus
Ovo je ciklus sa provjerom uslova na početku. U koraku se navodi uslov — izraz koji ima logičku vrijednost. Koraci unutar ciklusa izvršavaju se sve dok je logička vrijednost uslova zadovoljena.

Uslovni ciklus
Ovo je ciklus sa provjerom uslova na kraju. U koraku se navodi uslov — izraz koji ima logičku vrijednost. Koraci unutar ciklusa izvršavaju se sve dok je logička vrijednost uslova zadovoljena. Napomena za Pascal programere: ovo ponašanje je preuzeto iz C-srodnih jezika i obrnuto je u odnosu na repeat ciklus u Pascalu.

Brojački ciklus
Ovo je poseban tip uslovnog ciklusa. U koraku se zadaju tri izraza odvojena tačka-zarezima. Inicijalni izraz izvršava se jednom, prije početka ciklusa. Uslov se ispituje na početku svake iteracije, a finalni izraz se izvršava na kraju svake iteracije. Ciklus se izvršava sve dok je uslov (središnji izraz) zadovoljen.

Paste - lijepljenje koraka
Ako smo neke korake isjekli ili kopirali, možemo ih dodati na željeno mjesto u našem algoritmu.

Sadržaj koraka mijenjamo duplim klikom. Kada završimo sa izmjenama, treba da pritisnemo taster ENTER, kako bi bile prihvaćene. Ako odustanemo od izmjena, samo kliknemo mišem van polja za izmjenu.

Mogućnosti editora

Selektovanje koraka vrši se tako što prosto kliknemo na njega mišem. Poništavanje selekcije vršimo kada kliknemo mišem van bilo kog koraka u algoritmu.

Ako želimo da selektujemo više koraka, držimo pritisnut taster CTRL dok selektujemo korake. Selektovani koraci ne moraju biti vezani.

Kada desnim dugmetom miša kliknemo na neki samostalni korak ili korak koji je dio selekcije, pojaviće se poseban panel sa sljedećim komandama:

Cut - isijecanje koraka
Selektovane korake možemo "isjeći" kako bismo ih premjestili. Ova komanda će zapamtiti i obrisati selektovane korake.

Copy - kopiranje koraka
Selektovane korake možemo i duplirati, koliko nam puta to odgovara. Ova komanda će zapamtiti selektovane korake. Imajte u vidu da se, zbog specifičnosti našeg "dokumenta", zapamćeni koraci ne pamte u sistemskom clipboardu — dakle, nemoguće je dio algoritma "zalijepiti" bilo gdje van Editora.

Komentar
Uz svaki korak možemo napisati napomene, ako želimo. One se prikazuju kada se mišem pređe preko koraka. Kada završimo sa unosom komentara, samo kliknemo mišem van polja za unos.

Brisanje koraka
Konačno, selektovane korake možemo obrisati iz algoritma.

Izrazi i ugrađene funkcije

Stringovi se u izrazima definišu unutar "navodnika" ili 'apostrofa'. Ako se greškom navodnik/apostrof ne zatvori, u string će ući svi znakovi do kraja izraza.

Ako unutar stringa ograničenog navodnicima želimo da prikažemo navodnike, koristimo specijalnu HTML oznaku ". Za prikaz apostrofa unutar stringa ograničenog apostrofima koristi se oznaka '.

Kada unosimo string koji može biti shvaćen kao broj (npr. matični broj), počinjemo unos apostrofom.

U izrazima možemo koristiti cijele i decimalne brojeve. Brojevi se zadaju uvijek u dekadnom sistemu. Kao decimalni znak uvijek se koristi tačka. Cifre se ne odvajaju ni razmacima ni zarezima.

Program razlikuje velika i mala slova, što znači da promjenljive x i X nisu ista stvar.

Operatori koje možemo koristiti su:

Aritmetika
++ Uvećanje -- Umanjenje
+ Sabiranje - Oduzimanje
* Množenje / Dijeljenje
div Cjelobrojno dijeljenje mod, % Ostatak cjelobrojnog dijeljenja
Relacije
< Manje > Veće
<= Manje ili jednako >= Veće ili jednako
== Jednako != Različito
=== Strogo jednako !== Strogo različito
Logika
&& Konjunkcija || Disjunkcija
! Negacija
Rad sa bitovima
& AND | OR
^ XOR ~ Negacija
<< Šiftovanje ulijevo sa nulom >> Označeno šiftovanje udesno
>>> Šiftovanje udesno sa nulom
Stringovi
+ Konkatenacija
Operatori dodjele
= Dodjela vrijednosti %= Dodjela ostatka dijeljenja
+= Sabira i dodjeljuje -= Oduzima i dodjeljuje
*= Množi i dodjeljuje /= Dijeli i dodjeljuje
<<= Šiftuje i dodjeljuje >>= Šiftuje i dodjeljuje
>>>= Šiftuje i dodjeljuje ^= XOR-uje i dodjeljuje
&= AND-uje i dodjeljuje |= OR-uje i dodjeljuje

Možemo koristiti i sljedeće ugrađene funkcije:

Aritmetika
abs(x) Vraća apsolutnu vrijednost zadatog broja x
sqr(x) Vraća kvadrat zadatog broja x
sqrt(x) Vraća kvadratni korijen zadatog broja x
trunc(x) Vraća vrijednost broja x zaokruženog na cijeli broj, tako što mu se zanemaruju decimale
floor(x) Vraća vrijednost broja x zaokruženog na prvi manji cijeli broj
ceil(x) Vraća vrijednost broja x zaokruženog na prvi veći cijeli broj
round(x) Vraća vrijednost broja x, matematički zaokruženog na cijeli broj
rand() Vraća slučajan broj u intervalu od 0 do 0.9999999
Trigonometrija
sin(a) Vraća sinus ugla a (izraženog u radijanima)
cos(a) Vraća kosinus ugla a (izraženog u radijanima)
tan(a) Vraća tangens ugla a (izraženog u radijanima)
asin(x) Vraća arkus-sinus broja x
acos(x) Vraća arkus-kosinus broja x
atan(x) Vraća arkus-tangens broja x
Logaritmi
ln(x) Vraća logaritam broja x za osnovu e (prirodni logaritam)
exp(x) Vraća eksponent broja x: ex
Stringovi
len(s) Vraća dužinu zadatog stringa s
str(x) Zadati broj x konvertuje u string
val(s) Zadati string s konvertuje u broj (pod uslovom da je broj zadat u obliku stringa)
ord(s) Vraća numerički kod zadatog znaka s
chr(x) Vraća znak koji odgovara zadatom numeričkom kodu x
getchar(s,n) Vraća n-ti znak stringa s (prvi znak stringa je 0)

Program prepoznaje konstantu PI:

Trigonometrija
_PI Broj Pi (3.1415...)
Biblioteka zadataka
Klikni na zadatak da učitaš rješenje
Objašnjenje zadatka