Uvod. Small Basic i programiranje. Okruženje Small Basica
|
|
|
- Benedict Cameron
- 9 years ago
- Views:
Transcription
1 Uvod Small Basic i programiranje Računalno programiranje definira se kao postupak stvaranja računalnog softvera pomoću odgovarajućih programskih jezika. Baš kao što mi govorimo i razumijemo hrvatski, španjolski ili francuski, računala razumiju programe napisane u odreďenim jezicima. Jezici koje računala razumiju zovu se programski jezici. Nekoć je postojalo samo nekoliko programskih jezika i mogli su se vrlo jednostavno savladati i razumjeti. No kako su računala i softver postajali sve sofisticiraniji, programski su se jezici brzo razvijali obuhvaćajući pritom sve složenije koncepte. Zato su suvremeni programski jezici i njihovi koncepti prilično nerazumljivi početnicima. Ta je činjenica obeshrabrila mnoge koji su željeli naučiti programirati računala i one koji su ih pokušavali programirati. Small Basic je programski jezik stvoren da programiranje početnicima učini krajnje jednostavnim, pristupačnim i zabavnim. Small Basic je stvoren da ukloni te prepreke i svima omogući ulazak u čudesan svijet računalnog programiranja. Okruženje Small Basica Najprije ćemo ukratko opisati okruženje Small Basica. Kada prvi put pokrenete program SmallBasic.exe, pojavit će se prozor koji izgleda kao ovaj na sljedećoj slici. Slika 1 okruženje Small Basica To je okruženje Small Basica, u kojemu ćete pisati i pokretati programe u Small Basicu. Okruženje ima nekoliko elemenata naznačenih brojevima. U uređivaču, naznačenom brojem [1], pisat ćete programe u Small Basicu. Kada otvorite ogledni ili prethodno spremljeni program, on će se pojaviti u ureďivaču. Tada ga možete izmijeniti i spremiti za kasnije korištenje. Istodobno možete otvoriti više programa i raditi s njima. Svaki program s kojim radite prikazat će se u zasebnom ureďivaču. UreĎivač u kojemu se nalazi program s kojim trenutno radite zove se aktivni ureďivač. Alatna traka, naznačena brojem [2], omogućuje upućivanje naredbi aktivnom ureďivaču ili okruženju. Razne naredbe dostupne na alatnoj traci upoznat ćete u nastavku. Na površini, naznačenoj brojem [3], nalaze se svi prozori ureďivača.
2 Vaš prvi program Sada kada ste upoznali okruženje Small Basica, možemo nastaviti i početi programirati u njemu. Kao što je već rečeno, ureďivač je mjesto na kojemu pišete programe. Upišite onda sljedeći redak u ureďivač. TextWindow.WriteLine("Hello World") To je vaš prvi program u Small Basicu. Ako ste ga ispravno upisali, trebali biste vidjeti nešto slično ovome na donjoj slici. Slika 2 prvi program Sad kada ste upisali svoj prvi program, pokrenite ga da biste vidjeli što će se dogoditi. Program možete pokrenuti klikom na gumb Run (Pokreni) na alatnoj traci ili pomoću tipkovnog prečaca F5. Ako sve proďe bez poteškoća, program bi se trebao pokrenuti s dolje prikazanim ishodom. Slika 3 izlaz prvog programa Čestitamo! Upravo ste napisali i pokrenuli svoj prvi program u Small Basicu. To je vrlo kratak i jednostavan program, ali je ipak velik korak prema vašoj preobrazbi u pravog računalnog programera! No to je samo jedan korak koju smo morali obaviti prije no što prijeďemo na stvaranje većih programa. Morate razumjeti što se upravo dogodilo što ste točno naredili računalu i kako je ono znalo što mora učiniti? Zato ćemo u sljedećem poglavlju analizirati program koji ste upravo napisali.
3 Dok ste pisali svoj prvi program, vjerojatno ste primijetili da se pojavio skočni prozor s popisom stavki (slika 4). Taj se popis zove "intellisense" i omogućuje brže pisanje programa. Krećite se po njemu pomoću tipki sa strelicama gore i dolje, a kada pronaďete željenu stavku, pritisnite Enter da biste je umetnuli u program. Slika 4 Intellisense Spremanje programa Ako želite zatvoriti okruženje Small Basica i poslije nastaviti raditi na programu koji ste upravo napisali, možete spremiti program. Preporučljivo je povremeno spremati programe da ne biste izgubili podatke u slučaju nehotičnog isključivanja računala ili nestanka električne energije. Trenutni program spremite klikom na ikonu "Save" (Spremi) na alatnoj traci ili pomoću prečaca "Ctrl+S" (pritisnite tipku S držeći pritisnutu tipku Ctrl).
4 2. poglavlje Kako funkcionira vaš prvi program? Što je zapravo računalni program? Program je skup naredbi računalu. Te naredbe govore računalu što točno mora učiniti i ono ih uvijek izvršava. Baš kao i ljudi, računala će izvršavati naredbe samo ako su napisane na jeziku koji razumiju. Jezici koje računala razumiju zovu se programski jezici. Računala razumiju brojne jezike, a Small Basic je jedan od njih. Zamislite razgovor izmeďu sebe i nekog svog prijatelja. Za meďusobni prijenos informacija vi i vaš prijatelj koristit ćete riječi organizirane u rečenice. I programski jezici sadrže zbirke riječi koje se mogu organizirati u rečenice koje prenose informacije računalu. Programi su u osnovi skupovi rečenica (katkad ih sadrže svega nekoliko, a katkad više tisuća) koje kao cjelina imaju smisla i programeru i računalu. Programi u Small Basicu Uobičajeni program u Small Basicu sastoji se od brojnih iskaza. Svaki redak programa predstavlja iskaz, a svaki je iskaz odreďena naredba računalu. Kada računalu naredimo da izvrši program u Small Basicu, ono će pročitati prvi iskaz u programu. Računalo će razumjeti što želimo, a zatim izvršiti našu naredbu. Nakon što izvrši prvi iskaz, vratit će se u program te pročitati i izvršiti drugi redak. Nastaviti će to činiti dok ne doďe do kraja programa. Tada se izvoďenje programa završava. Računala razumiju mnoge jezike. Java, C++, Python, VB itd. suvremeni su računalni jezici bogatih mogućnosti, koji se koriste za razvoj softverskih programa različitih razina složenosti. Još malo o vašem prvom programu Ovo je prvi program koji ste napisali: TextWindow.WriteLine("Hello World") To je vrlo jednostavan program, koji se sastoji od samo jednog iskaza. Taj iskaz nareďuje računalu da u prozoru za tekst napiše redak teksta Hello World. Taj iskaz računalo doslovce tumači kao: Napiši Hello World Vjerojatno ste primijetili da se iskaz može rastaviti na manje dijelove, baš kao što se rečenice mogu rastaviti na riječi. Prvi iskaz ima tri dijela: a) TextWindow b) WriteLine c) "Hello World" Točka, zagrade i navodnici rečenični su znakovi koje je potrebno umetnuti na odgovarajuća mjesta u iskazu da bi računalo znalo što želimo. Vjerojatno se sjećate crnog prozora koji se pojavio kada ste pokrenuli svoj prvi program. Taj se crni prozor zove TextWindow (prozor za tekst), a katkad i konzola. U njemu se prikazuje ishod izvoďenja programa. TextWindow u ovom se programu zove objekt. U programima možete koristiti brojne objekte. Na objektima možete obavljati više različitih operacija. U svom ste programu već koristili operaciju WriteLine. Vjerojatno ste primijetili i da se iza operacije WriteLine nalazi tekst Hello World unutar navodnika. Taj se tekst kao ulazna
5 vrijednost prenosi u operaciju WriteLine, a ona ga zatim prikazuje korisniku. To je tzv. ulazna vrijednost operacije. Neke operacije prihvaćaju jednu ili više ulaznih vrijednosti, a druge ne prihvaćaju nijednu. Rečenični znakovi, primjerice navodnici, razmaci i zagrade, vrlo su važni u računalnim programima. Ovisno o njihovu položaju i broju rečenični znakovi mogu promijeniti značenje onoga što želite izraziti. Vaš drugi program Sada kada razumijete kako funkcionira vaš prvi program, dotjeramo ga malo dodavanjem boja. TextWindow.ForegroundColor = "Yellow" TextWindow.WriteLine("Hello World") Slika 5 dodavanje boja Kada ga pokrenete, gornji će program u prozoru za tekst ponovno prikazati tekst "Hello World", ali ovaj će ga put prikazati u žutoj boji, a ne u sivoj kao prošli put. Slika 6 žuti tekst Hello World Obratite pozornost na novi iskaz koji smo dodali u izvorni program. Taj iskaz sadrži novu riječ, ForegroundColor, koju smo izjednačili s vrijednošću "Yellow".To znači da smo svojstvu ForegroundColor dodijelili vrijednost "Yellow". Razlika izmeďu svojstva ForegroundColor i operacije WriteLine u tome je što svojstvo ForegroundColor ne prihvaća ulazne vrijednosti i ne treba zagrade. Umjesto toga ono je popraćeno znakom jednakosti i odreďenom riječju. ForegroundColor je svojstvo objekta TextWindow. Slijedi popis vrijednosti koje prihvaća svojstvo ForegroundColor. Zamijenite vrijednost "Yellow" nekom od tih vrijednosti i
6 pogledajte što će se dogoditi (nemojte zaboraviti navodnike oni su obavezni rečenični znakovi). Black Blue Cyan Gray Green Magenta Red White Yellow DarkBlue DarkCyan DarkGray DarkGreen DarkMagenta DarkRed DarkYellow
7 3. poglavlje Varijable Korištenje varijabli u programu Bilo bi lijepo kada bi vaš program mogao prikazati riječ "Hello" popraćenu korisnikovim imenom umjesto da prikazuje generički tekst "Hello World". Da bismo to postigli, najprije moramo pitati korisnika kako se zove, negdje pohraniti ime, a zatim prikazati tekst "Hello" popraćen korisnikovim imenom. Pogledajmo kako to učiniti: TextWindow.Write("Enter your Name: ") name = TextWindow.Read() TextWindow.WriteLine("Hello " + name) Kada napišete i pokrenete taj program, pojavit će se ovakav izlaz: Slika 7 program traži ime korisnika A kada upišete ime i pritisnete tipku ENTER, pojavit će se sljedeći izlaz: Slika 8 srdačan pozdrav Ako ga ponovno pokrenete, program će postaviti isto pitanje. Ako upišete neko drugo ime, računalo će prikazati riječ "Hello" popraćenu tim imenom. Analiza programa Vjerojatno ste primijetili sljedeći redak programa koji ste upravo pokrenuli: name = TextWindow.Read() Read() izgleda kao WriteLine(), ali bez ulaznih vrijednosti. To je operacija koja u osnovi nareďuje računalu da pričeka da korisnik nešto upiše i pritisne tipku ENTER. Kada korisnik pritisne tipku ENTER, ta operacija vraća programu ono što je korisnik upisao. Važno je napomenuti da se ono što korisnik upiše sada pohranjuje u varijablu name. Varijabla se definira kao mjesto za privremeno pohranjivanje vrijednosti za naknadnu upotrebu. U gornjem se retku u varijablu name pohranjuje ime korisnika.
8 Zanimljiv je i sljedeći redak: TextWindow.WriteLine("Hello " + name) U ovom se retku koristi vrijednost pohranjena u varijablu name. Vrijednost pohranjena u varijablu name pridodaje se riječi "Hello" i prikazuje u prozoru za tekst. Kada varijabli dodijelite neku vrijednost, možete je upotrijebiti koliko god puta želite. Možete, primjerice, učiniti sljedeće: TextWindow.Write("Enter your Name: ") name = TextWindow.Read() TextWindow.Write("Hello" + name + "." TextWindow.WriteLine("How are you doing" + name + "?" Write, baš kao i WriteLine, još je jedna operacija za prozor konzole. Operacija Write omogućuje prikaz teksta u prozoru konzole, ali novi se tekst prikazuje u istom retku kao postojeći. Pojavit će se ovakav izlaz: Slika 9 ponovno korištenje varijable Pravila za imenovanje varijabli [U IZRADI] Rad s brojevima Vidjeli ste kako u varijablu možete pohraniti ime korisnika. U sljedećih ćemo nekoliko programa vidjeti kako se u varijable pohranjuju brojevi i kako se radi s brojevima. Krenimo od vrlo jednostavnog programa: number1 = 10 number2 = 20 number3 = number1 + number2 TextWindow.WriteLine(number3) Kada pokrenete taj program, pojavit će se sljedeći izlaz:
9 Slika 10 zbrajanje dvaju brojeva U prvom se retku programa varijabli number1 dodjeljuje vrijednost 10, a u sljedećem se varijabli number2 dodjeljuje vrijednost 20. U trećem se retku zbrajaju number1 i number2, a zatim se rezultat zbrajanja dodjeljuje varijabli number3. Dakle, varijabla number3 u ovom slučaju ima vrijednost 30 i upravo se ta vrijednost prikazuje u prozoru za tekst. Izmijenimo malo program i pogledajmo što će se dogoditi: number1 = 10 number2 = 20 number3 = number1 * number2 TextWindow.WriteLine(number3) Uočite da brojevi nisu navedeni unutar navodnika. Navodnici nisu potrebni za brojeve, već samo kada koristite tekst. Gornji program množi vrijednost varijable number1 s vrijednošću varijable number2 i rezultat pohranjuje u varijablu number3. Na donjoj slici prikazano je što će se dogoditi kada pokrenete taj program: Slika 11 množenje dvaju brojeva Isto tako možete oduzeti jedan broj od drugog ili podijeliti jedan broj s drugim. Ovo je oduzimanje: number3 = number1 - number2 Znak dijeljenja je "/". Program izgleda ovako: number3 = number1 / number2 Rezultat dijeljenja je:
10 Slika 12 dijeljenje jednog broja s drugim Jednostavan program za pretvorbu temperaturnih jedinica U sljedećem se programu formula koristi za pretvorbu temperature izražene u Fahrenheitovim stupnjevima u temperaturu izraženu u Celzijevim stupnjevima. Najprije se od korisnika traži da unese temperaturu u Fahrenheitovim stupnjevima, a zatim se ta vrijednost pohranjuje u varijablu. Unos brojeva omogućuje operacija TextWindow.ReadNumber. TextWindow.Write("Enter temperature in Fahrenheit: ") fahr = TextWindow.ReadNumber() Kada se pohrani u varijablu, temperaturu u Fahrenheitovim stupnjevima lako je pretvoriti u temperaturu u Celzijevim stupnjevima: celsius = 5 * (fahr - 32) / 9 Zagrade govore računalu da najprije mora izračunati dio fahr - 32, a zatim ostatak izraza. Preostaje još samo prikaz rezultata korisniku. Cijeli program izgleda ovako: TextWindow.Write("Enter temperature in Fahrenheit: ") fahr = TextWindow.ReadNumber() celsius = 5 * (fahr - 32) / 9 TextWindow.WriteLine("Temperature in Celsius is " + celsius) Rezultat izvoďenja ovog programa je: Slika 13 pretvorba temperaturnih jedinica
11 4. poglavlje Uvjeti i grananje Vratimo se vašem prvom programu. Bilo bi zgodno kada bi se umjesto općenitog teksta Hello World ovisno o dobu dana prikazivao tekst Good Morning World ili Good Evening World. Sljedeći program prije sati prikazuje tekst Good Morning World, a nakon sati tekst Good Evening World. If (Clock.Hour < 12) Then TextWindow.WriteLine("Good Morning World") EndIf If (Clock.Hour >= 12) Then TextWindow.WriteLine("Good Evening World") EndIf Ovisno o vremenu pokretanja programa pojavit će se sljedeći izlazi: Slika 14 Good Morning World Slika 15 Good Evening World Analizirajmo prva tri retka programa. Vjerojatno ste već shvatili da taj redak nareďuje računalu da prikaže tekst "Good Morning World" ako je vrijednost svojstva Clock.Hour manja od 12. Riječi If, Then i EndIf posebne su riječi koje računalo razumije prilikom izvoďenja programa. Riječ If uvijek je popraćena uvjetom, koji je u ovom slučaju (Clock.Hour < 12). Ne zaboravite da su zagrade potrebne da bi računalo znalo što želite. Nakon uvjeta slijedi riječ then i operacija koja će se izvršiti. Nakon operacije slijedi riječ EndIf. Ta riječ obavještava računalo da je uvjetno izvršavanje gotovo. U Small Basicu objekt Clock omogućuje pristup datumu i vremenu. Nudi i brojna svojstva pomoću kojih možete dobiti zasebne podatke o danu, mjesecu, godini, satu, minutama i sekundama. IzmeĎu riječi then i EndIf može se nalaziti više naredbi, koje će računalo izvršiti ako je uvjet ispunjen. Napišite, primjerice, ovakav program:
12 If (Clock.Hour < 12) Then TextWindow.Write("Good Morning. ") TextWindow.WriteLine("How was breakfast?") EndIf Else Vjerojatno ste primijetili da je u programu na početku ovog poglavlja drugi uvjet suvišan. Vrijednost svojstva Clock.Hour može biti ili manja od 12 ili ne biti manja od 12. Druga provjera uopće nije potrebna. U takvim situacijama dva iskaza if..then..endif možete skratiti objedinjavanjem u jedan pomoću nove riječi else. Ako ga ponovno napišemo tako da koristi riječ else, program će izgledati ovako: If (Clock.Hour < 12) Then TextWindow.WriteLine("Good Morning World") Else TextWindow.WriteLine("Good Evening World") EndIf Ovaj program čini potpuno istu stvar kao prethodni, što to je dobar povod za vrlo važnu lekciju iz računalnog programiranja: U programiranju se ista stvar obično može postići na više načina. Katkad jedan način ima više smisla nego neki drugi. Programer odlučuje koji će način koristiti. Kada nakon mnogo napisanih programa steknete odreďeno iskustvo, počet ćete primjećivati te različite postupke, baš kao i njihove prednosti i nedostatke. Uvlake Kao što ste vjerojatno primijetili, u svim su primjerima iskazi izmeďu riječi If, Else i EndIf uvučeni. Te uvlake nisu neophodne. Računalo će razumjeti program i bez njih. No one olakšavaju uvid u strukturu programa i njezino razumijevanje. Zato je obično preporučljivo uvlačiti iskaze izmeďu takvih blokova. Par-nepar Sada kada ste savladali iskaz If..Then..Else..EndIf, napišimo program koji utvrďuje je li uneseni broj paran ili neparan. TextWindow.Write("Enter a number: ") num = TextWindow.ReadNumber() remainder = Math.Remainder(num, 2) If (remainder = 0) Then TextWindow.WriteLine("The number is Even") Else TextWindow.WriteLine("The number is Odd") EndIf Kada pokrenete taj program, pojavit će se ovakav izlaz:
13 Slika 16 program koji utvrđuje je li broj paran ili neparan U ovom smo programu prvi put upotrijebili novu korisnu operaciju Math.Remainder. Kao što ste vjerojatno i sami zaključili, operacija Math.Remainder dijeli prvi broj drugim, a zatim vraća ostatak. Grananje U drugom ste poglavlju naučili da računalo redom obraďuje jedan po jedan iskaz programa od prvog do posljednjeg. No postoji poseban iskaz koji računalu omogućuje skok na neki drugi iskaz, koji nije na redu za izvršavanje. Pogledajmo sljedeći program: i = 1 start: TextWindow.WriteLine(i) i = i + 1 If (i < 25) Then Goto start EndIf Slika 17 upotreba iskaza Goto U gornjem smo programu varijabli i dodijelili vrijednost 1, a zatim smo dodali novi iskaz koji završava dvotočkom (:) start:
14 To je oznaka. Oznake su svojevrsne knjižne oznake koje računalo razumije. Knjižnoj oznaci možete dodijeliti bilo koji naziv i u program možete dodati koliko god oznaka želite ako im se nazivi meďusobno razlikuju. Drugi zanimljiv iskaz u ovom programu je: i = i + 1 Taj iskaz nareďuje računalu da vrijednost varijable i poveća za 1 i rezultat ponovno dodijeli varijabli i. Dakle, ako je vrijednost varijable i prije izvoďenja ovog iskaza bila 1, nakon njegova izvoďenja bit će 2. I naposljetku: If (i < 25) Then Goto start EndIf To je dio programa koji računalu nareďuje da počne izvršavati iskaze od knjižne oznake start ako je vrijednost varijable i manja od 25. Beskonačno izvođenje Pomoću iskaza Goto računalu možete narediti da neku radnju ponovi odreďeni broj puta. Ako, primjerice, program koji utvrďuje je li broj paran ili neparan izmijenite kao u donjem primjeru, on će se neprekidno izvoditi. IzvoĎenje programa možete prekinuti klikom na gumb za zatvaranje (X) u gornjem desnom kutu prozora. begin: TextWindow.Write("Enter a number: ") num = TextWindow.ReadNumber() remainder = Math.Remainder(num, 2) If (remainder = 0) Then TextWindow.WriteLine("The number is Even") Else TextWindow.WriteLine("The number is Odd") EndIf Goto begin Slika 18 program koji utvrđuje je li broj paran ili neparan i koji se neprekidno izvodi
15 5. poglavlje Petlje Petlja For Pogledajmo program koji smo napisali u prethodnom poglavlju. i = 1 start: TextWindow.WriteLine(i) i = i + 1 If (i < 25) Then Goto start EndIf Taj program redom prikazuje brojeve od 1 do 24. Budući da je ovakav postupak povećavanja vrijednosti varijable uobičajen u programiranju, programski jezici obično nude jednostavniji način na koji se to može učiniti. Gornji program ima isti učinak kao ovaj: For i = 1 To 24 TextWindow.WriteLine(i) EndFor A izlaz je: Slika 19 upotreba petlje For Uočite da smo program s osam redaka smanjili na program s četiri retka i da unatoč tome ima posve isti učinak kao kada je imao osam redaka! Sjećate li se da smo rekli da se ista stvar obično može postići na više načina? Ovo je odličan primjer. Iskaz For..EndFor u programerskom se žargonu zove petlja. Pomoću petlje varijabli možete dodijeliti početnu i završnu vrijednost te postići da računalo povećava vrijednost varijable umjesto vas. Svaki put kada poveća vrijednost varijable, računalo izvršava iskaze izmeďu riječi For i riječi EndFor.
16 Ako želite da se vrijednost varijable svaki put poveća za 2, a ne za 1 (npr. ako želite prikazati sve neparne brojeve izmeďu 1 i 24), i to možete postići pomoću petlje. For i = 1 To 24 Step 2 TextWindow.WriteLine(i) EndFor Slika 20 samo neparni brojevi Dio Step 2 iskaza For nareďuje računalu da vrijednost varijable i povećava za 2 umjesto za uobičajenu vrijednost 1. Pomoću riječi Step možete odrediti bilo koji prirast. Čak možete navesti negativnu vrijednost za korak ako želite da računalo broji unatrag, kao u donjem primjeru: For i = 10 To 1 Step -1 TextWindow.WriteLine(i) EndFor Slika 21 brojenje unatrag Petlja While Petlja While drugi je način ponavljanja, koji je posebice koristan kada broj ponavljanja nije unaprijed poznat. Dok se petlja For izvodi unaprijed definirani broj puta, petlja While izvodi se dok god je ispunjen odreďeni uvjet. U donjem se primjeru broj dijeli s 2 dok god je rezultat veći od 1.
17 number = 100 While (number > 1) TextWindow.WriteLine(number) number = number / 2 EndWhile Slika 22 petlja za prepolovljivanje U gornjem se programu varijabli number dodjeljuje vrijednost 100, a petlja while izvodi se dok god je vrijednost varijable number veća od 1. Unutar petlje prikazuju se brojevi, a zatim se dijele s 2, odnosno prepolovljuju se. I kao što se moglo očekivati, izlaz programa je niz brojeva u kojemu je svaki sljedeći broj dvostruko manji od prethodnog. Ovaj bi program bilo vrlo teško napisati pomoću petlje For jer ne znamo koliko se puta petlja mora izvesti. Pomoću petlje While jednostavno je provjeriti je li ispunjen neki uvjet i narediti računalu da nastavi izvoditi petlju ili da prekine njezino izvoďenje. Valja napomenuti da se svaka petlja While može razviti u iskaz If..Then. Gornji program, primjerice, može se na sljedeći način prepraviti bez utjecaja na konačni rezultat. number = 100 startlabel: TextWindow.WriteLine(number) number = number / 2 If (number > 1) Then Goto startlabel EndIf Zapravo, računalo interno prepravlja svaku petlju While u iskaze koji koriste If..Then i jedan ili više iskaza Goto.
18 6. poglavlje Osnove grafike Dosad smo u svim primjerima koristili objekt TextWindow da bismo objasnili osnove jezika Small Basic. No Small Basic nudi napredan skup grafičkih mogućnosti, koje ćemo početi upoznavati u ovom poglavlju. Prozor za grafiku Osim prozora za tekst, koji omogućuje rad s tekstom i brojevima, Small Basic nudi i prozor za grafiku,koji omogućuje crtanje. Prikažimo za početak prozor za grafiku. GraphicsWindow.Show() Kada pokrenete ovaj program, primijetit ćete da se umjesto uobičajenog crnog prozora za tekst pojavio bijeli prozor kao što je ovaj na donjoj slici. U tom prozoru zasad ne možemo učiniti mnogo. No to će biti osnovni prozor koji ćemo koristiti u ovom poglavlju. Taj prozor možete zatvoriti klikom na gumb "X" u njegovu gornjem desnom kutu. Slika 23 prazan prozor za grafiku Postavljanje prozora za grafiku Izgled prozora za grafiku možete prilagoditi po svom ukusu. Možete mu promijeniti naslov, pozadinu i veličinu. Izmijenimo ga onda malo da biste ga bolje upoznali. GraphicsWindow.BackgroundColor = "SteelBlue" GraphicsWindow.Title = "My Graphics Window" GraphicsWindow.Width = 320 GraphicsWindow.Height = 200 GraphicsWindow.Show()
19 Evo kako izgleda prilagoďeni prozor za grafiku. Boju možete promijeniti u jednu od brojnih vrijednosti navedenih na popisu u dodatku B. Eksperimentirajte s tim svojstvima da biste vidjeli kako sve možete promijeniti izgled prozora. Slika 24 prilagođeni prozor za grafiku Crtanje crta Kada otvorite prozor za grafiku, u njemu možete crtati likove, tekst, pa čak i slike. Nacrtajmo najprije nekoliko jednostavnih likova. Ovako izgleda program koji u prozoru za grafiku crta dvije crte: GraphicsWindow.Width = 200 GraphicsWindow.Height = 200 GraphicsWindow.DrawLine(10, 10, 100, 100) GraphicsWindow.DrawLine(10, 100, 100, 10) Slika 25 prekrižene crte Umjesto naziva boja možete koristiti web-notaciju za boje (#RRGGBB). Primjerice, #FF0000 označava crvenu, #FFFF00 žutu itd. O bojama će biti više riječi u poglavljima [poglavlja o bojama U IZRADI]. Prva dva retka programa postavljaju prozor, a sljedeća dva crtaju prekrižene crte. Prva dva broja iza riječi DrawLine odreďuju koordinate x i y početne točke crte, a druga dva koordinate x i y završne točke crte. Zanimljivo je da se u računalnoj grafici koordinate (0, 0) odnose na točku u gornjem lijevom kutu prozora. Zato se, prema koordinatnom sustavu, prozor nalazi u drugom kvadrantu. [U IZRADI: umetnuti sliku kvadranta] Slika 26 koordinatna karta
20 Ako se vratimo programu za crtanje crta, valja napomenuti da Small Basic omogućuje promjenu svojstava crte, primjerice njezine boje i debljine. Promijenimo najprije boju crta na način prikazan u donjem programu. GraphicsWindow.Width = 200 GraphicsWindow.Height = 200 GraphicsWindow.PenColor = "Green" GraphicsWindow.DrawLine(10, 10, 100, 100) GraphicsWindow.PenColor = "Gold" GraphicsWindow.DrawLine(10, 100, 100, 10) Slika 27 promjena boje crte Promijenimo im i debljinu. U donjem se programu zadana vrijednost 1 za debljinu crte mijenja u 10. GraphicsWindow.Width = 200 GraphicsWindow.Height = 200 GraphicsWindow.PenWidth = 10 GraphicsWindow.PenColor = "Green" GraphicsWindow.DrawLine(10, 10, 100, 100) GraphicsWindow.PenColor = "Gold" GraphicsWindow.DrawLine(10, 100, 100, 10) Slika 28 debele raznobojne crte Svojstva PenWidth i PenColor mijenjaju olovku kojom se te crte crtaju. Ona ne samo što utječu na crte, već i na sve likove nacrtane nakon njihova ažuriranja.
21 Pomoću iskaza za stvaranje petlji o kojima je bilo riječi u prethodnim poglavljima možemo jednostavno napisati program koji crta više crta povećavajući debljinu olovke za svaku sljedeću crtu. GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.Width = 200 GraphicsWindow.Height = 160 GraphicsWindow.PenColor = "Blue" For i = 1 To 10 GraphicsWindow.PenWidth = i GraphicsWindow.DrawLine(20, i * 15, 180, i * 15) endfor Slika 29 različite debljine olovke Zanimljiv dio ovog programa je petlja, u kojoj se vrijednost svojstva PenWidth povećava pri svakom izvoďenju petlje, nakon čega se crta nova crta ispod prethodne. Crtanje i ispunjavanje likova Kada je riječ o crtanju likova, na svakom se liku obično mogu obavljati dvije vrste operacija. Riječ je o operacijama crtanja (Draw) i o operacijama ispunjavanja (Fill). Operacije crtanja omogućuju crtanje ocrta lika olovkom, a operacije ispunjavanja bojenje lika kistom. U donjem se programu, primjerice, stvaraju dva pravokutnika jedan se crta crvenom olovkom, a drugi se ispunjava zelenim kistom. GraphicsWindow.Width = 400 GraphicsWindow.Height = 300 GraphicsWindow.PenColor = "Red" GraphicsWindow.DrawRectangle(20, 20, 300, 60) GraphicsWindow.BrushColor = "Green" GraphicsWindow.FillRectangle(60, 100, 300, 60)
22 Slika 30 crtanje i ispunjavanje Za crtanje ili ispunjavanje pravokutnika potrebna su četiri broja. Prva dva broja predstavljaju koordinate X i Y gornjeg lijevog kuta pravokutnika. Treći broj odreďuje širinu pravokutnika, a četvrti njegovu visinu. Kao što možete vidjeti u donjem programu, isto vrijedi i za crtanje i ispunjavanje elipsa. GraphicsWindow.Width = 400 GraphicsWindow.Height = 300 GraphicsWindow.PenColor = "Red" GraphicsWindow.DrawEllipse(20, 20, 300, 60) GraphicsWindow.BrushColor = "Green" GraphicsWindow.FillEllipse(60, 100, 300, 60) Slika 31 stvaranje i crtanje elipsa Elipse su samo općenita kategorija kružnica. Ako želite nacrtati kružnice, morate navesti istu širinu i visinu.
23 GraphicsWindow.Width = 400 GraphicsWindow.Height = 300 GraphicsWindow.PenColor = "Red" GraphicsWindow.DrawEllipse(20, 20, 100, 100) GraphicsWindow.BrushColor = "Green" GraphicsWindow.FillEllipse(100, 100, 100, 100) Slika 32 kružnice
24 7. poglavlje Zabava s likovima U ovom ćemo se poglavlju malo zabaviti primjenjujući sva dosad stečena znanja. Ovo poglavlje sadrži zanimljive primjere koji pokazuju kako primjenom svih dosad stečenih znanja možete stvarati atraktivne programe. Koncentrični pravokutnici U ovom ćemo primjeru pomoću petlje nacrtati više pravokutnika povećavajući svaki sljedeći. GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightBlue" GraphicsWindow.Width = 200 GraphicsWindow.Height = 200 For i = 1 To 100 Step 5 GraphicsWindow.DrawRectangle(100 - i, i, i * 2, i * 2) EndFor Slika 33 koncentrični pravokutnici Koncentrične kružnice Verzija prethodnog programa koja umjesto pravokutnika crta kružnice. GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightGreen" GraphicsWindow.Width = 200 GraphicsWindow.Height = 200 For i = 1 To 100 Step 5 GraphicsWindow.DrawEllipse(100 - i, i, i * 2, i * 2) EndFor
25 Slika 34 koncentrične kružnice Nasumično crtanje Ovaj program pomoću operacije GraphicsWindow.GetRandomColor nasumično bira boju kista, a zatim pomoću operacije Math.GetRandomNumber odreďuje koordinate x i y kružića. Kreativnim kombiniranjem tih dviju operacija možete stvarati zanimljive programe čiji se ishod mijenja sa svakim izvoďenjem. GraphicsWindow.BackgroundColor = "Black" For i = 1 To 1000 GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() x = Math.GetRandomNumber(640) y = Math.GetRandomNumber(480) GraphicsWindow.FillEllipse(x, y, 10, 10) EndFor
26 Slika 35 nasumično crtanje Fraktali Sljedeći program crta jednostavan trokutasti fraktal pomoću nasumično odabranih brojeva. Fraktal je geometrijski lik koji se može podijeliti na manje dijelove od kojih je svaki identičan nadreďenom liku. Program u ovom primjeru crta stotinu trokuta od kojih je svaki identičan nadreďenom trokutu. Budući da izvoďenje programa traje nekoliko sekundi, moći ćete vidjeti kako trokuti polako nastaju iz običnih točaka. Logiku programa nije lako opisati i njezino ću vam proučavanje prepustiti kao zadatak za vježbu. GraphicsWindow.BackgroundColor = "Black" x = 100 y = 100 For i = 1 To r = Math.GetRandomNumber(3) ux = 150 uy = 30 If (r = 1) then ux = 30 uy = 1000 EndIf If (r = 2) Then ux = 1000 uy = 1000 EndIf x = (x + ux) / 2 y = (y + uy) / 2 GraphicsWindow.SetPixel(x, y, "LightGreen") EndFor
27 Slika 36 trokutasti fraktal Ako želite bolje vidjeti kako točke polako stvaraju fraktal, u petlju možete dodati odgodu pomoću operacije Program.Delay. Ta operacija prihvaća broj koji odreďuje trajanje odgode u milisekundama. Ovo je izmijenjeni program s podebljanim izmijenjenim retkom: GraphicsWindow.BackgroundColor = "Black" x = 100 y = 100 For i = 1 To r = Math.GetRandomNumber(3) ux = 150 uy = 30 If (r = 1) then ux = 30 uy = 1000 EndIf If (r = 2) Then ux = 1000 uy = 1000 EndIf x = (x + ux) / 2 y = (y + uy) / 2 GraphicsWindow.SetPixel(x, y, "LightGreen") Program.Delay(2) EndFor Produljivanjem odgode usporit ćete izvoďenje programa. Eksperimentirajte s brojevima da biste vidjeli koji daje najbolje rezultate. Taj program možete izmijeniti i zamjenom retka
28 GraphicsWindow.SetPixel(x, y, "LightGreen") GraphicsWindow.SetPixel(x, y, "LightGreen") retkom color = GraphicsWindow.GetRandomColor() GraphicsWindow.SetPixel(x, y, color) Tako ćete narediti programu da piksele trokuta crta pomoću nasumično odabranih boja.
29 8. poglavlje Crtanje pomoću kornjače Logo U sedamdesetim godinama 20. stoljeća nastao je vrlo jednostavan, ali mogućnostima bogat programski jezik zvan Logo, koji je tada koristilo samo nekoliko znanstvenika. Situacija se promijenila kada je netko obogatio jezik tzv. "crtanjem pomoću kornjače" (Turtle Graphics) i na zaslonu učinio dostupnom "kornjaču", koja je reagirala na naredbe kao što su Move Forward (pomakni se prema naprijed), Turn Right (okreni se udesno), Turn Left (okreni se ulijevo) itd. Kornjača je korisnicima omogućivala crtanje zanimljivih likova na zaslonu. Ta je mogućnost programski jezik Logo odmah učinila pristupačnim i privlačnim korisnicima svih uzrasta te je velikim dijelom bila zaslužna za njegovu ogromnu popularnost osamdesetih godina. Small Basic nudi objekt Turtle s brojnim naredbama koje se mogu pozivati iz programa u Small Basicu. U ovom ćemo poglavlju pomoću kornjače crtati grafiku na zaslonu. Kornjača Najprije moramo prikazati kornjaču na zaslonu. To je izvedivo pomoću jednostavnog programa s jednim retkom. Turtle.Show() Kada pokrenete taj program, prikazat će se bijeli prozor sličan onome iz prethodnog poglavlja, samo što se u središtu tog prozora nalazi kornjača. Ta će kornjača izvršavati naše naredbe i crtati sve što joj naredimo. Slika 37 kornjača je prikazana
30 Pomicanje i crtanje Jedna od naredbi koju kornjača razumije jest Move (pomakni se). Ta operacija prihvaća broj kao ulaznu vrijednost. Taj broj govori kornjači koliko se daleko mora pomaknuti. U donjem ćemo primjeru narediti kornjači da se pomakne za 100 piksela. Turtle.Move(100) Kada pokrenete taj program, vidjet ćete kako se kornjača polako pomiče za 100 piksela prema gore. Kako se bude pomicala, kornjača će crtati crtu. Kada se kornjača zaustavi, rezultat njezina pomicanja izgledat će kao na donjoj slici. Kada koristite operacije na kornjači, ne morate pozivati operaciju Show(). Kornjača će se automatski prikazati kad god se izvrši neka uz nju vezana operacija. Slika 38 pomicanje za stotinu piksela Crtanje kvadrata Kvadrat ima četiri stranice dvije okomite i dvije vodoravne. Da bismo nacrtali kvadrat, moramo narediti kornjači da nacrta crtu, okrene se udesno, nacrta sljedeću crtu i nastavi to činiti dok ne nacrta sve četiri stranice. Ako to pretvorimo u program, on će izgledati ovako: Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight() Turtle.Move(100) Turtle.TurnRight() Kada pokrenete taj program, vidjet ćete da kornjača crta kvadrat jednu po jednu crtu, a rezultat će izgledati kao na donjoj slici.
31 Slika 39 kornjača crta kvadrat Uočite da smo više puta uputili iste naredbe točnije četiri puta. A već ste naučili da se naredbe koje se ponavljaju mogu izvoditi pomoću petlji. Ako gornji program izmijenimo tako da koristi petlju For..EndFor, dobit ćemo mnogo jednostavniji program. For i = 1 To 4 Turtle.Move(100) Turtle.TurnRight() EndFor Promjena boja Kornjača crta u istom prozoru za grafiku koji ste vidjeli u prethodnom poglavlju. To znači da se sve operacije opisane u prethodnom poglavlju mogu koristiti i ovdje. Sljedeći će program, primjerice, nacrtati kvadrat kojemu je svaka stranica drukčije boje. For i = 1 To 4 GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor() Turtle.Move(100) Turtle.TurnRight() EndFor
32 Slika 40 promjena boja Crtanje složenijih likova Osim operacija TurnRight i TurnLeft,kornjača podržava i operaciju Turn. Ta operacija prihvaća jednu ulaznu vrijednost koja odreďuje kut zakretanja. Pomoću te operacije možete nacrtati višekutnik s bilo kojim brojem stranica. Sljedeći program crta šesterokut (višekutnik sa šest stranica). For i = 1 To 6 Turtle.Move(100) Turtle.Turn(60) EndFor Iskušajte taj program da biste vidjeli crta li zaista šesterokut. Uočite da smo, budući da je kut izmeďu stranica šesterokuta 60 stupnjeva, koristili operaciju Turn(60). Za takve višekutnike, kojima su sve stranice iste dužine, kut izmeďu stranica može se jednostavno izračunati tako da 360 podijelite s brojem stranica. Oboružani tim informacijama i uz pomoć varijabli možemo napisati prilično generički program koji crta višekutnik s bilo kojim brojem stranica. sides = 12 length = 400 / sides angle = 360 / sides For i = 1 To sides Turtle.Move(length) Turtle.Turn(angle) EndFor Pomoću tog programa možete nacrtati višekutnik s bilo kojim brojem stranica dovoljno je promijeniti vrijednost varijable sides. Ako joj dodijelite vrijednost 4, dobit ćete kvadrat, od kojeg smo krenuli. Ako joj dodijelite neku dovoljno veliku vrijednost, recimo 50, nacrtani se višekutnik neće razlikovati od kružnice.
33 Slika 41 crtanje višekutnika s 12 stranica Pomoću postupka koji ste upravo naučili kornjači možemo narediti da nacrta više kružnica i da svaku malo pomakne u odnosu na prethodnu, što će imati zanimljiv ishod. sides = 50 length = 400 / sides angle = 360 / sides Turtle.Speed = 9 For j = 1 To 20 For i = 1 To sides Turtle.Move(length) Turtle.Turn(angle) EndFor Turtle.Turn(18) EndFor Gornji program koristi dvije petlje For..EndFor, jednu unutar druge. Unutrašnja petlja (i = 1 to sides) slična je onoj u programu za crtanje višekutnika i zadužena je za crtanje kružnice. Vanjska petlja (j = 1 to 20) zadužena je za neznatno zakretanje kornjače pri crtanju svake kružnice. Ta petlja nareďuje kornjači da nacrta 20 kružnica. Ishod izvoďenja cijelog programa vrlo je zanimljiv uzorak, prikazan na donjoj slici.
34 Slika 42 složeni lik načinjen od kružnica U gornjem smo programu odredili da se kornjača brže kreće tako što smo svojstvu Speed dodijelili vrijednost 9. Tom svojstvu možete dodijeliti bilo koju vrijednost izmeďu 1 i 10 da biste odredili koliko će se brzo kornjača kretati. Pomicanje bez crtanja Kornjači možete onemogućiti crtanje pozivanjem operacije PenUp. Tako možete pomaknuti kornjaču u bilo koji dio zaslona, a da pritom ne nacrtate crtu. Pozivanjem operacije PenDown kornjači ćete ponovno omogućiti crtanje. Tako možete dobiti zanimljive efekte, primjerice isprekidanu crtu. Sljedeći program koristi tu mogućost za crtanje višekutnika čije su stranice isprekidane crte. sides = 6 length = 400 / sides angle = 360 / sides For i = 1 To sides For j = 1 To 6 Turtle.Move(length / 12) Turtle.PenUp() Turtle.Move(length / 12) Turtle.PenDown() EndFor Turtle.Turn(angle) EndFor I ovaj program ima dvije petlje. Unutrašnja petlja crta jednu isprekidanu crtu, a vanjska odreďuje koliko će crta biti nacrtano. Budući da smo u ovom primjeru varijabli sides dodijelili vrijednost 6, dobili smo šesterokut čije su stranice isprekidane crte, kao što je ovaj na donjoj slici.
35 Slika 43 korištenje operacija PenUp i PenDown
36 9. poglavlje Potprogrami Pri pisanju programa česte su situacije u kojima je potrebno više puta ponoviti isti skup koraka. U takvim slučajevima nema smisla više puta ponovno pisati iste iskaze. Tada su korisni potprogrami. Potprogram je dio koda unutar većeg programa koji obično čini nešto vrlo specifično i koji se može pozvati iz bilo kojeg dijela programa. Potprogrami se prepoznaju po nazivu iza ključne riječi Sub i po tome što završavaju ključnom riječju EndSub. Sljedeći dio koda predstavlja potprogram pod nazivom PrintTime, koji prikazuje trenutno vrijeme u prozoru za tekst. Sub PrintTime TextWindow.WriteLine(Clock.Time) EndSub Donji program sadrži potprogram i poziva ga s različitih mjesta. PrintTime() TextWindow.Write("Enter your name: ") name = TextWindow.Read() TextWindow.Write(name + ", the time now is: ") PrintTime() Sub PrintTime TextWindow.WriteLine(Clock.Time) EndSub Slika 44 pozivanje jednostavnog potprograma Potprogram se izvršava pozivanjem operacije NazivPotprograma(). Kao i obično, rečenični znakovi "()" potrebni su da bi računalo znalo da želite izvršiti potprogram. Prednosti korištenja potprograma Kao što ste vidjeli u prethodnom primjeru, potprogrami smanjuju količinu koda koji je potrebno upisati. Kada napišete potprogram PrintTime, možete ga pozvati iz bilo kojeg dijela programa i on će prikazati trenutno vrijeme. Uz to, potprogrami omogućuju rastavljanje složenih problema na jednostavnije dijelove. Primjerice, ako morate riješiti neku složenu jednadžbu, možete napisati nekoliko potprograma koji rješavaju njezine manje dijelove. Zatim možete meďusobno povezati rezultate da biste dobili rješenje izvorne složene jednadžbe. Potprogrami mogu pridonijeti i čitljivosti programa. Drugim riječima, ako napišete primjereno imenovane potprograme za dijelove potprograma koji se često izvode, olakšat ćete čitanje i razumijevanje programa. To je vrlo važno ako želite razumjeti program koji je napisao netko drugi ili ako želite da vaše
37 programe razumiju drugi korisnici. Katkad su potprogrami korisni čak i ako želite pročitati vlastiti program, primjerice tjedan dana nakon što ga napišete. Imajte u vidu da potprograme u Small Basicu možete pozivati samo unutar istog programa. Ne možete pozvati potprogram iz nekog drugog programa. Korištenje varijabli Varijablama korištenima u programu možete pristupiti i koristiti ih unutar potprograma. Sljedeći program, na primjer, prihvaća dva broja i prikazuje veći broj. Uočite da se varijabla max koristi i unutar i izvan potprograma. TextWindow.Write("Enter first number: ") num1 = TextWindow.ReadNumber() TextWindow.Write("Enter second number: ") num2 = TextWindow.ReadNumber() FindMax() TextWindow.WriteLine("Maximum number is: " + max) Sub FindMax If (num1 > num2) Then max = num1 Else max = num2 EndIf EndSub Izlaz tog programa izgleda ovako. Slika 45 prikaz većeg od dvaju brojeva pomoću potprograma Pogledajmo drugi primjer koji ilustrira korištenje potprograma. Ovaj put ćemo koristiti grafički program koji izračunava koordinate raznih točaka i pohranjuje ih u varijable x i y. Zatim poziva potprogram DrawCircleUsingCenter, koji je zadužen za crtanje kružnice čije središte ima koordinate pohranjene u varijable x i y. GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightBlue" GraphicsWindow.Width = 480 For i = 0 To 6.4 Step 0.17 x = Math.Sin(i) * y = Math.Cos(i) * DrawCircleUsingCenter() EndFor Sub DrawCircleUsingCenter startx = x - 40 starty = y - 40 GraphicsWindow.DrawEllipse(startX, starty, 120, 120) EndSub
38 Slika 46 grafički primjer korištenja potprograma Pozivanje potprograma unutar petlji Potprogrami se katkad pozivaju unutar petlje, tijekom čega izvršavaju isti skup iskaza, ali s drukčijim vrijednostima u jednoj ili više varijabli. Recimo da potprogram pod nazivom PrimeCheck utvrďuje je li neki broj prost. Ako napišete program koji korisniku omogućuje unos odreďene vrijednosti, pomoću tog potprograma možete utvrditi je li unesena vrijednost prosti broj. To ilustrira donji program. TextWindow.Write("Enter a number: ") i = TextWindow.ReadNumber() isprime = "True" PrimeCheck() If (isprime = "True") Then TextWindow.WriteLine(i + " is a prime number") Else TextWindow.WriteLine(i + " is not a prime number") EndIf Sub PrimeCheck For j = 2 To Math.SquareRoot(i) If (Math.Remainder(i, j) = 0) Then isprime = "False" Goto EndLoop EndIf Endfor EndLoop: EndSub
39 Potprogram PrimeCheck prihvaća vrijednost varijable i i pokušava je podijeliti s manjim brojevima. Ako nakon dijeljenja vrijednosti varijable i s nekim brojem nema ostatka, vrijednost varijable i nije prosti broj. Tada potprogram varijabli isprime dodjeljuje vrijednost "False" i završava izvoďenje. Ako broj nije djeljiv s nijednim manjim brojem, vrijednost varijable isprime ostaje "True". Slika 47 provjera je li broj prost Sada kada imate potprogram koji provjerava je li broj prost, pomoću njega možete prikazati popis svih prostih brojeva manjih od, recimo, 100. Vrlo je jednostavno izmijeniti gornji program i pozvati potprogram PrimeCheck iz petlje. Tako će potprogram dobivati drukčiju vrijednost za računanje kad god se petlja izvede. U donjem primjeru možete vidjeti kako to postići. For i = 3 To 100 isprime = "True" PrimeCheck() If (isprime = "True") Then TextWindow.WriteLine(i) EndIf EndFor Sub PrimeCheck For j = 2 To Math.SquareRoot(i) If (Math.Remainder(i, j) = 0) Then isprime = "False" Goto EndLoop EndIf Endfor EndLoop: EndSub U gornjem se programu vrijednost varijable i ažurira pri svakom izvoďenju petlje. Unutar petlje poziva se potprogram PrimeCheck. Potprogram PrimeCheck zatim uzima vrijednost varijable i te izračunava je li to prost broj. Rezultat se pohranjuje u varijablu isprime, kojoj zatim pristupa petlja izvan potprograma. Vrijednost varijable i zatim se prikazuje ako riječ o prostom broju. Budući da petlja kreće od broja 3 i završava brojem 100, dobit ćemo popis svih prostih brojeva izmeďu 3 i 100. Na donjoj slici prikazan je rezultat izvoďenja programa.
40 Slika 48 prosti brojevi
41 10. poglavlje Događaji i interaktivnost U prva dva poglavlja govorili smo o objektima, koji imaju svojstva i operacije. Osim svojstava i operacija, neki objekti imaju i tzv. događaje. DogaĎaji su svojevrsni signali koji se aktiviraju, primjerice, odreďenim korisničkim akcijama, kao što su pomicanje miša ili klikanje njime. DogaĎaji su na odreďeni način suprotnost operacijama. Kada koristite operacije, vi ih kao programer pozivate da biste računalu naredili da nešto učini, a kada koristite dogaďaje, računalo vas obavještava kada se dogodi nešto zanimljivo. Zašto su događaji korisni? DogaĎaji su ključni za omogućivanje interaktivnosti u programu. Ako korisniku želite omogućiti interakciju s programom, koristit ćete dogaďaje. Recimo da pišete program za igru križić-kružić. Korisniku želite omogućiti da odabere potez koji želi odigrati, zar ne? Tu na scenu stupaju dogaďaji u programu informacije od korisnika dobivate putem dogaďaja. Ako vam to nije posve jasno, ne brinite slijedi vrlo jednostavan primjer koji će vam pojasniti što su dogaďaji i kako ih koristiti. U nastavku je prikazan vrlo jednostavan program sa samo jednim iskazom i jednim potprogramom. Potprogram koristi operaciju ShowMessage na objektu GraphicsWindow za prikaz okvira s porukom korisniku. GraphicsWindow.MouseDown = OnMouseDown Sub OnMouseDown GraphicsWindow.ShowMessage("You Clicked.", "Hello") EndSub Uočite da se u jednom retku gornjeg programa naziv potprograma dodjeljuje dogaďaju MouseDown objekta GraphicsWindow. Vjerojatno ste primijetili da je dogaďaj MouseDown vrlo sličan svojstvu samo što mu se umjesto vrijednosti dodjeljuje potprogram OnMouseDown. To je posebnost dogaďaja kada se dogodi dogaďaj, automatski se poziva potprogram. U ovom se primjeru potprogram OnMouseDown poziva kad god korisnik mišem klikne prozor za grafiku. Pokrenite program i iskušajte ga. Kad god mišem kliknete prozor za grafiku, pojavit će se okvir s porukom, kao što je ovaj na donjoj slici. Slika 49 reakcija na događaj Takvo korištenje dogaďaja vrlo je moćno i omogućuje stvaranje vrlo maštovitih i zanimljivih programa. Tako napisani programi često se zovu programi upravljani dogaďajima. Potprogram OnMouseDown možete izmijeniti tako da obavlja druge zadatke umjesto da prikazuje okvir s porukom. Možete, kao u donjem programu, odrediti da se na mjestu koje korisnik klikne pojavi velika plava točka. GraphicsWindow.BrushColor = "Blue" GraphicsWindow.MouseDown = OnMouseDown Sub OnMouseDown x = GraphicsWindow.MouseX - 10
42 y = GraphicsWindow.MouseY - 10 GraphicsWindow.FillEllipse(x, y, 20, 20) EndSub Slika 50 korištenje događaja MouseDown Uočite da se u gornjem programu za dohvaćanje koordinata pokazivača miša koriste operacije MouseX i MouseY. Zatim se crta kružnica sa središtem na mjestu koje odreďuju koordinate pokazivača miša. Upravljanje većim brojem događaja Broj dogaďaja kojim možete upravljati nije ograničen. Čak možete odrediti da jedan potprogram upravlja većim brojem dogaďaja. No dogaďajem možete upravljati samo jedanput. Ako istom dogaďaju pokušate dodijeliti dva potprograma, u obzir će se uzeti samo drugi. Dodajmo za ilustraciju u prethodni primjer potprogram zadužen za pritiske na tipke. Odredimo i da taj novi potprogram mijenja boju kista da biste svakim klikom prikazali točku neke druge boje. GraphicsWindow.BrushColor = "Blue" GraphicsWindow.MouseDown = OnMouseDown GraphicsWindow.KeyDown = OnKeyDown Sub OnKeyDown GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() EndSub Sub OnMouseDown x = GraphicsWindow.MouseX - 10 y = GraphicsWindow.MouseY - 10 GraphicsWindow.FillEllipse(x, y, 20, 20) EndSub
43 Slika 51 upravljanje većim brojem događaja Ako pokrenete taj program i kliknete prozor, pojavit će se plava točka. Ako jedanput pritisnete bilo koju tipku, a zatim ponovno kliknete, pojavit će se točka neke druge boje. Kada pritisnete tipku, izvodi se potprogram OnKeyDown, koji mijenja boju kista u neku nasumično odabranu boju. Kada kliknete mišem, crta se kružnica ispunjena novom bojom tako se pojavljuju raznobojne točke. Program za bojenje Oboružani dogaďajima i potprogramima, možemo napisati program koji korisnicima omogućuje crtanje u prozoru. Takav je program iznenaďujuće jednostavno napisati ako problem rastavimo na manje dijelove. Napišimo najprije program koji korisnicima omogućuje da pomicanjem miša ostavljaju trag u prozoru za grafiku. GraphicsWindow.MouseMove = OnMouseMove Sub OnMouseDown x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY GraphicsWindow.DrawLine(prevX, prevy, x, y) prevx = x prevy = y EndSub No kada pokrenete taj program, prva crta uvijek počinje od gornjeg lijevog kuta prozora (0, 0). Taj problem možete riješiti korištenjem dogaďaja MouseDown i uzimanjem vrijednosti prevx i prevy kada se dogodi dogaďaj. Uz to, pokazivač miša trebao bi ostavljati trag samo kada korisnik drži pritisnutu tipku miša. Kada ne držimo pritisnutu tipku miša, ne bismo trebali povlačiti crtu. Da bismo to postigli, koristit ćemo svojstvo IsLeftButtonDown objekta Mouse. To svojstvo govori je li pritisnuta lijeva tipka miša. Ako je vrijednost tog svojstva istinita, povlačit ćemo crtu, a ako nije, nećemo je povlačiti.
44 GraphicsWindow.MouseMove = OnMouseMove GraphicsWindow.MouseDown = OnMouseDown Sub OnMouseDown prevx = GraphicsWindow.MouseX prevy = GraphicsWindow.MouseY EndSub Sub OnMouseMove x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY If (Mouse.IsLeftButtonDown) Then GraphicsWindow.DrawLine(prevX, prevy, x, y) EndIf prevx = x prevy = y EndSub
45 Dodatak A Zabavni primjeri Crtanje fraktala pomoću kornjače Slika 52 kornjača crta fraktal u obliku stabla angle = 30 delta = 10 distance = 60 Turtle.Speed = 9 GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightGreen" DrawTree() Sub DrawTree If (distance > 0) Then Turtle.Move(distance) Turtle.Turn(angle) Stack.PushValue("distance", distance) distance = distance - delta DrawTree() Turtle.Turn(-angle * 2) DrawTree() Turtle.Turn(angle) distance = Stack.PopValue("distance") Turtle.Move(-distance) EndIf EndSub
46 Fotografije s web-mjesta Flickr Slika 53 dohvaćanje slika s web-mjesta Flickr GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.MouseDown = OnMouseDown Sub OnMouseDown pic = Flickr.GetRandomPicture("mountains, river") GraphicsWindow.DrawResizedImage(pic, 0, 0, 640, 480) EndSub Dinamična pozadina radne površine For i = 1 To 10 pic = Flickr.GetRandomPicture("mountains") Desktop.SetWallPaper(pic) Program.Delay(10000) EndFor
47 Igra s lopticom Slika 54 igra s lopticom GraphicsWindow.BackgroundColor = "DarkBlue" paddle = Shapes.AddRectangle(120, 12) ball = Shapes.AddEllipse(16, 16) GraphicsWindow.MouseMove = OnMouseMove x = 0 y = 0 deltax = 1 deltay = 1 RunLoop: x = x + deltax y = y + deltay gw = GraphicsWindow.Width gh = GraphicsWindow.Height If (x >= gw - 16 or x <= 0) Then deltax = -deltax EndIf If (y <= 0) Then deltay = -deltay EndIf padx = Shapes.GetLeft (paddle) If (y = gh - 28 and x >= padx and x <= padx + 120) Then deltay = -deltay EndIf Shapes.Move(ball, x, y) Program.Delay(5) If (y < gh) Then Goto RunLoop EndIf GraphicsWindow.ShowMessage("You Lose", "Paddle") Sub OnMouseMove paddlex = GraphicsWindow.MouseX Shapes.Move(paddle, paddlex - 60, GraphicsWindow.Height - 12) EndSub
48 Dodatak B Boje U IZRADI: opisi i heksadecimalni kodovi boja Slijedi popis naziva boja koje podržava Small Basic, kategoriziranih prema osnovnoj boji. Nijanse crvene boje Nijanse plave boje Nijanse ružičaste boje Nijanse narančaste boje
49 Nijanse žute boje Nijanse smeđe boje Nijanse ljubičaste boje
50 Nijanse zelene boje Nijanse bijele boje Nijanse sive boje
Postupak konfiguracije ADSL modema ZTE u Routed PPPoE modu Detaljni opis konfiguracije
Postupak konfiguracije ADSL modema ZTE u Routed PPPoE modu Detaljni opis konfiguracije 1. Podešavanje računara Nakon povezivanja modema svim potrebnim kablovima na računar, linija i napajanje, uključujemo
Postojeći Mail Account u Outlook Expressu (podešavanje promjena):
Outlook Express 5 Postojeći Mail Account u Outlook Expressu (podešavanje promjena): Microsoft Outlook Express je dio Microsoft Internet Explorer. izaberite: Ako Outlook, kada dva puta pritisnete na gornju
Microsoft Small Basic. An introduction to Programming
Microsoft Small Basic An introduction to Programming Chapter 1 An Introduction Small Basic and Programming Computer Programming is defined as the process of creating computer software using programming
Ako je Local Area Connection u stanju Disabled, kao na slici, desnim tasterom miša kliknemo na ikonicu i odaberemo lijevim tasterom opciju Enable.
Postupak konfiguracije ADSL modema ZTE za uslugu moja TV Net Nakon povezivanja modema svim potrebnim kablovima na računar, linija i napajanje, uključujemo računar. Nakon učitavanja Windowsa kliknemo na
Podešavanje e-mail klijenata
Podešavanje e-mail klijenata - Mozilla Thunderbird - Microsoft Outlook U daljem tekstu nalaze se detaljna uputstva kako podesiti nekoliko najčešće korišćenih Email programa za domenske email naloge. Pre
1. Kako početi programirati u JAVA jeziku
1. Kako početi programirati u JAVA jeziku Cilj ovog poglavlja je napisati i pokrenuti jednostavnije Java programe. SADRŽAJ 1. O predmetu. 2. Programi i programski jezici. 3. Neki jednostavni Java programi.
Uputstva za HTC. Sadržaj : 1. HTC HD2 2. 2. HTC Snap 4. 3. HTC Smart 6. 4. HTC Legend 8. 5. HTC Desire 9. 6. HTC Magic 10
Sadržaj : 1. HTC HD2 2 2. HTC Snap 4 3. HTC Smart 6 4. HTC Legend 8 5. HTC Desire 9 6. HTC Magic 10 1 HTC HD2 1. Start 2. Settings 3. Connections 4. Connections 5. U okviru My ISP izabrati Add a new modem
IMPLEMENTATION OF FACEBOOK IN FOREIGN LANGUAGE TEACHING IN HIGHER EDUCATION IMPLEMENTACIJA FACEBOOKA U NASTAVI STRANIH JEZIKA U VISOKOM OBRAZOVANJU
Darija Kuharić, senior lecturer of German language Faculty of Agriculture Osijek HR-31000 Osijek, 1d P. Svačića Phone: +385 (0)31 554-940 Fax: +385 (0)31 554-800 E-mail address: [email protected] Ljubica
C++ programiranje za apsolutne početnike. programiranje. za apsolutne početnike PRO - MIL
C++ programiranje za apsolutne početnike programiranje za apsolutne početnike Naslov knjige: Autor: Naklada: C++ programiranje za apsolutne početnike Jakopec Ratko, ing PRO-MIL d.o.o. za nakladu, informatiku
MOVING TOWARDS CLOUD SECURITY
Interdisciplinary Description of Complex Systems 13(1), 9-14, 2015 MOVING TOWARDS CLOUD SECURITY Edit Szilvia Rubóczki 1 and Zoltán Rajnai 2, * 1 c/o Obuda University 1 Budapest, Hungary 2 Doctoral School
INLET AND EXHAUST VALVES
INLET AND EXHAUST VALVES 7 The exhaust valves open against pressure within the cylinder at the end of the working stroke. This pressure is considerably higher than against which the inlet valves have to
Visual Basic. VB IDE radna okolina za razvoj programa
Visual Basic Vizualno orijentirani programski jezik: prvo načini sučelje za što ugodniji i intuitivniji rad korisnika (jedan ili više prozora) Dogañajima voñeno programiranje: sve što se izvodi potaknuto
Uputstvo za povezivanje na IPv6 mrežu
Uputstvo za povezivanje na IPv6 mrežu Počevši od 6. juna 2012. godine, veliki javni servisi će biti dostupni širom sveta kako putem IPv4 tako i putem IPv6 adrese. Bitno je na vreme se priključiti novom
ITdesk.info - projekt računalne e-edukacije
pokret računalnog opismenjavanja izgradnja modernog društva ljudska prava na edukaciju i informacije ITdesk.info - projekt računalne e-edukacije sa slobodnim pristupom - Priručnik za digitalnu pismenost
Extra TV Home Gateway podešavanja
Extra TV Home Gateway podešavanja Extra TV Home Gateway podešavanja...1 Fizička instalacija...2 Konfiguracija Wirelessa kod Home Gateway opreme...5 Pokretanje PPPoE sesije sa Home Gateway opreme...9 Ostale
Slika 2. Other. Hardware
Žiro račun: 2484008-1100164754 (RBA) Matični broj: 3703142 HR - 10000 Zagreb Savica Šanci 127 T +385 (0)1 2352 200 F +385 (0)1 2352 299 HR - 35000 Slavonski Brod Gajeva 32 T +385 (0)35 447 665 F +385 (0)35
The effectiveness of physical education of the Military Academy cadets during a 4-year study
Strana 16 VOJNOSANITETSKI PREGLED Vojnosanit Pregl 2013; 70(1): 16 20. ORIGINAL ARTICLE UDC: 355.23:[613.71/.73:796.015 DOI: 10.2298/VSP1301016M The effectiveness of physical education of the Military
ITdesk.info. Obrada teksta LibreOffice 3.6 Writer. Priručnik. Autorica: Melani Max. pokret računalnog opismenjavanja. izgradnja modernog društva
pokret računalnog opismenjavanja izgradnja modernog društva ITdesk.info projekt računalne e-edukacije sa slobodnim pristupom e - učenje - Priručnik za digitalnu pismenost ljudska prava na edukaciju i informacije
Multimedia Resources in an Online Course: Access and Usage with Respect to Sensory Modality
Multimedia Resources in an Online Course: Access and Usage with Respect to Sensory Modality Tomislava Lauc, Sanja Kišiček and Petra Bago Faculty of Humanities and Social Sciences, University of Zagreb
Cloud Exchange Mail i Cloud SharePoint. Upute za konfiguraciju Cloud Exchange Mail M i L korisničkih paketa Ver 1.0 (siječanj 2014.
Upute za konfiguraciju Cloud Exchange Mail M i L korisničkih paketa Ver 1.0 (siječanj 2014.) Sadržaj 1. Konfiguracija Outlook klijenta e-pošte 1 1.1. Autodiscovery konfiguracija 1 1.2. Podešavanje Outlook
HP ScanJet 200, 300. Korisnički priručnik
HP ScanJet 200, 300 Korisnički priručnik Autorska prava i licenca 2015 Copyright HP Development Company, L.P. Zabranjeno je svako umnožavanje, prilagodba ili prijevod bez prethodnog pismenog dopuštenja,
Upute za korisnike usluge. Iskon.ADSL
Upute za korisnike usluge Iskon.ADSL PODACI ZA KORIŠTENJE Upišite svoje osobne podatke za korištenje usluge koje ste dobili u dokumentaciji prilikom prijave. Ako ste u međuvremenu na korisničkim stranicama
The Linux Small Business Server
The Linux Small Business Server Goran Šljivić Metalurški fakultet Sisak Aco Dmitrović Hrvatski geološki institut CUC 2011 Zentyal Gateway UTM Infrastructure management Office Unified Communications 2 Proizvođač
Priručnik. ST23i/ST23a. miro
Priručnik ST23i/ST23a miro Sadržaj Važne informacije...6 Android što i zašto?...7 Programi...7 Početak rada...8 Sklapanje...8 Uključivanje i isključivanje telefona...10 Priručnik za postavljanje...10 Zaključavanje
Windows. Pošto uključite računar na kome je instaliran Windows na ekranu će se pojaviti slika slična ovoj:
Osnove Windows-a Windows Widows (što na englekom jeziku znači - prozori ) je operativni sistem. To je program (sistemski) koji omogućuje komunikaciju između računara i korisnika i izvršavanje svih ostalih
Sadržaj. Sadržaj... 1. 1. Uvod u Microsoft PowerPoint 2007... 2. 1.1. Prikazivanje galerija... 3. 1.2. Korišćenje dodatnih opcija...
1 Microsoft office PowerPoint 2007 Sadržaj Sadržaj... 1 1. Uvod u Microsoft PowerPoint 2007... 2 1.1. Prikazivanje galerija... 3 1.2. Korišćenje dodatnih opcija... 4 1.3. Promena prikaza... 5 2. Pripremanje
Bezbednost Vodič za korisnika
Bezbednost Vodič za korisnika Copyright 2008 Hewlett-Packard Development Company, L.P. Microsoft i Windows su žigovi korporacije Microsoft registrovani u SAD. Ovde sadržane informacije podložne su promenama
Teachers perceptions of multilingual education and teaching in a multilingual classroom - the case of the Republic of Macedonia
13.2 (2012): 679-696 Brikena Xhaferi Gëzim Xhaferi South East European University Tetovo UDC 378:316.7(497.7)=111 Original scientific paper Received on 30.03. 2012 Accepted for publication on 30.05. 2012
Windows XP Service Pack 2 sigurnosna zakrpa CCERT-PUBDOC-2004-11-98
Windows XP Service Pack 2 sigurnosna zakrpa CCERT-PUBDOC-2004-11-98 Sigurnosni problemi u računalnim programima i operativnim sustavima područje je na kojem CARNet CERT kontinuirano radi. Rezultat toga
Predstavljanje znanja u informacijskim sustavima. Seminar. Semantički web. Krešimir Pavić
Predstavljanje znanja u informacijskim sustavima Seminar Semantički web Krešimir Pavić Sadržaj: 1. Uvod...3 1.1 Use case scenario...3 2 Jezici semantičkog weba...4 3 XML...5 3.1 SGML...5 3.2 Definicija
INTENZIFIKACIJA U TRENINGU FLEKSIBILNOSTI
Josipa Bradić 1, Erol Kovačević 2 ¹ Kineziološki fakultet Sveučilišta u Zagrebu, Hrvatska ² Fakultet sporta i tjelesnog odgoja Univerziteta u Sarajevu, Bosna i Hercegovina INTENZIFIKACIJA U TRENINGU FLEKSIBILNOSTI
VISUALIZATION OF WINTER WHEAT QUANTITATIVE TRAITS WITH PARALLEL COORDINATE PLOTS
ISSN 1330-7142 UDK = 633.11 324 :004.42 VISUALIZATION OF WINTER WHEAT QUANTITATIVE TRAITS WITH PARALLEL COORDINATE PLOTS Andrijana Eđed (1), Z. Lončarić (1), D. Horvat (1), K. Skala (2) SUMMARY Original
Lean Product Lifecycle Management Approach
International Journal of Industrial Engineering and Management (), Vol. 4 No 4, 2013, pp. 207-214 Available online at www.iim.ftn.uns.ac.rs/ijiem_journal.php ISSN 2217-2661 UDK:621:005.7 Lean Product Lifecycle
Denial of Service. Denial of Service. A metaphor: Denial-of-Dinner Attack. Denial-of-Dinner Attack 2. Ozalp Babaoglu
Denial of Service Denial of Service Ozalp Babaoglu Availability refers to the ability to use a desired information resource or service A Denial of Service attack is an attempt to make that information
Lost in a Cloud: Overview of Legal Obstacles to the Growth of Cloud Computing
STRUČNI RAD UDK: 0040.7 Zaprimljeno: rujna 2012. Lost in a Cloud: Overview of Legal Obstacles to the Growth of Cloud Computing Gregory Graham * SUMMARY Cloud computing has emerged as an exciting new opportunity
ITdesk.info. Osnovni pojmovi informacijske i komunikacijske tehnologije. Skripta. pokret računalnog opismenjavanja. e - učenje
pokret računalnog opismenjavanja izgradnja modernog društva ITdesk.info projekt računalne e-edukacije sa slobodnim pristupom e - učenje ljudska prava na edukaciju i informacije e - inkluzija slobodan pristup
Procjena rizika opći vodič
Vodič za procjenu rizika u malim i srednjim poduzećima 10 Procjena rizika opći vodič Prepoznavanje i vrednovanje opasnosti; Poduzimanje mjera INTERNATIONAL SOCIAL SECURITY ASSOCIATION Sekcija za električnu
How To Get A Computer To Run A Computer On A Computer (For Free)
1. Greška prilikom čitanja sertifikata sa kartice ili (u novijim verzijama) nisu pronañeni sertifikati na kartici - instalacija sertifikata Ukoliko vam se javi ova greška potrebno je da ubacite instalacioni
1.- L a m e j o r o p c ió n e s c l o na r e l d i s co ( s e e x p li c a r á d es p u é s ).
PROCEDIMIENTO DE RECUPERACION Y COPIAS DE SEGURIDAD DEL CORTAFUEGOS LINUX P ar a p od e r re c u p e ra r nu e s t r o c o rt a f u e go s an t e un d es a s t r e ( r ot u r a d e l di s c o o d e l a
CLIENT/SERVER/INTERNET COMPUTING AND STANDARDIZATION: THIS IS THE FUTURE DIRECTION FOR THE CLINICAL LABORATORY
Jugoslov Med Biohem 2006; 25 (1) 39 DOI: 10.2298/JMB0601039M UC 577,1; 61 ISSN 0354-3447 Jugoslov Med Biohem 25: 39 46, 2006 Stru~ni rad Professional paper CLIENT/SERVER/INTERNET COMPUTING AND STANDARDIZATION:
GIS-Based Decision-Support Program for Planning and Analyzing Short-Wood Transport in Russia
Original scientific paper Izvorni znanstveni rad GIS-Based Decision-Support Program for Planning and Analyzing Short-Wood Transport in Russia Abstract Nacrtak Yuri Gerasimov, Anton Sokolov, Timo Karjalainen
LESSON NINETEEN MARINE INSURANCE
LESSON NINETEEN MARINE INSURANCE Insurance is a means of protection against loss, whereby the cost of the loss, which would otherwise fall upon the owners, is taken over by the insurer. The document embodying
ROLE OF MANAGEMENT CONSULTING IN A PROCESS OF PROFESSIONALIZATION OF SME MANAGEMENT
144 Anton Florijan Barisic, Morana Bozicevic ROLE OF MANAGEMENT CONSULTING IN A PROCESS OF PROFESSIONALIZATION OF SME MANAGEMENT Anton Florijan Barisic, Certified Management Consultant (CMC) Managing Partner,
Upoznajte se sa Microsoft Outlook-om
Upoznajte se sa Microsoft Outlook-om SADRŽAJ RAD SA ELEKTRONSKOM POŠTOM... 174 1.1. POKRETANJE PROGRAMA OUTLOOK PRVI PUT... 175 1.2. ČITANJE PORUKA I OTVARANJE PRILOGA... 175 1.3. ODGOVARANJE NA PORUKE...
Kako instalirati phpbb FORUM na web/server? Za totalne početnike!!! FTP program Windows Commander
Kako instalirati phpbb FORUM na web/server? Za totalne početnike!!! FTP program Windows Commander Kao prvo potrebno je da zakupite Web Hosting koji ima podršku za PHP i MySQL. Ja sam zakupio na Croadria.com.
ELEKTROTEHNIKI FAKULTET SVEUILIŠTA JOSIPA JURJA STROSSMAYERA U OSIJEKU
ELEKTROTEHNIKI FAKULTET SVEUILIŠTA JOSIPA JURJA STROSSMAYERA U OSIJEKU ODNOS TEHNOLOGIJE MOBILNIH SUSTAVA (GSN) I KUPCU ORIJENTIRANOG MENADŽMENTA (CRM) (CRM Tools and Structure of the Support Organisations)
Pregled svake od ovih uputa moguć je korištenjem veze koja se nalazi na nazivu pojedinog privitka.
1. UVOD pružaju slijedeće informacije: Privitak 1. - Upute za instalaciju e-kaba servisa Privitak 2. Upute za postavljanje certifikata e-kaba servisa Privitak 3. Upute za promjenu PIN-a Privitak 4. Upute
Nacrtajmo sami fraktal
Mala škola geometer s sketchpada Nacrtajmo sami fraktal Šime Šuljić, Pazin Na posljednjoj stranici prošlog broja -a fraktalna je slika cvjetače. Jednostavan postupak nastajanja tog fraktala može se crtati
VLSM and Subnetting ( raspodjela IP adresa u LAN mreži )
VLSM and Subnetting ( raspodjela IP adresa u LAN mreži ) VLSM and Subneting - (Class IP address range, Variable Length Subnet Mask and Subnetting ) VLSM i Subnetiranje mreže, raspodjela IP adresa u LAN
Leisure-Time Activities Its Program and Importance in the Institutionalized Protection of Old People
Coll. Antropol. 27 (2003) 2: 439 444 UDC 613.98:331.3-053.9 Original scientific paper Leisure-Time Activities Its Program and Importance in the Institutionalized Protection of Old People Marijana Ljubi}
Iz vje {taj sa se mi na ra o ener get skoj efi ka sno sti PRIN CI PI ENER GET SKE EFI KA SNO STI
List u~enika i nastavnika Sredwe stru~ne {kole u Pqevqima Godina IV Broj 4 Uspje {no po slo va we Tim ber Mont-a DRU GA NA GRA DA PRED U ZE ]U ZA VJE @BU (Strana 6) Iz vje {taj sa se mi na ra o ener get
AIESEC stručne prakse. Stručne prakse IT
AIESEC stručne prakse Međunarodna stručna praksa jedna je od mogućnosti koju pruža međunarodna studentska organizacija AIESEC. Praksa je namijenjena svim studentima, apsolventima te onima koji su stekli
Malware programi CCERT-PUBDOC-2005-02-107
Malware programi CCERT-PUBDOC-2005-02-107 Sigurnosni problemi u računalnim programima i operativnim sustavima područje je na kojem CARNet CERT kontinuirano radi. Rezultat toga rada ovaj je dokument, koji
Mala škola programiranja C# (1)
Mala škola programiranja C# (1) Uvod Namena ovog serijala jeste da nastavnike informatike i programiranja uputi u tematiku programiranja u programskom jeziku C# i u.net tehnologiju. Kada otvorite navedenu
ICT AND IDENTITY THEFT ICT I KRAĐA IDENTITETA. Krunoslav Antoliš
Krunoslav Antoliš: ICT AND IDENTITY THEFT 353 INFO- 2101 UDK: 681.3:340:001 Primljeno/Received: 2013-04-18 Authors Review/Pregledni rad ICT AND IDENTITY THEFT ICT I KRAĐA IDENTITETA Krunoslav Antoliš Police
ODRŽAVANJE SISTEMA NEPREKIDNOG NAPAJANJA ZA INFORMACIONE SISTEME VISOKE DOSTUPNOSTI
2. Konferencija ODRŽAVANJE 2012 Zenica, B&H, 13. - 16 juni 2012. ODRŽAVANJE SISTEMA NEPREKIDNOG NAPAJANJA ZA INFORMACIONE SISTEME VISOKE DOSTUPNOSTI MAINTENANCE OF UNINTERRUPTABLE POWER SUPPLY SYSTEM FOR
Naziv tvrtke Business name: Pravni oblik Legal form:.. Matični broj Tax number:.. Sjedište Address:
R E P U B L I K A H R V A T S K A PRIMJERAK 1 MINISTARSTVO FINANCIJA-POREZNA UPRAVA - za podnositelja zahtjeva - THE REPUBLIC OF CROATIA COPY 1 MINISTRY OF FINANCE-TAX ADMINISTRATION - for the claimant
MAJA VIDOVIĆ UPRAVLJANJE ZNANJEM U VELIKIM HRVATSKIM PODUZEĆIMA (MAGISTARSKI RAD)
SVEUČILIŠTE U ZAGREBU EKONOMSKI FAKULTET MAJA VIDOVIĆ UPRAVLJANJE ZNANJEM U VELIKIM HRVATSKIM PODUZEĆIMA (MAGISTARSKI RAD) ZAGREB, 2008. PODACI I INFORMACIJE O MAGISTRANDU Prezime i ime: VIDOVIĆ MAJA Datum
Comment on the Critique of the paper ERP and Management Accounting Changes of Industrial Enterprises in Serbia *
Comment on the Critique of the paper ERP and Management Accounting Changes of Industrial Enterprises in Serbia * UDK 001.83 Slobodan Malinić, University of Kragujevac,Faculty of Economics, Kragujevac Mirjana
QR kodovi i njihova zlouporaba NCERT- PUBDOC-2012-01-334
QR kodovi i njihova zlouporaba NCERT- PUBDOC-2012-01-334 Sadržaj 1 UVOD... 3 2 ŠTO JE QR KOD?... 3 3 KAKO QR KOD POHRANJUJE PODATKE... 4 4 ZLOUPORABA QR KODOVA... 7 4.1 MOTIVACIJA ZA ZLOUPORABU... 7 4.2
The Role of Energy Storages in Energy Independent Croatia Krajai, Goran; Mathiesen, Brian Vad; Dui, Neven; Da Graça Carvalho, Maria
Aalborg Universitet The Role of Energy Storages in Energy Independent Croatia Krajai, Goran; Mathiesen, Brian Vad; Dui, Neven; Da Graça Carvalho, Maria Published in: Energy Day in Croatia Publication date:
E-LEARNING: PERCEPTIONS OF STUDENTS AT THE JOSIP JURAJ STROSSMAYER UNIVERSITY OF OSIJEK
94 INFO- 2019 Primljeno / Received: 2010-01-15 UDK : 681.327:371.8:37 Izvorni znanstveni rad / Original Scientific Paper E-LEARNING: PERCEPTIONS OF STUDENTS AT THE E-UČENJE: PERCEPCIJA STUDENATA SVEUČILIŠTA
UPOZNAVANJE SA RADNIM TOKOM
1 UPOZNAVANJE SA RADNIM TOKOM Pregled lekcije U ovoj lekciji naučićete kako da uradite sledeće: Pravite projekte i uvozite snimljeni materijal. Pravite kompozicije i doterujete slojeve. Krećete se po interfejsu
Automatic identification based on 2D barcodes
International Journal of Industrial Engineering and Management (), Vol.2 No 4, 2011, pp. 151-157 Available online at http:// www.iim.ftn.uns.ac.rs/ijiem_journal.php ISSN 2217-2661 UDK: 003.295.8 Research
Online Media Planning. Ivan Dimitrijević
Online Media Planning Ivan Dimitrijević $ #! %&!$ /$( #$!&())()%&$#! # Digitalna Srbija MEDIA MARKET OVERVIEW Skoro Source: Gemius Audience 1/2013 Miliona Aktivnih korisnika svakog meseca (2.998.000) Ali
NEW BIOMECHANICAL MODEL FOR TENNIS SERVE
NEW BIOMECHANICAL MODEL FOR TENNIS SERVE Nikša Đurović 1, Vinko Lozovina 2 and Duje Mrduljaš 1 1 Tennis club Split, Croatia 2 Faculty of Maritime studies, Split, Croatia Preliminary communication paper
Cerebral edema in drug addicts
Strana 554 VOJNOSANITETSKI PREGLED Vojnosanit Pregl 2014; 71(6): 554 558. ORIGINAL ARTICLE UDC: 616.89-008.441.3:616.831-005.98 DOI: 10.2298/VSP1406554D Cerebral edema in drug addicts Edem mozga kod zavisnika
PRIRUČNIK ZA KORISNIKE H
PRIRUČNIK ZA KORISNIKE H HR PowerMust 400/600/800 USB Sustav za neprekinuto napajanje 1 VAŽNA SIGURNOSNA UPUTSTVA SAČUVAJTE OVA UPUTSTVA U ovom priručniku se nalaze važna uputstva za skup uređaja Models
DISCRETE MATHEMATICS AND ITS APPLICATIONS IN NETWORK ANALYSIS DISKRETNA MATEMATIKA I NJENE PRIMJENE U MREŽNOJ ANALIZI
DISCRETE MATHEMATICS AND ITS APPLICATIONS IN NETWORK ANALYSIS mr. sc. Anton Vrdoljak, prof. matematike Građevinski fakultet Sveučilišta u Mostaru Abstract: In this article we will give a small introduction
UNIVERZITET U NOVOM SADU TEHNOLOŠKI FAKULTET PROGRAMIRANJE I PRIMENA RAČUNARA
UNIVERZITET U NOVOM SADU TEHNOLOŠKI FAKULTET PROGRAMIRANJE I PRIMENA RAČUNARA OKTOBAR, 2004 SADRŽAJ UVODNA REČ... 3 1. UVOD U PYTHON... 4 2. OSNOVNE STVARI... 5 POKRETANJE PYTHON-A... 5 NAREDBA PRINT I
E-LEARNING IN BUSINESS
Pregledni rad Škola biznisa Broj 3-4/2013 UDC 37.018.43:004 E-LEARNING IN BUSINESS Marta Woźniak-Zapór *, Andrzej Frycz-Modrzewski Krakow University Abstract: Training for employees improves work efficiency
ZOTERO PROGRAM OTVORENOG KODA ZA UPRAVLJANJE BIBLIOGRAFSKIM BILJEŠKAMA ZOTERO OPEN SOURCE SOFTWARE FOR MANAGING THE BIBLIOGRAPHIC REFERENCES
VJESNIK BIBLIOTEKARA HRVATSKE 54, 1/2(2011) ZOTERO PROGRAM OTVORENOG KODA ZA UPRAVLJANJE BIBLIOGRAFSKIM BILJEŠKAMA ZOTERO OPEN SOURCE SOFTWARE FOR MANAGING THE BIBLIOGRAPHIC REFERENCES Ivana Sarić Sveučilišna
VELEUČILIŠTE U ŠIBENIKU IZVEDBENI PLAN NASTAVE OPĆE INFORMACIJE O KOLEGIJU OPIS KOLEGIJA
VELEUČILIŠTE U ŠIBENIKU IZVEDBENI PLAN NASTAVE Oznaka: PK-10 Datum: 01.06.014. Stranica: 1 od 4 Revizija: 0 SPECIJALISTIČKI DIPLOMSKI STUDIJ Studij: MENADŽMENT Studijska godina: 1. Akad. godina: 014./015.
Metric ERP/CRM software
Metric ERP/CRM software Metric d.o.o. Stanka Vraza 15, 10290 Zapresic, Croatia [email protected] tel. +385 313573 fax. +385 3319418 w w w.mymetric.net, w w w.metric.hr Metric ERP/CRM software Metric d.o.o.
STATISTIČKA KONTROLA PROCESA I PROIZVODA U POLJOPRIVREDI
ISSN 1330-7142 UDK = 311.17: 63 STATISTIČKA KONTROLA PROCESA I PROIZVODA U POLJOPRIVREDI D. Horvat, Andrijana Eđed, Đ. Banaj Stručni članak Professional paper SAŽETAK Osnovni koncept statističke kontrole
Modeliranje poslovnih procesa
Cilj poglavlja: Modeliranje h Tema. ANALIZA I UPRAVLJANJE POSLOVNIM PROCESIMA Utvrditi ključne poslovne e Analizirati i prikazati poslovne e Razlikovati različite pristupe unapređivanju i mjerenju uspješnosti
Cholesterol. There are 3 main types of fats in your blood:
Cholesterol Cholesterol is a fatty substance that your body needs to work. It is made in the liver and found in food that comes from animals, such as meat, eggs, milk products, butter, and lard. Too much
Mogućnost pristupa StuDOM infrastrukturi izvedena je u skladu sa eduroam standardom.
Dragi studenti, predstavljamo vam 3. verziju priručnika kojemu je svrha omogućiti vam što jednostavnije i brže spajanje na domsku mrežu i internet. Nadamo se da ste upoznati sa činjenicom kako od prošle
Closed-loop supply chain coordination based on recyclers' competition model
UDC 336.6:339.1:19.86 Original scientific paper Received: 04.06.13. Closed-loop supply chain coordination based on recyclers' competition model Chao He, Xue-Feng Song and Chun-Hua Feng School of Management,
COMMUNICATION IN THE PROCESS OF NEGOTIATION KOMUNIKACIJA U PROCESU PREGOVARANJA. Ksenija Čulo, Vladimir Skendrović 1
323 INFO-2073 UDK : 659.3:654.0:007 Primljeno / Received: 2012-02-11 Professional Paper / Stručni rad COMMUNICATION IN THE PROCESS OF NEGOTIATION KOMUNIKACIJA U PROCESU PREGOVARANJA Ksenija Čulo, Vladimir
Python? programski jezik Wikipedia:
Python, I deo Python? programski jezik Wikipedia: Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable
1 Upoznavanje sa. Projectom. U ovom poglavlju
1 Upoznavanje sa Projectom U ovom poglavlju Koristite Pozadinski prikaz za otvaranje i čuvanje Projectovih datoteka. Radite sa komandama na različitim karticama u traci interfejsa, glavnoj vizuelnoj promeni
Primjena PLC uređaja serije S7-1200 za upravljanje i vizualizaciju sustava odvodnje otpadnih voda
Primjena PLC uređaja serije S7-1200 za upravljanje i vizualizaciju sustava odvodnje otpadnih voda Goran Malčić*, Danijel Maršić*, Tomica Lisak** *Elektrotehnički odjel Tehničko veleučilište u Zagrebu Konavoska
IP bežični telefoni (DECT & WiFi) dio ponude
IP telefonija & napredne mrežne tehnologije IP bežični telefoni (DECT & WiFi) dio ponude Siemens Gigaset Snom Unidata Siemens Gigaset Siemens Gigaset C470IP / C475IP IP telefon Bežični DECT telefon Fiksni
1. Oblast rozvoj spolků a SU UK 1.1. Zvyšování kvalifikace Školení Zapojení do projektů Poradenství 1.2. Financování 1.2.1.
1. O b l a s t r o z v o j s p o l k a S U U K 1. 1. Z v y š o v á n í k v a l i f i k a c e Š k o l e n í o S t u d e n t s k á u n i e U n i v e r z i t y K a r l o v y ( d á l e j e n S U U K ) z í
THE CONCEPT OF PUBLIC DEBT MANAGEMENT STRATEGY OF THE REPUBLIC OF CROATIA
Domagoj Karačić Josip Juraj Strossmayer University of Osijek Faculty of Economics in Osijek Trg Ljudevita Gaja 7, 31000 Osijek, Croatia [email protected] Phone: +385911555685 Bruno Dernaj Martina Divalta
MOBILNA TRANSFORMATORSKA STANICA. 132 kv, 25 MVA
This document remains the exclusive property of the KONČAR POWER PLANT AND ELECTRIC TRACTION ENGINEERING Inc. Reproduction or any use not in conformity with the intended application is not permissible.
Public Relations Influence on Croatian Media Is There a Difference Between the Opinions of Journalists and Public Relations Professionals?
IZVORNI ZNANSTVENI RAD UDK: 316.77:659.4 Primljeno: veljača 2007. Public Relations Influence on Croatian Media Is There a Difference Between the Opinions of Journalists and Public Relations Professionals?
w. x. y. z Pošto se oktet sastoji od osam binarnih brojeva onda bi pojedinačni okteti IP adrese izgledali ovako, gledano iz ugla binarnih brojeva:
Jedan od tri osnovna parametra konfiguracije TCP/IP protokola, u ovom slučaju njegov deo IP protokola, jeste IP adresa. IP adresa je logička adresa mrežnog adaptera u TCP/IP mrežama. Danas su u upotrebi
JAVA JAVA JAVA JAVA. Objektno orijentirano programiranje. Kreirali inženjeri tvrtke Sun Microsystems Prva verzija 1995. godine.
JAVA Kreirali inženjeri tvrtke Sun Microsystems Prva verzija 1995. godine 1 2 JAVA JAVA Osnovne značajke jezika: objektno orijetiran neovisan o hardveru i softveru Kompajlirani Java kôd može se izvršavati
Selection of Supply Chain Performance Measurement Frameworks in Electrical Supply Chains
International Journal of Industrial Engineering and Management (), Vol.5 No 3, 2014, pp. 131-137 Available online at www.iim.ftn.uns.ac.rs/ijiem_journal.php ISSN 2217-2661 UDK: 658.286 Selection of Supply
[KOLA PO MJERI NOVOG VREMENA
110 go di na Gim na zi je [KOLA PO MJERI NOVOG VREMENA Raz go vor sa di rek to rom Dra ga nom Zu ko vi }em Pqe vaq ska gim na zi ja je po o dav no nad ra sla vi jek po sto ja wa i ute me qi la bo ga to
EU Beautiful Kosovo Programme Renovation of the School Yard 4 dëshmorët in Rahovec/Orahovac
EU Beautiful Kosovo Programme Renovation of the School Yard 4 dëshmorët in Rahovec/Orahovac The project Renovation of the School Yard 4 dëshmorët in the village Ratkoc/Ratkovac municipality of Rahovec/Orahovac,consists
Naša Škola Upustvo za upotrebu- Verzija 1.0
Naša Škola Upustvo za upotrebu- Verzija 1.0 Sadržaj Izmene... 3 Uvod... 3 Početni ekran... 4 Prvo logovanje... 6 Podešavanja... 7 Strane... 9 Vesti/Novosti... 12 Download... 15 Foto Galerija... 18 Video
Engine Output Increase of Two-stroke Combustion with Exhaust System Optimization
Strojarstvo 50 (2) 69-76 (2008) P. BIGOŠ et. al., Engine Output Increasing of Two-stroke... 69 CODEN STJSAO ISSN 0562-1887 ZX470/1333 UDK 621.432.4.053/.057 Engine Output Increase of Two-stroke Combustion
UNIT TWELVE CHARTER PARTIES (I)
UNIT TWELVE CHARTER PARTIES (I) A charter party is a document of contract by which a shipowner agrees to lease, and the charterer agrees to hire, a vessel or all the cargo space, or a part of it, on terms
MAIN TOPIC. The Future of Journalism Education in the United Kingdom: a Personal View from the Academy. Summary. Mick Temple
241 MAIN TOPIC UDK 070:378 (241-258) Mick Temple The Future of Journalism Education in the United Kingdom: a Personal View from the Academy Summary Journalism training must not only equip students with
