Download as pdf
Download as pdf
You are on page 1of 5
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: 18 moos 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 218 moos 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 35 moos 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:

You might also like