moos Programiranje za geodete~lekoia
Programiranje za geodete - lekcija 1
[Bl seodesy.pro201271/11/prograriranjeza-geodeteekcja/
8y Zoran Petrovié
Geodezija je danas usko vezana za informatiku.
Moderni instrumenti omoguéavaju prikupljanje ogromne koligine podataka, koje je nemoguée
obraditi na tradicionalni nagin- bilo na papiru ili kalkulatoru, U te svrhe se pretezno koristi softver
koji najéesée nije besplatan ili ne ispunjava sve nage zahtjeve. Kako se geodezija bavi Sirokim
spektrom problema i nailazi na veliki broj posebnih slugajeva, tako ne mozemo ni oéekivati da €emo
nati softver koji posjeduje sve moguénosti koje ée nam trebati, Poznavanje programiranja nas moze
spasiti od mukotrpnih sati provedenih sa kalkulatorom.
U nekoliko lekcija pokusa¢emo vas nauiti osnovama programiranja i fokusiracemo se na konkretne
primjere koji se mogu primijeniti u geodezij
Ako Zelite nauditi kako napraviti program koji je naveden ispod, nastavite éitati
Unesits
Y (istok) koordinatu tatke A:
X (sjever) koordinatu tacke A:
Y (istok) koordinatu tacke 8:
X (Sjever) koordinatu tacke B:
Koristiéemo programski jezik JavaScript.
hewikipedia.org:
JavaScript je skriptni programski jezik, koji se izvrSava u web pregledniku na strani korisnika
Napravljen je da bude st
temelji na prototipu i tu pr
‘an Javi, zbog lakega koriStenja, ali nije objektno orijentiran kao Java, v
staje svaka povezanost s pn
ramskim jezikom Java,
ZaSto JavaScript? JavaScript nije najbrZi programski jezik i nedostaje mu dosta moguénosti koje
posjeduju programski jezici kao Sto su C++, Java, VB.NET, C#, itd. Medutim za nae potrebe je
dovoljno brz i, 8to je najvaznije, jednostavan za nautiti. Za programiranje ée nam trebati program za
pisanje teksta (npr,, Notepad) i web preglednik (npr., Chrome ili Firefox). Ako koristite Windows
operativni sistem preporuujem Notepad++, a za one koji koriste Linux distribucije preporuéujem
MEDIT.
Ova lekcija ée biti duza jer éemo pokriti dosta novih stvari. Napraviéemo jednostavan program koji
raguna duzinu u ravni izmedu dvije taéke. U JavaScript-u mozemo napisati funkciju koja ée
izragunati duzinu, ali za interfejs moramo koristiti HTML (HyperText Markup Language).
Preko HTML stranice éemo visiti unos podataka (koordinata) i prikazivanje rezultata (duzina). Na
ovaj natin program ée se modi izvSavati na vagem ragunaru, a moci éete ga i objaviti na internetu u
obliku web stranice.
1.1 HTML interfejs
tntpsihanU Notepad-u napisite sledece: 18moos Programiranje za geodete~lekoia
1
2
3
4
5
6 Unesite:
7 Y (istok) koordinatu tagke A:
8 X (Sjever) koordinatu taéke A:
9 'tent” id="yb" />-
Y (istok) koorciinatu tazke B:
u
2
13
14
as
Ovaj dokument saéuvajte sa nastavkom .html. Ako ste koristili Notepad, izaberite File > Save As... i
pod Save as type: izaberite All Files (.*), Pod File name: upisite moj_prvi_program.html. Encoding
rneka bude UTF-8, Saéuvajte dokument i pokrenite ga sa web preglednikom.
Kao Sto vidite, sa nekoliko linija teksta smo napravili interfejs preko kojeg ée korisnik da unese
podatke i gdje ée rezultat biti ispisan. Posto je HTML preopiima celina, u ovom élanku HTML,
elementi ée biti samo ukratko objasnjeni. Zato preporucujem da pogledate tekst koji ste kopirali u
Notepad, navedena objasnjenja u élanku i rezultat koji ste dobili u web pregledniku. Na taj nagin
probajte da razumijete ulogu svakog koristenog HTML elementa,
HTML stranica se konstruige pomocu elemenata (ili tagova). Svaka stranica treba da sadrdi:
1. definiciju tipa dokumenta (doctype)
2. html element
3. head element
4, body element
Najjednostavniji primjer elementa je . Ako neki tekst napiSemo kao
Primjer on ée izgledati: Primjer (tj, bie prikazan podebljano),
Definicija tipa dokumenta govori o kojoj verziji HTML dokumenta se radi. Mi emo korisiti HTMLS,
pa éemo pisati
<100CTYPE hheml>
npr., za HTML verziju 4, tip dokumenta se obiljezava kao:
<1OOCTYPE HTML PUBLIC *-//¥BC//DTD HTML £.01//EN" *hetp://hw.u3.org/TR/heMLA/strict.étd”>
Element head oznaéava zaglavije dokumenta, Sve Sto napiSemo u tom dijelu neée biti prikazano
direktno na stranici. Ovdje éemo za sada pisati funkcije u JavaScript-u.
Element body oznatava tijelo dokumenta. U ovom elementu éemo pisati sve Sto Zelimo da se
prikaze na stranici, kao Sto su polja za unos podataka i rezultat,
Intpstn 218moos Programiranje za geodete~lekoia
‘Ako Zelimo da napravimo polje za unos teksta, to radimo sa elementom
Atribut id sadrdi naziv koji dodjelimo poli, i sluziée nam kasnije da bi preuzeli podatke koji su
uneseni u to polje.
Da bi prikazali dugme na stranici, koristimo element:
Atribut onclick sadrdi naziv funkcije koja ée se pokrenuti kada korisnik klikne na dugme.
Unutar elementa piSemo tekst (npr. Izraéunaj) koji ée biti ispisan na dugmetu.
Za ispis rezultata cemo koristiti paragraf element, t),
‘Ako elimo da se na stranici neki element pojavi u novom redu, koristi¢emo element:
cor >
1.2 Funkcije u JavaScript-u
Sada imamo napravijen interfejs, ostaje nam jo$ da napravimo funkciju koja ée da raguna duzinu
JavaScript koristi sljedei format za pravijenje funkcije:
1 function ime funkcije(parametri) (
2 ifformule
3 return rezultat;
4)
parametri su sve vrijednosti koje nam trebaju da bi ne8to izragunal.
Izmedu ( } piSemo sav programski kod koji funkcija treba da izvr3i nakon Sto bude pozvana
Poslije svake komande potrebno je pisati ;. Znak ; se nikada ne pige poslije }.
Vrijednost koja dolazi nakon return je vrijednost koju ée funkcija da vrati kao rezultat.
Da bi izraéunali duzinu izmedu dvije taéke, potrebne su nam koordinate tih tagaka. Zbog toga naga
funkeija ima sljedeée parametre: duzina(ya, xa, yb, xb).
Moraéemo koristiti dvije funkcije, koje su sastavni dio JavaScript-a. To su:
1. Mathsqrt(a) = raéuna va,
2. Math.pow/a, b) = raguna a?
Duinu raéunamo: d = V((yb-ya)?+ (Xo-xa)2)
pa naa funkcija napisana u js izgleda ovako:
tips 35moos
Programiranje za geodete~lekoia
1 function duzinatya, xa, yb, xb) {
2 vard = Mathsart(Math.pow(yb - ya, 2) + Math.pow(xb - xa, 2);
3 retund,
4
Sa rijeci var deklarisemo novu varijablu u koju moZemo spremiti neku vrijednost i kasnije joj
pristupiti
Funkcija koju smo upravo napisali raguna duziny, ali ima 2 problema:
1 potrebni su joj parametri (koordinate) i ne zna odakle da uzme te parametre,
2. dudinu izraéuna i ne pokazuje je korisniku
Postoji vige nagina da rijesimo ovaj problem. Najbolje je napraviti jo8 jednu funkciju koja ée da
prikupi parametre (koordinate ta¢aka), proslijedi ih funkeiji koja raéuna duzinu i rezultat ispige na
ekranu
Sjecate se id atributa koje smo koristili u HTML elementima? Upravo nam ti atributi sluze za
identifikaciju elemenata i pomocu njih moZemo pristupiti vrijednostima elemenata. Da bi to uradili,
koristimo sljedeéu funkciju
document. getElenentyid(*naziv_i¢_atributa”).value;
Navedena funkcija vraéa vrijednost elementa koji ima navedeni id atribut.
Da bi upisali vrijednost u neki element, koristimo funkciju
docunent..getélenentayld("naziv_id_atributa”).innesHIML = neka_vrijecnost
Nova funkcija ée izgledati ovako
1. function izracunaj_duzinud {
var ya = document.getElementByld("
var xa = document. getélementByld("xa") values
var yb = document getElementByid("yb"). value;
var xo = document.getElementByid("x")value;
var d= duzina(ya, xa, yb, xb);
document.getElementByld("rezultat")nnerHTML = "Dudina izmedu taéaka Ai 8 = " + di
Iz svakog polja smo uzeli vrijednost i spremili je u varijablu (ya, xa, yb, xb). Zatim smo te varijable
proslijedili funkciji duzina(ya, xa, yb, xb). Rezultat te funkcije smo spremili u varijablu d. Na kraju u
element sa id atributom “rezultat” upisujemo izraéunatu vrijednost, ti, vijednost varijable d.
Bitno je napomenuti da sa navedenim onclick atributem pozivamo funkciju izracunaj_duzinu(), jer
je ona zaduzena za preuzimanje podataka od korisnika i ispis rezultata, dok je funkcija duzina()
zaduzena samo za ragunanje.
Navedene funkcije je potrebno staviti u element. Kopirajte sljede¢e u Notepad i
saguvajte u HTML format, na nagin na koji je ranije navedeno:
tips 45,moos
Programiranje za geodete~lekoia
chead>
Unesite:
Y (tok) koordinatu tacke A:
X sever) koordinatu tacke 8: