









Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pojam programa Računarski program, softverski program ili jednostavno program (eng. Computer program; software program, program) je spisak naredbi napisan u nekom programskom jeziku namijenjen za određenu računarsku platformu. Računarski programi napisani u nekom programskom jeziku su razumljivi čovjeku, ali te naredbe ne razumije i računar, zbog toga se kod računarskog programa pomoću kompajlera mora prevesti u binarni kod da bi ga računar razumio i uopšte izvršavao.
Tipologija: Maturalni radovi
1 / 15
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!










Pojam programa Programiranje Programski jezici JavaScript Izvori
Računarski program, softverski program ili jednostavno program (eng. Computer program; software program, program) je spisak naredbi napisan u nekom programskom jeziku namijenjen za određenu računarsku platformu. Računarski programi napisani u nekom programskom jeziku su razumljivi čovjeku, ali te naredbe ne razumije i računar, zbog toga se kod računarskog programa pomoću kompajlera mora prevesti u binarni kod da bi ga računar razumio i uopšte izvršavao.
Primjer računarskog programa
.begin .org 2048 a_start .equ 3000 2048 ld [length],&r1 11000010 00000000 00101000 00101100 2052 ld [address],%r2 11000100 00000000 00101000 00110000 2056 addcc %r3,%r0,% r
10000110 10001000 11000000 00000000
2060 loop: addcc %r1,%r1,% r
10000000 10001000 01000000 00000001 2064 be done 00000010 10000000 00000000 00000110 2068 addcc %r1,-4,%r1 10000010 10000000 01111111 11111100 2072 addcc %r1,%r2,% r
10001000 10000000 01000000 00000010 2076 ld %r4,%r5 11001010 00000001 00000000 00000000 2080 ba loop 00010000 10111111 11111111 11111011 2084 addcc %r3,%r5,% r
10000110 10000000 11000000 00000101
2088 done: jmpl %r15+4,%r0 10000001 11000011 11100000 00000100 2092 length: 20 00000000 00000000 00000000 00010100 2096 address: a_start 00000000 00000000 00001011 10111000 .org a_start 3000 a: 25 00000000 00000000 00000000 00011001 3004 -10 11111111 11111111 11111111 11110110 3008 33 00000000 00000000 00000000 00100001 3012 -5 11111111 11111111 11111111 11111011 3016 7 00000000 00000000 00000000 00000111 .end
Najpoznatiji primjer je poznati Hello world program, koji pokazuje osnovne naredbe nekog programskog jezika. Računar u toku svog rada prepoznaje i izvršava u procesoru određeni broj elementarnih operacije koje se nazivaju mašinske instrukcije.
Programiranje ili računarsko programiranje (eng. programming) jeste vještina pomoću koje korisnik stvara i izvršava algoritme koristeći određene programske jezike da bi napravio računarski program. Programiranje sadrži elemente umjetnosti, nauke, matematike i konstruisanja. Pri izradi svakog programa potrebno je proći kroz 4 osnovne faze ili koraka:
Prvi korak u izradi računarskog programa je analiza potreba, razmatranje situacije i problem koji treba riješiti definisati preko jednačina, uslova i kroz tzv. pseudo algoritam. Programeru mora biti jasno kako će se dešavati promjene, zavisnosti, uzroci i posljedice, da bi sve to prenio i precizirao kroz programski kod. Sve mora biti matematički precizirano. Kod jednostavnijih programa ovaj dio je u domenu usmene analize, dok se kod složenijih programa ovaj dio radi u pisanoj i simboličkoj formi uz uredno dokumentiranje svih promjena ( ovaj dio spada u domen softverskog inženjerstva).
Riječ algoritam potiče od imena arapskog matematičara Al Harizmija koji se smatra tvorcem algoritma kao skupom precizno definisanih pravila za izvršavanje aritmetičkih operacija. Algoritam je procedura (postupak) sa skupom jasno definisanih koraka koji nedvosmisleno vode ka rješenju problema. Svaki algoritam mora ispoštovati 5 osnovnih zakonitosti algoritma:
Nakon završetka algoritma, pristupa se pisanju programskog koda na papiru. U ovom koraku se svaki korak algoritma prevodi u odgovarajuću komandu u programskom jeziku u kojem se piše.
Kada su izvršene sve (analitičke) pripreme i ručno ispisan kod potrebno ga je unijeti u računar prilagođavajući programskom alatu u kojem će se program testirati i izvršavati. Svaki programski jezik ima svoj editor koji omogućuje unos programskog koda tzv. Izvorni kod uz kontrolu ispravnosti ispisa ključnih riječi i sintakse uopće. Uz editor u svakom programskom alatu nalazi se i interpreter koji omogućava testiranje svake linije koda ili koda u cjelini kako bi se blagovremeno otklonile eventualne greške u sintaksi ili definisanim varijablama, dimenzionisanju varijabli i sl. Nakon unosa kompletnog programa u računar program se treba pokrenuti da bi se vidjelo da li radi. Program se treba više puta pokrenuti da bi se vidjelo da li program radi za različite ulazne vrijednosti,a ovo podrazumjeva i sve granične vrijednosti.
Algoritamske strukture se dijele u tri osnovne grupe:
Stvaranje nekog programa uključuje još i:
Dijele se na:
Sve je počelo sa strojnim jezicima (asemblerima), koji su se brzo izvršavali, ali sporo pisali, te se danas samo kritični dijelovi operativnih sustava pišu na taj način.
JavaScript , takođe poznat kao ECMAScript je dinamični programski jezik. On se najčešće koristi kao dio web browsera, čija implementacija omogućava omogućava skripte na klijentskoj strani da vrše interakciju s korisnikom, kontrolišu browser, komuniciraju asinhrono, i mijenjanje sadržaja dokumenta koja se prikazuje. Takođe se koristi u server-side programiranju mreže sa runtime okruženjima kao Node.js , razvoju igara i stvaranju desktop i mobilnih aplikacija. JavaScript je klasificiran kao prototipno baziran skripti jezik s dinamičnim kucanjem i first-class funkcije. Ova mješavina karakteristika čini multi-paradigmičnim jezikom, koji podržava objektno orijentirane, imperativne, i funkcionalne stilove programiranja. Uprkos malim sličnostima, Java i JavaScript su veoma različiti i imaju veoma različite semantike. Sintaksa JavaScripta vuče korijene iz C-a, dok semantika i dizajn vode porijeklo od Self i Scheme programskih jezika. JavaScript se takođe koristi u sredinama koje nisu zasnovane na web, kao što su PDF dokumenti, pretraživači specifične za sajt, i desktop widgete. Noviji i brži JavaScript virtualnih strojeva (VM) i platforme izgrađene na njima su takođe povećale popularnost JavaScript-a za serversku stranu web aplikacija. JavaScript je standardizovan u ECMAScript specifikaciji jezika.
e 1.0 mart 1996. 2.0 3. 1.1 avgust
1.2 juni 1997. 4.0 - 4. 1.3 oktobar
4.06 4.
1.4 Netscape Server 1.5 novembar
6.0 1.0 5.5(JScript 5.5), 6 (JScript 5.6), 7( JScript 5.7), 8 (JScript 5.8)
1.0 6.0, 7.0, 8.0, 9.0,
3.0, 3.1, 3.2,
1.6 novembar
1.7 oktobar
1.8 juni 2008. 3. 1.8.1 3. 1.8.2 3. 1.9 4
JavaScript podržava mnogo od strukturne programske sintakse iz C-a (npr. if uslovi, while petlje, switch uslovi, do while petlje...), Jedini izuzetak je scoping: block scoping iz C- a nije podržan, umjesto toga, JavaScript ima function scoping. Kucanje je, kao u većini skriptnih jezika, dinamično. Tipovi se vežu uz vrijednosti, ne za varijable. Npr. varijabla x se može vezati za broj, a kasnije se pretvoriti u string. JavaScript podržava razne načine testiranja tipa objekta, uključujući duck typing. JavaScript je skoro potpuno baziran na objektivna. JavaScript objekti su asocijativni nizovi. Podržavaju dvije sintakse: tačkastu notaciju (obj.x = 10) i notaciju sa zagradama (obj [‘x’] = 10). Osobine i njihove vrijednosti mogu biti dodavane, mijenjane ili obrisane u run- time-u. Većina osobina objekta (i one na prototype nasljednom lancu) može biti nabrojano koristeći for...in petlju. JavaScript posjeduje mali broj ugrađenih objekata kao što su Function i Date. JavaScript uključuje eval funkciju koja može izvršavati linije kao stringove u run- time-u. Funkcije su first-class; same po sebi su objekti. Kao takve, imaju svoje osobine i metode, kao .call() i .bind(). Ugnježdena funkcija je funkcija definisana unutar druge funkcije. Kreirana je svaki put kada je spoljašnja funkcija pozvana. JavaScript podržava i anonimne funkcije. JavaScript koristi prototipe za nasljeđivanje umjesto klasa. Moguće je simulirati mnoge karakteristike bazirane na klasa uz pomoć prototipa.
Funkcije djeluju i kao konstruktori objekata zajedno sa njihovom tipičnom ulogom. Prefiksovanjem poziva funkcije sa new napraviće verziju prototipa, naslijediti osobine i metode iz konstruktora (uključujući osobine iz Object prototipa). ECMAScript 5 nudi Object.create metodu, koja dozvoljava eksplicitno stvaranje verzije bez automatskom nasljeđivanja iz Object prototipa (starija orkuženja mogu odrediti vrijednost prototipa na null). Nove metode se mogu dodati mijenjanjem prototipa funkcije koja je korištena kao konstruktor. Ugrađeni konstruktori JavaScripta-a, kao što su Array ili Object, takođe imaju prototipe koji se mogu modifikovati. Iako jeste moguće modifikovati Object prototip, to se generalno smatra lošom navikom zato što većina objekata u JavaScriptu će naslijediti metode i osobine iz Object prototipa i možda neće očekivati promjene u njemu. Za razliku od mnogih objektno-orjentisanih jezika, ne postoji razlika između definisanja funkcije i definisanja metode. Umjesto toga, razlika se pojavljuje tokom poziva funkcije; kada se funkcija poziva kao metod objekta, funkcijina lokalna this ključna riječ je vezana za taj objekat tokom tog poziva. JavaScript se uglavnom oslanja na run-time okruženja, kao što su web browseri, kako bi pokrenuo objekte i metode, čije skripte mogu interaktivno komunicirati sa okruženjem. Takođe, JavaScriptu je potrebno run-time okruženje kako bi mogao da importuje skripte (kao što je HTML-ov var i, x = 0; for (i = 0; i < arguments.length; ++i) { x += arguments[i]; } return x; } sum(1, 2, 3); // vraća 6
Složeniji primjeri
Ovaj primjer koda prikazuje razne mogućnosti JavaScripta.
/* pronalazi najmanji zajednički sadržilac(LCM – lowest common multiple) dva broja */ function LCMCalculator(x, y) { // konstruktor funkcije var checkInt = function (x) { // unutrašnja funkcija if (x % 1 !== 0) { throw new TypeError(x + " nije integer"); // izbacuje izuzetak } return x; }; this .a = checkInt(x) // tačka-zarez nije neophodna, nova linija je dovoljna this .b = checkInt(y); } LCMCalculator. prototype = constructor: LCMCalculator, // gcd: function () { // metod koji računa najveći zajednički djelilac // Euklidov algoritam: var a = Math.abs( this .a), b = Math.abs( this .b), t; if (a < b) { // zamjena varijabli t = b; b = a; a = t; } while (b !== 0) { t = b; b = a % b; a = t; } // 'gcd' === "gcd", this['gcd'] === this.gcd this ['gcd'] = function () { return a; }; return a; }, // nazivi osobina objekta mogu biti određeni stringovima ograničenim navodnicima (") ili apostrofom (') lcm : function () { // nazivi varijabli se ne sudaraju sa osobinama objekta, npr., |lcm| nije |this.lcm|.
var lcm = this .a / this .gcd() * this .b; this .lcm = function () { return lcm; };