You are on page 1of 66

PRIMENA RAČUNARA U

ELEKTROENERGETICI
Predavanja 1
PLATFORMA I RAZVOJNO OKRUŽENJE
Razvojno okruženje za rešavanje problema uz pomod računara,
odnosno pisanje programa, sastoji se od hardverskog i
softverskog dela.
Naravno, pre svega je potreban računar.
Računar je mašina koja je sposobna da, u relativno kratkom
vremenu, obradi veliki broj operacija onoliko puta koliko to
zahteva korisnik - programer.
U svom dosadašnjem razvoju, računari su prošli kroz četiri
generacije, a uveliko se govori i o petoj. Računari prve generacije
nastali su otkridem elektronske cevi. Oni su bili velikih dimenzija,
ponekad čitave sale, a obavljali su veoma mali broj operacija.
Pojavu računara druge generacije uslovilo je otkride
poluprovodničkih elemenata (silicijuma i germanijuma).
Uvođenje ovih elemenata odrazilo se na dimenzije računara,
brzinu rada, broj mogudih operacija, kao i na potrošnju električne
2
energije računara, koja je smanjena.
Pronalazak načina i tehnika integracije velikog broja elemenata u
jedan mali čip uslovio je razvoj računara treće generacije. Ovi
računari su malih dimenzija i male potrošnje, a broj operacija koji
se može izvršiti je vedi od računara ranijih generacija.
Računare četvrte generacije, za razliku od računara prethodne tri
generacije nije uslovilo neko naučno otkride, ved dalji razvoj
tehnike integracije, kao i potreba za standardizacijom izgleda i
veličine delova računarske opreme.
Računare pete generacije trebalo bi da uslovi pronalaženje bio-
čipa pri čemu bi ovi računari raspolagali veštačkom
inteligencijom i velikim bazama znanja.
Danas su daleko najpopularniji PC računari, kojima zahvaljujudi
njihovoj brzini i količini memorije mogu da se reše problemi za
koje su, u ne tako davnoj prošlosti, bili potrebni računari koji su
koštali milione dolara i imali zapreminu vede sobe.
3
OSNOVNI DELOVI RAČUNARA
Procesor (CPU) je mozak sistema tj. računara i upravlja
izračunavanjima koja pokredu programe. On najviše utiče na
brzinu računara (MHz). Kroz istoriju razvoja brzina se menjala i
stalno povedavala: 286 (do 20MHz), 386 (20-40MHz), 486 (40-
120MHz), PENTIUM I (60-233MHz), PENTIUM II (300-500MHz),
PENTIUM III (500-1000MHz), PENTIUM IV (preko 1GHz). Danas
su zastupljeni Core Duo procesori nove generacije
Sistemska memorija (RAM, SDRAM, DDR) je radna memorija
koja sadrži programe i podatke kojima procesor može da pristupa
dok računar radi. Kada isključimo računar memorija se prazni.
Kapacitet, vrsta i brzina memorije uveliko utiču na performanse
računara. Novije verzije programa zahtevaju više memorije. Za
konforan rad potregno je ugraditi bar 4Gb.
AGP magistrala (Accelerated Graphics Port) je namenska putanja
za grafičke podatke koja grafičkom kontroleru omogudava
4
direktan pristup procesoru i glavnoj memoriji.
Grafička karta služi da bismo povezali monitor na naš računar, na
sebi ima grafički čip ili procesor i sopstvenu RAM memoriju.
IDE interfejs služi za povezivanje uređaja za smeštanje podataka
(hard disk, floppy disk, USB flash, ...).
PCI magistrala obezbeđuje veze za uređaje kao što su zvučne
kartice, unutrašnji modemi, mrežne kartice i SCSI kontroleri.
Zvučna kartica, služi za reprodukciju zvuka, na njoj se nalazi i
priključak za džojstik. Od modela kartice zavise i njene
mogudnosti, kao što su priključivanje dva ili četiri zvučnika za
stereo reprodukciju ili šest zvučnika za Souround efekat. Takođe
možemo prikačiti i mikrofon ili neki drugi uređaj (muzički stub,
klavijature, ...).
Interni Modem služi da bismo imali pristup Internetu.
Mrežna karta se koristi pri povezivanju više računara u jednu
mrežu radi lakše razmene podataka. 5
Skup čipova npr. INTEL i/ili VIA chipset rade kao saobradajci na
matičnoj ploči. Oni usmeravaju protok podataka i određuju koje
de uređaje podržavati računar.
Matična ploča (motherboard, main board) je, kao što joj i samo
ime kaže, ploča koja služi da poveže sve ostale delove koje smo
do sada pomenuli u jednu celinu i da reguliše njihov rad.
Kućište je mesto gde se nalaze svi ovi delovi, i može biti DeskTop
ili Tower po izgledu, po veličini mini, midi i big, a po vrsti
napajanja AT (do pentijuma I) ili ATX (od pentijuma II).
Monitor je ekran koji nam prikazuje sve što radimo. Kvalitet
monitora je direktno povezan sa veličinom ekrana (izražena je u
inčima). U novije vreme pojavili su se tzv. LCD monitori (bez
katodne cevi, potpuno ravnog ekrana). Prednost je što su manjih
dimenzija i mnogo manje štetno zrače od klasičnih monitora.
Tastatura je ulazna jedinica tj. preko tastature komuniciramo sa
računarom, zadajemo mu instrukcije. 6
Miš je takođe ulazna jedinica i prvi put se susredemo sa njim
kada je napravljena prva verzija WINDOWS operativnog sistema.
S obzirom da Windows radi u grafičkom modu i da se veliki broj
operacija izvršava aktiviranjem komandnih dugmadi koja se
nalaze na ekranu, razumljiva je velika potreba za ovim ulaznim
uređajem.
Printer (štampač) je uređaj pomodu koje prebacujemo sadržaj sa
ekrana na papir. Postoje različite vrste štampača. Razlikujemo ih
po tome da li štampaju crno-belo ili mogu štampati i u boji,
zatim, razlikujemo ih i po načinu štampanja: matrični (imaju
traku – ribon sa bojom), InkJet (štampači koji imaju kertridže),
laserski štampači.
Sve ovo što smo do sada nabrojali, dakle svi čvrsti delovi koje
možemo dodirnuti rukom računara, jednim imenom nazivaju se
hardware. Naravno, računar se ne sastoji samo od hardvera nego
i od programa i podataka koji se nalaze u njemu. Ti programi i
podaci jednim imenom nazivaju se software. 7
Operativni sistem (OS) je program koji upravlja hardverom
računara, a istovremeno služi i kao osnova za aplikativne
programe i kao posrednik između korisnika računara i hardvera.
Gledano iz ugla korisnika računara, operativni sistem je interfejs
ka računarskom sistemu. Različiti operativni sistemi predstavljaju
se različitim interfejsima: neki su projektovani tako da budu
udobni za korišdenje, drugi da budu efikasni, a tredi pak
kombinuju oba pristupa. Gledano iz ugla računarskog sistema,
operativni sistem je softver čija je najvažnija uloga da efikasno
upravlja sistemskim resursima.
Operativni sistem se može uporediti sa dirigentom orkestra: sam
po sebi, on nema nikakvu funkciju, ali obezbeđuje okruženje u
kome neko drugi može da radi nešto korisno.
Iz ugla korisnika, izgled računara se menja u zavisnosti od
interfejsa koji mu on predstavlja. Vedina korisnika računara sedi
ispred PC računara koji se sastoji od monitora, tastature, miša i
sistemske jedinice. 8
Takav sistem je projektovan za jednog korisnika koji ima apsolutni
mnopol nad njegovim resursima. U tom slučaju, operativni
sistem je projektovan tako da bude lak za korišdenje, pri čemu je
izvesna pažnja poklonjena i performansama sistema, kao i
korišdenju resursa.
Neki korisnici sede ispred terminala povezanog sa mejnfrejm
računarom; u tom slučaju, istom računaru preko drugih
terminala pristupaju i drugi korisnici koji tada dele resurse ili
razmenjuju informacije. U takvim slučajevima operativni sistem
je projektovan tako da maksimizira korišdenje resursa, odnosno
da obezbedi da se svo dostpuno procesorsko vreme, memorija i
ulazno-izlazni uređaji koriste efikasno, a da pri tom svi korisnici
budu približno ravnopravni u njihovom korišdenju.
Postoje i slučajevi kada korisnici koriste umrežene radne stanice
povezane sa drugim stanicama ili serverima. Takvi korisnici na
raspolaganju imaju sopstvene resurse, ali i deljene resurse kao
što su mreža i serveri (npr. server za razmenu datoteka,
9
štampanje, ...).
U takvim slučajevima opertivni sistem je projektovan tako da
omogudi kompromis između upotrebljivosti na nivou
pojedinačnih korisnika i korišdenja resursa.
U poslednje vreme sve češde se koriste razne vrste džepnih
računara. Takvi uređaji su pretežno samostalne jedinice
namenjene pojedinačnim korisnicima. Neki od njih se
umrežavaju, najčešde bežično. Zbog ograničene snage, brzine i
interfejsa operativni sistemi za džepne uređaje su projektovani
tako da naglasak bude na pojedinačnim korisnicima, ali se vodi
računa i o potrošnji baterije.
Neke operativne sisteme uopšte nije briga za to kako de se
predstavljati korisnicima. Na primer, računari ugrađeni u kudne
uređaje i automobile ponekad imaju numeričke tastature ili
lampice koje prikazuju stanje, ali su njihovi operativni sistemi
projektovani tako da se izvršavaju bez ikakvog uticaja korisnika.

