Matricne funkcije
Sadržaj
1.1.METODOLOGIJA..........................................................................3
1.2. DEKOMPOZICIJA - Razlike između metodologija..................3
1.3. PROBLEMI STRUKTURIRANE METODOLOGIJE..............4
1.4. OBJEKTNO PROGRAMIRANJE...............................................5
1.5. TEMELJI OBJEKTNOG PROGRAMIRANJA.........................6
1.6. OBJEKAT I KLASA......................................................................7
Kompjuterska simulacija
2
1.UVOD
1.1.METODOLOGIJA
Kroz istoriju programerske struke pojavljivale su se tri metodologije:
1.
Kompozitna metodologija
– nastaje sa pojavom FORTRAN-a i trajala je do
60-ih godina prošlog
veka.
2.
Strukturirana metodologija
– je metodologija koja nastaje posle kompozitne
i zasnovana je na
FORTRAN-u i COBOL-u i traje do kraja 70-ih godina dvadesetog veka.
3.
Objektna metodologija
– koja nastaje krajem 70-ih i koja je i danas
dominantna metodologija.
Metodologija su se međusobno smenjivale i menjale zbog porasta kompleksnosti
programa, prvenstveno zbog naglog razvoja hardvera koji je pružao svoj maksimum
tek kada je bio praćen odgovarajućim softverom. Kompleksnost programa nije tako
lako rešiti. U rešavanju nekih problema programeri su došli do neke određene granice,
programerskog „plafona“, kada ni njihovo umeće ni programski jezik nisu mogli rešiti
probleme i tada se pribeglo promeni metodologije. Npr. strukturirano programiranje
se nije moglo izboriti sa problemom korisničkog interfejsa i tada je objektna
metodologija i objektno programiranje postalo dominantno.
Strukturirano i kompozitno programiranje su srodnije međusobno nego sa objektnim
programiranjem, pa se zajedničkim imenom zovu
procedurno programiranje
.
Na kraju rada govorićemo o Satijevoj skali poređenja uz primer. U
višekriterijumskom metodu Analitički hijerarhijski proces (AHP) za svaku matricu
poređenja elemenata odlučivanja određuje se tzv. vektor težina poređenih elemenata.
U standardnom AHP se za tu svrhu koristi metod sopstvenih vrednosti
(EVMEigenvector Method). Poznato je, međutim, da je problem određivanja ovog
vektora (prioritizacija) utoliko neodređeniji ukoliko raste dimenzija matrice zbog
inherentne nekonzistentnosti donosioca odluka i/ili eksternih ograničenja koja unose
semantičkonumeričke skale pri poređenju elemenata. U radu se tretira inverzni
problem u odnosu na standardni: zadat je vektor težina elemenata i treba odrediti
matricu poređenja, odnosno identifikovati moguću semantičko-numeričku
performansu donosioca odluka u toku vrednovanja elemenata. Koristi se genetički
algoritam (GA) kojim se za zadati vektor težina najpribližnije reprodukuje moguća
matrica odlučivanja.
1.2. DEKOMPOZICIJA - Razlike između metodologija
Jedino sredstvo sa kojim se borimo sa kompleksnošću programa jeste
dekompozicija
.

