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 Algoritmima
Aplikacija Algoritmi na START platformi nam omogućava da koristimo određen broj ugrađenih funkcija u našim blok-dijagramima 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 |
Strukture podataka | |
array(n,m,...) | Kreira dinamički niz sa zadatim dimenzijama. Indeksi članova niza zadaju se u uglastim zagradama, npr. a[i,j]. Elementi niza ne moraju biti istog tipa. |
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 |
paint() | Iscrtava ranije zadate grafičke komande. Kada u algoritmu postoji ova funkcija, ništa se ne iscrtava dok se ne dođe do nje. Na taj način se jako ubrzava crtanje i dobijamo glatku i brzu animaciju u grafičkoj konzoli. |
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.