This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
|
|
- Theodora Spencer
- 6 years ago
- Views:
Transcription
1 C-Programiranje Lekcija 3.3 Uvod u pointere (pokazivace) This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Sta su to pointeri? Ako postoji tema, koja razlikuje C od drugih programskih jezika, onda su to zasigurno pointeri tj. pokazivaci. Razlozi su kako tehnicke, tako i historijske prirode. Tehnicki gledano, C je vrlo blizu masini i njime se moze bez problema pritisnuti pedal to the metal da bi se postigao zeljeni efekat. Historijski gledano, C dolazi iz svijeta, kojeg vec odavno nema na vidljivom planu, ali ciji korijeni i dan danas odredjuju nasi moderni digitalni svijet. Dakle, bilo koji uredjaj da uzmete u ruke, koji god operativni system da koristite, bio to laptop, handheld, smartphone ili sasvim obicna kanta, sve one baziraju na istim principima. To sto je taj svijet danas mnogo manje vidljiv, no sto je bio jos sezdesetih i sedamdesetih zadnjeg stoljeca, ne znaci da on vise ne postoji. Naprotiv, itekako je tu i najjace se pokazuje kada vam iskezi zube u slucaju pada sistema ili neke greske u programu. Dakle, pointeri se baziraju na tim dvjema cinjenicama i svako ko zna da barata s njima, bit ce ne samo u stanju da pise vrlo dobre C-programe, nego stavise da nauci koristiti bilo koji od modernijih programskih jezika, koji vecinom baziraju na C-u ili nekom od njegovih derivata, poput C++, Java itd. Uostalom, i trenutacno najmoderniji produkti poput Apple-ovog iphone-a se programiraju iskljucivo u Objective-C dijalektu. Dakle, C i nije bas toliko staromodan, nego su njegovi korijeni duboko zakopani iza sarolikih reklama, svakakvih igrica i jos mnogo drugih mogucnosti da potrosite vrijeme (a usput i platite koji dinar za tu vrstu dangubljenja). Odgovor na uvodno pitanje daje jedno drugo pitanje: Sta je to radna memorija tj. RAM? Svi oni, koji su citali uvodnu lekciju, gdje je ona bila opisana kao tabla razdijeljena na blokove, vec znaju odgovor. Kombinirajuci to znanje, odgovor je jednostavan: Pointeri su varijable, koji sadrze memorijske adrese. Dakle, adrese tih istih blokova, koje smo upoznali u ranijim lekcijama. Najcesce su te adrese vezane za vec definirane varijable, tako da su pointeri varijable, koje sadrze adrese drugih varijabli. Matematicki gledano su pointeri tzv. indirekcije, jer se na odredjene vrijednosti, recimo neki broj pohranjen u nekoj varijabli, ne ide direktno, putem imena te varijable, nego indirektno putem pointera. Pogledajmo ovu sliku: 1
2 U memoriji se nalaze dvije varijable: X i X1. X je obicna varijabla, nekog tipa, i sadrzi neku vrijednost u sebi. Recimo, ona je tipa int i sadrzi broj 10 u sebi. Varijabla X1 je specijalna, posto ne sadrzi neku vrijednost u sebi, kao npr. neki broj, nego adresu jedne druge varijable. U ovom slucaju je to pozicija 2C, gdje se nalazi varijabla X. Dakle, pointer X1 zna gdje se u radnoj memoriji X nalazi. Koju trenutacnu vrijednost X posjeduje ne stoji u pointeru. Da bi se i to saznalo mora se ici ili direktno na tu varijablu, putem njenog imena, kao sto smo to do sada i cinili, ili putem indirekcije, dakle preko pointera, sto je novina, koju cemo sada da upoznamo. Pogledajmo jedan primjer s pointerom. int x = 10; int *x1 = &x; printf( Vrijednost u varijabli x je %d, x); printf( Vrijednost u varijabli x1 je %d, x1); Rezultat ovog programa bi bio slican jednom ovakvom rezultatu. Prva informacija nam vraca definiranu vrijednost 10, a druga informacija sadrzi jedan potpuno neocekivani rezultat. Rezultat je isto tako broj, samo sto on odgovara fizickoj adresi u memoriji masine. Dakle, nesto sto se ne mijenja. Isto kao sto se npr. ulicne adrese ne mijenjaju, nego samo 2
3 njihovi stanari. Dakle, na gornjoj adresi se trenutacno nalazi varijabla zvana x, koja u sebi, dakle na toj adresi, sadrzi vrijednost 10. Kada sljedeci put startamo ovaj program, bez da ga promijenimo, onda bi vrijednost varijable x jos uvijek bila 10, ali adresa na kojoj se nalazi bi najvjerovatnije bila neka druga. To sve zavisi od masine i koje pozicije u njenon radnoj memoriji su trenutacno slobodne. Ipak, pointer x1 bi jos uvijek pokazivao na pravu adresu, kako god da racunar i postavi sve te varijable. Kako je to moguce da pointer x1 uvijek pogodi pravu adresu varijable x? Rjesenje lezi u deklaraciji pointera x1, direktno ispod deklaracije varijable x. int *x1 = &x; Neki ce sada mozda kazati: Kako je to moguce da se i znak zvjezdice i znak ampersand (&) nalaze u jednom izrazu? Kao sto smo u ranijim lekcijama vidjeli na primjeru funkcije scanf, unarni operator & se koristi da bi se dobila adresa varijable. Isto tako smo upoznali i drugi operator *, koji se u razlicitim kontekstima koristi u razlicite svrhe. Ponekad kao multiplikator, kada pomnozimo dva broja, a ponekad, kao na ovom primjeru, u smislu deklaracije pointera! Dakle, i zvjezdica je, zavisno od konteksta, ponekad unarni operator, jer potrebuje samo jedan operand. U ovom primjeru je to sam pointer x1. Isto tako se nadam, da se sjecate savjeta da u slucajevima kada nista vise ne razumijete jednostavno pocnete citati C-kod naopacke, dakle s desna nalijevo. Pokusajmo to na ovom primjeru: Od varijable x uzmi adresu (&) i pohrani je (=) u x1, koji je pointer (*) tipa int. Ako smo pointere definirali kao varijable, koje sadrze adrese drugih varijabli, onda je ova zadnja recenica potpuno legitimna. Na ovakav nacin se definiraju i deklariraju pointeri. Naravno, definicija moze biti i mnogo ranije, prije nego pointeru date neku adresu na cuvanje. Ono sto je svakako jos bitno za zapamtiti je, da pointeri moraju da odgovaraju tipu varijabli cije adrese bi trebali da sadrze. Dakle, pointer tipa int moze samo da drzi adrese varijabli tog tipa. Isto to vazi i za sve ostale tipove poput long, float, double itd. Postoji jedan specijalan tip pointer-a, zove se void*, koji ne odaje tip varijable na koju pokazuje, ali sadrzi njenu adresu u sebi. O njemu cemo se pozabaviti u kasnijim lekcijama, posto void* ne moze biti upotrebljen za dereferenciranje, jer bukvalno ne znate u sta da pretvorite vasu adresu? Da li je vrijednost na koju pokazujete int, char, byte ili cak neka kompleksna struktura? Prije nego sto dotaknemo void* (na engleskom nista ), bolje nam je da se prvo pozabavimo definicijom pojma dereferenciranje. Sta je to dereferenciranje? I ovdje treba odgovor potraziti u jednom dodatnom pitanju: Sta je to referenciranje? Odgovor je banalan: Sve ono sto definira pointer je referenciranje. Referencirati nesto znaci, odnositi se na nesto drugo, a ne na sebe. U vezi pointera to je jasna cinjenica, posto pointeri: a) ne sadrze vrijednosti, kojima se moze direktno baratati b) sadrze vrijednosti, koje se koriste da bi se dossjelo do pravih vrijednosti, koje se nalaze negdje drugdje u memoriji. Dakle, pointeri sadrze memorijske adrese, koje nemaju nikakve veze sa trenutacnim vrijednostima, koje su polozene na njihova mjesta od strane racunara. c) imaju isti tip kao i vrijednosti na memorijskim adresama na koje pokazuju. Referencirati nesto u memoriji znaci znati, kojeg tipa je to nesto i na kojoj adresi u memoriji ono nalazi, bez da se brinemo o tome, kakva kvalitativna vrijednost se trenutacno na tom mjestu nalazi. Ovaj zadnji korak se ispunjava tek putem dereferenciranja, kada se pitamo: Koja vrijednost tog tipa se 3
4 nalazi na mjestu na koje pokazujemo putem ovog pointera? Odgovor na gornje pitanje u vezi dereferenciranja je dakle: Dereferenciranje je koristenje vrijednosti u pointeru (dakle, koristenje adrese varijable na koju pointer pokazuje) da bi se dospjelo do nje i iscitala njena trenutacna vrijednost. Kada pogledamo nas zadnji primjer C-koda, vidimo da vrijednost 10 iz varijable x biva samo jednom izbacena: onda kada samu varijablu x koristimo u funkciji printf da bi izbacili njenu vrijednost. Poslije toga ispitujemo sadrzaj vrijednosti u pointeru x1, koji nije isti kao i kod varijable x, posto se ovdje radi o adresi varijable x, a ne o njenom sadrzaju. Dakle, ovdje (jos) ne koristimo pointer za dereferenciranje. Kako da sada iskoristimo pointer u te svrhe? Promijenimo C-kod za samo jedan znak, plus malu izmjenu popratnog teksta, koja nema tehnicki uticaj na rad s pointerom, i pogledajmo efekat: Umjesto: printf( Vrijednost u varijabli x1 je %d, x1); Postavimo: printf( Vrijednost poslije dereferenciranja x1 je %d, *x1); Rezultat je sada sljedeci: Dakle, samo mala promjena programskog koda kroz dodavanje zvjezdice (*) ispred imena pointera x1 je aktivirala njegovo dereferenciranje i umjesto prijasnje sirove memorijske adrese, mi dobijamo vrijednost, koja se nalazi na toj istoj adresi. Kako je to moguce? Odgovor je, opet, poprilicno banalan: Zato sto racunar zna, gdje se nalaze sve njegove adrese, a one se, kao sto vec znamo, nikada ne mijenjaju. Prosto receno, sadrzaji u memoriji se mijenjaju, ne i metal. Isto kao sto je racunaru moguce da putem operatora ampersand (&) nama vrati adresu neke varijable, tako moze bez problema da cini i obratnu rabotu i ode do date adrese i vrati nam vrijednost, koja se na njoj nalazi. Kada se koristi & rezultat je adresa, kada se koristi * rezultat je vrijednost na adresi. Ampersand (&) potrebuje varijablu da bi vratio njenu adresu, a zvjezdica (*) potrebuje pointer, koji u sebi sadrzi adresu, da bi 4
5 putem nje dospio do vrijednosti, koja se na njoj nalazi. Ili jos jednostavnije receno: & nam daje referencu, * nam pomaze pri dereferenciranju. Isto tako pri baratanju s pointerima potrebujemo oba operatora. Ampersand nam je potreban da napunimo pointer nekom adresom, a zvjezdica je potrebna da deklariramo varijablu kao pointer (pokazivac) na neku drugu. Naravno, sljedece pitanje je zasigurno: Cemu sve ovo moze da posluzi, sem sto postoje neke funkcije, koje potrazuju takav nacin punjenja? Sto se odgovora na ovo pitanje tice, tu se ne mozemo posluziti banalnim odgovorima. Ustvari ionako nema u C-u nigdje banalnih odgovora, posto smo suvise blizu hladne masine, koja ima sve samo ne milosti s ljudskim greskama. Jedna od koristi, koje nam pointeri donose je brzina obrade informacija, posto se npr. vrijednosti ne moraju kopirati izmedju funkcija. Umjesto da, primjerice radi, neke vrijednosti kopirate amo tamo, samo da bi one bivale iscitane, mnogo lakse ih je parkirati na nekoj adresi u memoriji i svakoj funkciji, koja za njih zapita, jednostavno dati pointer, pa kad joj zatreba, neka izvoli, i dereferencira ih sama. Isto tako je moguce putem pointera eficijentno operirati na nizovima vrijednosti. Ako negdje u memoriji imamo vise vrijednosti, poredane jedna iza druge, onda mozemo putem pointera skakati s jedne na drugu, vracati se na pocetak, manipulirati ih itd. To se isto tako naziva pointer-aritmetika i s njom cemo se jos vise puta sresti. Dakle, pointeri sluze i kao nisan. Naravno, ovo poredjenje bi trebali uzeti krajnje ozbiljno, jer je isto tako vrlo lahko nanisaniti i samog sebe, ako niste pazljivi sto se pointera tice. Ili vas, u najgorem slucaju, Vasa voljena masina sama nanisani, ako pocnete da vrsljate po memoriji bez velike potrebe. Cisto sumnjam da bi ste iz te borbe izasli kao pobjednik. Salu na stranu, pointeri su vrlo fleksibilan instrument, posto nam omogucuju da direktno radimo na nivou memorijskih adresa i manipuliramo ich ogromnom brzinom, koju ne moze postici nijedan drugi konstrukt iz bilo kojeg drugog programskog jezika. Nije ni cudo sto neki C nazivaju i portabilni assembler. Dakle, imamo utjecaj na masinu, kao da programiramo masinskim jezikom (assemblerom), bez da se koristimo tzv. assembly mnemonics, tj. assembler-komandi. Toliko o pointerima za sada. Jos mnogo vise slijedi u sljedecim lekcijama. Mnogo zabave sa C-om Vam zeli Harris 5
PREDMET. Osnove Java Programiranja. Čas JAVADOC
PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,
More informationOsnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete
More informationRačunarske osnove Interneta (SI3ROI, IR4ROI)
Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)
More informationVRIJEDNOSTI ATRIBUTA
VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not
More informationSvi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt
Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući
More informationUputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.
Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj
More informationOsnove programskog jezika C# Čas 4. Nasledjivanje 2. deo
Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()
More informationCSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets
CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family
More informationUčitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.
Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new
More informationPrva recenica. Druga recenica.
Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta
More informationMicrosoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,
Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016
More informationVB komande. Programiranje 1
VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog
More informationWindows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365
Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint
More informationPARALELNO PROGRAMIRANJE
Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom
More informationSberbank Business Online na Mozilla FireFox
Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI
More informationVežbe - XII nedelja PHP Doc
Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje
More informationVDSL modem Zyxel VMG1312-B10A/B30A
VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,
More informationVHDLPrimeri Poglavlje5.doc
5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0
More informationUputstvo za korišćenje logrotate funkcije
Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen
More informationIzrada VI laboratorijske vježbe
Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box
More informationNumeričke metode i praktikum
Numeričke metode i praktikum Aleksandar Maksimović IRB / 23/03/2006 / Str. 1 vektori Vektor u 3D prostoru. C: int v1[3]; v1[0]=a;v1[1]=b;v1[2]=c; Fortran: INTEGER V1(3) V1(1)=a V1(2)=b V1(3)=c Skalarni
More informationSveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje
More informationProgramiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010
Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa
More informationPROGRAMIRANJE. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u
More informationPredavanje 10. Odjel za matematiku 1 IP NETWORKING. Detaljnije o domenama, hostovima, socketima, TLSu, SSLu
Predavanje 10 Odjel za matematiku 1 IP NETWORKING Detaljnije o domenama, hostovima, socketima, TLSu, SSLu Predavanje 10 Odjel za matematiku 2 Imena hostova (posluţitelja) i imena domena Top-level domain
More informationpojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1
NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija
More informationb) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.
NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while
More informationnamespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
More information/*#include <iostream> // Prvi zadatak sa integralnomg ispita
/*#include // Prvi zadatak sa integralnomg ispita 27.01.2015 #include using std::setw; using std::cout; const int red(5), kolona(4); void unos(int[]); void ispis(int[][kolona]); float
More informationUvod u relacione baze podataka
Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationNumerical Computation
GNU Octave Numerical Computation vrlo često u tehnici retko stvarni problemi imaju closed-form solution čak i kad imaju, pitanje upotrebljivosti mnogo detalja numerički pristup u početku tretirano kao
More informationBackup i Restore C particije ili Windowsa sa NORTON-om
BRZO KOPIRANJE I RESTAURIRANJE DISKOVA (programski paket Norton SystemWorks) OBJAŠNJENJE Backup i Restore C particije ili Windowsa sa NORTON-om Je li vam se nekada srušio operativni sustav ili pokvario
More informationBinarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133
Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost
More informationUPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a
UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa
More informationKLASIFIKACIJA JELENA JOVANOVIĆ. Web:
KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti
More informationFor. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.
For 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} for i:=1 to 5do writeln(i); 2) program ispis; {ispisuje brojeve od 5 do 1 jedan ispod drugog} for i:=5 downto 1 do writeln(i); 3) program
More informationUputstvo za podešavanje mail klijenta
Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno
More information9. RAD S DATOTEKAMA PODATAKA
Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo
More informationUpute za postavljanje Outlook Expressa
Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete
More informationCase Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,
Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene
More informationSadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine
Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u
More informationKURSORI BAZE PODATAKA U ORACLE 11g
KURSORI BAZE PODATAKA U ORACLE 11g SAŽETAK Kursor baze podataka je privatno SQL područje u kojem se čuvaju informacije za procesiranje određene SQL naredbe. Oracle PLSQL jezik koristi implicitne i eksplicitne
More informationOracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:
Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele
More informationARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -
ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - PRIPREMA 5-2015 DVOSMJERNA SERIJSKA KOMUNIKACIJA Paolo Zenzerović, mag. ing. el. Zagreb, 2015. 2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE DVOSMJERNA
More informationIskočni okviri (eng. popup boxes)
9. JavaScript 2.dio Iskočni okviri, funkcije, petlje, događaji M. Zekić-Sušac 1 Iskočni okviri (eng. popup boxes) U JavaScriptu mogu se koristiti 3 vrste iskočnih okvira: Upozoravajući okviri (eng. alert
More informationUvod u programiranje - vežbe. Kontrola toka izvršavanja programa
Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if
More informationDogađaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.
Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,
More information16. Sigurnije programiranje
16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova
More informationProgramske paradigme Funkcionalna paradigma
Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju
More informationMašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv
Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka
More informationCjenovnik usluga informacionog društva
Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera
More informationUvod, varijable, naredbe, petlje
8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac 1 Što je JavaScript? JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer,
More informationModbus TCP i dva PLC S7 1200
Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi
More informationx y = z Zadaci - procedure
Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je
More informationNaredbe za kontrolu toka
Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku
More informationUputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0
POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu
More informationPITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM
PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan
More informationUvod u programski jezik
2016 Uvod u programski jezik EDIN PAŠIĆ BIHAĆ sejjidin Muhammedin ve âlih lihî ve sellem Sallallâhu 'alâ sejjidinâ Neka je salavat i selam na prvaka Muhammeda a.s. i na njegovu porodicu ii Predgovor Ovo
More informationType 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.
R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY.
More informationObjektno orjentirano programiranje
Objektno orjentirano programiranje Predavanje 4 Objektno orijentirani koncepti Konstruktori Metoda koja se poziva prilikom stvaranja novog objekta Svojstveni su OO programiranju Imaju isto ime kao i klasa
More informationAktuelna verzija Matlaba je 7, koja ima dosta poboljšanja u odnosu na prethodne.
1. MATLAB UVOD Matlab predstavlja vrlo razvijen skup alata za računanje (matrice, kompleksni brojevi, simbolička matematika), vizualiziranje (2D i 3D), modeliranje, simulaciju i programiranje. Karakterizira
More information2. Linijska algoritamska struktura
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,
More informationTema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)
Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 8:
More information4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7
Java zadaci Zadaci 1. Priprema novog projekta... 1 2. Organizacija klasa u fajlove... 2 3. Ispis vrijednosti u konzolni prozor... 3 4. Učitavanje vrijednosti sa konzolnog prozora... 4 4.1 Učitavanje podatka
More informationTP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju
TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom Priručnik za korištenje i brzu instalaciju Sadržaj ŠTO JE TP-LINK TL-WPA4220... 3 KAKO KORISITI TP-LINK TL-WPA4220...
More informationOvde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto
Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 5-1 Conversion Functions U db formatiranje i promene izgleda se izvode pomoću funkcija konverzija Ove
More informationDr. Željko Jurić: Tehnike programiranja /kroz programski jezik C++/
Razmotrimo malo pažljivije generičku funkciju IspisiNiz čiji je cilj podrška ispisa na ekran elemenata niza proizvoljnog tipa elemenata (pod uvjetom da se ti elementi mogu ispisivati na ekran), a koju
More informationvar Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.
1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align
More informationUputa za instaliranje programske potpore za operativni sustav WINDOWS
ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE
More informationKodiranje GUI aplikacija u Visual C#
Kodiranje GUI aplikacija u Visual C# UVOD Uvod Kodiranje grafičke aplikacije u Visual C#: Ova lekcija se bavi dogadjajima, programiranjem dogadjaja. Daćemo jedan primer event-driven-programming-a, u vidu
More informationPametna komunikacija na Internetu preko REST protokola
Pametna komunikacija na Internetu preko REST protokola Davor Lozić, dr. sc. Alen Šimec Tehničko veleučilište u Zagrebu, Vrbik 8, 10000 Zagreb, Hrvatska, dlozic@tvz.hr, alen@tvz.hr Abstract - REST protokol
More informationShell programiranje. Damir Kirasić Škola otvorenog računarstva FER Zagreb
Shell programiranje Damir Kirasić Škola otvorenog računarstva FER Zagreb Imenovanje Dijeli pod istim uvjetima 2.5 Hrvatska Shell programiranje UNIX i LINUX shell programi su učinkovito sredstvo za rješavanje
More information<A rel="stylesheet" B="mystylesheet.css" C="text/css" />
1 od 9 9.4.2013 7:18 EFOS_kol1_2011 - RJEŠENJA 16.4.2011. Uključivanje vanjske mystylesheet.css datoteke sa određenim stilovima, postiže se zadavanjem naredbe unutar HTML koda, koja izgleda ovako:
More informationJavaScript i HTML DOM
4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.
More informationCJENOVNIK OGLAŠAVANJA ZA ROTIRAJUĆE BANNERE NA NASLOVNICI
ZA ROTIRAJUĆE E NA NASLOVNICI ROTIRAJUĆI I / BILLBOARD (90x90px) 2/ BILLBOARD (90x0px) BILLBOARD (90x20px) 0 2 EXPANDING VIDEO (00x600) (00x20px) HALF PAGE (00x600px) 2 PEAL (00x00px) 0 FLOATER (00x00px)
More informationRekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n.
Rekurzivne metode Rekurzivan metod je onaj metod koji u nekoj svojoj instrukciji sadrži poziv samog sebe. Svakako prilikom kreiranja rekurzivnog metoda moramo voditi računa da ne dodje do beskonačne rekurzije
More informationUputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge
Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge Za ADSL vezu na Internet potrebno je: Računar: 133MHz i 16 MB Ram (preporučeno više), 10 Base-T/ 100 Base- TX Ethernet mrežni adapter,
More informationOSNOVE PROGRAMIRANJA
OSNOVE PROGRAMIRANJA Struktura aplikacije Visual Basica Za svaku formu u aplikaciji postoji pripadajuci modul forme (.frm) koji sadrži njen programski kod Modul forme sadži event procedure - dijelovi koda
More informationPRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA
PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija
More informationBlokovska struktura C++ programa ima četiri razine:
Blokovska struktura C++ programa ima četiri razine: 1. razina datoteke (temeljna kompilacijska jedinica) 2. razina definicije (tijela) funkcije 3. razina bloka kontrolnih struktura (sekvenca, iteracija,
More informationLINUX SIGURNOST UVOD ZAŠTO SE BIRNUTI O SIGURNOSTI SVOG RAČUNALA?
LINUX SIGURNOST UVOD U današnje vrijeme kada broj Windows virusa prešao 1 000 000 (milijun), a internet sam za sebe postaje sve nesigurniji i nesigurniji, postavlja se pitanje koliko je zapravo sigurno
More informationLaboratorijske vežbe
Laboratorijske vežbe PAKTIČNA EALIZAIJA MEŽNIH TPLGIJA ZA SNVNE PTKLE UTIANJA KIŠĆENJEM IS 2600 UTEA - Uputstvo - Predmet: Arhitektura Interneta (T4AI) Mladen Koprivica, dipl.ing. Mr Nenad Krajnović, dipl.ing.
More informationInformatika Uvod u C#,.NET Framework i Visual Studio... nastavak...
Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike
More information8. NIZOVI. // deklaracija niza od 10 elemenata: data[0], data[1],..data[9] int data[10] ; S elementima niza se operira kao s prostim varijablama
8. NIZOVI Niz je indeksirani skup podataka - elemenata niza. Niz se deklarira imenom iza kojeg se u uglatim zagradama zapisuje broj elemenata niza, a ispred imena se zapisuje tip elemenata. // deklaracija
More informationJAVA PROGRAMIRANJE 1
JAVA PROGRAMIRANJE 1 1. Uvod 1. Uvod - 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.
More informationSeminarski rad na praksi
Seminarski rad na praksi Tema: CakePHP, MVC (Model View Controller Juli, 2007 Mentor: Student: Mustafa Hodžić Jasmina Šero SADRŽAJ Seminarski rad na praksi... 1 SADRŽAJ... 2 1. Uvod... 3 2. MVC (Models
More informationGUI - događaji (Events) i izuzeci. Bojan Tomić
GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša
More informationSveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša. JavaScript. Završni rad. Pula, 2015.
Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša JavaScript Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr.
More informationRačunarske mreže treći razred
Tehnička škola 9. maj Bačka Palanka Računarske mreže treći razred I P a d r e s e IP adresa IP adresa predstavlja jedinstveni identifikator određenog čvora ili uređaja u IP mreži. IPv4 adresa ima dužinu
More informationSadržaj predavanja 02. Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka(2/3) Cjelobrojni tip podataka(3/3) prec(short) prec(int) prec(long) int
Sadržaj predavanja 02 Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka Realni tip podataka Aritmetički operatori Izrazi Operatori inkrement i dekrement Kontrola toka programa Naredba za jednostruki
More informationVariable Neighborhood Descent - VND (Metoda promenljivog spusta)
Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Izabrati skup okolina N k, k = 1,..., k max koje će se koristiti za pretragu; Na slučajan način izabrati početno rešenje x X i postaviti
More informationPrirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici
Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici 7-8 Definicija, inicijalizacija promenljivih 2/21 u C-u Program napisan u programskog
More informationoperativni sistem part 2
operativni sistem part 2 zagrevanje... update komandna linija, nastavak... mnoštvo programa (jezik se zaboravlja ako se ne govori) scripting, bash, sh malo uvoda u Python, IDLE, idle malo C (ni)malo IDE,
More informationUpravljanje sistemom datoteka
Upravljanje sistemom datoteka Sistem datoteka Datoteka (file) predstavlja jedinicu smeštanja informacija na diskovima i ostalim spoljašnjim medijumima. Pri tome datoteka skriva detalje, od korisnika, o
More informationfor i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;
{*Na Evroviziji je ucestvovalo n izvodjaca. Koji od njih je osvojio najvise glasova publike?*} program Evrovizija; glasovi:array[1..50] of integer; max,k:integer; writeln('unosi se broj izvodjaca:'); writeln('unose
More informationSVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1
SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,
More informationVIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8?
VIŠESTRUKO NASLJEĐIVANJE - SAN ILI JAVA 8? SAŽETAK Višestruko nasljeđivanje klasa je dosta dugo vremena neopravdano držano kao kompleksno i nepotrebno. Vjerojatno je jedan od glavnih razloga taj što je
More information6. SWITCH IZRAZ I PETLJE
6.. Switch izraz i petlje 6. SWITCH IZRAZ I PETLJE SADRŽAJ 1. switch izraz (kontrolna struktura) 2. while petlja. 3. do-while petlja. for petlja. Kontrola izvršavanja petlje - break i continue naredbe
More information