WEBnSTUDY.com
Algoritmi

Korišćenje funkcija u izrazima

Da se podsetimo - funkcije takođe mogu učestvovati u izrazima. Druga bitna stvar je da funkcije vraćaju vrednost (iako to nije pravilo). Funkcija se uvek poziva tako što se navede naziv funkcije i odmah potom lista parametara u zagradi (parametri se još nazivaju i "argumenti").

funkcija(parametri)

Funkcija može imati jedan ili više parametara koji se onda odvajaju zarezima. Neke funkcije uopšte nemaju parametre, ali i kod njih moraju da se navedu zagrade.

fun(param) // funkcija sa jednim parametrom fun(param1, param2, ...) // funkcija sa više parametara fun() // funkcija bez parametara

Programski jezici obično dolaze "napakovani" brojnim bibliotekama funkcija koje programeri mogu koristiti. Zahvaljujući tome, vreme programiranja se jako skraćuje - jednostavno, ne moramo raditi nešto što je neko već napravio.

Parametri (uobičajeno) moraju imati vrednost. Svaki parametar može biti literal, promenljiva, ponovo poziv neke funkcije ili čitav izraz. U najstriktnijem smislu, moramo zadati tačno onoliko parametara koliko se traži i to tako da pazimo da njihove vrednosti budu odgovarajućih tipova. Funkcija vraća samo jednu vrednost.

Ugrađene funkcije u Viziji

Vizija nam omogućava da koristimo određen broj ugrađenih funkcija u našim algoritmima i ovde dajemo njihovu referentnu listu. Većina ovih funkcija u nekom obliku postoji u različitim programskim jezicima, odnosno okruženjima. Neke smo "pozajmili" iz Pascala, neke iz BASIC-a, a neke iz JavaScripta.

Aritmetika
abs(x) Vraća apsolutnu vrednost zadatog broja x
sqr(x) Vraća kvadrat zadatog broja x
sqrt(x) Vraća kvadratni koren zadatog broja x
trunc(x) Vraća vrednost broja x zaokruženog na celi broj, tako što mu se zanemaruju decimale
floor(x) Vraća vrednost broja x zaokruženog na prvi manji celi broj
ceil(x) Vraća vrednost broja x zaokruženog na prvi veći celi broj
round(x) Vraća vrednost broja x, matematički zaokruženog na celi 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)

Ovde ćemo predstaviti i nekoliko grafičkih funkcija, koje koristimo za crtanje u grafičkom okviru. Ove funkcije ne vraćaju vrednost (tj. vraćaju 0), tako da ih nema smisla koristiti unutar izraza.

Grafika
color(boja) Postavlja boju za iscrtavanje linije. Boja se zadaje kao string u CSS formatu.
fill(boja) Postavlja boju za popunjavanje oblika. Boja se zadaje kao string u CSS formatu.
rgba(r,g,b,a) Ok, ova funkcija vraća vrednost - na osnovu 4 numeričke vrednosti definiše CSS string za boju koji se onda može koristiti u color() ili fill() funkciji. Vrednosti r, g i b su u rangu od 0..255, a vrednost a od 0..1.
cls() Briše grafički okvir
pixel(x,y) Iscrtava tačku na zadatim koordinatama x,y
line(x1,y1, x2,y2) Iscrtava liniju od tačke x1,y1 do tačke x2,y2
rect(x,y, sir,vis) Iscrtava pravougaonik od tačke x,y za zadatu širinu i visinu
ellipse(x,y, rx,ry) Iscrtava elipsu sa centrom u tački x,y i poluprečnicima rx i ry

Pored navedenih funkcija, naš sistem za rad sa algoritmima ima i određene "sistemske" konstante koje možemo koristiti:

Trigonometrija
_PI Broj PI
Grafika
_WIDTH Širina grafičkog okvira u pikselima
_HEIGHT Visina grafičkog okvira u pikselima

Primer

Pogledajmo jedan jednostavan primer...

Možete i sami isprobati kako ovaj primer funkcioniše.

Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.