Professional Documents
Culture Documents
Osnovi Programiranja Skripta
Osnovi Programiranja Skripta
2. Racunarski algoritmi
Jasno je da algoritmi koje treba da izvrsi racunarski sistem ima
odreDJenja ogranicenja u odnosu na opsto formu algoritma, odnosno moraju
biti formulisani tako da racunarski sistem moze da ih razumije.
Fundamentalne operacije koje svaki racunar moze da izvede su :
-IzvoDJenje aritmetickih operacija
-PoreDJenje dva podatka, i u zavisnosti od rezultata izbor jedne od dvije
alternativne akcije
-Citanje i stampanje informacija
-Ponavljanje bilo koje grupe informacija
-Memorisanje podataka za kasnije koristenje
*Na osnovu ovih zahtjeva evidentno je da konstrukciju racunarskog
algoritma cine cetri tipa struktura :
-Sekvencija
-Selekcija
-Iteracija
-Pozivanje
*Sekvencija definise slijed u kojem se instrukcije izvrsavaju u programu.
Selekcija daje mogucnost izbora izmeDJu dvije ili vise varijanti u
zavisnosti od nekog uslova. Iteracija daje mogucnost ponavljanja skupa
operacija u zavisnosti od nekog uslova. Pozivanje ukljucuje mogucnost
pozivanja skupa instrukcija (podprograma) po potrebi.
3. Kljucne rijeci
Kljucne rijeci su eksplicitno rezervisane rijeci koje imaju striktno
znacenje u C-u. One ne mogu biti redefinisane ili koristene u drugom
kontekstu. Kljucne rijeci u C-u su : auto, break,case, char,
continue,default,double,else,enum,float,for,goto,if,int,long,return,short,
signed,sizeof,static,struct,typedef,union,unsigned,void,volatile,while.
U poreDJenju sa drugim jezicima C ima mali broj kljucnih rijeci. To je
karakteristika C-a da moze da uradi monogo koristenjem relativno malog
broja kljucnih rijeci. Sve kljucne rijeci C-a se pisu malim slovima, while
je kljucna rijece WHILE i While nisu kljucne rijeci.
4. Identifikatori
Identifikator je rijec koja se sastoji od neprekidne sekvence slova,
cifara i posebnog karaktera ''_'' (crtica). Slovo ili crtica mora biti
prvi znak rijeci. U C-u mala i velika slova se tretiraju razlicito. Dobra
je programerska praksa izabratiti identifikatore koje asociraju na
imenovane objekte. (npr. ime_i_prezime). Identifikatori se kreiraju u
programu u cilju davanja jednistvenih imena razlicitim objektima u
programu, kao sto su varijable i funkcije. U ANSI C jeziku, identifikator
moze da ima do 31 karakter.
5. Konstante
C program obraDJuje razlicite tipove podataka, cijele i realne brojeve,
alfanumericke karaktere i nizove karaktera itd. Brojevi kao 192, 64 su
primjeri cjelobrojnih konstanti, a brojevi 23.4, 22.11, su primjeri
realnih konstanti. U C-u postoji takoDJe karakterne konstante kao 'A',
'F', '5', i nitovne konstante kao ''Dino voli Maju''. Vazno je zapamtiti
da se karakter konstanta navodi u jednostrukim navodnicima dok nizovna
konstanta u dvostrukim navodnicima.
6. Operatori
U C-u postoji mnogo specijalnih karaktera sa posebnim znacenjem. Operatori
su : +(sabiranje), -(oduzimanje), *(mnozenje), /(dijeljenje), %(modul),
=(dodjeljivanje). Operator dodjeljivanja intruira C program da sracunate
vrijednosti na desnoj strani aritmetickog izraza dodijeli promjenjljivoj
na lijevoj strani. (npr. x=y+31😉
7. Moduli C programa
Slozeni programi su sacinjeni od mnostva podprograma. Ovi podprogrami se
nazivaju programski moduli, a program koji je konstruisan koristenjem
modula naziva se modularni program. Daleko je jednostavnije izgraditi,
modifikovati i korigovati modularne porgrame, nego programe izgraDJene na
neki drugi nacin. Svaki modul se dizajnira i razvija tako da izvrsava
specifican zadatak, i u stvari svaki modul je mali program. Glavna
prednost modularnog dizajna lezi u cinjenici da program moze biti
dizajniran prije nego sto je napisan njegov modul. Nakon zavrsetka
planiranja moze se pristupitni njihovom programiranju, a zatim se vrsi
njihva integracija u cijeli program. Svaki modul treba da ima ogranicenu
ulogu tj. da izvrsava jedan ili dva zadatka u kompletnom programu. U C
programskom jeziku moduli se nazivaju funkcije. Funkcija je modul koji
sadrzi sekvencu operacija a koja se tretira kao jedna slozena akcija.
Funkcija prihvata neke ulazne podatke i kao rezultat akcije proizvodi neke
druge podatke.
8. Funkcija main( )
Funkcije C jezika omogucuju kreiranje modularnog programa, odnosno donose
sve prednosti modularnog dizajna. Svaki C program mora imati barem jednu
funkciju. To je funckcija main( ). C program pocinje sa izvrsavanjem tako
sto se pocne izvrsavati funkcija main( ). U dobro dizajniranom programu,
funkcija main ( ) sluzi za pozivanje drugih funkcija (modula) u zeljenom
redoslijedu. (slika) Svaka funkcija se sastoji od zaglavlja funkcije i
tijela funkcije. Zaglavlje funkcije, koje je uvijek prva linija u
definisanju funkcije, sadrzi tri informacije :
-Koji tip funkcije vraca kao rezultat (ako uopste vraca)
-Ime funkcije
-Koji tip podataka funkcija prihvata (ako uopste prihvata)
9. Funkcija printf( )
Jedna od najuniverzalnijih najcesce koristenih funkcija u C programima je
funkcija printf( ), koja je dio standardne biblioteke funkcija koja dolazi
sa svakim C prevodiocem (kompajlerom). Funkcija printf( ) kako joj ime
sugerise formatira prihvacene podatke i ispisuje ih na standardni izlazni
ureDJaj ( najcesce ekran ). Podatci se prenose u funkciju tako sto se oni
navedu u zagradama iza imena funkcije. Npr. ako na ekran zelimo ispisati
poruku : Dino voli Maju., to bi se izvelo pozivanjem funkcije na slijedeci
nacin : printf (''Dino voli Maju'');
44. Rekurzija
C automatski alocira novu memoriju na steku za argumente i lokalne
varijable funkcije pri svakom pozivu funkcije. Ovo dozvoljava da funkcija
poziva samu sebe. Funkcije koje pozivaju samu sebe, nazivaju se rekurzivne
funkcije. Rekurzija u drugom smislu znaci da se rjesavanje problema vrsi
na taj nacin sto se rijesavaju jednostavnije verzije originalnog problema.
Rekurzivni algoritmi rijesenje problema mogu biti programski
implementirani koristenjem rekurzivnih funkcija, odnosno rekurzivni
algoritam moze biti implementiran sa rekurzivnom funkcijom. Vazno je
napomenuti da svaka rekurzivna funkcija uvijek moze biti napisana kao
nerekurzivna funkcija koristenjem iterativnog rijesenja rekurzivnog
problema. u opstem slucaju pri rjesavanju rekurzivnih problema, pri
implementaciji rjesenja problema prednost treba dati iterativnim
implementacijama u odnosu na rekurzivne implementacije. MeDJutim u nekim
slucajevima je rekurzivna implementacija daleko jednostavnija i
elegantnija nego ekvivalentna iterativna implementacija.
69. Datoteke
Svi podaci u nasim dosadasnjim programima su ili bili definisani ili su
kreirani interno programski. Vrijeme njihovog zivota je bilo u skladu sa
vremenom zivota programa i pri svakom startu programa su se morali ponovo
unijeti programski. Ovi podaci se citaju ili pisu na permanentne memorije
za trajno cuvanje. Operacije pisanja i citanja podataka se izvode nad
entitetima smjestenim na permanentnim memorijama koji se nazivaju
datoteke. Svaka datoteka na racunarskom sistemu je fizicki smjestena
(zapisana) na permanentnoj memoriji koristenjem imena datoteke. -Fizicki ,
najcesci vid permanentnih memorija su magnetski diskovi, diskete i CD-ROM
diskovi. Pored ulazno-izlaznih operacija sa tastature i monitora , C
standardna biblioteka ulazno-izlaznih funkcija podrzava model ulaza-izlaza
baziranog na konceptu toka podataka. Tok podataka je sekvenca karaktera
ili jos preciznije tok podataka se sastoji od sekvenca bajta. Svaki izvor
ili ponor podataka se asocira sa tokom podataka. Sekvenca bajta koja
dolazi (ucitava se) u program naziva se ulazni tok podataka a sekvenca
bajta koja odlazi (ispisuje se) iz programa naziva se izlazni tok
podataka. Tok podataka moze biti u jendnom od dva moda:
Tekstualni tok podataka je sekvenca ASCII karaktera koji su organizovani u
linije(recenice) proizvoljne duzine pri cemu svaka linija zavrsava sa
karakterom nova linija, odnosno u C jeziku to je karakter \n.
Binarni tok podataka je jednostavno proizvoljna sekvenca bajta. Naime ovi
bajti se ili citaju ili pisu tacno onako kako se pojavljaju bez ikakve
transformacije.
Kako je predhodno kazano, datoteka je skup podataka, organizovanih pod
jedinstvenim imenom na permanentnoj memoriji. Neovisno od operativnog
sistema racunara, odnosno organizacije datoteka na permanentnim
memorijama, rad sa datotekama u C programu zahtjeva slijedece korake:
-Prije citanja ili pisanja datoteke ona mora biti otvorena
-Nakon otvaranja datoteka moze biti citana i /ili pisana.
-Nakon zavrsetka citanja – pisanja datoteka mora biti zatvorena.
70. Otvaranje datoteka
Prije koristenja dadoteka mora biti otvorena. Otvaranje datoteke daje
potrebne informacije operativnom sistemu za uspostavljanje veze izmeDJu
datoteke i naseg programa. Ove informacije su na primjer, ime datoteke i
lokacija, mod i nacin pristupa datoteci, te da li se datoteka namjerava
koristiti za citanje ili pisanje ili oboje. U C jeziku informacije o
datoteci se storiraju u strukturi, typedef ime ove strukture je FILE. FILE
varijabla sluzi kao oblast komunikacije izmeDJu programa, operativnog
sistema i datoteka. IzvoDJenje funkcije za otvaranje datoteke kreira
varijablu tipa FILE i vraca pokazivac na datoteku. Prototip C standardne
funkcije za otvaranje datoteke dat u <stdio.h> datoteci je: FILE
*fopen(char *, char *); Funkcija ima dva parametra koji su stringovi i
vraca vrijednost pokazivac na tip FILE. Prvi parametar daje ime datoteke
koja se otvara a drugi parametar definise mod u kome se datoteka otvara.
Ukoliko je otvaranje uspjesno funkcija vraca vrijednost pokazivac na FILE.
Ukoliko je otvaranje neuspjesno vracena vrijednost pokazivaca je NULL.