10
Sa tačke gledišta računara, operativni sistem je program kao i
svaki drugi; ono što ga čini toliko važnijim od svih ostalih je
njegova namena. To je program koji vodi procesor u korišdenju
sistemskih resursa i upravlja vremenom izvršavanja svih drugih
programa. Zbog zahteva da budu laki za korišdenje i održavanje, a
istovremeno i efikasni, operativni sistemi spadaju u najsloženije
programe koji su ikada napravljeni.
Dakle, operativni sistem je kontrolni program koji upravlja
korisničkim aplikacijama tako da se izbegnu greške i nepravilno
korišdenje računara. U tom smislu ima jedno specijalno
zaduženje: kontrolu rada ulazno-izlaznih uređaja.
Može se zaključiti da je teško definisati šta je tačno operativni
sistem. Takođe, ne postoji opšte prihvadena definicija šta čini
operativni sistem. Postoje operativni sistemi koji zauzimaju
manje od 1MB i nemaju čak ni program za obradu teksta, ali isto
tako postoje i oni koji zauzimaju gigabajte prostora i nude
kompletan grafički interfejs. 11
Zbog toga se najčešde podrazumeva da je operativni sistem
program koji se stalno izvršava u računaru (odnosno program koji
je stalno u radnoj memoriji računara) i tada se obično zove
kernel ili jezgro, a sve ostalo je sistemski ili aplikativni softver.
Postoje, naravno i primene gde operativni sistem nije potreban,
na primer, za upravljanje tehnološkim procesima u industriji, u
računarskim sklopovima u letelicama ili drugim vozilima – takve
se specijalizovane računarske konfiguracije često nazivaju
kontrolerima.
Njihov razvoj i testiranje, međutim, obično se vrši na klasičnim
računarima sa operativnim sistemom.
Najpopularniji operativni sistem današnjice je Windows,
proizvod kompanije Microsoft, čija poslednja verzija nosi oznaku
Windows 8 , ali su još u upotrebi starije verzije (Windows 7,
Windows XP, Windows Vista, 2000 i NT (za profesionalnu
upotrebu), te 98 i ME (za kudnu upotrebu).
12
Kombinacija operativnog sistema i hardvera se često jednom
rečju naziva platforma.

Operativni sistem i računar su, dakle, dovoljni za početak.


Da bi se sa računarom uradio i neki konkretan posao, potrebne
su i aplikacije.
Aplikacije su programi kojim se omoguduje obavljanje određenih,
specijalizovanih zadataka ( na primer, na Windows platformi
Microsoft Word se koristi za unos i obradu teksta, a Internet
Explorer za pristup internetu).
Međutim, za programiranje drugih aplikacija, potrebno je
posedovati razvojno okruženje.
Razvojno okruženje je skup aplikacija koji omoguduje kreiranje
programa i tipično se sastoji od editora teksta, kompajlera,
linkera i dibagera.

13
Za sve programske jezike postoji više proizvođača koji
obezbeđuju odgovarajude okruženje za programiranje.
Savremena svetska rešenja su obično takva da su sva rešenja vrlo
slična tako da se bez vedih teškoda može prelaziti na različita
okruženja.
Pošto se svi današnji programski jezici još uvek baziraju na
programima u tekstualnoj formi, za programiranje je za početak
neophodan editor teksta.
U editoru teksta se unosi i ispravlja programski kod (na primer,
jednostavan editor teksta na Windows platformi je Notepad, a na
Linux-u Vi editor).
Pošto se program sastoji od neformatiranog, "običnog" teksta,
nisu potrebne napredne mogudnosti tekst procesora kao što je
Word (ali bi i on mogao da posluži). Naravno, za potrebe
programiranja dobro je imati editor sa što vedim mogudnostima
(na primer, različito bojenje elemenata programa, podrška za
makroe, napredne mogudnosti pretrage, itd). 14
Kada je program napisan, potrebna je i aplikacija kojom računar
može da ga prevede i izvrši.
Generalno, programski jezici se dele na kompajlirane i
interpretirane.
Interpretirani jezici se izvršavaju "na licu mesta" – potreban je
poseban program – interpreter – koji kod programa u
tekstualnom formatu interpretira liniju po liniju i neposredno je
izvršava.
Interpretirani jezici se obično koriste za programe privremene
namene, kao i tamo gde se zahteva portabilnost (prenosivost)
između platformi, na primer na Internetu (VBScript, Perl, Java).
Kod interpretiranog programa često se naziva skript.
Interpretirani programi se izvršavaju sporije, ali su programi u
njima obično jednostavniji i brže se pišu.
Kod kompajliranih jezika, proces pravljenja aplikacije se tipično
sastoji od dva koraka.
15
Kompajlirani jezici zahtevaju poseban program – kompajler ili
prevodilac – kojim se kod programa prevodi u mašinski jezik
(objektni kod). Objektni kod se ne može izvršavati sam za sebe.
Od više datoteka objektnog koda mogu se kombinovati biblioteke
(libraries) – one predstavljaju module koji se mogu prenositi na
druge računare i povezivati (linkovati) kasnije.
Tipično, kompajlirani jezici se koriste za kompleksnije i teže
primene, gde se zahteva veda efikasnost izvršavanja (Fortran,
C++, Pascal).
Zatim, linker (punilac) konačno spaja delove objektnog koda iz
različitih datoteka u konačni proizvod – izvršnu datoteku.

16
Uz sam razvojni sistem proizvođač isporučuje sistemske
biblioteke, koje sadrže standardni kod namenjen komunikaciji sa
operativnim sistemom ( na primer, sistemske biblioteke mogu
sadržati rutine za ispis na ekran, učitavanje sa tastature ili
standardne matematičke funkcije).

Kompajler i linker su često objedinjeni u jednoj aplikaciji, te se


njihove različite uloge ne primeduju na prvi pogled, ali je
potrebno znati tu razliku.

Kompajler je uvek posveden jednom jedinom jeziku, dok linker


može da poveže objektni kod koji je proizvelo više kompajlera,
naravno pod uslovom da su objektni kodovi kompatibilni.

Napisani program retko, čak i kod najiskusnijih programera, daje


dobre i konačne rezultate od prve – čak i kada se eliminišu
očigledne greške kao što su greške u sintaksi, često se događa da
usled grešaka u logici algoritma ili prenošenju te logike u
program, rezultati budu pogrešni ili aplikacija "pada". 17
Takve greške nazivaju se bagovi (od engl. bug – buba), a program
koji se koristi za njihovo otklanjanje naziva se dibager (engl.
debugger).
Pomodu dibagera, program se može izvršiti liniju po liniju i
pritom se mogu kontrolisati međurezultati (slično kao da je
interpretiran, pri čemu se može videti rezultat svakog koraka).
Na taj način, može se uočiti gde je logika koda bila pogrešna i
pod kojim uslovima.
Ciklus razvoja jednog programa obično je:
1. pisanje algoritma u pisanoj formi ili skici,
2. kodiranje,
3. kompajliranje; ispravljanje eventualnih sintaksnih grešaka
u kodu,
4. kompajliranje, linkovanje,
5. izvršavanje, uz testiranje na različitim skupovima ulaznih
podataka i 18
6. dibagovanje u slučaju pogrešnih rezultata; povratak na
korak 2 da se uočene greške otklonile.

Konačno, sve ove komponente (editor, kompajler/linker i/ili


interpreter i dibager) se često isporučuju "upakovane" u
jedinstvenu aplikaciju, sa jednim korisničkim interfejsom.
Takve aplikacije se nazivaju integrisana razvojna okruženja (engl.
integrated development environment, skr. IDE).

Najpoznatija savremena integrisana okruženja za Windows


platformu proizvode Microsoft i Borland.

Jedno od najsavremenijih okruženja je Microsoftov Visual


Studio.Net, a takođe i nešto starije okruženje Microsoftov Visual
Studio 98, 2005, 2008, 2010 u kojem je objedinjena podrška za
C++, Visual Basic, Javu, FoxPro i Fortran, te Borland-ov Delphi u
kojem se podržava C++ i Delphi (Object Pascal).
19
Razvojno okruženje – Microsoft Visual
Studio [MSVS]
MSVS je univerzalni Microsoftov programerski alat (isto
okruženje koriste i Visual C++ , Java++ itd.). Zamišljeno je tako da
integriše gotovo sve funkcije koje su neophodne programeru pri
razvoju aplikacije – editor, kompajler/linker, dibager, help. Pri
tom su omogudena sva potrebna podešenja, kao i prikazivanje
svih bitnih informacija.
Osnovni prozor MSVS sadrži meni, toolbar-ove i nekoliko prozora,
koji su obično usidreni (docked) uz rubove ekrana:
- U prozoru editora se prikazuju i edituju tekstualne datoteke
(obično izvorni kod, ali to mogu biti i druge datoteka). Takođe,
tu se prikazuju i stranice helpa. Može biti otvoreno više
datoteka, s tim što je ona u prednjem planu aktivna. Prelazak
između otvorenih datoteka u ovom prozoru može se vršiti
pomodu Window menija ili kombinacijom tastera Ctrl+Tab. 20
- Info prozor sadrži tri taba ("kartice"): Solution Explorer (u
kome se nalazi spisak datoteka projekta), Team Explorer i
Class View.
- Izlazni prozor ima više tabova: Error List, Breakpoints, Find
Results (zavisno od toga šta se izabere da bude vidljivo iz
opcije menija View)

21
22
Početak rada sastoji se u definisanju projekta (Project). Projekat
je skup svih izvornih datoteka koje treba da se linkuju, datoteka
sa resursima, ulaznih, izlaznih i pomodnih datoteka. Da bi se
napravio novi projekat, potrebno je iz menija File izabrati opciju
New..., a zatim Project (Ctrl+Shift+N). Pojavide se dijalog-boks
slededeg izgleda:

23
Neke od konfiguracija za projekat mogu biti:
- Windows Forms Application – puna Windows aplikacija, koja
koristi Windows API;
- Dynamic-Link Library – biblioteka sa dinamičkim
povezivanjem (DLL). DLL-ovi su datoteke koje sadrže potpuno
izvršne funkcije, ali koje se mogu pozivati samo iz drugih
programa. Funkcije (i tipove podataka) koje sadrži DLL mogu
se pozivati iz Windows programa pisanih u bilo kojem
programskom jeziku, i to za vreme njihovog izvršavanja (tj.
funkcije iz DLL-a se nikad ne linkuju sa programom).
- Console Application – podrazumevana (default) konfiguracija.
Predstavlja, praktično, standardni DOS program u tekstualnom
režimu.
- Class Library – biblioteka za kreiranje klasa koje se kasnije
mogu povezivati (linkovati) sa drugim programima.
- Empty project – prazan projekat za kreiranje lokalne
24
aplikacije.
U Location edit-boksu treba uneti putanju do foldera u kojem de
se nalaziti projekat. Pritiskom na dugme Browse dobija se
standardni dijalog-boks iz kojeg se može izabrati taj folder (to
mora biti postojedi folder).
U Name edit-boksu treba uneti ime projekta. To ime de, ujedno,
biti i ime .exe datoteke koja se gradi. Istovremeno sa kucanjem, u
Location boksu de se formirati puna putanja do foldera projekta.
Pritiskom na OK, otvoride se nov prazan projekat. MSVS de
napraviti nov folder (u slučaju sa slike to de biti
D:\NASTAVA\PRuEE_2\) i u njega smeštati sve datoteke koje
kreira korisnik. Takođe, to de biti radni direktorijum – u njemu
treba da se nalaze sve ulazne datoteke aplikacije, i u njemu de se
nalaziti izlazne datoteke aplikacije (ako se drugačije ne podesi). U
folderu projekta de se nalaziti konfiguraciona datoteka projekta.

25
Editor
Komande MSVS editora su manje-više standardne za sve
Windows tekst-editore. Ovde de biti samo nabrojane najčešde
korišdene komande mišem i sa tastature.

Deo ovih akcija može se izvesti i sa osnovnog toolbara.


Prinošenjem pokazivača miša nekom od dugmeta sa toolbar-a i
kradim zadržavanjem, uz dugme se dobija kratka informacija o
njegovoj nameni (ToolTip).
Pri pisanju koda automatski se vrši i bojenje teksta: ključne reči
plavom, komentari zelenom i ostali tekst crnom bojom. Na taj
način se postiže mnogo veda preglednost koda.

26
Tastatura Miš Akcija

KRETANJE PO TEKSTU

 Kretanje za po jedan


karakter

PageUp/Page Down Kretanje za po jedan


ekran nagore/nadole

Home Prvi otkucani karakter u


redu

Home+Home Prva kolona reda

End
Kraj reda

Ctrl+Home
Početak datoteke

Ctrl+End
Kraj datoteke

Ctrl+
Reč nalevo/nadesno

27
Tastatura Miš Akcija

SELEKCIJA TEKSTA

Selekcija
Prevlačenje preko prethodnog/sledećeg
Shift+ Teksta karaktera
Selekcija
Shift+ Prevlačenje preko prethodnog/tekućeg
Teksta reda
Selekcija do početka
Shift+Home Prevlačenje preko reda
Teksta
Selekcija do kraja
Shift+End Prevlačenje preko reda
Teksta
Selekcija do početka
Ctrl+Shift+Home Prevlačenje preko datoteke
Teksta
Selekcija do kraja
Ctrl+Shift+End Prevlačenje preko datoteke
Teksta
Izbor celog teksta
Ctrl+A datoteke

28
Tastatura Miš Akcija

BRISANJE, UMETANJE I KOPIRANJE TEKSTA

Brisanje narednog karaktera


Delete /Brisanje selekcije

Ako je nešto selektovano, to


Ctrl+C Edit/Copy kopira u Clipboard;
ako nije, kopira tekuću
liniju
Umeće sadržaj Clipboarda na
Ctrl+V Edit/Paste mesto kursora

Ctrl+X Edit/Cut Iseca selekciju i kopira u


Clipboard

Ctrl+Y Iseca tekuću liniju i kopira


u Clipboard

Prenošenje Premešta selekciju na novo


selekcije mesto

29
Tastatura Miš Akcija

TRAŽENJE I ZAMENA TEKSTA

Otvara find dijalog za traženje


Ctrl+F ili Alt+F3 Edit/Find teksta u tekućoj datoteci

Otvara dijalog za zamenu teksta


Ctrl+R Edit/Replace

Otvara dijalog za traženje


Alt+F, I File/Find in teksta u više datoteka
Files

Traži narednu pojavu teksta


F3 koji je poslednji tražen

Traži prethodnu pojavu teksta


Shift+F3 koji je poslednji tražen

30
Tastatura Miš Akcija

MANIPULACIJA DATOTEKAMA

Ctrl+Tab Window/... Prelazak u prethodni prozor

Ctrl+S File/Save Snimanje datoteke

Alt+F, L File/Save All Snimanje svih datoteka


projekta
F12 File/Save As Snimanje datoteke pod
drugim imenom
Ctrl+O File/Open Otvaranje datoteke

Ctrl+P File/Print Štampanje datoteke

Ctrl+F4 File/Close Zatvaranje datoteke

Alt+F, W File/Open Otvaranje projekta


Workspace
Alt+F, K File/Close Zatvaranje projekta
orkspace
Alt+F4 File/Exit Izlazak iz Microsoft
Developer Studija
31
Tastatura Miš Akcija

RAZNO

Ctrl+Z Edit/Undo Undo

Ctrl+G Edit/Go to.. Prelazak na proizvoljnu liniju


teksta

Ctrl+Shift+U Kapitalizacija selekcije

Ctrl+Shift+R Aktivira snimanje makroa

Ctrl+Shift+S Zaustavlja snimanje makroa

Ctrl+Shift+P Reprodukuje makro

32
Prevođenje i linkovanje
Kada je završen unos koda, datoteke projekta se mogu prevoditi i
linkovati. Vedina potrebnih komandi se nalazi u Build meniju:
- Compile (Ctrl+Shift+B) – kompajlira tekudu datoteku (onu koja
je aktivna u prozoru editora). Ova komanda se u praksi ne
koristi često, jer naredne dve vrše i kompajliranje i linkovanje:
- Build – ­­kompajlira samo izmenjene datoteke i linkuje
(izgrađuje aplikaciju). Ova komanda se najčešde koristi.
- Rebuild All – kompajlira i linkuje sve datoteke projekta.
- Configurations Menager – prikazuju sve konfiguracije
projekta. Po defaultu postoje dve konfiguracije projekta:
Debug i Release. Debug konfiguraciju projekta treba koristiti
pri razvoju projekta. Release konfiguraciju treba koristiti za
konačnu verziju aplikacije. Korisnik može sam kreirati nove
konfiguracije, ali su to prilično napredne opcije. 33
Nakon građenja (Ctrl+Shift+B) u izlaznom prozoru de se otvoriti
Error list tab, u kojem de se pojaviti poruke o prevedenim i
linkovanim datotekama projekta i lista eventualnih grešaka i
upozorenja. Ukoliko ima grešaka, one se pronalaze i otklanjaju na
slededi način:

Dvaput kliknuti mišem na red sa porukom o grešci u izlaznom


prozoru. U prozoru editora automatski de se otvoriti datoteka sa
greškom. Zatim predi u prozor editora i ispraviti kod. 34
Ukoliko je poruka o grešci nejasna, kliknuti mišem na tab Output,
zatim kliknuti mišem na kod greške u izlaznom prozoru (C2143
na slici) i zatim pritisnuti F1. U prozoru editora pojavide se prozor
helpa (on line ili ugrađenog) sa nešto detaljnijim opisom greške.

Nakon otklanjanja jezičkih grešaka, potrebno je ponovo izgraditi


aplikaciju pritiskom na Ctrl+Shift+B ili Build/Build Solution.
35
Otklanjanje grešaka (debugging)
Kada je aplikacija napravljena, potrebno je proveriti i kako ona
radi. Prvi korak u tome je obično pokretanje programa i pradenje
njegovog ponašanja. Program se može pokrenuti ne napuštajudi
MSDEV, iz menija Debug/Start Without debugging, ili pritiskom
na Ctrl+F5.
Ukoliko smo zadovoljni kako program radi, posao je praktično
završen. Potrebno je još samo postaviti konfiguraciju na Release i
ponovo izgraditi aplikaciju. Obratiti pažnju da se .exe datoteka
nalazi u Release podfolderu projekta, pa je kasnije ručno treba
premestiti odatle u sam folder projekta, kako bi mogla da čita
ulazne podatke (ili podesiti tako da se automatski pojavljuje na
željenoj lokaciji). Nakon toga, Debug i Release folderi se mogu
obrisati.

36
Naravno, mnogo češde de se desiti da program ne radi kako
treba, pa je potrebno ispraviti greške. Jedno od najmodnijih
delova integrisanog razvojnog okruženja je dibager. Osnovne
komande dibagera su:
- Debug/Start Debugging (F5) – pokretanje programa do
slededeg breakpoint-a (tačke prekida)
- Debug/Toogle Breakpoint (F9) – umetanje/uklanjanje
breakpoint-a. Breakpoint se u kodu pojavljuje kao crvena
tačka sa leve strane linije.
- Step Over (F10) – izvršava narednu naredbu programa ne
ulazeći u potprograme (funkcije)
- Step Into (F11) – izvršava narednu naredbu programa ulazeći u
potprograme (funkcije)

- Step out (Shift+F11) – izlazak iz tekudeg potprograma


(funkcije)
37
- Run to Cursor (Ctrl+F10) – izvršava program sve do tačke u
kojoj se nalazi kursor u aktivnoj datoteci u prozoru editora.
- Set Next Statement (Ctrl+Shift+F5) – postavljanje naredbe na
kojoj se nalazi kursor kao sledede naredbe koja de biti izvršena
- Debug/Stop Debugging (Shift+F5) – prestanak rada u debug
okruženju

Sve ove komande se nalaze i na Debug toolbar-u, koji se


pojavljuje kada se pokrene dibager.

38
39
Nije neophodno eksplicitno izvršiti Build Solution komandu da bi
se projekat preveo i linkovao. Ukoliko su vršene izmene u kodu i
pokrene se Start Whitout Debugging (Ctrl+F5) ili neka od
komandi dibagera, MSDEV de postaviti pitanje korisniku da li želi
da izgradi aplikaciju. Na pitanje treba odgovoriti sa Yes (ili samo
stisnuti Enter) i okruženje de izvršiti prevođenje i linkovanje pre
pokretanja.
Kada se pokrene dibager, radno okruženje se menja: umesto
izlaznog prozora pojavljuje se Watch prozor, a umesto info
prozora prozor sa varijablama.
Watch prozor ima četiri ravnopravna taba, u koje se može
umetnuti proizvoljan broj varijabli za posmatranje.
Postoji više načina da se doda nova varijabla u Watch prozor.
Jedan je kucanje, a drugi, jednostavniji, je da se dvaput klikne
mišem na varijablu u editoru i zatim se ona samo mišem odnese
u Watch prozor. 40
41
Prozor Locals prikazuje vrednosti svih promenljivih vidljivih u
programskoj jedinici koja je aktivna u prozoru editora. Ovaj
prozor je posebno zgodan za programe sa malim brojem
promenljivih, kada Watch prozor praktično nije ni potreban. Za
vede programe, upotreba prozora Locals nije naročito praktična,
jer lista postaje jako dugačka, a nije ni organizovana po nekom
smislenom (npr. abecednom) redu.

Posebno zgodna osobina je mogudnost da se vide čitavi vektori i


strukture. Vektorske i složene promenljive sa leve strane imaju
kvadratid sa znakom +. Klikom na njega, vektor 'ekspandira' i vide
se vrednosti svih njegovih elemenata. (Ovo je, doduše,
ograničeno samo na 1000 prvih elemenata vektora, ali je to u
praksi sasvim dovoljno.) Ponovnim klikom na kvadratid (koji sada
ima znak –) prikaz vektora se sažima.

42
Najbrži način da se vide vrednosti skalarnih promenljivih je da se
prinese pokazivač miša promenljivoj u editoru i zadrži krade
vreme. Pored pokazivača de se pojaviti tooltip sa vrednošdu
promenljive.
Žuta strelica sa leve strane u prozoru editora prikazuje trenutno
aktivan red programa. Kako se prolazi kroz program, promenljive
koje su promenile vrednost u Watch prozoru i prozoru varijabli se
boje u crveno.
U dibageru je mogude menjati kako redosled izvršavanja linija
programa, tako i vrednosti varijabli. Da bi se skočilo na neku liniju
koda, potrebno je u editoru dovesti pokazivač miša do nje i
kliknuti desnim tasterom. Pojavide se meni sa spiskom korisnih
opcija. Sada treba izabrati poslednju, Set Next Statement, i
program de predi sa izvršavanjem na tu liniju. Pritom, aktuelne
vrednosti svih varijabli ostade nepromenjene. Uopšte, klikom na
desni taster miša bilo gde u MSDEV-u dobide se meni sa spiskom
najčešde korištenih akcija. 43
Vrednosti varijabli se mogu menjati u Variables ili Watch prozoru,
klikom miša na vrednost varijable i kucanjem nove vrednosti.
Ukoliko se uoči greška u kodu, nije neophodno izlaziti iz režima
dibagera, nego je mogude program menjati i u tom režimu.

Navigacija kroz kod


U složenijim projektima od po desetak i više izvornih datoteka
često je problem locirati potprogram koji treba da se pregleda ili
ažurira. Da se ne bi svaki put prolazilo kroz dosadnu proceduru
otvaranja datoteka sa File/Open/File, u info prozoru se nalazi
Solution Explorer tab, u kojem su prikazane sve datoteke projekta
i eventualnih potprojekata, hijerarhijski organizovane. Da bi se
otvorila datoteka projekta, dovoljno je dvaput kliknuti na nju u
info prozoru.

44
45
U kontekst-meniju, koji se dobija desnim klikom miša na ime
promenljive ili potprograma u editoru, može se izabrati:

Go to Declaration (Ctrl+F12) – skok na deklaraciju funkcije


(potprograma) ili promenljive.

Go to Definition (F12) – skok na definiciju funkcije (potprograma)


ili promenljive. Definicija potprograma je mesto gde je on
napisan. Definicija promenljive je linija u kojoj joj je prvi put data
vrednost.

Find All References (Shift+F12) – skok na pozive funkcija ili


korištenje promenljive.

46
PROGRAMSKI JEZICI
Programski jezik je veštački jezik koji se može koristiti za kontrolu
ponašanja mašine, naročito računara.
Programski jezici su definisani preko sintaksnih i semantičkih
pravila koja respektivno opisuju njihovu strukturu i značenje.
Kroz istoriju, kao i računari, prošli su kroz različite faze razvoja i
primene. Do danas je razvijeno i implementirano veliki broj
različitih programskih jezika (razvijeno preko 8000 programskih
jezika).
Različiti su faktori koji utiču na razvoj programskih jezika:
apstraktni nivoi jezika
aplikacione oblasti
arhitektura računara
jezičke paradigme
implementacioni modeli 47
Mašinski jezik se sastoji od numeričkog koda za operacije koji
određeni računar može direktno izvršiti. Taj kod je alfanumerička
serija 0 i 1, ili binarni kod (bajt), koji se često pretvara u
heksadecimalni kod (na bazi broja 16), radi lakše čitljivosti i
modifikacije. Mašinski jezik je težak za čitanje i pisanje, pošto ne
liči na konvencionalno matematičko predstavljanje niti na
prirodni jezik, a njegov kod varira od računara do računara.

Asemblerski jezik je jedan nivo iznad mašinskog jezika. Dizajniran


je da omogudi lako prevođenje u mašinski jezik. Kao i mašinski
jezik, asemblerski jezik zahtijeva od programera detaljno
poznavanje računarske arihitekture. Koristan je kada su ti detalji
važni, odnosno prilikom programiranja računara za interakciju sa
ulaznim i izlaznim uređajima, kao što su štampači, skeneri,
uređaji za čuvanje podataka i informacija

48
Programski jezik visokog novoa je programski jezik sa jakom
apstrakcijom u odnosu na bazično korišdenje računara. U
poređenju sa programskim jezikom niskog nivoa, programski
jezik visokog nivoa može koristiti elemente iz prirodnog jezika,
biti lakši za korišdenje i tako činedi proces izrade programa
jednostavnijim i razumljivijim u odnosu na jezik niskog nivoa.
Količina apstrakcije definiše na koliko „visokom nivou“ je
programski jezik. Za razliku od programskih jezika niskog nivoa,
programski jezici visokog nivoa imaju malo, ili nimalo, jezičkih
elemenata koji se direktno prevode u mašinski kod.
Uvođenjem programskih jezika višeg nivoa programiranje se čini
jednostavnijim, analiza koda bržom ali program napisan na taj
način karakteriše sporije izvršavanje i vedu memorijsku
potrošnju. To u pojedinim situacijama može da predstavlja
ograničenje primene višeg programskog jezika, kao solucije za
rešavanje nekog problema.
49
Apstrakcije u programskim jezicima mogu biti
bazne apstrakcije
strukturne apstrakcije
proceduralne apstrakcije
apstrakcije podataka
Razvijen je veliki broj različitih programskih jezika za različite
aplikacione domene:
poslovne aplikacije (COBOL, SUBP)
numeričke aplikacije (FORTRAN)
Veštačka inteligencija (logički i funkcionalni jezici)
Sistemsko programiranje (C, C++)
Web programiranje (Java, Perl)
Jezici za posebne namene

50
Tokom vremena su se menjale i metode programiranja:
od 1950 do sredine 60-tih godina prošlog veka nisu postojale
jasno definisane metode programiranja
Krajem 60-tih i početkom 70-tih godina prošlog veka dominante
su bile metode strukturnog programiranja i proceduralne
apstrakcije
Krajem 70-tih se uvodi apstrakcija podataka
Sredinom 80-tih se pojavljuje objektno orijentisano
programiranje
1995 do danas imamo distribuirano programiranje, Web
aplikacije
Razlike između pojedinih vrsta programskih jezika baziraju se na
modelu, tj. paradigmi koji podržavaju. Postoje četiri glavne vrste
programskih jezika:
1.imperativni
2.objektno orijentisani 51
3. funkcionalni
4. logički
Program napisan u imperativnim programskim jezicima
karakteriše izvršavanje kao sekvenca instrukcija. Ključna
operacija je operacija dodele. Podržava bazne apstrakcije,
strukturne apstrakcije, proceduralne apstrakcije.
Funkcionalni programski jezici baziraju se na matematičkim
modelima. Program sadrži funkcije koje uzimaju argumente i
vradaju vrednosti. Ključna operacija je primena funkcija
(rekurzivno ili kompozitno).
Program napisan u logičkim programskim jezicima predstavlja
skup tvrđenja i pravila. Logičko tvrđenje izražava osobinu o
nekom objektu; na osnovu tvrđenja program dedukuje druga
tvrđenja.

52
Objektno orijentisani programski jezici baziraju se na objektima i
vezama između njih. Ključni koncepti su apstraktni tipovi
podataka, enkapsulacija, nasleđivanje i polimorfizam. Ključna
operacija je prenošenje poruka.
Što se tiče načina implementacije viši programski jezici se dele
na:
kompajlerske
interpreterske
hibridne

Kriterijumi za ocenu viših programskih jezika:


1. čitljivost (jednostavnost, jasne jezičke konstrukcije, tipovi i
strukture podataka
2. lakoća učenja i pisanja (podrška apstrakcija, programsko
okruženje)

53
3. pouzdanost (provera tipa, obrada izuzetaka, ograničavanje
alijasa, čitljiovsost, lakoda učenja i pisanja
4. cena (obuka programera, vreme pisanja koda, pouzdanost,
održavanje, ...)
Izučavanje koncepata viših programskih jezika je bitno jer
omoguduje lakše i brže učenje novih programskih jezika, bolji
izbor odgovarajudeg jezika za određeni problem, nove načine
razmišljanja u rešavanju problema, bolje razumevanje važnosti
implementacije.
Često se raspravlja o tome koji je jezik „bolji“: C++, Java, C#, C,
Fortran, Delphi ..., pa demo se ovde ukratko osvrnuti i na tu
problematiku. Osnovna razlika je tip okruženja za koje su
namenjeni. Jezik C++ je izmišljen da bi se pisali veoma efikasni
programi za određeni tip procesora i operativnog sistema. Ako
želite da izvršite isti C++ program na drugom sistemu, moradete
ponovo da ga kompajlirate i specijalno optimizujete za tu
platformu. 54
Java je razvijena posebno za potrebe internet programiranja, a
C# za programiranje modularnih softverskih komponenata,
Fortran i dalje ima najbolje performanse za rešavanje
matematičkih i inženjerskih problema iz raznih oblasti, Delphi je
pogodan za pravljenje grafičkih aplikacija.
Dakle, odgovor na pitanje koji programski jezik je bolji zavisi od
toga kakav se problem rešava.

55
Programski jezik Fortran - uvod
• Opšta tendencija u razvoju viših programskih jezika je, da po
mogudnostima i kvalitetu, kao i samom dizajnu, svi programski
jezici sve više liče jedni na druge (ovde se pre svega misli na
programske jezike koji se mogu upotrebiti za rešavanje istog
problema).
• U najvedem broju slučajeva čak su i principi i forma jezika
slični.

• Relativno je mali broj razlika koje bi eventualno govorile o


izrazito velikom preimudstvu nekog od izabranih programskih
jezika.
Programski jezik Fortran - uvod
• Zašto je izabran programski jezik Fortran?
• Razlozi su višestruki
 Prvi veliki razlog je velika rasprostranjenost i veliki broj
realizovanih programskih paketa

 Fortran je najstariji viši programski jezik i istorija njegovog


korišdenja počinje 50-tih godina dvadesetog veka (1956.
godine). Zato je istorijsko programsko nasleđe realizovano
pomodu ovog programskog jezika impozantno (veliki deo
programa korišden za kosmičke letove napisan je u
Fortranu).
Programski jezik Fortran - uvod
Drugi veliki razlog je što ne postoji efikasniji
programski jezik za obradu matematičkih
problema od Fortrana (to je čak uslovilo da početne
verzije programskog paketa Matlab budu realizovane na
Fortranu. Kasniji zahtevi za poboljšanjem kvaliteta i
kvantiteta dobijenih rezultata, kao i činjenica da je Fortran
neopravdano ostao bez dovoljno kvalitetne grafičke
podrške uslovili su da se u jednom trenutku pređe na
programski jezik C++ za realizaciju Matlab-a.)
Programski jezik Fortran - uvod
Tredi veliki razlog za primenu Fortrana je što su njegove
osobine na nivou kao kod drugih programa, ali su još uvek
bolje što se tiče rešavanja matematičkih i inženjerskih
problema.
• Visoka efikasnost u rešavanju problema je neophodna iz više
razloga
• Utrošak memorije mora biti što manji, što znači i manje
operacija sa podacima (memorijom) pri proračunu. Ako se ima
u vidu da dimenzija sistema jednačina koji se rešavaju kod
proračuna u savremenim elektroenergetskim sistemima
premašuje i par hiljada, tada je efikasan proračun i krajnje
racionalno zauzimanje memorije imperativ.
Programski jezik Fortran - uvod
• To naročito dolazi do izražaja kod programa koji se izvršavaju u
realnom vremenu (to su procesi koji se relativno brzo
izvršavaju, a obično bez neposrednog upliva čoveka na njihovo
izvršenje) gde je vrlo često ukupno raspoloživo vreme za
proračun reda nekoliko desetina milisekundi. Zato je svaka
racionalizacija i povedanje efikasnosti proračuna neophodna.

Kao poseban razlog za primenu Fortrana treba istadi


njegovu jednostavnost i laku čitljivost izvornog koda
Programski jezik Fortran - uvod
• Postojeda literatura iz Fortrana na našem jeziku je oskudna i
zastarela. Nivo Fortrana koji postoji u tim knjigama je na nivou
standarda Fortran-77 što odgovara nivou sedamdesetih
godina prošlog veka i koji je vrlo skromnog obima u odnosu na
sadašnje mogudnosti jezika Fortran.

• 2005-te izdat univerzitetski udžbenik „Primena računara u


elektroenergetici”, namenjen pre svega studentima
energetike. U njemu se opisuje standard jezika FORTRAN 95
(koji se neformalno naziva i FORTRAN 90, pošto je ta verzija
donela veliki kvalitativni skok u odnosu na FORTRAN 77, dok je
revizija iz 1995. godine donela manje dopune)
Programski jezik Fortran - uvod
• Glavni standardi programskog jezika Fortran su:
 FORTRAN 4

 FORTRAN 77

 FORTRAN 90

 FORTRAN 95

 FORTRAN 2003

 FORTRAN 2008
Programski jezik Fortran - uvod
• Prva verzija programskog jezika FORTRAN I nastala je u
periodu između 1954-1957.
• Pre toga, programi su generisani u mašinskom jeziku, što je
bio spor, dosadan i greškama podložan proces.
• Prva verzija programskog jezika Fortran I bila je znatno manjih
mogudnosti od današnje moderne verzije. Podržavala je samo
intedžerske i realne promenljive i imala mali set naredbi, nije
podržan koncept potprograma. Ovi i drugi nedostaci
prevaziđeni su tokom daljeg razvoja programskog jezika.
• Verzija FORTAN IV, nastala 1962. godine, donela je velika
poboljšanja i postala standardna verzija narednih 15 godina.
FORTRAN IV je 1966. godine adaptiran u skladu sa ANSI
standardom i tako je nastala verzija FORTRAN 66.
Programski jezik Fortran - uvod
• Sledede značajne dopune FORTRAN je doživeo 1977. godine.
FORTRAN 77 uključuje nove karakteristike dizajnirane da
omogude lakše struktuiranje i održavanje programa, uvodi IF
blokovnu konstrukciju i omogudava laku manipulaciju sa
znakovnim promeljivama.

• Dramatična poboljšanja donosi verzija iz 1990. godine.


FORTRAN 90 donosi slobodnu formu pisanja koda, sekcije
niza, operacije nad svim elementima niza, izvedene tipove
podataka, eksplicitan interfejs
Programski jezik Fortran - uvod
• FORTRAN 95 predstavlja neznatna poboljšanja verzije
FORTRAN 90. Donosi nove karakteristike kao što su FORALL
konstrukcije, čiste funkcije (pure funtion), kao i nove
unutrašnje procedure (intrinsic procedures). Pored toga,
pojasnio je brojne nejasnode u FORTRAN 90 standardu.

• FORTRAN 2003 je poslednja revizija programskog jezika


FORTRAN koja uključuje nove karakteristike kao što su
poboljšanja izvedenih tipova podataka, podrška objektno
orijentisanom programiranju, podrška unicode set
karakterima, poboljšana manipulacija podacima, pointeri
procedura, interoperabilnost sa programskim jezikom C.
Programski jezik Fortran - uvod
• Ono što je potrebno naglasiti jeste činjenica da je zadržana
kompatibilnost verzija FORTRAN 95 i FORTRAN 2003 sa ranijim
verzijama. Zahvaljujudi tome, velika vedina programa napisana
u starijim verzijama programskog jezika FORTRAN mogu se
koristiti i danas.

You might also like