Kompjuterska simulacija
4
Treći problem je problem
mogućnosti višestruke upotrebe
. On nastaje kada hoćemo
neke potprograme da koristimo uvek kada nam zatrebaju tj. hoćemo da oni budu
univerzalni. Načini na koji su organizovane biblioteke potprograma je postao
ograničenje u radu sa potprogramima. Zahtev za višekratnom upotrebom je zahtevao i
određene izmene i proširenja potprograma kada hoćemo da ih koristimo. Ovo dvoje se
jednim imenom naziva
modularnost
. Ona se pojavljuje na svakom koraku
programiranja. Naročito se to primećuje kod korisničkog interfejsa jer sva dugmad su
99% ista po izgledu koda, tj. suštinski se razlikuje samo njihova funkcija. Zato mi
samo kod dugmadi u stvari menjamo njihovu funkciju jer bi njihovo pravljenje piksel
po piksel bilo veoma teško. Ovaj problem dugmadi je nerešiv sistemom biblioteka.
1.4. OBJEKTNO PROGRAMIRANJE
Zbog predhodnih problema moralo je doći do izmena u metodologiji i to u obliku
objektne metodologije I objektnog programiranja. Ono je mnogo savršenije od
predhodne dve vrste i bazira se na logoco ljudskog uma. Neki smatraju da je ono
počelo 1967. sa člankom Dahla u knjizi „Strukturirano programiranje“. Stvarni
početak je odložen do kraja 70-ih godina kada ne njegovo uvođenje bilo neminovno.
Objektni programer počinje sa softverskim modelovanjem. Prvo se ustanovi domen
problema kome pripada naš problem i pravi se njegov model. Problem sata koji uvek
radi je karakteristika objektnog programiranja i samo ono nudi rešenje tog problema.
O programer uočava entitete i povezuje ih u klase entiteta i tek onda ih softverski
modeluje. U problemu Ax=b uočavamo tri entiteta: A,b,x. Sada se modeluju ove klase
entiteta ( primer je dat na ad-hok jeziku ; slika1):
Naziv: Matrica
Naziv: Vektor
Matrica A;
Podaci: m,n,P
Podaci: k,V
Vektor x,b;
Operacije:
Operacije:
A.Učitati
Učitati
Učitati
b.Učitati
Invertovati
Prikazati
A.Invertovati
Prikazati
Moduo
X=A.Pomnožiti SD ( b )
Transponovati
.
x.Prikazati
Pomnožiti SL ( vektorom )
.
Pomnožiti SD ( vektorom )
.
Ključni deo objektnog programiranja je da u podacima ne stoje samo osobine entiteta
već i operacije nad tim entitetom. Kada se završi rad sa jednom klasom počinje rad na
drugoj klasi i tek kada ovo sve završi programer se vraća na početni problem. Ova
kratkoća glavnog programa ( treća kolona u primeru ) je u stvari karakteristična za
objektno programiranje. Znači ovde osim podataka uviđamo i operacije. Objektno
programiranje je podešeno tako da više nikada ove klase nećemo pisati već ih
možemo uvek koristiti.
Nasleđivanje je mehanizam C++ kojim omogućava dopunjavanje i prilagođavanje
klasa našim potrebama tj. možemo klase da prilagodimo našim potrebama bez da
remetimo izvorni kod te klase. Kod objektnog programiranja objekti međusobno vrše
Kompjuterska simulacija
5
interakciju. Deo klase naziva se objekat ili instanca klase. U predhodnom primeru
objekti su A i x,b. Klasa i objekat stoje u istom odnosu kao i tip i promenljiva.
1.5. TEMELJI OBJEKTNOG PROGRAMIRANJA
Objektna metodologija kao i svaka druga metodologija stoji na određenim principima
tj. ima određene osnove. Ona se zasniva na nekoliko osnovnih principa koji su bili
poznati čak i pre objektnog programiranja u rudimentalnom obliku, samo što tada nisu
igrali bitnu ulogu u izradi softvera. Osnovni elementi objektnog programiranja su:
apstrakcija i skrivanje informacija, inkapsulacija i modularnost, polimorfizam, veze
između klasa a posebno nasleđivanje.
Apstrakcija
ili
apstrahovanje
je veoma opšti postupak, na kome je zasnovana naša
logika, poznat I hiljadama godina pre nastanka objektne metodologije i predstavlja
izdvajanje odnosno uočavanje bitnog I zanemarivanje nebitnog. Postoji i u
strukturnom programiranju gde svaki obučen programer vidi potprograme kao
apstraktne elemente.
Skrivanje informacija
je odavno jedan od ključnih principa objektnog
programiranja. On podrazumeva da klijentu ne treba da budu poznati detalji
realizacije programa jer on može tada da zloupotrebi naš kod u neke svrhe da bi, kada
izađe novija verzija, nastao veliki problem. Npr. kod starije verzije nekih programskih
prevodioca mogli su se upotrebiti neki trikovi koji će olakšati prevođenje programa. I
programeri koji su navikli na korištenje tih trikova bili su u teškoj poziciji kada je
nadograđen softver koji je onemogućavao te trikove.
Inkapsulacija
je tehnika kojom se pri realizaciji objedinjavaju deskriptivne i
dinamičke osobine modela entiteta ( u našem slučaju objekata ) poštujući pri tome
princip skrivanja informacija.
Modularnost
je tehnika razlaganja složenog softverskog sistema u domenu
implementacije na jednostavnije elemente koje imaju unutrašnju logku. Ona je bila
poznata i kod procedurnog programiranja kao skup servisa namenjenih korisnicima
( biblioteke ). Sama modularnost predstavlja mogućnost proširivosti I višekratne
upotrebe i to je ključna stvar u objektnom programiranju.
Polimorfizam
(
poli
– više,
morfe
– oblik ) je osobina, ili pak mogućnost, da se
softverska komponenta ponaša zavisno od konteksta ili okolnosti. Tako se polimorfno
mogu ponašati objekti, promenljive pa i funkcije. Tako se na primer ponaša C-ova
znakovna promenljiva kada se pojavljuje u kontekstu ’a’+1 i tada se ponaša kao
celobrojna promenljiva. Za ostvarenje polimorfizma uvek mora postojati određen
preduslov koji je u prethodnom slučaju ugrađen u C, tj. znakovna promenljiva je
podtip celobrojnog tipa.
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti