You are on page 1of 140

\

0v lsr
tb

DR NEDELIKo panBzeNovrC

FORTRAN
)ffIIIZDAI{IE

A
l, l

*,6.0(-
cqblF^

Eefuiqe r,
-kBEocRAD,reeo. .'-,t,,!O
A&4*l-
DrNedeljko pau;eruvr(,
prof. PMF-a u Beogadu

FOR,TR,AN IV

saDRL*r
IzdrinC it strana
I
IDP kniiSa" 1. lryq)... 3
"IrhnCna
AGoSrA Uam-ldrlrova 5 2. ..PNETTK}DITE I{AP'OUENE O FOSTBAN JEZIKU 5

r,Tberu Po'@ovl
rPSu por@ovr 5
JF
2.2. N.G|l gkaJe progrenrr .... ?

t. ercl4l FoR''!m"AN JEZUr't I


neoenc€st---___
3.1. Ve{f\.dovr aglcskc rzbukc 9
hPwle Feiwid, 3.2rfic broinog skt€Ea e
prof. FOi{-a u neograu *eq
' t.3. Logld<c kcetrde 10

_.i . 3,1. Zei rlilcB.5b oFEiF 10

ZaizAratadz | \- !.8. h.cr n qcractrc poecdpaJe 10

Ih Bltto Petwii 3.8. Zapf zelogl{kaop€rrc|e ........ ll


. $.?. S.atldlil imcf .. ...... .., 11
3.E. Slulbac rcGl ... ll
Urednik
.. AL@NITflI gA FEAI.IIIIM KONSTANTAMA i PNOUSN-
Nlwlafua|,at lJMi ........ 13

4.1. Dldldctje broJnekonstante..... ......,.... 14

,1.1.1. Celt brojevi .,......:. t{


T€hdald rrednik
4.1.2. M€iovtd brojevi 15
Hilojc Irj;lStutfiC,
I {.2. Dcfhlcijs realne promenlflve .. 1?
I
,1.2.1. Ime prorilcntJive .......;.. 1?

4.2.2. Ytstr proraenlJlve po unutrEinjoj konvencitl.. l8


ffrnfr*' 4.3. Arttmedakl l'rrz .... ..... 19
nr,GiFtl'|4 /t.3.1. Arltmetidke operactJe . . .... 19

Iln tO.irr|r tx 4.3.2. Upotreba zegpada .,....... 2l


ra*il*C.F L 4.3.3. Vrsta niitmcti0kog tzroza . 2f
:i:l
Etru.

Stranr
a.9.{. Apsolutnr vredDort ....,. i. 56
{. l.
{.{. DodelJlvenJe broSc vr6&o!d prgmstrtyoj 9. 5.
_TrtgonomotrlJrke firnkctJe . . ... s6

{.4,1. ArtbouCke arredbe {.9.6. Invsrznc trtgotromoflrsko ftItlkcue ...... 57


28
,4.4.2. Neredbr ulezc 4. 9. ?.. Htperbollloe funkctJe
... 24
58

4,4.2.t. Se celth broJeve {.10. Nerodbe promcnllvot bezuttovnog prolaeka .... 60


ZB
{.11. DslJ. tnoguanostl narcdbc utazr .,..
4.4.2.2: Opt bo6ovl6h brolein ....-r.,.. 27
67
{.11.1. Grclko na ularu ;.,..... 67
4.4.2,3, Opl! pr8'trog pour
... ZO
1.LL.2. KreJ ulrznth podrtak!
{.5. Irdsvrnj€ broJne vrednocd proo€ouilvo E0
08
{.U. Dlllrrtlenrc vr'te promaulve
{.5. 1. Optr cclth brr€ve E2
6E
1.12. l. EklpltcltDe deklonctJr
,[.5.2. Opls nelorrtth broJern 09
. a.L2.2. Ibpltcltm dokl€raclts 09
4.5.3. Opte prrzDos polj. .. g6
,1.8. Pro3te lldjsko tlgorltamoke ltruktur€ {. 18. T*etuclna objslnj€nra u progremu 1t
96
1.13. 1. hwcnrcnl preldd rade t porukc opera-
4.6.1. preldd rade po progreEu t flztCH krlj
proSramt
7l
s6
a. lE. 2. Komartirl u Drograrru 72
.1.8.2. prlmert rlgo,rttrEs sr prolgD ttnlJrldn
struktrrrmr '37 a.ll. Prllodl 72
,1. 7. Rargrrnrtc llnlJeke rlgorttartrlk€
atrukture 80a
1.1{.1. I'redunavaaJc t.flltr ....., 72

4.?.1. Urloml prelezak po vr€dnosd srltnd6kog 1.11.2. Strusuald Prtner , 11


lzrrtr . 89 a. 14.t. Irrrounrv!trJe kor.tr! trrnlcatd.ltn.
4.?.2. Berullovnl prslrzrk ,.d!ra.ln. 16
40
4.?.3. prtm.rl rrzgretrsuh thlrsldh ,truKurl .... PnoullirlJM tA INDEIGIMA - NXUOVT 70
{0
{.8. 6.1. DrllatctJa llil ... 7'
DalJe mogudnoa$ lrredbo FORMAT &
{.8. l. ponrvljarj. J€dnog qrtrs .. 6.1.1. lnc nl'r I lnd.krl EO
...., .. 44
4.E.2. ponavlJrnjc vlac optla t.1.2. Vrrts nt{ ..., tl
.. 1l
6.2. Jc&rodlmaElonrlnl nlzovl .. 8t
{.8.3. Pretezek ne novl rlog.,,
6.2.1. Jadlodlnanzlonelnl ntroel u llnu ulezno-
f,ti.-I. Vezn lzmedju optta I lllte ...,.,,. .11 Irlsrnlh nrrcdbl ... E3
4.8.i. 1ek6t u FCRMAT-nar€dbt ... ie.. t.z.r. ElcnGnUnlrl u arltm.UdkoJ n.rldbl .... 8!
4,9. Elementarne funkclje 52 5.3. Clkll&rc tlFrlt n!k. rtrukEr! 8t
f.9.1. Ekrponcnct.,rlnr funkctJr 6a t.!.i. .Nnrcdb:r rr o9l. protrrmtkog clklu.n .,. 8?
{.9.2. Logrrltamtko funkctJa 6{ 5.!.2. Norcdbn bct doJrtvn 00
4.8.3. Kvadretnl korcn .., r.. !... 6.t.t, Odnor dvo I vllc ctklu.n
55 u
ftrm
'r
--4,
5. 4. Dvod!uc$r,!@ah{ dr'wt 95 gtru
5.d. 1. D+odmaglatN dawl u lild uilrre ?.t.{. 1. lw.{rt{cts yr.dBoru re ul.zr .,. 158
fahdb ncrod ..:. ., .. ,......
7.2-.a.2. I.odflu ur$a r61_
5.,1.2. Rcgtetrovaa! dr,.cdruam@ d'l r!a-
uclJf rrAror. I v€ra-sl tsd[odDodo- 7.2..5. I&tag rtr&o.d loGd[db proaclfll$ ... 160
nalnlrl dloc ?.2;G fr.&. fragU 9o. r*ro&cad tqlGluq trrr-
5. 5. Vilcdllncnzi@aljd lnzor{ 6.... t&t
5.6. Rododod d.Garti difr n*ga ill v.ilc dzova u 8. ALCClt"m er tsALDm 3oilttTAmTAil.A r ptoucDtlJr-

}G liafl deruo-lrlazd,h oara&


POTPR@AMI ... .. .
8.1. Olnovd pojdovl
109

t13
113
vrr Dwra!rc r^@fl
t.f. Ea{a*cfF u',4,]dto tcrtrot duosfu}o ta&oaH ....
t"2. Drddctf rcrlac proapanlttv. dvootfl*r tedaoet{ ....
165

166
6.2. r\d.cfj*. arr.&c lt' 6.3. Doildlfvats broFe vrc&o€A reslnio prolocn{tivtm
0.!. nd|cudd pcttrosrlE tt8 d!/{!E*a rrt-o.d tCS

S.S. 1.. Slleih d*tcfsctts vretc fiilctJrkq 8.1.1. Ad*adlfta er..&a 168
po{Fo3rrtlr u24 E.t..2. l{e*rftr xrrr .. ..:.. ....... 168
E.a. OpaU Doipcqrh ts t.l. ladrvnf broJfrL wt&oei{ prowtfl*dh dvoctr.ln€
3.4.tr. Ftoocdsvl tztrz Ir poqrogrrml ....... 180
Lilosd 169

6.5. N|CH prcaofcnJa rrtundtr Ir prolra.Era u pot- E,5. IstaAl*artr .q.+-rrt,pll fudlcijs !a dvoahukos
Pl.ogTtmc 132
tdr#r
6.6. PromarlJtvl u&ll'd u posro0raroG 133
9. .tLGOBrlffi 6* x0t{"t lxa$il xo!&sTAlrrail.a r pRo-
xoDtl**'il .. .. .. ..
6.?. lm.!n Fotrogrrrae kofi ae javljeju keo arguacn-
tf drucdi po$rotrrma ,.:...,. rt8 e.1. D4B{f lmdc**c konstsqte l?E
8.E. Ntrovl k o argun.lrd potprograEl 142
9.2. Ddrfeif 9*cmcntjgvc t?8
7. ALGONITMI S.I LOGIEIfiil KONSTA.N:TAII&{ I PK}lItD{. 0.t. SCd$csir *l.tel.{ }ons{effds proncnl}i-vi:n ... 1a0
LJIVIM 151 t t.l. AtlilndJkr rnm*r rEo
?. 1. Operactje porcdjcnrr C.S.?. Ncra*r rd*r*.. ..,........:
151 lsf
?.1.1. DcflntctJe opsractje poredjonJr g......... 151 9.{.' Ie&r*lie ltn*erd tenplakr*U 5r,rono*liiv.* Lgz
?.1.2. Naredtre preleaka po wrdrorH poirdjcalr .. 152 9.t (antkk?p V*lfiFpdvo*Frrkc ,e{nos{i 184
7.2. Lioglike ogcnciJo 154 t.& llfflAnrn*Jc k9ryl**ih deq\E$iln* 4u*ciF .... lSs
?.2.1. Lc{iluke konatantc I proncndJtvc 154 10. n^oralnLllo rci{*eFn{t* w,!ryaa&rr.* MDnf@rurE ffa-
?. 2.2. DefhtclJc logltkth opcrrcfts ..
. 156 ftil ra ror
?.2.3. LogtCkl lztaz . 158 19. l. hendillvn &rl{rr r*{nl3 ,r9,1

7.2.4. Meutvanjo yrednoEd logtcklra promcnlJlvtm l5E fe-?. v*lndr,r*c *spif#esi€ nenerli*qS tro*tepr u sky,rru
,rhc r*qlm*e lC*rl€€ ls5
13. 1.1. Defhl..nje pod.t*a Z2S

13.1.2. Pozlclolrrnje glave dlska


8.1.3. Pratos pod.trkr .;........ . 281
13.1.3.1. Uptr podrt kr !r dsk ?tl
ttrrlr
13.1.8.2. IzdevanJe pod.trka .a dlrlr t81

10.2.1. Zrr.&lCkr polrr 18 promonlrlvc lcdarldb du- 13.2. Uap€tra trrkr &'|l
ttnr .,. 1rc 18.2.L. Prmr podrtakr ztg
10.3.1- ZrrGdntdkr Dolrr rr pro:ndrutva rrrll&6h 8.2.f.1. Upt! poditrkr [r EagD3tru tr*u ... 28t
dutlnr' .. t9?
L3.2.1.2. l!&v!nj3 Dodst*e ra megn trG
10.2.1. Zrjcdntdkr i rr nlrovo . 200 trlkc ........ 2g
10.t. Vlaoltruko kortl4atc E.morlrrkog proltorl od rtrr- 1 .2.2. OrDskr kraF gruge po&t b 288
nc vllc pro$rm.ldh Jcdnlor 208
13.2.8. Premt varr. nrgFGttre trak€ ...... tt6
- 10.8.1. Nctnenovaaa zrJcdrlckr uona u momorul .. 203
18.2.3.1. VrlGalJG tato Dr pretbodrn elog .. 238
10.3.2. Imsrovrn zs.J€dDlcks 2(nt u ltroDoruf .... 205
1t,2.8.2. Vr.60r. trrte ne poGotrL grop. ... tt6
11. DODEIJIVANJE POCETNIH VREDNCS ;I PROMENIJIVTM. 2ott
11.1. DodelfvanJe podetrtli wcdaosd promentfvlm aarcd- Ltt.r.lrs. IEO
bom za,ekepllcttnu delilarectru wstG promerlJtvlh . 20s
11.2. Naredba rr dodeljtvanre poletnlh vrednodd .,....,.:l 211 mrcc r
11.3.. Programska Jedlnlce ze dod€Utvrnj. poOetrth vrcd- PnOGRAXTXA NA nACUNARU ?DP-lr /?O . . . . . . . . . . . 237
noafl zaJednldHm zonama u mcmorlJl .... . :. . . . ...: 2L1
RAD SA FORTRAN -
L2. oPSTE Mocucxosn UNoSENJA I IZDAVANJA
PODATAICA 2L7
12.1. Dalre mogrrdnoatl naredbe FICRI\&{T 2L7
12.1. 1.' OpiU opis podataka 2LI
12. l. 2. Koeficijsrt razmere ?19
12.1.3, Razme6taj poua u ulazno-izlaznorn elogu ... 220
12.1.4. Opis heks8dekadnih brojeva 22L
12.1,5. Opis alfabetskih podataka 22t
12.2. Promene FORMAT-naredbe za .weme iz\.rgavanja
proSTama 223
12. 2. 1. Po6tavljanje sadriaia FORMAT-naredbe
sa ulaza 223
L2. 2. 2. Polbvljaqje sadrirja Fon[1AT-naredbe.
keo vrednosti niza .... 224
12.3. Uno6enJe i izdavanje pchtrka po njihovom imenu ... 225
KONISCE.UE SPoLJNIH ]!r r:MoRUA 229
13.1. Magnehi di6k .. . .....:.. 229
l. u v o D

Jezik Je sredstyo za komunikaciju izmedju najmdnje dva koris-


nika. Odigledno Je da jezik mora biti definisan tako
<Ia je prihvatljiv
za sve korisnike. Ako s e posmatra problem komunikacije izmedju do-
' veko i raCunara, moraju ae uzeti u obzir Aobre i loie strane jednog
I drugog i na oslovu toga mora se formirati jezik za njihovu komuni-
kaciJu.
Jczik raCunara je vooma siromadan i zbog toga neprihvatljiv za
6oveka. Medjutinr, pisani ili govorni jezik doveka nue dovoljno precizarl
da bi bio prihvatljiv za raCunar. Zato se mora traZiti novi jezik koji dc
biti prihvatljiv i za doveka i za ra6unar. Jezici koji su definisani da za-
dovolJe ovaj uslov zovu se progTamski jezici. programski Jezik mora da
odgovorl slededim zahtevimo:
1. Da pruZi 6to je mogude vedi komfor za doveka, pri prenoienju
elgorltama na raCunar.
2. Da omogu6i lako pra6enje prograrnskog algoritma Sto ve6eg
broja ljudi.
3. Da omogu6i formalno prevodjenje sa programskog jezika na
masinski jezik.

Prvi zahtev znadi da programski jezik morn obezbediti lako izra-


tavanJe o problemu kojt se ieli re6iti pomoGu radunara. Medjutirn, pri-
mena raCunara je veoma 6lroka, a samim tim I problemi su raznovrsni.
U takvoJ situaciji definlsani su programski jezici za pojedine oblasti
prlmene Tacunafa. Danas su najpoznatiji programski
Jeztci:

FOR TnAN - namenjen naudno-tehnidki problenrima


/FORmula TMNslnting/

AL@L - namenjen nauino-tehniiki problcmima


/ALGOritam L:rnguage/
COBOL - namenjen poslovnoj obr.:rdi podntrka
/Commo4 Bnsiness Oricnti,l Langtagrr/
PLA - namenjen nau6nim, tehnickim i poslovnim problemima
/Progranrming Language I/ It

. Pored ovih Jezika postoJi jo6 na desctine progranrkih jezikn. I!le-


djutinl, od svih ovih jezika najvlBe je rasprostrnnJen IORfiAN. Na skor.o
brt% dan:rinjih radunara mole sc korisUU progamski Jezik FORTRAN.
$n
t1
,),
il
Ilrugi navedenl zahtev za prograurH
nu programsklh algorltama roedju Btrudnjsclme ,edk trebo da omogu€i razme_
problemrma. prema tome, progtamski koJf a€ bave odgovarajudim
jenom 6kupu tipogafstrJh silbolal Jeztk mora btd rzgradJen na uobica-
a konstrukcile u lezitu moraJu biti rako
shvatljive za 6to 6irl krug struCnjaka

- Tredi
radunar
zahtev omoguduJe izradu programa, koji 6e obezb€dtti da
vr6i prevodjarje sa progrrmskog na maltneH Jezlk. OvaJ pro_
grnm naziva se program za prevodfenje I kao ulazne poaa*e
aobi;a
konstrukcije iz progratnskog Jezika, pa th prevodl u Bkup naredbi
u ma-
lln"I9- Jeztku. Kada Je ceo progtam preveden aa programskog na nra-
6inskl Jezlk, njegovo izvrlavanje na radunaru mole poCetl.

2. PRETHODNE NAPOMENE O FORTRAN-JEZIKU

2.1. Op5ti pojmovi

oenovna, nedeljiva jedinica jezika zove ee eimbor. FornAN


Je ve6-
taEki jezik, koji ae defini5e nad izabranim ercupom eimbola. skup aimbola
je izabran tako da odgovara uobicajenim tipografskrm sirnbolima. Novi erm-
boli su konetruieanl od postojecih tipografskih eimbola, a njihorra konstruk-
cija je lako shvatljiva za giri krug struCnjaka razlilitih profila.
simbol kao jedinica jezika ne izrazavaniita drugo, osim Eto predstav-
lja samog sebe.
Elementarna konstrukcija u FoRTRAN-jeziku saEinjena je od niza
simbola. .Elementarna konstrukcija ima odredjeno znadenje, ali sama za
sebe ne egzietirq u progremu. Elemertarne konstrukcije FoRTRAN-Jezlka
su:
- konstante,
- promenlJive,
- nizovi i
- iztazi.
slozena konstrukcija, u F0RTRAN jeziku Eacinjena je od niza simbo-
la i elementarnih konstrukcija. ona egzietira u prqaramu i ima odredjeni
smisao sama za sebe. SloZene konetrukcije u FORTRAN-jezlku jesu:
- naredbe,
- potlrrogrami I
- programl.
,l
6

2.2. Nadin pisanja programa


Naredbe FORTRAN-jezika se dele na: izvr5ne i opisne. IzvrSne nar.orl-
be odredjuju koja operacija treba da se izvrSi i nad kojim pocJacima, pa pt.e-
Sve naredbe FORTRAN-programa moraju biti prenete na kartice da
ma tome one predstaeljaju akciju koju raEunar treba da sProvede. Opisne
bi program bio unet u raeunar. Da bi program za prevodjenje pravilno pri_
naredbe pruZaju sve dodatne informacije potrebne za izvr5ne naredbe, koje
hvatao naredbe sa kartica, moraju se postovati slecleda pravila o buSenju
se odnose na to kako tfeba izvrSiti odredjenu akciju, ili daju informacije o
kartica:
programu u celini, 3to omoguCuje lak5e prevodjenje programa sa IrORTII..\N-
l) od r. do 5. kolone zakljudno busi se broj koji predstavlja obeiezj€
-jezika na maSinski jezik.
naredbe.
Pravila kako se nad skupom simbola jezika grade elementarne i slo7e-
2) od 7. do ?2. kolone zakljudno busi se niz simbola koji aine ,ar.ctlbu
ne konstrukcije 6ine gramatiku jezika. Prema tome, poznavanjem granralike
3) Ako neka naredba sadrzi vise od 66 simboia, odnosno ne mor-e bi.ti
moZemo redi o Bvekoj zadaloj konstrukciji u jeziku da li je korektna ili uije,
buiena na jednoj kartici, moze se koristiti ukupno 20 kartica za njeno buse-
ne ulazedi u nJeno zna6enje. Sintaksa jezika izu6ava gramatiCki korektne
nje, ali svaka kartica, osim prve, mora sadrzati znak razlidit od nule i
konstrukcije i daje mogudnost formalnog otkrivanja gresaka u konstrukcija-
blanka u 6. koloni.
1
ma. Odmah treba uoditi da sirtaksiCke greSke u programu mogu biti otkri-
4) Od 73. do 80. kolone moZe se buSiti ma kakav tekst. Najae5de je
t:li,i
vene u prograhu za prevodjenje, jer su formalne prlrode.
to tek6t koji sluzi za identifikaciju programa i za redoslecl kartica . l)rogra-
tl Semantika jezika izudava znadenje pojedinih konatrukcija u jeziku.
I
mu. SadrZaj ovih kolona ne uzima se u obzir od programa za prevortjenje.
Program 6a6tavua 6ovek. i sve konstrukcije FORTRAN-jezika koje
lr' 5) Obja5njenja u programu koja se ne odnose na progl'arr za prevodje-
dine program, napisane 6u prema algoritmu sastavljenom za reSavanje od-
nje, ved olakSavaju pra6enje programa od strane ioveka, piSu se od 2. do
redjenog problema. Prema tome, setnanti6ke gre5ke u programu, po pra-
80. kolone, pri demu se u prvoj koloni mora nalaziti slovo C. Ovakav tekst
.vilu, ne mogu biti formalno otkrivene, jer su to najdeSde gre5ke u algoritnru, se mote pisati na bilo kojem mestu programa, i bez znadaja je pri formi_
a samim tim ove greSke ne moZe otkriti program za provodjenje, ved jedino
ranju maSinskog programa.
Eovek.
Radi preglednog sprovodjenja navedenih pravila o pisanju programa,
Pravila po kojima se grade poJedine konstrukciJe FORTRAN-jezika
pogodno je pisati FICRTIIAN-program u formularima oblika pt'ikazanog lra
lako se pamte, ako se uoEe razlozi za5to su ona uvedena. Zato treba imati
s|,2.2.1.
u vidu sledede:
l) svaka konstrukcija u FORTRAN-jeziku, mora biti tako definisana
da se jednoznadno razlikuje od svih ostalih konstrukcija,
2) konstrukcije se moraju takodefinisati da se omogudi sto lakSe nij-
hovo prevodjenje na maSinski jezik, i
3) konstrukci.ie mor.aju biti 5to razumljivije za Coveka.
Pri definisnnju svakog programskog jezikn mor.a ee voditi raduna o
ova tri aspekta jezika, Kako je to sprnvt'rleuo u I.'ORTR.{N-Jeziku bide lzlo-
Zeno u rnaterijalu koii slc<li.

51. ::.2.1
fii
8

Naredbe FORTRAN'programa piBu ee odozgo nadole onim redom kako


ae izvrgaveju u programu. U okvlru.naredbe moZe ee nalaziti proizvolJan
broJ sfiabola blanko, Ovo omoguduJe prcgledno pisante naredbe, a ne menJa
njeno znacenj€.

3. SIMBOLI FORTRAN-JEZII(A

Skup eimbola FORTRAN-jezlka Eaatav[en


je od

- veUklh slova engleeke azbuke,


- ctfara dekadnog brojnog 813tema,
- IogiEtdh konstanti,
- znakova za eritmetlcke operacije,
- znakova za oPeracije Poredjenja,
- znakova za loglEke oPerac$e,
- ePqcljalnih znakova i
- glulbenlh redi.

3. l. Velika glova engleske azbuki

Veltke elova engleeke azbuke Elne 26 eimbola FORTRAN'jezika'


i to

AlBlcl DlEl rlGl Hl Il rl Kl LIM lNlol Plal Rl s lTl ulv lwl


xlYlz
pojedine
gde vertikalna crta nlje simbol FoRTRAN-jezika' vec razdvaja
eimbole Jezlka.

3.2' Cifre dekadnog broinog aistema

Cifre dekadnog broinog eiatema 6ine l0


gimbola FOTRAN-jezlka i to

olll2lsl{l5l6l?lsle
rtr
l0
ll
3.3, Logidke pr-
NE. odgovara simbolu f u matematici (simbol je sastavljen od
konstante $
;
jedna-
Logidke konstante, koje se u algebri logike najdeS6e oznaIavaju eim- vih slova engleskih reei "Not Equal to"' Sto znadi "nije
bolima 0 i l, u FORTttAN-jeziku se pi5u sa ko" ),
> u matematici. (simbol je sastavljen od pr-
. CT. odgovara simbolu
rfAt,sE. I ;'r'nun.
vih slova engleskih reEi "Greater Than"' Sto znadi "ve6e od")'
gde konstanta.I'ALSE. (dita se fo:ls, a znalilatl odgovara 0, a .'l'IttJE. 'GE.odgovarasimbolu>umatematici(simboljesastavljenodpr.
(6ita se tru:, a znadi istina) odgovara I u algebri logike. t'Greater than or Equal to,', Eto znadi
vih slova engleskih reei
"veCe ili jednako"),
3.4. Znaci aritmetldkih opcracija
3.6, Znaci za logiike oPeracije
Znaci arltmetidkih operacija u FORTRAN-lezlku su

+l-l* | 7 | ** I Znaci za logidke operacije u FORTRAN-jeziku su


i .oR. I .AND. I .Nor.
pri 6emu lmajti ;lede6e znaEenje 3
il
I pri 6emu imaju eledede znadenje
+ sabiranje
- oduzlmanje . OR. logiika "ili" oPeracija,
l
* mnoZenje .AND. logtEka !'1" oPeracija,
/ delenJe .NOT. Iogieki "net' oPeracija'
** atepenovanje

3. ?. SPecijalni znaci
3.5. Znacl zi operacije poredjenja
Specijalnt znaci, obuhvataju interpunkcijske znake'
koji se mogu ko-
Znacl za opcracije poredjenja u FO[tTRAN-jeztku su r{etiti u FORTRAN-jezilinr I to su
.LT. i .LE.'' .EQ. i .NE. I .cr, i .cE. (l)i=l,l'lrlbl'lE
pri demu imaju slede6e znadenje: tipografskih sim-
gde eimbol b oznalava medjuprostor ill blanko-lzmedju
. LT. odgovara simbolu ( u nratematici (simbol je sastavljen ocl pr- bola.
vlh slova engleskih reii "LJss Than", Sto znadi "nranje od,,),
. LE. odgovara slmbolu { u ntatematici (slmbol je sastavlJen od pr- 3.8. SluZbene re6i
vih slova engleskih reIi "Lcss than or Equal to", Sto zuali koriste
6u engleske redi koje se u FORTRAN-jeziku
SluZbene refl
"manje ili jednako"), 6amo u obllku datom u ta-
kao gimboli. To zna6i da ee te redi.mogu Pisati
. EQ. odgovara eirnbolu = u m:rtematlci (simbol je sastavljen od pr- u FORTRAN-jeziku' a
beli 3. l. U tabeli je dat oblik pisanja sluZbene re6i
vih slova cngleske reli "I.lQual to", Sto zna6i "jednako"), u ROtrtneN-jeziku to je
poEto znadenje re6i ukazuje na funkciju simbola
I

l
l
rlat I prevocl reii na srpskohrvatski jezik radi lak6eg koriidenja za one i:i-

j'l;
rl
lrl
lrll
fl
1

t2 &

taoce kojl ne poznaju engleski jezik, Takdoje je u tabelt dat


i izgovor reEl,
zapiaan u fonetekoj transkripcijl.

3. 1
Red.
br. SluZbena red znadenje dlta se

I ASSIGN dodeli rsaln


t BI.,IOCK DATA paket podataka blok delte
3. CALL pozovi kol
4. COMMON zajedni6ki kgman 4. ALCORITMI SA REALMM KONsTANTAMA I PROMENIJTVIM
5. COMPLEX kompleksan kompleke
6. CONTINUE nastavi kentinju: Svaki ra6unski procee moZe se ra5dlanitl na niz formula, po kojlma
7. DATA podaci deitD se vr6i lzraEunavanje medjurezurtata i konadnih rezultata. Formula u uo -
'I
8. DIMENSION dimenzija dimenEan blcajenoJ matematiEkoj notaclji sadrzi promenljive t konstante medjueob -
I
9. DO izvrSi du: om povezane aritmetlckim operacijama. promenljivim, koje se nalaze na
l
10. DOUBLE PRECISION dvostruka tadnost dabl preelZen deenoJ stranl neke formule, moraju bitl dodeljene brojne vrednostl pre ra-
"li
il
1
ll EQVTVALENCE odgovarajuCi ikwivalans EunenJa po toj formuli. Ove promenljive dobijaju brojne vredno6tt, pre po_
tl
:1, t2. EXTERNAL spoljaFnji ikett:nrl detka rada po algoritmu, kao polazne velidlne ili gu to udjurezultati izra-
13. FORMAT raspored fc:mat Eunavanja po prethodnim formulama.
14. FUNCTION funkcija fankEan Tako, formula
15. GO TO predji na gou tu
16. IF
Y=xl +xz(3,7 +4'x!) (4.1)
ako lf
t7- II\TTEGER ceo broj intidt, sadrZl promenlJive xr, x2, x3, 6lje brojne vrednoeti moraju bitl poznate
18. IOGICAL logiEki pre izradunavanja velldine y. Na dernoj strani formule ({.1) figurilu i kon-
lodiikal
l9- PAUSE pauza atante 2; 3,7 I 4- Izra6unavanje po formuli (4. l) predetav{a lzracunavanje
, po.z
20. READ iitaj vrednoett aritmetldkog lzraza deeno od znaka jednakosti, I dodeljlvanje lz-
ri:d
27 REAL realan racunate brojne vrednosti promenljlvoj y, na revoj :trani znaka jednakoeti.
riel
tt RETURN povratak Sve ovo je opSte poznato u matematicl i predstavlja uobldajeni nadtn
rit.:n
23. STOP zaustavi Btop
korlldenja formula od atrane Blrokog broJa ljudt razlidltlh profeelJa.
24 SUBROUTINE potprogram s r\bru:tl:n U ovoj glavi Ce bitl izloZeno kako se pi6u formule u FORTRAN-jezt-
25. WRITE piSi rait ku. ImaJudl u vldu ita sve sadrze formule, to 8e u FoRTRAN-jeziku mora-
Ju deflnieati slededl pojmovl:

- kako ee pl6u konstante t promenglve.


- &eko se pl5u arltmetlGkl lzrazl,
- ldto ge dodeljuju vrednostl promenljivim,
I

il

I
l4 15

- kako se izradunavaju medjurezultati i rezultati,


- kako se izdaju konadni rezultati. Primeri
a) Dozvoljen oblik celog broja:
4.1. Definicija brojne konstante
-386
65
U FORTRAN-jeziku brojna konstanta moZe biti ceo broj ili medovit
0
' broj. ova stroga podela konstanti na cele i mesovite.uslovljena je nadinom
2t47483641
registrovanJa konstanti u memorlji racunara. celobrojna konstanta regi-
struJe se kao ceo blnarni broi, a meBovita konstanta se registruje kao broj b) Nedozvoljen oblik celog broja:
u pokretnom zet^eztu. 35. 0
35 000
4. l. l. Celi brojevi 3147483647

Ceo broj se piSe kao niz cifara, ispred kojeg moZe stajatl
dekadnih 4. 1.2. Meiovitl brojevi
ll
znak + za pozltlvan broj, a obavezno znak - za negativan broj. Ovako za-
pisana celobroJna kongtanta mora biti u brojnom intervatu i-231 , 2tl -l-l . Me6ovlt broj ee moZe pieati na dva\nadina, kao:
Ovaj brojni interval je odredjen kapacitetom jednog memorljskog reglstra
ri,
1, a) Niz dekadnth cifara, pri Cemu se celobrojni i razlomljeni deo raz-
(s1.4. l.l.).
ltegistarsadrZl 32delijeoznaEene, naeI.4. l.l, sa0, 1,...,
dvajaju declmalnom ta6kom. ispred ovakvo g niza moLe stajati znak + za po-
31. SaclrZaj delije 3l je najve{e teZine I registruje znak broja. Ceo broj x
zltivne brojeve, a mora stajati znak - za negativne brojeve. ovako zapisan
meSovlt broj mora imati najmanJe jednu cifru, a najviEe ? dekadnih cifara.
!*-l b) ObUk kao pod a) lza kojeg ee pi5e a zalirn se navodi ceo
"lono/E'
dvoclfreni dekadni broj, kojl predstavlja eksponent broja 10. Brojna vred-
,- nost ovako zaplsane konstante jednaka je proizvodu brojeva ispri:d slova.E
O AJAK+
1 ZNAK: i etepena broja 10, aa celobrojnlm eksPonentom navedenim iza slova E'
sI.4. l. t.
kx",f. x" I
registrovan u ovakvom reglstru mora biu u intenralu I il-----r l l--- ----- ----l u
---1 0
-2rl ( x : 2tr -l = 2.147.4g3.64? (4. l.l) Xil
/!NAl< sl.4.1.2.
lz lzloIene deflncije za piCanje celth brojeva eledl da
- ceo broj ne sadrZi decimalnu ta6ku. t MesovltibroJeeregiatruJeumemorijiradunarauobllkupokretnog
izmedju cifara celog broja ne moze stejatl medjuprostor.
zataza (eI.4. 1.2. ). Ovako registrovan broj x ima brojnu vrednost
rl:
'I

x=rx.16'k (4. t.2')


l

$
FIT
ii

16

broj' pa je b) Nedozvoljeni obllci melovitih brojeva


gde se eksponent xE r€gietruje kao ceo blnarnl
(4. 1.3) 2. 000.596
_ 64 . xD{63
-15. El36
hekeadekEdnom sletemu,
a mantisa xu registruje se u binarno kodiranom 25. E
tako da ie 1.8?6,00
(4. 1.4)
o<1"* l<l -16*
4. 2. Definlcija reElne promenljive
Zamenom (4. 1.3) i (4. f .4) u (4. 1.2) lako se dobtja da
je brojnl lnter-
4.2. l. Ime promenljive
val za broj x u Pokretnom zanezu
(4. r.5) U matematlci je uobiCajeno da ee promenljive oznadavaju Jednlm elo-
o<l*l<(t-lo-').to6t
vom azbuke. U FORTRAN-jezlku nlz simbola oznadavaju promenljivu, Ova-
Najmanja vrednost mantiae razlillta od nule ieste 16-l tako da svl
' kav niz elmbola zove se lme promenljive. Niz simbola koji 61ne ime pro-
brgjevi manji po apsolutnoj vredtrosti od 16-65 u raEunaru ee registruJu
menljive mora iapu.njavatl slede6e uelove:
kao nule. Prema tome, 'broj r f 0, mora bitl u tntervalu
- prvt simbol mora blti veliko elovo engleeke azbuke ili specijalni
r6-.!(lxl ( (l-16-6 ).r6Gt (4. r.6) znak I ,

- ost'll glnboU bltl: vellka elova engleeke azbuke, cifre dekad-


mogu
ili u dekadnom brojnom sistemu
nog brojnog slstema llt opecijalnl znaci I ,
(4. r. ?)
5,4.10-?e rlxl< ?.2' ro?5 - broJ simbola kojl Clne lme promenljive moZe biti od I do 6.

. Me6oviti brojevi, razliditi od nule, zapieani u jednom od dozvo{enih Prlmeri


oblika (a) lli (b) tnoraju po brojnoJ vrednogti prtpadati dozvolJenom lnterva-
lu (4. l. ?). Brojevi ispod donje granice lntervala registruju ae kao nule' a a) Dozvo[ena lmena promenljlvih:-
broJevt iznad gornje g""|U"u prouzrokuju prekoradenje kepeciteta
regletra'
:A
AAA
Primeri ALz
CDEIs
a) Dozvoljeni oblicl meBovitih broJeva:
IA
0.345 I\/FASA
-22.O ZACREB
482.57E-2
b) Nedozvoljena imena promenljivih:
-. L2

15. D l5 Aa,Ct372
25. E0 t2A
Al0. A
2l
20

Aritmetidka operacija izmeclju dva argumenta, koja su celi brojevi, Utabeli4.3.2.navedeniauPrlme:.iaritmeticldhLztazainjihoviek.


daje kao rezultat ceo broj. Tako, ako se dele dva cela broja rezultat je sa- vivalenti u matematidkoj notaciJi.
mo celobrojni deo koli6nika. Tabela 4.3.2.
Rezultat aritmetidke opc:acije izmedju argumenta od kojlh je jedan
ARIfI{ETICKI IIRAZI
realan, a drugi celobrojnl, lll su oba realna, jeste realan.
' Ze operaciju atepenovanja treba imatl u vidu kako se ona reallzuje na
radunaru:

a) Ako je izloZilac Btepena ceo broj, tada se opereclja stepenovanja


svodi nb mnoZenje. Prema tome, stepen

a{

se raEuna, kao -ArB.rc

a.a.a.a -1rrf+!rC-S.6 -A2+B.c-5,6


b) Ako je izlolllac stepena realan broj, tada Ee vrednost atepena ra-
3. rX*.3+X..2-20. rx3+x2-20
6una logaritmovanjem I antilogaritmovanJem. Tako ako treba lzradunati

a2'5

to se izra6unava kao 4. 3. 2. UPotreba zagrada


antitn(2,5Ina) aritmetiI-
Ako utvrdjenl prlorltet aritmetlcldh operac{a ne odgovara
Iz ovoga sledi da se u operaciji stepenovanja, kade je izlolllac real- kom lzralu.koji ae Zeli zapleati, mog! 8e korlstiti zagrade. Prem tonre, za-
an, ne moZe pojaviti negativan broj kao osnovajer operaclja logaritmovanja grade treba korletitl, kao i u matematici, kada se Zeli proureniti prioritet
l nije definisana za negativne brojeve. operaclja. .Deo erltmett6kog izraza u olwiru otvorene I zatvorene male za-
prioritet. Ako postoji veci broj zagrada, unutrasnja za-
grade dobija najviEl
c) Niz operacija stepenovanja izvrBavaju se.e desna na levo. Izraz
gradajenajvtBegprlorlteta.Deoa'itmetickogizrazaizmedjuzagrada,od-
l A**B**C
l
noel ge pretna arltmetiEkom izrazu u celini kao jedan argument'
j ra6una se tako 6to se najpre odredi (B ** C), a zatim A'ir (B**C). Ovo je Utabeli4.3.3.navedenlauprlmeriaritmetidkihizrazaeazagrada.
razlidito od (A*+Bl ':*C. ma i njlhovl et<vlvalentl u matematickoJ notacljl'
il d) Promena znaka ima iatl prioritet kao i stePenovanie tako ako se

izraz 4.3.3. Vrsta aritmetiEkog lzraza


napiSe
1 ,.-
-A**B Izra6unata brojna vrednost, koia se doblJa kao rezultat aritmetilkog

ie biti izra6unato kao - ** B), a ne kao (-Al**8, izraze po vretl jeste:

.li
I oso (A

ht
t
'r

il
E

22
ta

- ceo broj, ako su svi argumenti aritmetidkog izraza celobrojne kon- 4. 4. Dodeljivanje brojne vrednosti promenljivoj
stante ili celobrojne promenljive, odnosno
- realan, broj, ako je barem jeda5r argument aritmetiekog izraza re_ 4.4. l. Aritmctidka naredba
alna konstanta ili realna promenljlva.
Opsti oblik aritmetilke naredbe Je:
Tabela 4

ARITII{STICKI TZRAZI a={ (+.4. t)

gde je
U FORTRANU U !{ATEITIATICI
a - ime promenljive,
Ar (B+C),/D A (B+c) 9 - aritmetidki izraz.
D
Ova naredba ima sledece dejstvo: vrednost aritmetidkog izraza p,
- (A+B) r*2*D-4. - (e+g) 2.o-4 pretvara se u vrstu brojnog podatka, saglasno vrsti promenljive a, i do-
deljuje se promenljivoj a.
x* (Y,/ (Y+x) ) x.Yy+x
U aritmetidkorn izrazu V ne moZe se pojaviti promenljiva kojoj nije
dodeljena brojna vrednost pre izvr5avanja naredbe 4. l).
rr24ar @/BD.t2 (-e) 2+a.L
( (.:A) 2 (4 .
( )
B Treba uoditi razliku izmedju znaka jednakosti u aritmeti.6koj nare<J-
bi, i uobldajenogzna6enja u matematici. Znak jednakosti u aritmetilkoj
A,/ (B+c) *r2-4. /D+3. 3_'._1+r naredbi opisuje proces koji se sastoji od:
(B + c)' o

U tabeli 4.3.4. dati su primeri aritmetiEkih izraza 6a oznakom vrste


- izradunavanja vrednosti aritmetidkog i.zraza, na desnoj slrani zna-
aritmetidkog izraza. ka jednakosti, prema konkretnim vrednostima promenljivih,
- dovodjenja izra6unate brojne vrednosti promenljive u celobrojni ili
Tabela 4.3.4
realni oblik, u saglasnosti sa vrstom promenljive na levoj strani znaka jed-
ARITMETIEKITZ,F"AZ VRSTA
nakosti, i
[**4+3*MNl ceo broj - dodeljivanja ovako dobijene brojne vrednosti, promenljivoj na levoj
strani znaka jednakosti.
(J I rz1*s13 ceo broj
Sve navedene faze u izvrSavanju aritmetiike naredbe dogadjaju se je-
(J /rz7*1113. realan broj
dna za drugom. Prema tome,'u fazi izraiunavanja vrednosti aritmetidkog
A**3-ll:r*2 realan broj izraza moZe se koristiti brojna vrednost prorneliljive, kojoj ie u zadnjoj
-I,:,(3. +K)/A realan broj fazi biti dodeljena izraEunata brojna vrednost. Kako se brojna vrednost
promenljive duva u odredjenom memorijskom registru, to u ovom sluiaju
znaii da sadrZaj ovog registra moZe biti kori5ien u iazi izradunavanja vr-
ednosti aritmetidkog i.zraza, a zatim uni5ten upisom nove brojrr' vrerlnosti
koja se dodeljuje promenljivoj. Tako se moZo pisali
il

]iI
24 26

A=A+B (4.4.21 maciJa I program koJi ih korlstl dode[uje njihove brojne wrednosti odgova-
rajuelm promenljivim, Naredba koja omoguCuie ovakvo dodeljivanje broj-
5to znadi: sabratl brojne vrednosti promenlJivih A B i dobijenl rezultati
nlh vrednostl promenljivlrn zove se naredba ulsza. Ova naredba se pile u
dodelitl kao novu brojnu vrednost prdmenljivoj A.
obuku
Primeri READ(I, J)ltsta (4.4. 3)

l) Primeri aritmetidkih naredbi: gde je


READ - slulbena re6, koja oznaCava da ge radi o naredbi ulaza,
AB=C*:r2+AB+4. 36
I - celobrojna konstanta bez znaka lli ime celobrojne promdn-
I-J+A*+2-4 ljive, kojoj mora bltl dodeljenabrojna vrednoat Pre izvt6a-
BRZINA=PUT/VREME vanje naredbe (4.4.31'
j - obeleZje jedne naredbe FORMAT,
VREDN=CENA*KOLIC
lista - spisak imena promenljivih, medju sobom razdvoienih zare-
2) Aritft€tidka naredba zima, kojima te dodeljuju brojne vrednostl sa ulaza.
A=l/3-4*B Ako je apoljni nosllac lnformacija kartlca, tada vellEina i ukazuje
zal = 10i B = 3.5 dodeljuje promenljivoj A brojnu vrednost - f1,0. na Clta6 kartlca sa kojeg 6e btti Eltanl broJni pgdaci. Kod raEunara IBM
-360/44, kada se vrBi ulsz preko Elta6a kartica, treba uzetl da je i = 5.
4.4.2. Naredba ulaza
NaredbE ulaza Je izvr6na naredba i ima sledede znadenje: Proeitati ulazne
podatke sa ulaznog uredjaja 1, p"d kontrolom opisne naredbe j, i dode-
Aritmetldka naredba dodeljuje brojnu vrednott p"o-enllivoj, po iz-
llti pro6ltane brojne vrednosti promenljivim, navedenim t liEti.
radunatoj vrednoati aritmetidkog izraza. Medjutim, neke promenljive u aI-
Prema tome, izvr5na naredba sadrZi lnformaclu o tome gde se na-
goritrru dobijaJu podetne vr€dnostl prema konkretnom primeru koji se re-
laze ulazni podaci (i), i kojim promenljivim se dodeljuju (lieta). Mediutim
5ava. Ovalve ve[Elne zovu se ulazne velidine. Tako, algoritam na sl. {. ?.3
kako lzgledaJu brojne vrednosti ne kartlci to nlje reEeno LzvrEnom nared-
sadrZi ulazne velidine x1 i x2, kojima moraju biti docleljene brojne vred-
bom ulaza. Brojnl podatak na kartici nalazi ae u obllku konatante, a kon-
nosti na podetku izvr5avanja algoritma. U istom algoritmu promenljiv:r .Y
stante Bu eastavljene od nlza eimbola FORTRAN-jezlka. Sveki simbol kon-
dobija brojnu vrednost preko aritmetidke naredbe. Prema tome, postoia -
etante bull ee u jednu kolonu kartice. VlSe kolona, koje z auzima jedna kon-
nje promenljivih koje dobijaju brojne vrednosti.na podetku algoritma, onro-
stanta ne kartlci, Iine polJe. Jedno ili vlle polja, koja se sa jedne kartice
gu6uje primenu algoritma za razli.ite konkretne brojne vrednosti ovih pro-
unoae u memor{u raEunara, Elne elog, Oplsna naredba, kojom se opisuje
menljivih. Algoritam u kojem ne postoje promenljive, kojima sc brojrra
lzgled sloga, plle se u obUku
vrednost mole dodellti kao velidina koja ulazi u algoritam, predstavlja niz
izradunavanja koji pri svakom izvrSavanju algoritma dovodi clo istog rezul- j FORMAT(slog) 14.4.4l
tata. Jasno je da ovakav algoritam retko ima praktidnog smisla. NajdeSdt' gde Je
je potrebno sastaviti algoritam koji de izraEunavati rezultate za raz[ditc j - obeleZje naredbe,
poLazne podatke. Polazni podacl nalaze se na apoljnim nosloclma infornr:r- FORMAT - eluZbena re6, koja ukazuje da se radi o naredbi za opis
podataka, I
26 27

i, slog - niz opisa, medju aobom razdvojenih zarezima, kojima se opl- strani polja ostaje nebuSen. Tako, ako u polju sa opisom Il0 koje sadrZi
suju pojedina polja ulaznog sloga. 10 kolona, od l. do l0.kolone, treba registrovati broj -386, to u kolonama

Ulazni slog je sastavljen od vi3e polja, a svako polje sadrii jednu od 1. do 6. nede biti niSta bu5eno, a -386 6e se bu5iti sleva nadesno od 7. do
konstantu. Za opis ulaznog sloga potrebno je opisati svako polje u okviru 10. kolone.
sloga. Opis polja zavisi od konstante koja se nalazi registrovana u polju.
Neka 3 polja dine jedan ulazni slog. Tada se opis sloga sastoji od 3 opisa 4.4.2.2. Opis me.lovitih brojeva
pojedinih polja, tj. naredba (4.4.41 dobija oblik
Ako polje na kartici sadrZi me5oviti broj, opisuje se sa
j FORMAT(opls1,opis2,9pis3 ) U.4.5)
Fk. d (4.4.7)
Opisi pojedinih polja navode se u naredbi (4.4.5) sleva na desno,ona- gde je
ko kako slede na kartici (s1.4.4. 1), F - simbol FORTRAN-jezika, koji oznadava da se radi o me6ovitom
Da bi se u nizu naredbi koje di; / broju lFixed point),
tle program omogudilo jednozna6no u- poLlEl rc/-7E2 PoLIE 5 k - neoznaden ceo broj, koji ukazuje na broj kolona polja na kartici,
kazivanje na odredjenu naredbu pro- d - broj decimalnih mesta brojnSg podatka.
grama, uvodi se obeleZje naredbe.
Broj k mora biti tako odredjen da zadovoljava rislov
ObeleZje naredbe je jednocifren do sr. 4.4.1
I petoclfren ceo neoznaden dekadni broj. k>c+d+2 (4.4.8)
ObeleZje naredbe se piSe sa leve strane naredbe. Svaka FORI\IAT-naredba gde je
li c - broj cifara celobrojnog dela broja,
mora imati obeleZje (oznadeno sa j u 4.4.4 i 4.4.5), koje seobavezno na-
I
vorli u.naredbi ulaza (4.4.3), odnosno izLaza (4.5.1). IzvrSne naredbe FOR- d - broj cilara razlomljenog dela broja,
TRAN-programa mogu po potrebi imati obeleZja. U jednoj programskoj je- 2 - jedno mesto za znak broja, i jedno mesto za decimalnu taiku.
dinici ne moie se jedno obeleZje koristiti, kao obeleZje, viSe od jedne FOR- Decimalna tadka se moZe izostaviti na kartici, i pri tome 6e bi.ti od-
TRAN-naredbe. redjena opisom (4.4.7). Tako u ovom slu6aju relacija (4.4.8) dobija oblik
I
k>c+dI1 (4. 4. s)
4,4.2.1. Opis celih broJeva
Medjutim, ako postoji decimalna tadka na kartici, ali nije u saglasnosti sa
Ako porje sadrZi celobrojnu konstantu, opisuje se na slede6i na6in
lr

opisom (4.4.7), tada 6e biti prihva6eno mesto decirnalne tadke na kartici,


rk (4.4.6) a ne u opisu (4.4.7). Tako, opis F8.0 6e upisivati brojne podatke u memo-
gde je riju radunara sa brojem decimalnih mesta, zadatih decimainom tadkom u
I - simbol FORTRAN-jezika, koji oznadava da se radi o celom bro- od govarajudem polju kartice
ju (Integer), Ako se u polju registruju samo pozitivni brojevi, moZe se izostaviti
k - neoznaden ceo broj, koji ukazuje na broj kolona polja na kartici. mesto za znak broja, a ako se izostavi i mesto za decimalnu taaku, to se
Ako je broj k takav, da polje sadrZi ve6i broj kolona nego Sto to relacija (4.4. 9) svodi na
p>c+d (4.4. 10)
zahteva broj cifara brojnog podatka, tacla oclgovarajudi broj kolona rra lcvoj

Ll
28

Za registrovanje vrlo mallh lU vellkth brojeva oblik (4.4. ?) je nepo-


Tako ae mote pisati
godan, jer zahteve navodjenje svih cifara broja. U ovom sluCaju pogodno
20. 156E0
je koristiti oblik
20.156+0
Ek. d (4.4. l1)
20. 156
gde je
E - rlmbol FORTRAN-jezika, koJi ukazuJe da ee radl o meBovltom Svl navedenl prlmeri 6e u memoriji racunara blti regratrovanl u obliku po-
broJu, zapieanom u ekeponencljalnom oblil<u (Exponential form), kretnog z rezll., I predatavlja6e brojnu vrednost 20,156.
k - neozna6en ceo broj koji ukazuJe na broj kolona polja na kartici,
d - broJ declmalnlh mesta brojnog podatka. 4.1.2.3. Opia preznog polja

Kohatante zaplaana u eksponencijalnom obli,ku regtstruje Ee u polju Vrlo Gesto je potrebno neke kolone kartlce preekodltl. Qa bl ae ovo
kartlce, kao i raniJe oplsana meEovlta konatanta Semo 6to ee lza declmal- omogudilo uveden Je ople
nlh mesta broja navodi €lovo E, a iza glova E izloillac broja 10. Tako ee
({. {. r3}
moZe pisatt
gde je
17.83E-15
X - elmbol FORTRAN-jezike,koji oznadava daeeradi o opiau praSnog
6to odgovare decimalnom broju l?,83.10-lt. BroJ zaplsan u eksponencijal- polja,
nom oBllku zahteve polje sa n - c€o neoznaden broj, kojl ukazuje kollto kolona eadrti pol.je tgje
k>c+d+6 (4.4. t2l treba preskodltl.
gde je
c - broj clfara celobrdjnog dela broja, Prlmer
d - broJ cifara razlomUenog dela broJa,
Zs zedete vrcdnoetl promen{ivih 1, C, I I g lzreEunatl vrednoat
6 - jedno mesto za znak broja, jedno mesto za decimalnu taEku,slovo
E,jedno mesto za znak eksponenta i dva me$ta za dekadne ciirc X - (el +32,4Xb-2c)
eksponenta. Velldlna f je eeo troclfrgn broJ I nalazi 8e na karticl od l. do 4. kolone.
Znak ekBponenta se moze izoetaviti, ako je eksponent pozitivan broj. Velt6lneC, !ig gadrle 3 cela l2 declmalnameata lnrlaze se nakarticl
Slovo E se mole lzostavltl, ali se pri tome obavezno m6ra plsati znak eks- od 20. do 4O. kolote, pri CeEu eveka zauztma po{e od po ? kotona. Izgled
ponenta. Tako se mogu registrovatl sledede konstante ne karticl: kartlce Je prlkazan nr e1.4.4.2.
-2.147820
-2.147+20
/
+8. l4E-02 t a" b c
8. t4-o2
Me5ovltl br.ojevi zapleani bez slova E i ekspdnenta mogu biti uneti 1...1 ul g- !+.{ol
pomodu opiat (4.4. I t), pri Eemu 6e ae amatrati da je eksponent nula.
sl. 4.4. 2
I
i
n

3l
30
Prvi deo informacije, o imenima promenljivih 6ije se brojne vredno_
Program na FORTRAN-jeziku lma slede6i izgled: sti Zele izdati, zadaje se izvr5nom naredbom izlaza
WRITE (i, j)lista (4. s.1)
READI 5r lol IrArBrC : gde je
ro FaRMATi l4t ltF 7' 2l
Y: I A*rl +32.4 l* ( B-2. *C I
',5xtF7'2tF7' WRITE - sluZbena red, koja ukazuje da se radi o izdavanju brojnih

U naredbi FORMAT opisana su sva Polja na kartlci, sleva na desno' vrednosti promenljivih;

koja 6lne ulaznl slog, ukljueujudi i polje koje se preskeee od 5' do 19' ko-
i - celobrojna konstanta bez znaka ili celobrojna promenljiva,
lone. PromenlJive I, A, B i C dobtjaju brojne vrednosti sleva nadesno' ka- kojoj je dodeljena brojna vrednost pre izvr5enja naredbe
listi naredbe READ. Konstanta 2, u aritmetiCkoj naredbi (4.5. 1). Ova brojna vrednost odredjuje izLazni uredjaj na
ko su zapisane u
kojem se ir5i izdavanje rezultata. Za raaunar IF,M-_360144,
zaplsana je sa decimalnom tadkom, Bto znaEi da 6e u memoriji radunara
kada se izl.az vr5i na budadu kartica to je broj ?, a na Stam.
bitl reglstrovana u obllku Pokretnog zarleza' Na ovaj naein, operacija mno-
Lenja 2.*C izvodi ee izmedju angumenata u pokretnom zarezu' Ako
bi kon- pa6u broj 6,
u obliku j - obeleZje jedne naredbe FORMAT;
atanta bila zaplsana bez decimalne tadke, tj' arttmetiEka naredba
lista - spisak imena promenljivih, medju sobom razdvojenih zare_
Y' ( A'.*l +32.4 I tl 8-2r'C I
zima, dije se brojne vrednosti izdaju.
tada bi konstanta 2 bila registrov:rna u memoriji raEunara kao ceo broj'
Svakoj izvr5noj naredbi izlaza, kao Sto je nareclba (4.5.1) pridruZu_
Ovo bi ZnaEilo da pre lzvodjenja operacije mnoZenja 2*C, ova
konstanta
je se jedna opisna FORMAT-naredba, koja sadr-i informacije o
obliku iz_
mora biti prevedena u oblik pokretnog zareza, a botom izvr5ena aritmetid- davanja brojnih vrednosti promenljivih. Oblik izdavanja zadaje se istim
o_
kaoPeracijamnoZenja.Ijedanidrugioblikari'tmetidkenaredbejekorek- pisima koji su sluZili za opis podataka na kartici, sa-mo Sto sada
ta6- opisuju
tan I dovodl do istog rezultata. Ivledjutim, plvi dbltk (sa decimalnom izgled Stampanog dokumenta ili busene kartice na izrazu. Jedan ili vise po-
kom)predstavljaboljizapis,jer6etakavaritmetleklizrazbitibtlelzta- dataka koji se prenose naizlazni organ dine izlazni slog. DuZina
izlaznog
Cunat pri izvrBavanju programa na raCunaru' sloga zavisi od nosioca informacija na kojem se vr5i upis informacija
na
izlaznom organu radunara. Ako se izlaz vr5i na bu3a6u kartica, tada je
4.5. Izdavanje brojne vrednosti P:9*gtlilte maksimalna duZina izlaznog sloga g0 simbola, koji se mogu bu5iti u g0
ko_
raiunara u lona jedne kartice. Ako se izlaz vr5i na paralelnom Stampa6u,
BroJna vrediroet promenljive registrovana je u memorlji tada je du_
zarezu' Zinaizraznog sloga 120 tipografskih simbola (ovaj broj moze biti i
binarnom broJnom sistemu, kao ceo broj ili kao broj u pokretnom ve61 koci
broja ljudi nekih tipova Stampada), koji dine jedan red na itampanom dokumentu.
Blnarni obllk broja je neBogodan za koriS6enje od strane 3lreg
koji su korisnicl radunara. Zato ie potrebno broj prevesti iz binarnog u tlt'- Opisna naredba, koja se pridruZuje naredbi izlaza ima oblik

kaclnibrojniaistem,irezultateizdatiudekadnonrbrojnomsisten.ru.Potpu. j FORMAT(slog) e.5.2)


na informacija o izdavanju brojnih vrednosti
promenljivih' na izlazni orgau' gde je

sadrZi sledeie: j - obeleije naredbe koje se navodi u izvrsnoj naredbi izla-


i
- imena promenljivih iije se brojne vredno6ti Zele iz<lati' kao za (4.5. l),
- oblik izdavanja brojnlh vrednosti'

flt
Elz 33

FORMAT - sluzbena re6, koia ukazuie na vratu opisne naredbe' - ceo neoznaIen broj, kojlodredJuje bnoJ meeta koJi 6e zauzetl
$log - niz oplsa koji definiSu izlazni slog' brojna vrednost na izlaznom nosiocu informaclja. To je
broj ti_
pografsklh eimbola na Btampa.nom dokumentu, kada se
Izclavanjelz\aznogsloganaparalelnomstampaEuzahtevainformaci. LzLaz vt_
di na Etampa6u, odnosno, broj kolona kartice, kada ee Izlazvr-
ju o vertikalnorn po*"."rrju papira na StamPa'u' Ova informqcija je sadr-
nro- 6i na bu6adu kartica.
Zana u prvom simbolu lzLaznog aloga' Kao prvi simbol izlaznog sloga
Ako se izlaz vrsi na gtampacu i pri tome brojrla vrednost
Ze se pojaviti jedan od simbola +, b,0 i-Li I Pri eemu imaju sledeCe znade - koja se gtah
pa prevazilazi duZinu k, odredjenu na Stampanom
dolarmentu tada se Stampa k
nje:
zvezdica (*) u predvidjenom polju.
+ - bez Pomeranja PaPira, Najvedi ceo broj koji moze biti registrovan u memorijskom
b - Pomeranje PaPira.za I novi red' registru
sadrri l0 dekadnih cifara, a ako se uzme u obzir i l meato za znak,to
0 - Pomeranje PaPira za 2 n'ova reda, i 6i da format Ill uvek obezbedjuje koreltno &ampane vrednosti
z,.a-
celobrojne
I - pomeranje papira na prvi red sledede 6trane' promenljive. Brojna vrednoat itampa se na desnoj strani predvldJenog
po_
Jedan od navedena 4 pirnbola mora 5e nalaziti na Podetku
izlaznog lja za Stampanje, a na levoj strani nevaZede rule Etampaju Ee kao medju-
u
sloga. Ako ovaj simbol nije obezbedjen Prvim oplsom izlaznom slogu' prostori (blanko). Znak broJa &ampa €e nepoaredno levo od prve
vaIede
treba ga naveatl lzmedju apogtrofa kao jedan od opisa izlaznog sloga' cifre pri 6emu ee Etampa znak ( -) za negativne brojeve, a znak +
ss ns
Tako naredba Stampa. Prema tome, predvidjanjem ve6e duzine polja od one
koja je po-
j FoRMAT (',b,, 13.2x,8r2.5) (4.5.3) trebna za ftampanJe broJne vrednosti moZe se obezbediti potreban
broj me_
djuprostora (bfanka) izmedju brojeva koji se Etampaju u jednom
formira izlszni slog od 4 polja, Pri demu prvo polje sadrii jgdan sinrbol redu.

blanko, drugo polje sedrZi tri simbola za vrednost celobrojne promenljive' Prlmer
trede polje sadrZl dva blanka i detvrto polje l2 limbola za brojnu vrednogt
Na kartici eu zadata tri cela broja x, y i z. Broj x je buBen
rcalne promenljive. Prema tome, izlazni elog sadrZi 18 elmbola' Kada
se od 10.
bl- do 15., broj y od 20.do 24., a broj z od 52. do b4. kolone jedne
ovako formlran izlazni slog po5atje na paralelni 6tampai' Prt'i sinrbol kartlce,
-papira na uneti brojeve sa kardce i 6tampad na paralelnom EtampaEu. u ovom sru-
6e upotrebljen kao komandni simbol za vertikalno pomelanje
dokumentu' Eaju potrebne eu eledeCe FORTRAN naredbe:
Btampadu, i u ovom slutaju proizveSde novi red na $tampanom
Oetalih 1? simbola izlaznog sloga bi6e Stampani ocl podetka reda
sleva na
desno kako slede u izlaznom slogu.
READ{5r401 IIr IYrll
40 FORHATI9IT l6r{Xr l5r27I, I3l
URITE(614lltXrlYrtt
1.5. l. gpb btoj* 4l FoRtlAT(r .rl6rl0rl6l
""Uh
se sa
Izdavanje brojne vretlnosti celobrojne pronrenljive opisuje U naredbi FORMAT sa obeleZjem 40, opisi 9X, 4X i 2?X
definiEu
(4.5..11 prrl,na polja na kartict izmedju brojevd x, y i z. Naredba WRITE
IK obezbe_
djuje Stampanje brojnih v.ednosti promenljivih Ix, ry i IZ redom
gde je sleva
nadesno po opisima u FOnMAT-naredbi sa obeleZjem 41, Tako
simbol koji ukazujc' tla sc rarli o cclitu brojcvinl:r' 6e brojne
vrednosti promenljivih rx r rz bru Stampane po opleu 16, a promenrjive
I
Iy
35
34
2- jedno meato za znak broJa (znak negatlvnog broJa lzdaje se kao
po opisu I8. Kako brojna vr€dnost promenljlve rY eadrzl 5 simbola na kar-
simbol - , a.znak pozldvnog kao simbol b), i jedno meato za
ticl, a opis I8 odredJuJe polje od 8 aimbola, to 6e.tri simbola sa leve etra- decimalnu tadku.
ne polja biti nelakorlEdena za prlkazivanje broja I eluli6e za razmak iz'
Ako se za izdavanje vrednogtl realne promenljive koristi opis
medju brojeva na Etampanom dokumentu. SliEno razmatranje vaZi i za pro-
menljivu IZ. Stampani dokumenat 6e imati elededl lzgled Ek. d (4. 5. ?)
tada 6e brojna vrednost na izlazu bitl u obliku
xx)ooo(bbbxlo(xxbbb)o(x
gde Je
X - c{fra dekadnog brojno! sistema, r'n.d.rdr (( b )) iU
medJuprostor tri speclje
soecrial-
ni znak (-),
b - mediuProstor (blenko)'
gde je

4.5. 2. Opia meEovltih broteva 0 - mesto zaznak broja, I to: slmbol - za negativne brojeve, i sim-
bol b za Pozitivne brojeve,
MeEovitl broJ registruJe ee u memorlii u obliku pokretnog zateza. X - clfra dekadnog brojnog sistema,
Ako se za fzdavanJe vrednosti realne promenljlve korlsti opie d - broj decimalnih mesta,
Fk' d (4.5.5) k - ulcupan broj simbola,
Ukupan broj eimbola za lzdavanje brojne vrednosti sa opisom (4.5. 7)
tada 6e broJna vrednoet na izlazu bltl u obliku:
Je
k >d'+ ? (4.5.8)

Ako u oplslma (4.5.5) i (4.5. ?) broj k definiEe manji broj simbola


od onog koji zahteva zaple brojne vredno6ti, to 6e na predvidjenoj duZini

gde je 6 mesto za znak broJa, i to: elmbol - za negativne brojeve i sim- k blti izdate zvezdice (*).
bol b za pozitlvne brojeve. obuk (4.5.5) izdaje vrednostl promenljivih u
4.5. 3. Ople praznog pola
vldu celobroJnog i razlomljenog dela. celobrojni deo sadrZi maksimum k -
-d- tipografeko meato, ako je broj pozltivan, a k - d - 2 tlpografska
1
Razmak lzmedju brojeva, kao 5to smo ved videli, moZe se ostvaritl
meate, ako Je broJ negativan. Razlomlieni deo sadrZi d dekadnih cifara' predvldjanjem vedeg broja ceth u opisirna I, F iU E. Medjutim, opis
Prema tome, broi k je
nx (4.5.9)
klc+d+2 (4. s.6)
gde je
definlSe'na lzlazuprazno polje od n medjuprostora, tako da se ovim opl-

c - broj clfara celobroJnog dela broja, eom mbgu definleatl proizvoljni razmaci izmedju brojeva.

d - broJ cllara razl,om{enog dela broJa,


3?

36
Program zapisan na FORTRAN-Jeztku, prevodl ee na maEineld, Jezlk
Primer pre lzvrgevalja na radunaru. Ovo prevodjenje vr6i program za prevodJe_
nJe, u koJl kao ulaznl podacl ulaze naredbe trroRTRAN-programa, a lzLaz-
Nakarticieenalazebrojevil,XiYuslededemrasporedu: ne vellEine 8u nanedbe u maBlnekom Jezlku. Da bi progro- za prevodJenJe

a) od 1. do 5. kolone ceo broj I (opis I5)' doblo informac{u kada je zavrleno prevodJerlje I zadnJe naredbe FORTRAN-
b) od 6. do 12. kolone meEoviti broj X (opis F?' 2)' -programa, uvodi 8e naredba
c) od 13. do 24. kolone meEovitl broj Y (opis Efz' 5)' END (4.6.3)
Sastaviti program kojl Ce uneti zadate brojeve sa kartlce i Stampatl: koJa ae mora nalazltl na kraju svakog FORTRAN-programa.

RCAD{5rBl IrXrY 4.6.2. Prlmeri algoritama ea proetlm linijeH.m strukturama


8 FORltAr( l 5t F7.2rELa' 5 I
IIRITE(6r?l trXrY
7 fORilAT( r r, t!rlXlF?.2t2/.tEl?.51 Prlmer 1

Na JednoJ karticl se nalaze brojne vrednoeti promenljlvlh x1, x2, x3,


Zal=18,X=-24.5iY=0.3E-2O,stampanidokumenatlmaizgled
x4 I x5 rr obltku F?.3. IzraCunatl rezultat y po formuU
bbb 1 Sbbb- 24. 5qbbb0. 30000E -20 t - [t, + r2). x3 - r.] . . (4. 6.4)
", ",
rs rzx I.7.2tzx E12.5
Na lzlazu ltampatl zadate brojeve x1, I = l, 2, ... 5, 1 rezultat y.
FORTRAN-program lma elededl tzgled:
4. 6. Proste linijske algorltalqqkejlAlge

4.6, 1. Preklo ada po Progralau I flziEki kraj


programe
REAOl5r l0l Ilr12rISrX4rIS
l0 FoRilaT ( Fl.3 rF?.3 rF7.trF?.3rF7.3 t
omogu6uje zapis proetih llnlj- Y! | | Ilrxz l.X3-X4 l:txSrll
Doeada6nje izlaganje FORTRAN-jezika rRITC(6r ll I Xl rX2rXllr14r15rY
na I I I rF7.3rF9. 3tFj.) rF9.t tF9.3,819.? t
slrih algoritamsldh struktura' Medjutim' za korelrtan zapie algoritama I FORI{ATl
Slop
ukazivanja na zadnii algorltamski E'|{0
FORTRAN-jeziku nedostaje mogu6nost
Ovo 8e u FORTRA|'I-jeziku vr6i naredbom
korak u algoritmu.
(4.6. l) U naredbi FORMAT aa obeleZjem 11 promenljiva Xl se Stampe u
STOP
ietom obliku u koJem ge nalozl na karttci. Ostale ulazne veliCine se Stam-
ili paju u obltlil F9.3, Cime eu obezbedjena dva medjuproatora izmedju bro-
(4.6.2)
STOP n
jeve kojl se Etampaju. Rezuttaf,*Y se Etarrrpa u obliku El9. ?, 6ime je o-
gde je bezbedjen razmak od 5 medjuprostora u odnosu na brojnu vrednoct promen-
- sluZbena reE, koja ozna6ava kraj rada Programu'
po
STOP
{tve X5.
n - jednocifreni do Petocifreni ceo dekadni broj
bez znaka'

Da bi se
U jednom programu moZe 6e nalaziti viEe naredbi STOP'
je zavr6eno izvr6avanje programa'
omogu6io uvid kojom od viSe naredbi
(4'6' 2) na Stampaiu'
to je uveden oblik (4'6. 2), koji izdaje naredbu
39

38
4. ?. Razgranate linijske algoritamske strukture
Prlmer 2

- l{ x <1, lzra.unava l't/{ Niz naredbi koje dine prostu linijsku algoritamsku strukturu izvrga-
sastaviti program koji za zadatu vredno't
vaju se jedna za drugom u zapisanom redosledu. Kod razgranatih linijskih
po formull
algoritrimekih struktura, mora postoiati naredba kojom se redosled izvri:r-
y = to'11: 0,9994 + 0,5998 x + o, 1?03 ' x2 (4.6.5)
vanja naredbi u programu moZe promeniti' Ovakve naredbe se zovu uprav-
Neka je vrednortt argumenta x zadata od 1' do 6' kolone u obliku ljacke naredbe. Postoje dve vrste upravljadkih naredbi: uslovne i bezuslor -
F6..S.NaizlazuStampetivrednogtatgumentalvrednostlfunkcije(4.6.5) ne. Uslovne upravljadke naredbe vrie prelazak na naredbu sa zadatitn o-
beleZjem, ako je navedeni uslov ispunJen, a bezuslovne upravljatkc nar'':rl
'
sl. 4.6, 1. data je blok-shema algoritma'
u obliku 812,5. Na
be vr5e uvek prelazak na naredbu sa zadatim obeleZjem'

Vrednost aritmetiekog \ztaza *, moZe biti pozitivna, negativna ili


nula. Naredba uslovnog prelaska po vrednosti aritmetidkog izraza ima ob-
uk
IF( v )nr, nz, nr (4.7. r)
gde je
sI.4.6. I IF - sluZbena red, koja ukazuje da se radi o uslovnoj naredbi'
9 - aritmetith iztaz' a
Program na FORTRAN-Jeziku lna elede6l lzgled:
n1 - obeleZja izvrSnih naredbi u FORTRAN-Programu' i=I'2'3'
REA0I 5r l0l I
lo Naredba (4.?.1) ima sledede znadenje u zavisnosti od vrednosti arit-
-- FoRrlllF6.3l
v'o.sgsqro.5998tXlo.l?0!rri'2
IRtTEl6rl9l lrY metl6kog izraza:
l5 FORrArlr rrF6.3r2lr€12.51
sroP a) q I 0, pre6i na naredbu sa obeleZjem n1,
ENO
b) 9 = 0, predi na naredbu sa obeleZjem n2, i
Navedeni prlmerl iluetruju prdgrame saetavtJene po zadatim
algori- c) I I 0, predi na naredbu sa obeleZjem n3'
tmimasaProstlmlinijskimstrukturama.UtokuJednogiavr5avanjatakvog Kako vrednost aritmetiEkogizraza mora biti manja' jednaka ili ve6a
programa, svaka naredba ge izvrSi jedanput' Naredbe se izvr6avaju odoz- od nu1e, to zna6i da 6e se prelazak izvrSiti uvek na jedno od obeleZja
n1'
go prema dole, kako slede u zaplsanom nizu' Dolaekom na naredbu STOP neposredno ispod uslovne
nr ill nl. Odavde sledi da naredba koja se nalazi
prekida se dalji rad Po Programu'
progra- aritmetieke naredbe mora imati obeleZje.
Treba napomenuti da su nevedeni primerl zapisanu u obliku
Na sI.4. ?.1' prikazani su grafidki simboli uslovnih algoritamskih
Sva-
ma koji predstavlja kompletan zapie algoritma na'FORTRAN-jeziku' koraka koji odgovaraju naredbi (4. ?. 1). Po5to ova naredba omoguiuje tri
je to obja5njetto
ka naredba ovakvog programa bu5i se u jednu karticu kako
u odeljku 2.2.
a1
40

iz?azau zavlsnostl od vrednosti arltmetidkog lzraza, to ae u grafickom Brotevlxll12moguimatldvacelaltrldecl.roalnam€sta.Prematome,


prikazivanju moZe koristiti simbol prikazan na sI.4. 7. 2 koji v15e odgova- broJ 11 neka je bufen od l. do ?. kolone, a x2 od 8' do 14' kolone jedne
prtkazatl
ra mogu.dnostima naredbe (4. ?. l)' kfruco. UvodJaJem grsf,dkog obllkr ra sl.4'7'2, 'lgsrttrn se Dote
tao na gl. 4.?.3.

FORTRAN-Pro gram aastavlJen Po


algorltmu na eI.4. ?.3' ima lzgled

REAOl5rl00l Xlr12
100 FORilTT { Ft.:1, F7.3
'
tFlxl-x.z1 10r20r30
20 Y'XlrI2
nz n3 a0 ItlrEl6r200l Y
200 FOR||AT(' I rEl4.?l
sloP
t0 YrXl+I2
sI.4. ?. I sI.4. ?.2 G.0 ro 40
30 Y.XLlf,2
GO rO 40
ENO
4. ?.2. Bezuslovni Prelazak

Naredba IF omoguduje prelazak u zavisnosti od vrednosti aritmetld- sl.4. ?. 3


redosled
kog izraza. VrIo eesto u programlma treba bezuslovno promeniti
Iz gornjeg primera 8e vldl da Jb korl66enjem naredbe CtO TO izbeg-
izvrSavanja naredbi'
Ovo je omogu."".;"";t: nuto ponavljanje naredbe WRITE, poale svakog lzradunavanja promenlJive
(4.7.21 Y, kao I naredbe STOP za prekld rada po PrograEtu'
gde je Prlmer 2
GO TO - sluZbena ree, koja oznadava bezuslovni prelazak' 7'4, Eto ge mole izrazTti na
Funkcija y(x) je zadata na el'4'
n - obeleZje jedne izvr6ne FORTRAN-naredbe u programu'

4. ?.3. Primeri razgranatih ltnijskih algoritamskth atruktura

Primer I
Zazadate vrednosti x1 i x2 izra6unati y po formuli

* *' ako je xt 4 x2
[*' 'bko sl.4. 7.4
y ={xr xz 1" ,,, = ", slede6i naEin
ako je
L*,, *, x1)x2
42
43

Za -c9(x€-r
za -r<x{ 0
y(x) zs. 0(x< r
za r<x<+@
Ze d < 999 zadatlh vrednosti argumenata xi, x2,.. . ; Xa , izra6unati vredno-
stt funkcije y(x).
i,
a) Opis ulaznih podataka
i,,

Neka prva kartica sa uleznlm-podacima sadrZl od l. do 3.kolone broj


n, aod4.do12, broj r se4declmelnamesta. Izaovekarticedolazi n
kertica i na svakoj od njih je bu6ena jedna vrednost argumenta x od 1. do
9. kolohe, prt Eemu aigument x moZe imati 3 cela 14 declmalna mesta'
b) Raepored EtampnnJa reeultata

Na lzlazu formirati Etampanl dokumenat, kojl 6e ae eastojati od ta-


bele:
!(1 y(xr )

x2 y(xz)

-" ,,r",
FORTRAN-program sastavlJen po algoritmu na sI.4. ?.5 ima slededi
izgled:
R€aol5rlo0l NrR sl. 4. ?. 5
tOO FORI{ATlI3rF9.4l
80 lFlNl l0r2Orl0 Razgranata algoritamska struktura na s1.4,7.5 nalazi se u okviru cik-
lO REAO|5r20Ol x
luea, kojl Je oznaden na slici sa C. Izlazni kriterijum ovog ciklusa sadrZi
200 FoRriAr I F9.41
lFlIfRl 3Or30r{0 ispitivanje promenljive n, kojom se kontrolise broj izradunavanja funkcije
40 IFIXt tOr50r60
60 tF(I-Rl 3Or30r70 y(x). Kada se lzraduna vrednost funkcije i za zadnju zadatu vrednost argu-
lQ l:lt-f,1:r*Q.i
90 l{RITE(6r3001 XrY menta, izla,zl se iz ciklusa i prekida se dalji rad po programu.
3O0 FORilATI t . tF9.4rEz0.tI Za n=4 i t-12, izlazni rezultati po ovom programu se Stampaju u ob-
ilrN- I
GO TO 80 liku tabele:
20 sToP
,o Y-0 8.1240 o.0
GO TO 90
!Q fr-(f,rr!-X$21..0.5 -l 5. oodo o.o
co T0 e0 -2. 0000 -0.1r83216€ 02
ENO
t7.o+ao 0.500479tE ol
4.1

45
gdc' jr. u prvoj koloni Stampana vrednoet argumenta, a u drugoj odgovaraju- moZe se kraie pieati u obliku
6a vrednost funkcije.
j FoRMAT(3 (r2, F6.4) )

4.8. Dalje mogu6nosti naredbe FORMAT


4.8.3. Prelazak na novi slog
Opis ulaznog, odnosno izlaznog sloga u FORMAT-naredbi moZe u ne-
Ako promenljive u listi naredbe READ dobijajurbrojne vrednosti
kim primerima biti veoma glomazan. U ovom odeljku bice razmotrene sve iz
viEe ulaznih slogova (sa vi6e kartica), tada je potrebno u FORMAT-nared_
mogu€nosti.naredbe FoRMAT koje dozvoljavaju kraci zapis opisa ulaznih,
bi oznaEiti kraj jednog ulaznog sloga r podetak novog ulaznog sroga. sli.na
odnosno izlaznih polja jednog sloga.
situacija na'taje kada se vrednostr promenljivlh u listilaredbe wRITE
ze-
4.8. l. Ponavljanje jednog oPisa le izdati u viSe izlaznih slogova (novih redova). Ova informaclja, o kraju
jednog ulaznog, odnosno lzlaznog, eloga I o podetku slede6eg zadaje ee.slm-
VrIo de6to vi6e uzastopnih polja irnaju isti ogir;. Da bi se izbeglo u-
bo10m kosa crta (/) u naredbi FORMAT. Tako naredba FORMAT moze tna-
zastopno ponavljanje istog opisa u FORMAT-naredbi, mogu se opisi pisati
tl sledeCi izgled:
u obliku
nIk j FORMAT(slog, I stog2) (4.8. 3)
nFk. d (4.8. r) U opienoj naredbi (4. 8. g) kosa crta oznadava kraj ulaznog elogas, kada je
nEk. d ova naredba prldruZena izvr5noj ulaznoj naredbi, ili kraj izJ.aznog slogal,
je n ceo neozna6en broj koji pokazuje koliko puta se ponavlia opis ko- kada je ova naredba prldruZena izvr5noj izl,aznoj naredbi.
gde
ji sledi. Tako, umesto niza oPisa: ViSe kosih crta navedenih jedna za drugom imaju slede6e znadenje:

FORMAT(F?. 2, F7 . 2,I4, 14, 14)


je n kosih crta navedeno na poCetku, lli na kraju naredbe
a) Ako
FORMAT, tada ce n uraznih slogova brti preskoieno, odnosno izdato n
moZe se pisati:
praznih elogova na izlazu.
FORMAT(2F?.2,3l4l
b) Ako se n uzastopnih kosih crta nalazi izmedju dva sloga, tada 6e
4.8.2. Ponavlianje viSe oPisa na ulazu biti preskoden 1-1 nrezni slog, odnosno na rzrazu 6e biti izdat
n-l prazan slog.
Ako se vi5e opiea ponavlja, tada se ovi opisi mogu pisati izmedju ot- Tako, naredba
vorene i zatvorene male zagrade, tj'
FORMAT(slo91 / / / sLog2 | (4.8. 4l
n( list a) (4.8.2)
ima sledede znadenje:
gde je
lista - spisak opisa medju sobom razdvojenih zarezima, a) Na ulazu: sa prve kartice dita se slog1, i prva kosa crta oznaEava
n- ceo neozna6en broj koji ukazuje na broj ponavljanja opisa na- kraj ovog sloga. Druga i tre6a kosa crta oznadavaju prolazak druge i treie
vedenih u ligti. Tako, niz oPisa kartice bez ditanja, a zatim se dita slog2 sa detvrte kartice.
b) Na lzlazu: u prqyom redu ltampa se slog, , a zatim prva kosa crta
j FORIVIAT(I2, F6. 4, 12, F 6. tl, 12, F6. 4)
oznadava kraj ovog l;hrrog rloga. Druga i tre€a kqse crte prgizy0de p0
47
46

jedan novi red, a zatim se Stampa slog2 u detvrtom redu. ovo


objaSnJenje 4,8,4. Yeza izmedju oplsa i liste
u LzTez'
je dato ne vodedi pri tome raduna o Prvom' komandnbm' qimbolu Posmatrajmo FORMAT-naredbu koja sleva na desno sadrZi n opisa
nom slogu. Medjutim, slogr i slogz moraju imati' iao prvi simbol'ko-
' brojnih podataka. Ulazno-izlazna naredba, kojoj je pridruZena ovakva FOR-
Stampa€u' Deistvo ovog
mandni simbol za vertikalno pomeranje papira na MAT-naredba, neka sadrZi u listi m imena promenljivih. Ovde su mogu-
FORMAT'
simbola je nezavisno od opisanog dejstva kosih crta u 4aredbi Ca tri sludaja:
Primer 1) Broj opisa u FORMAT-naredbi jednak je broju promenljivih u lis-
i dodeljuje ti, tj. m = n. U ovom sludaju svakoj promenljivoj u listi odgovara jedan
Saotavttl program koji celobrojnim promenljivim I' J K
opis brojnog podatka u FoRMAT-naredbi, Dodeljivanjem brojnih vrednosti
promenlilvlm A' B' C i D
brojne vrednostl 8a jedne kartice, a realnim
avim promenljivim u listi, po opisima u FOnMAT-naredbi, sleva nadesno,
dodeljuje brojne vrednosti sa druge ka-
t lekoriSdeni su avi navedeni opisi u FORMAT-naredbi.
I J K kartice. Dodeljene brojne vrednosti
Tako, naredbe
promenljivim 6tarnpat! na paralelnom
I5 t5 I5
Stampadu, tako da su bojne vrednosti READ(5, TO) AI, M4, K2, JOT
promenlJivih I, J i K u jednom,a Pro- 10 FORMAT(F?.3,3I4)
/A c D menljivih A, B, C iD u drugom redu lspunjavaju uslov da je broj promenljivih (4) u listi, jednak broju opisa (4)
B
Etamianog dokumenta. Opisi pojedi - u FORMAT-naredbi.
r7.2 E14.7 =72 E14J nih polja,i njlhov raspored na karti-
2) Broj opisa u FORMAT-naredbi je ve6i od broja promenljivih u li-
cama prikazani su na sl.4:8. t'
sI.4. 8. I Bti, tj. n ) m. U ovom sludaju svakoj promenljivoj u listi bi6e pridruZen
Izgled FORTRAN-Programa Prl-
jedan opis u FORMAT-naredbi redom sleya nadesno, a ostatak opisa
kazan je nlZe: (n-m), u FORMAT-naredbi ne6e biti iskorilden.
READI 5t lOl I I J rKr A rBrCrO Ako se prethodno navedenoi READ-naredbi pridruZi druga FORI\{AT-
lo FoRHAT( t11l2lF7.2 rEl{.71 I
tlR tTEl 6r2Ol I I J1K1A181CrD -naredba, tako da naredbe lmaju izgled:
20 FOR;{ATl. .r3ll0/. I t2lF7.2r2Xr€l{.7r2Xll
5 TOP
READ(5, 1O)AI, M4, K2, JOT
ENO
10 FORMAT(F?, 3, 314,Erz. 5,12)
Tako za ulazne Podatke
tada 6e promenljivoj A1 biti pridruZen opis F?.3, promenljivim M4,K2 i
I=386?; J=-4005; K=1100?
C=-0,56; D=4, 13i06' l0-r2 JOT opis 14, a opisi E12.5 i 12 ne6e se koristiti.
A=312,45; B=-42,58' 10t? ;
Prema tome, ako u FORMAT-naredbi Postoji veCi broj opisa nego
Etampani dokument ima obUk
6to to zahteva ligta naredbe READ, odnosno WRITE, tada ce biti iskoriEce-
no samo onollko opisa, sleva nadesno, koliko ima promenljivih u listi'
1867 -(005 l 1007
772.45 -0.4258000E l9 -0.56 0.{137O60F-l I 3) Broj opisa u FORMAT-naredbi je manji od broja promenljivih u
Usti, tJ. n ( m. Tada treba razlikovati dva elucaja:
48r 49

a) Ako izmedju epoljne otvorene i zatvorene zagrade FORMAT-riared-


be, koje ae zovu zagrade nultog nivoa, ne Postoje unutra6nje zagrade, tada (4. 8.6)
6e posle prolaska kroz sve opise, sleva nadeeno, do€i do prelaska na novi 0 I 2 2. l, 0-
slog i ponovo 6e se koristiti isti opisi, od podetka FOBMAT-naredbe. Tako
ako naredba sadrii 3 opisa, prvi slog se obrazuje od navedena 3 opisa, a
slede6i slogovi se ponavljaju prema potrebi liste, ulazne odnoeno lzlazne,
nar€dbe, tj. Primer
FORMAT (op1s1, opis2, opis3 ) (4.8.5)
Na prvoj kartlcl ulaznlh podataka nalaze ee brojne vrednosti promen-
rjivih N IE ea opieima 15 i El2.s. Iza ove kartice slede tri kartice na ko-
Jima ee nalaze brojevt od prve do devete kolone, sa opisom Fg. 4 koje tre _
Primer ba dodelltl promenljivim Xl, X2 I X3. Naredbe koje obezbedluju unoEenje
ova"lndh podataka mogu ae zapiaati u ubllku
Neka su brojne vrednosti promenljivih A, B I C zadate na tri kartice
sa opisom Fl7.2. Tada se dodeljivanje ovih brojnih vrednostl promenljlvim READ(5,40)N, E, Xl, X2, X3
moZe izvr5iti pomodu naredbi: 40 FORMAT(Is, E12.5/(F9.4) )
Navedena FORMAT-naredba definiFe prvl ulaznl slog sa opisima IS
READ(5, 20)A, B, C
i Ef2. 5, I 4. Kraj prrog sloga je de-
eledeGe ulazne alogove sa opisom tr'9.
20 FORMAT(F7.2)
finiaan koeom crtom, a ostali ulazni slogovi su definisani izmedju otvore-
Naredba 20 definiSe ulazni slog od jednog polja sa opisom F?' 2, i u ne zagrade pryog nivoe i zatvorene zagrade nultog nivoa. Broj ovih slogo-
podetku dodeljuje brojnu vrednost promenljivoi A. Iza ovoga, Po5to 6u i8- va zavisl od broJe promenljivih u listi READ naredbe. U navedenom prime-
crp€ni svi opisi u FoRMAT-naredbi, dolazi do formiranja novog ulaznog ru bi6e formlrana tri ovakva eloga.
6loga, a to znadi prelazak na Citanje slede6e kartice pod oplsom F7'2' a
brojha vrednost se dodeljuje promenljivoj B. Na isti nadin se prelazl na 4.8.5. Teket u FORMAT-naredbl
slede6u karticu i dodeljuje se brojna vrednost promenljivoj C'
U doaadaBnJem izlaganju vldeli emo kako ge unose i lzdaju brojni po-
b) Ako izmedju spoljne otvorene i zatvorene zagrade, FORMAT-na- daci. MedJutlm, vellkl broj brojnih podataka na izlazu 6ini nepregledntm
redbe, postoje unutra5nje zagrade koje mogu biti prvog I drugog nivoa' ta- itampant dokumeat, Zato je pogodno imati mogudnost tekstuelnog obja6nje-
da 6e posle prolaska kroz sve opise, sleva nadesno, do6i do prelaska na nJa Stampanlh rezultata. Da bl ge ovo omogu6ilo, u FORMAT-naredbi se
slede6i slog i do ponavljanja opisa sleva nadeeno, koji 6e nalaze izmedju moZe navoditi tekst. Tekst je sastavljen od nlza elmbola: od slova, clfara
zatvorene zagrade nultog nivoa i najbliZe otvorene zagrade prvog nivoa' ili specijalnih znakova. ovakav niz simboll zove se tekstuelna konstanta i-
Oznadimo li dekadnim ciframa O' I i2 otvorene, a sa 0', l"i'2'za' li literal. Broj simbola literela zov€ ae dullna literala.
tvorene zagrade, nultog, prvog i drugog nivoa, tada Ce biti Literal ge moZe definisatl na.dva nalina, kao
- niz simbola zapisanih izmedju apostrofa, ili
- pomoCu poaebnog II opiea.
51
50

MAT-naredbi, 6itl zamenien eadrZajem odgovarajudeg polja u ulaznom


Literal definisan izmedju apostrofa predstavlja niz simbola od kojih
elogu.
je prvi i zadnji simbol apostrof, tj.
Ako FORMAT-naredba gadrZi samo literale i opise praznih polja,
' Iiteral' (4. 8. ?)
bez opisa brojnih podataka, tada naredba ulaza, odnosno.izlaza, kojoj se
gde je
pridruiuje ovakva FORMAT-naredba, ne sadrZi listu.
- simboi FoRTRAN-jezika,
literal - tekst sastavljen od glova, cifara ili specijalnih znakova' Primer
Tako moZe biti zaPisan literal
,VREDNOSi FUNKCIJE'
Sastavitiprogram koji izraEunava vrednost na oFnovu zadate cene i
koliEine. Na svakoj kartici nalaze se tri polja: ptwo polje sadrZi 5 kolona,
U okviru niza simbola, koji Eine literal u (4. S' ?), ne moZe ee nala- 1 od 2. do 5. kolone buBi se Sifra robe, a prva kolona ostaje nebilSena. Dru-

ziti Jedan specljalni znak apostrof. Medjutim, ako


se zeii naveEti apostrof, go polje eadrZi cenu robe, i opisuje se sa opisom F10.2. Tre6e polje sadr-
u olwlru llterala, moreiu ee plsati dva apostrofa (il)' Zi koliEinu robe i opieuje se sa FlO.2. Broj ovakvih kartlca moZe biti pro-
Drugi oblik navodJenja teksta u FORMAT-naredbi vr5i se pomo6u o- izvoljan, a zadnja kartica u paketu, u polju za cenu, ima buSenu vrednost
piea nula (to moZe biti i prazna kartica). Za svaku karticu izratunati vrednost,
nHllteral (4.8. 8)
kao proizvod cene i kolidine, a na kraju obrade svih kartica Stampati sumu
gde je avih pojedinaEnih vrednosti.
n - ceo neoznaEen broj, koji ukazuje na broj simbola literala'
H - €imbol'FORTRAN-jezika, koji ukazuje de ee radi o oplsu
*)
tekgta,
literal - tekst eaetavljen od elova, cifara i specljalnlh znakova'

Tako ee moZe Pleati


1THVREDNOST FUNKCIJE

Kao Eto ee navodjenje teksta izmedju apoetrofa ne zahteva plsa-


vldi,
(4' 8' 8)'
nJe broja elmbola koji 6ine tekat, kao 6to Je to slulaj ea opieom
MedJutim, aa gledlEta kori36enJa oba oplea lmaJu iato zna6enje:
a) Ako jti FORMAT-naredba, u kojoi ee nalazl llteral, priduriena na-
redbi iziaza (Wnttn), tada 6i navedeni niz simbola 6inttl pol.je u lzlaznom
slogunaonommestunakoJemeenqlazlllteral,elevanadesno,uFoRMAT-
-naredbl.
b) Ako je FORMAT-narcdba, u kojoj se nalazl llteral,pridruZerra na-
redbi ulaza (READ), tada 6e navedenl nlz aimbola, kojl Etnl literal u FoR-

sI.4. 8. 2
ijffi; Holerlt je pronalaza6 uredjaja zh bulenJe kartlca, i po njego-
vom imenu je ureto slovo H za opie teligta.
53
52
je reEavan u matematlci nekoliko stotina godlna unazed, i saetojao se u iz-
Na s1.4.8,2 data je Eema algorltma, gde su uvedene slede6e oznake: nalatenju formula po kojlma se mogu izracunavatt tabuce za elementarne
C - cena, funkctje. To ae najEeS6e vr6ilo razvfientem funkcije u stepene redove i.li
K - koliEina, prlmenom iteraclonih formula. Poelednjlh godina za lzradunavanje elemen-
V - vrednost, tranlh funkclja llroko se kortste ortogonalni poltnomt, a posebno polinomi
U - ukupna vrednoat. Cebldeva.
FORTRAN-program ima 8lede61 lzgled: RazvoJ elelitronaklh radunaldh maBina posebno je doveo do razvoja
raznlh algoritama, koJlma ee mole lzraEuneti vrednoet elementarne funk-
HRITEI6'IO,
fO FORilAfl I ISIFRAT rtXr rCEI{Ar r3Ir tKCLICIt{A'r{Ir TVR8DIOST'/l c$e sa zadatom tadno66u.
UKUPN0'0 je f(r) elemenatarna funkcija, Ciju vrednost treba odrediti za
Neka
20 REAOI5T3OI C€NArA(OL
30 FORilAT{ lXt r5tt*t t2fLO.2tFLZ.2l zadatu vred[oat argumenta. Neka je g(x) aritmetidki lzraz po kojem se vr-
n-(cENAl 4or5or{o
40 VREO.CENA.AROL 6l prlblllno izradunavanje fttrkcije f(x), tako da Je
llRtIEl 6r 30l CENATAXOL rYRED
UKUPNO.UKUPilOTVREII f(r) s g(x) (4. e. l)
GO Tn 20
50 llRlIEl6r6Ol UKUPTIO
60 FORfi Arl lgXr 18( lH- I /l9Xr rU!(UPNOt'Fl2'2/l Na raEunaru ee vr6l lzradunavanJe funkcije f(x) prlmenom aproksimacione
STOP I formule g(x). Apaolutna gre6ka prl ovon izraEunavanJu je
CNO

Za ula,zrrle podatke E=lf(x)-g(x)l (4.9.2',t

AclS t2.oo io.oo a relauvna gre6ka Je odredjena sa


DE36 t35.OO 12.50
FAt2 15.50 4.?O
e rt*L:St-ll
aK50 t.75 300.00 =| (4. 9. 3)
BB2l 200.oo 45.50
o.00 Algoritrnl za izradunavanje elementarnih funkcija nalaze ae u memo-
gde jedan Etarnpani red odgovara sadrzaJu Jedne karttce, Izlaznl rezultetl riji ra6unara, i po pozivu se koriste za izradunavanje. Poziv algoritma za
6e blti u obliku izra6unavanje elementarne firnkciJe u FORTRAN-jeziku vrEi se ee

funkcija( * ) (4.9.4)
SIFRA CE'IIA KOL ICTT'IA VREOI{OST
gde je
ACls 12.00 36.00 4t2.O0
DE3{ l35.o0 l?.50 168t.50 funkcija - propleano lme eleme-ntarne funkclje,
FAl2 15.50 4.70 12,85 V - arltmetiEld, Tzraz, diJa ae vrednost uzima kao argument
aK50 r.75 3oO.OO 525.OO
8E2l 200.oo 45.rO 9l 00.00 tunkclJe,
ur(uPllo I t8 l?. 35
Funkclja zapieana u obliku (4,9.4) moZe se nala?itl kao argument u
arltmetlEkom lzrazu. Izra6unavanje funkcije predstavlja operaciju najvi-
4. 9. Elementarne funkciie
Eeg priorlteta u aritmetlCkom lzrazu. Proplsana lmena funkclja predstav-
U mnogim matematldkim i tehnidldm zadaclma zahteva te izra€una- ljaju uoblEajene matemattdke oznake ovih funkclja. Od toga ee odatupa aa-
vatrje elementarnih funkclja za zadate vrednosu argumenata'Ovaj problem mo u sludajevima kad to ne odgovara uvedenim konvencljama FORTRAN-
-Jezlke.
il 55

konvenciji FORTRAN-jezika ukazuje na celobrojne vrednosti, to je


Vremene izraCunavanja eletnentendh funkcija, navedena u daljem ispred
uobidajene oznake funkcije, u FORTRAN_jeziku dodato slovo
tekstu, odnose se na radunar IBM-360/44 bez specijalnih regletara, kojl- A.
ma ge moZe povedati brzina rada raEunara. Argument u logaritamskim funkcijama (4.9. l0) i (4.9. 11)mora ispu_
njavati uslov:
4.9. l. Eksponencijalna funkcija
v>0 (4. s. t2l
Eksponericijalna funkelja (ev ) piEe se u obliku Relativna greEka pri izradunavanju funkcije je
EXP( v ) (4. e.5) € < 0, 3?2. l0-8 (4. e. 13)
Srednje vreme izradunavanja logaritamske funkcije iznosi 230
gde lzracunata vrednost ergumenta +, mora blri realan broJ, a vrednoet s.sek.
funkciJe b16e takodje realan broJ. Vrednost argumenta mora zadovoljavatl
4.9.3. Kvadratni koren
uBlov
* ( 1?4,6?3 (4. s.6)
Izradunavanje kvadratnog korena (y'i) za zadatu vrednost argumen-
Vrednost argu.menta koJa ne zadovoljavd udov (4.9.6) dovodi do broj- ta, piSe se sa
ne vrednostl funkclje koja ne moZe biti registrovana u reglstru memorije SQRT( v ) (4. s. 14)
(prelazi opseg iealnlh brojeva). Ako je
gde su izradunate vrednosti argumenta i funkcije rearni brojevi. vrednbst
v <- 180, 218 (4. 9. ?) argumenta mora ispunjavati uslov

onda se za vrednoet funkclje uzlma nula. Ako je v>0 (4. s. l5)


lvl<o,s?3.10-8 (4. e.8) Relativna gre5ka pri izradunavanju kvadratnog korena iznosi

vrednost funkcije je l. Relativna greSka ovako lzradunate funkclje iznosi € <0,298.10-? (4. s.16)

E (0, 18?. 10-6 (4. e. e) Srednje vreme izradunavanja kvadratnog korena iznosi oko 140
s.sek.
Ranije smo videli da se kvadratni koren mogao izraeunati preko ope_
Srednje vreme lzradunavanja eksponecijalne funkcije iznosi oko 310 4sek.
^acije stepenovanja, tj.
4, 9. 2. Logaritameka funkcija
(*)**0.5 14.9.17)
Logaritamska funkcija se pl5e u obliku Medjutim, ovde treba imati u vidu da se izradunavanje stepena (4.9.171na
ALOG(q) (4. e. l0) radunaru vrii kori5denjem logaritmovanja i antilogaritmovanja. prema to_
ako se radl o prirodnom Iogaritmu (rnv ) ili me, oblik (4.9. l7) je isto Sto i

ALOGIo( * ) (4. 9. l 1) EXP (0.s * Ar,oc(e)) (4.9.18)


ako ee radi o dekadnom logaritmu (log'y)' Izraeunate vrednosti argumenta Kako se izrazorrr (4.9. lg) poziva logaritarnska funkcija, dije vreme
i funkcije eu reali'd brojevi. Kako naziv logaritamske funkcije, u uobidaje- izvrSavanja iznosi 230 psek, i eksponencijalna funkcija, dije vreme izvr_
noj matematidkoj notaciji, podinje slovom L, a ovo slovo po ullutra5njoj Sivanja iznosi 310 Esek, to 6e izradunavanje kvadratnog korena trajati
56
51

oko 540 rrsek. Odavde 8e vidi je izraEunavanje kvadratnog korena pre-


da
a srednje vreme izvr6avanja oko 200 pgek.
ko funkcije (4.9. 14) 4 puta brZe nego preko operacije stepenovanja (4'9'l?'
c) Trigonometrijska funkclja tgV piSe se u obliku
4. 9. 4. APsolutna vrednost
TAN(*) (4.9.26)

Apsolutna vrednogt aritmetidkog Lzraza( I'r'I ) pi$e se sa gde mora biti ispunJen uslov (4.9. 22), pri demu vrednost argumer$a ne

ABS('I' ) (4' e' le) eme bltl

gde su izraEunate vrednosti argumenta i funkcije realni brojevi' **(r. . |)" {4.9.2?)
Ako je izradunata vrednost argumenta ceo broj, apsolutna vrednost gde je k ceo broj.

se pi6e u obliku Relativna gre6ka pri izraCunavanju tangesa je


- IABS (v ) (4' e' 20)
c{1, ?4.10-8 (4.9.28)
pri 6emu je i vrednost funkcije ceo broj. Za ovtt funkciju Ee ne postavljaju
a sr€dnje vreme izvrEavanja oko 22O y.eek.
ogranidenja na vrednosti argumenta'
4 sek' d) Trlgonometrljska funkcija ctgv pi6e se u obllku
Srednje vreme dobijanja apsolutne vredngsti broja iznosi oko
coTAN( { ) (4.9.29)
4. 9. 5. Trlgonornetrijske funkclje gde mora bltl lepunjen uelov (4.9.22), pri 6emu vrednoet argumenta ne
gme biti
Kod svih trigonometrijskih funkclja izrarunate vrednostl argumenta
*^r kn (4.9.30)
i fuikcije su realnl brojevi. Argument trigonometrijske fu[kciJe mora biti
gde je k ceo broj.
zadat u radijanima'
Relatlvna gre6ka prl tzra6unavanju kotangensa je
a) Trigonometrijska funkcija sini pi6e se u obliku
a1|.74. lo-8 (4. e. 31)
SIN( V ) (4. s .2tl a srednje vreme izvrBavanja oko 227 ueek.
gde mora biti isPunjen uslov
(4. e.22) 4. 9. 6, Inverzne trigonometrljske fun*ciJe
lvlca, z3s.1o'
Relativna gre5ka, pri izra6unavanju funkcije, je Kod svih inverznlh trigonometrijskih funkcija izraEunate vrednoeti
(4. e.23) argumenta I funkc{e eu realni broJevl.
c < 0, 372. t0-8
a srednje vreme izvrSavanja oko 200 psek' a) lnverzna sinuana funkcija (arcgln v I se pl6e u obllku

b) Trigonometrtjska funkcija cosv se pi5e u obliku ARSIN (V) (4. e.321

(4.9.241 gde mora bltl lepunjen uslw


cos(v )

gde mora biti ispunjen uslov (4' 9. 22). Relativna gre5ka prl izradunavanju lv lrt (4.9. 33)
Relatlvna greSka prl lzra6unavanju funkciJe Je
koslnusne funkcije je
e ( 0,298' l0-t (.r.9.25) e{0,3?2' l0-E (4.9.34)
I

5E
l
59
a srednje vreme izvr5avanja oko 310 &sek.
c) Hiperbolidna tangensna funkcija (tgh V ) pi5e se u obliku
b) Inverzna kosinusna funkcija (alccos v ) pi6e se u oblilcr
TANH( v ) (4.s.42)
ARCOS( v) (4. e, 3s)
gde izradunata vrednost argumenta moze biti ma koji realan broj. Rerativ-
gde mora blti lspunJen uslorr-(4.9.33). Relativna greEka je ista kao kod in- na gre5ka pri izradunavanju funkcije je
verzne sinusne funkcije (4.9.341, a srednje vreme izvr6avanja iznosi oko
€ < o, ?45. 10-8 (4. 9.43)
325 psek.
a srednje vreme izvrEavanja zavisi od vrednosti argumenta i kre6e se od
c) Inverzna funkcija tangenea (arctg V ).p15e ee u obllku
90 do 450 rsek.
ATAN (e) (4. e.36)
gde lzracunata vrednost argumenta moZe blti ma koJl realau broj. Relativ- Primer
ne gredka pri izracunavanJu funkc{e je
Na sedam kartica je zadato ? vrednosti za argument x, sa opi.som
e(0, ?45.10-6 (4. 9. 37) F8. 4. Izradunati vrednosti funkcija
a srednje vreme izvrBavanJa oko 165 psek.
y' = I -e-rsin2x+log(coszx).tgl
4.9. ?. Hiperbolldne funkc{e ,x (1ft)+
y, = arcsin tnlxl. arctgx
Kod svih hiperboUtdh funkc[a izradunete vrednogti argumenta i fun- y, = y'Jr -tfril'+ sinhx - 2coshx
kc{e su realnl brojevi.
i Btampati u obliku tabele.
a) Hlperbolldna slnuana funkctja (stnh V ) piEe ae u obllkra FORTRAN-program u ovom eludaju irna izgled:
srNH( e ) (4. e. 38) t{RItEt6,lo0t
100 F0R|{AI{ . I r 14X1 rX. r l4Xr' yl. rl5Xr.y2r
gde mora biti iepunJen ualov I=0 I l5Xr . yr. t I
l0 REAO( 5t200, x
(4. e. 3e) 200 F0RHAT(F8.4t
lvl(r?4,6?3 vf = f .-Exl(__X, iSlN{ 2..X1 +ALOGtO(COS t X +rZ |TAN(
Relatlvna gre6ka pri lzraCunavardu funkcije je y2 = ARstil(x/loo.l+ALoctleS(xit*ArAil(xtt _-} .--..,..r
xI
y3 : SeRTtABS{.1._rANHtxf
ltRtTEl6r:t001 xr Ylr Y2t Y3fiiinnrxt_2.*cosH(xt
r
e<0,149.10-? (4. 9. 40)
_300 FoRr{ATt, . rF8.4ltl1ltii.tt
a srednje vreme izvr6avanja oko 460 ssek. I = I+l
IFI I-Il lOr20rl0
b) Hiperboltdna kosinusna funkcija (coshv ) pi5e se u obliku 20 sroP
END

cosH( { ) (4.9.4r\ IzLazni rezultati su Stampani u obliku tabele


x Yl Y2 Y3
gde mora biti ispunjen uslov (4.9.39), a relativna gre5ka je ieta kao kod
-75.t42t -o.5E284798 12 _0.7584949E ol
-0.7888761E 33
hiperbolllne sinusne funkcije (4.9.40). Srednje vreme izvrSavanja iznosi -34.2885 -0.3989898E 15 _0.57991888 0l
-0. l16?8758 l6
-28.oo12 -0.i{87e51€ lz _o. _o.stssiiie 0t -0.2176315E r3
oko 485 p.sek. -2.t4to _0.erloe55€ ol _o.zsiroile
rol6irtE 0l -o.t42?1BtE
0.5604 0.3ell?scE 00 o0 -0.1035359E 0l
02
5.zoza 0..?z2s44sE or o.ziisilir 0t -0. e08e070E 02
17.3333 0.(72891rE 02 0.44;o7i7E 0l -0.16854888 08
{. 10. Niredbe promenljivog bezuslovnog prelaska
61

Uslovns naredba prelaeke daje moguCnost grananja programa Ako llsta u (4. 10.2) sadrZi m obelezja, sreva nadesno oznadenrh sa
u trl
razlidite grane, pri 6emu je evaka pd njih usrovljena vrednosdu aritmetid- rr,o2,...1'6 tada promenljiva
i! mora imatl jednu od vrednosti zapiea_
koglztaza. Vrednost aritmetidkog izraza se ispituje nih kao obeleija nr, nz 1...,n6, u trenutku izvrBavanja
da Ii je manja, jedna_ naredbe 14, ro,z).
ka ili ve6a od nule. pored ovakve naredbe uslovnog prelaska, postoji Izvr6avanje ove naredbe prouzrokuje prerazak na naredbu
i na- sa obererjem do_
redba po kojoj ee prelazak vr5i po brojnoj vrednosti promenljive.
Ovu na-
deljenim promenljivoj
i. promenljivoj i moie se dodeliti obelezje u ma
redbu 6emo zvati naredba promenljivog bezuslovnog prela'ka. kojem dehi programa naredbom
opSti oblik
ove naredbe je ASSIGN n TO i (4. 10.3)
GO TO (Uete),t (4. 10. t) gde je
gde je -
ASSIGN sluZbena red, i oznadava dodeljlvanje vrednosti obeleZja
GO TO - slulbena red, i oznaEava nafedbu prelaeka, promenljivoj,
lieta - epieak obelezJa izvr5nrh naredbt u programu medju sobom n - obeleZje izvrEne FORTRAN_naredbe, a
razdvojenlh zal"ezlmE, i - ime celobrojne promenljive.
i - irne celobolne promenljlvg.
Neka llsta u (4.10. l) sadrri m obelezja, eleva nadesno oznadenlh
sa nr, n2, . . . , n6, deJetvo ner€dbe (4. 10. l) je dlede6e:
a) Ako je brojna vrednost promenllve I = k, a k € [], m] , onda Ce
se lzvrdltl prelazak na naredbu ea obelelJem n1.

irt
ri I
b) Ako je brojna vrednoat promenlJtveI = p,a pd tl,ml , tada Ce se
pre6l na naredbu koja aledi neposredno lze naredbe (4. 10. l) u programu.
Na sI.4. 10. I prikazana su grananJa koJa se vr6e naredbom (4. f0. l).
Kako je ovakav graftEld prikaz nepotrebno glozen uveden je odgovarajucl
prosttji grafldld prlkaz (sl. 4. 10. 2]..
nr n/
u FoRTRAN-jeziku poetojt r elternatrvni obrrk naredbe promenljivog NAREDBA sI.4. 10. 2
bezuslovnog prelaska, koJl se pi5e sI.4. 10. r

GO TO i, (lista) (4. to.2)


Dejatvo naredbe (4. f0. g) je elede6e: obelertrJe n(
gde je
dodeljuJe ae celobroJnoj promenljrvoj
ltr, trr,...,,r.l
GO TO - eluZbena red, I oznadava neredbu prelaaka, !. ovae je vazno imatr u vrdu razriku
i celog broja. vrednost obelerja ne more biti dodeljena
izmedju obelezja
i - lme celobrojne promenljive, a promenllvoJ! ako ge koristi aritmetidka naredba
Ueta - spleak obeleZJa izvrdnih naredbi u programu medju sobonr
razdvojenlh zarezlma. t=n ({.10.4)
Razlog za ovo je interno predstavljanje informaclja
u radunaru. ObeleZje
kao lnformactja u ra.unaru nlje ceo broj nad kojrm
se mogu rzvoditi arit-
@
63

metlEke operacije, ve6 adresa koja jednozna6no ukazuje na Jednu naredbu'


Zato 1e u FORTRAN-jeziku uvedena posebna naredba (4. f0.3), kojom se

promenljivoj moZe dodeliti vrednost obeleZJa. Medjutim, u naredbi {4.10.1)


promenulvoj I moZe se dodellti brojna vrednost sa ulaza ill aritmetidkom
naredbom. Prema tome, naredba (4.10. l) jeste pogodnlja za kori66enje u
programima, nego naredba (4. 10. 2).

Prlmer

Na n kartica zadate su brojne vrednosti promenljivih k,x1,x2 i x3,


gde je n r 99. BroJria vrednost promenljive k bu5ena je u prvoj koloni kar-
)x,G1.13,1
tlce, a zatim u slededa trt polja kartlce brojne vrednoetl promenljivih xt ,
x2 i xs ae oplsom F7.4. tzraCunatl vrednost y* na slededi na6ln

fz*l * sxi+ 4xf, k=I ako je (l)


)2+(x3-xs)2 ako je k = 2 (2t
| ,*r-",
yr = 1 4(x1-x2)(x2-r3)+xlxzxr ako je k = 3 (3)

+xr)s-8x1x2x! (4)
(r1+x2 ako ie k = 4
t
ALo t<{ lt,z,s,el taaa se ne vr5i nikakvo izra6unavanje- Rezultate
Etampati u oblilar tabele u kojoj 6e se u Prvoj koloni nalaziti broj k, a vre-
dnoat y1 Stampati u (k+l)-oj koloni. U ostalim kolonama Stampati zvezdi'
ce (*).
Ovaj zadatak se moZe re5iti na dva naEina: bez kori36enja i sa kori3- sI.4. 10. 3
denjem naredbe promenljivog bezuslovno g prelaski.
Ovakav oblik izlaza u FORTRAN-jeziku ostvaren je dodeljivanjem
a) Prvo relenje: bez koriS6enja naredbe promenljivog bezuslovnog yl,
promeljivim Y2, Y3 i Y4 brojne vrednosti ve6e nego Sto je to predvi-
prelaska.
djeno opisom odgovaraju6ih promenljivih u FORMAT-naredbi koja je pri-
Sema algoritma, u ovom sludaju, prikazana je na sl.4. l0' 3.
druZena izLaznoj naredbi. Kako je promenljivim yl, y2, Y3 i Y4 pridru-
U algorltmu 8e dodeliuje, pre izratunavanja funkclje, simbol (*) kao
Zen opis F9.3 u FORMAT- naredbi sa obeleZjem 400, to znadi da rezultat
vrednost odgovarajude promenljive. Zatim 4e ovaj simbol biti zamenjen
moZe imati najviSe 5 celih mesta. Ako se promenljivim dodeli brojna vred-
vrednoEdu funkcije, u odgovaraju6oj promenljivoj y1 , Jr, y, ili y, , a u
nost koja ima ve6i broj celih mesta, na predvidjenom polju za Stampanje
zavi€nosti od toga po kojoj formuli 6e biti vrieno izradunavanje' Na ovaj
vrednosti promeljive bi6e Stampane zvezdice. Zato ie promenljivim Y 1,Y2,
naEln u algoritamskom koraku lzlaza bi6e izdata brojna vrednost promen-
Y3 i Y4 dodeljena brojna vrednost C = 108 , koja 6e pri izlazu dati simbole
live k i jedne funkcije Yr, Yz, Y3 ili Yr' a ostale funkclje de biti izdate zvezdice za one Promenljive kojima se za zadate vrednosti ulaza ne dode-
kao almbol zvezdLce.
ljuje programom izra6unata vrednost po jednoj od formula (l), (2), (3) ifi
65

busi brojna vrednost argumenta declmalna ta6ka se mote nalaziti u


bilo ko-
(4). FORTRAN-program eastav$en po algorltmu na sl.4. 10. 3. lma el,ede- joj koloni, r sve brojne vrednostr
6e biti korerrtno proditane. ovo je omogu-
Ci izgled: deno time 5to ukoliko poetoji neusaglaBenost izmedju broja decimalnih
tRITEt5rlool me_
lO0 FORilATI 3Hl Kr gIr rYl t r lOXr I Y2d r l0Isry3. rlOXr . y4. I I sta zadatih opisom I odredjenlh declmalnom tackom na kartlci, bi6e
v8ra6i
READ(5r2O0l N polozaj decimalne taEke na kartict, a ne onaj zadat opisom.
200 FoRxaTl t2t ovo je ilustro-
lO lF{Nr 2Ot2Ot3O vano i zadatlm ulaznim podaclma, gde se vldi da declmalna tadka
nije u ie_
20 sToP
30 READ(5r30OI Kr Xlr X2r 13 toj koloni kartice:
3OO FORfiATI l?tTXrtl tXrF?.41 I
Yl . .lE9 6
4.2
Y2rYl 2 -t.4 o.g
Y3=YI 0 3.e -5.O 4.4
Y4jYl 4
I
r 1.0 l.Z5 -3.6
lFlr-ll 40rllr4o -0.4 1.05 -O.99
40 tF(K-21 iOt22r50 3 I.35 0.62 -1.21.
50 lFl(-31 60133160 4 -6.20 0.48 L.256
60 lFlt(-41 7Ot44t'10 Izlaz'nl rezultati, za navedene ulazne podatke, Stampani eu u obliku tabele:
44 Y+ . lll+X2rx31..3-E.rxlrx2.I3.r2
GO TO 70 K YI Y2 Y3 Y4
33 \€ - {.t(Xl,-X2lrlX2-X3l.Il.XZrI3
G0 ro 70 2 r:ttt*t't'r* +2.920 **,r*rr**,* ***t*rr**
22 Y2 . (Xl-I2l.a2+(I3-Ill.r2 O attlat*lt* *,t!rt*:ra** *,r**trf++ tt***,.*:l*
GO TO ?O 4 t+lat*ttr a*rt***nt ********* _lJ2.06O
ll yl r 2..x1r.2+3.rxz..2+4.rl3rt2 I l rt+B tl*t!t.r:.!i **r**t*** :l**at!3tl*
?O LRITE(6r4OOl Kr Ylr Y2r Ylr Y4 3 *rtrrt:rrt {,+,t*,r*t,3:tr LO.705 *,r****t*,
4OO FO8flATl. t tl2t2\t1(3IrF9.3l I 4 ,ltttf tll.+ tlr*t,t*t*t l*****r** _ 5r. 3gE
NrN-l
co to lo Prva kartica ulaznih podataka eadrii broj n, koji u ovom sluEaju i_
END
ma vrednost 6. Druga kartica sadrii argumente za koje se vrednost
t funkci-
U prograpu Je promen[lvoj Yl dodeljena brojna vrednoat , lE9, tj. je raduna po formuli (2). U pvroj koloni treCe kartice nalazi ee
nula, 6to
l0l (prva traredba lspod naredbe sa pbeleuerp 3091. 4 zetlm promenljlvlm znadi da ne6e do6i do raEunanja ni po jednoj od formula (tl,
e), (g) i (4).
Y2, Y3, t Y{ dodelena je brojna vrednogt promen}jlva Yl. Ovo je moglo ostale kartlce sadrze argumente za koje ee ra.unaju vrednosti funkcija
bittzaplFanoiuobllku redom po forrnulama (4), (l), (g) i (4).
Yl= .1Eg b) Dnugo re6enje: sa kortBdenjem naredbe promenljivog bezuslovnog
Y2= .rEg prelaska.
Y3= .lEO
Sema algorltma, u ovom sluiaju, prikazana je na sl. 4.10.4. Algori_
Y4= .rE9
tam je isti. kao i na sI.4. 10. 3, samo Sto je ispitivanje vrednosti promen{i-
Medjutlm, zapls sproveden u programu krcdt Je I prula manJe 6anri ve k jednostavnije. FORTRAN-program zapisan po algoritmu na s1.4.11,4.
za gre6ke pri bu5enJu kartlca. O ovome treba voditl racuna prl pisanju ima slededi izgled:
FORTRAN-programa, I gde je god to mogude treba 6to krade zaplsatl 8va-
ltu fORTRAN-neFedbu.
Po navedenom prograrnu tzraduneto Je 6 vrednoetl funkcija. Argu -
rnetltl se unosed opleom F?.4. MedJutlm, u polJu, na ksrtlcl, gde b'e
6 67

Neka obja5njenja programa:


t{RtIEt6rl00l
IOO FORI{AT(3Hl XrgXr tYlr;tOXf .y2r rl0Irry3rrl0Xr tfq. f I l) Brojna vrednost lOt prolnenljivim y1, y2, y3 i y4 dodeljena je
R€AOt5r200l N
aritmeti6kim naredbama (prve Eetiri naredbe iza naredbe sa obeleZjem
200 FoRr{atl I2t
lo lFlNl 20r20rtO 300), u kojirna je konstanta na desnoj strani zapisana u razliditim oblici-
20 sIoP ll
t0 REAOl5r300t Kr Xlr Xzr Xt ma. Ovo ilustruje ekvivalente oblike zapisa iste konstante.
300 FORllAtl l2t3Xt 3l 3X,F7.4t I
Yl = +0.1E+09 2J Znaci blanko (medjuprostor) su bez znaiaja ispred i u okviru za_
12 - O. l.€ +9
Y3 . . lE09 pisa naredbe.
Y4 = .lE9
GO IO (Llt22t3tt44rr N 3) Iza naredbe STOP moie stajati prtoizvoljan, mak$inum petocifre-
GO TO 70
1.1Yl = 2.rXl*t2+3.r12**2+4.rXt.tz ni broj. Ovo je ilustrovano naredbom STOP pa obeleZjem 2e, ipa koje sto-
GO TO ?O jt broj 1l (proizvoljno izabran).
22 Y2 - (Xl-x2trr2+(x]_Xlrr.2
co to ?0 Obe navedene varijante progr:rma za iste ulazne podatke daju iste iz-
33 Y3 . 4.1(Xt-X2trlX2-X3r+XlrX2rX3
GO rO 70 Iazne rezul.tate. Plema tome, ovi programi su medju sobom ekvivalentni,
+4 Y4 r lXl+I2+x3trr3-B.rXlrxz*x3.rz
?0 IRITE(61400l l(r Ylr Y.2r Y3t y4 I tim Sto druga varijanta predstavlja kra6i, pa prema tome i bolji zapis
400 FORIIATI t t;12tZXt413XrF9.3l t
N . l{-l Programa.
GO tO r0
€l{o
4.11. Dalje moguCnosti naredbe ulaza

4,11. l. Gre6ke na ulazu

Naredba ulaza omoguduje dodeljivanje brojnlh vrednosti promenlji-


vim aa spoljnih nosioca informacija - kartica. Registrovanje podataka na
spoljnim nosiocima infotmacija-karticama vr6i se nezavisno od radunara.
U pripremi bu5enih kartlca moZe dodi do gre5aka koje mogu biti otkrivene
prl dltanju kartlca na ditacu kartica. po otkrivenoj grebci na ulazu, moZe
se upravljanJe izvr5avanjem.programa preneti na deo programa u kojem se
razreaava nastala gr.eEka na ulazu. U ovom sludaju naredtra ulaza pi6e ee
u obUku
READ(i, j, enn = n) lista (4.11. l)
U naredbl (4. ff. je deo ERR = n, a ogtali deo naredbe je ranije
1) dopiean
obJa6njen. ERR = je eluZbeni niz slmbola, a n obeleZje izvr6ne FOR-
TRAN'naredbe. Skradenica ERR je uzeta od engleeke redi ERRor (gre6ka!
U elulaJu otkrlvanja gre5ke ns ulasu upravljanje se prenosi na FORTRAN-
nar€dbu 8a obeleZrem n. Gre6ke na ulazu mogu biti prouzrokovane iz dva
sI.4. 10.4
\ razloga:
69

- buBenjem nevaledeg koda u kolonl kartlce, ilt rodi promenljive u problemu koji ee re6ava, moze btti u
auprotnostl ss u-
- neregularnlpn pololajem buiotlna na kartlci. nutra6njom konvencijom o vrsti promenljive. Tako, MASA, kao ime pro-
menljive, po unutra5njoj konvenclji jeete celobrojna promenljiva,a po pri_
4.tL.2. Kraj ulaznih podataka
rodi problema, predstavlja fizidku veridinu koja po praviru
nrJe ceo broj.
Kraj ulaznlh podataka moZe ge kontrolleatl programakl De dva nedl- Da bi
Je omoguEilo imenovanje promenljivih u auprotnosti 6a unu_

na: tra6njom konvencijom, uvode se opisne naredbe koJima se moze deklarisa_


a) unoSenjem broja ulaznih podataka, pre podetka unoEenJa podataka ti vrsta promenljive po Zelji progratnera, Deklaracija vrete promenljive

diji se kraj kontroliBe. U ovom sluIaju kraj ulaznlh podataka konstatuje se


opisnim naredbama, moZe biti: eksplicitna i implicitna. I jerrna i druga de_
prebrojavanjem unetih podataka (vidi primer na kdju odeljka 4. l0). klaracija je starija od unutratrnje konvencije FORTRAN_jezika.

b) U paketu ulaznih kartica aadriaj zadnje kartlce moZe bitl karakte- Opisne naredbe za deklaraciju vr6te promenljive pi6u se na podetku

ristldan. Kraj ulaznih podataka u ovom glulaju raapoznaje Be identiflkaci- Programa.


jom karaheristiEnog sadrZaJa zadnJe kartlce (vidi prlmer na kraju odeuka
Ekspllcitna deklaracija
4.8.5).
Pored ovih naclna raspoznavanja kraja ulaznih podetaka, ovo a€ nro- Ehsplicitna deklaracija vrste promenljive omoguduJe deklarisanje iz_
Ze oetvariti i naredbom ulaza vesnlh imena promenljlvih kao ceLobrojnih, odnosno realnih promenljivih.
READ(I,J,END=n) Usta (4. lr.2) Op$ti oblik ove opisne naredbe je

gde je END = eluZbeni niz simbola, a n obeleZje jedne lzvrEne FORTRAN' vrsta Usta (4.12, tl
-naredbe u programu, Naredba (4,11.2), po uno6enju gvih ulaznif podataki, gde je
vrEi preno6enje upravljanja na FOBTRAN-naredbu sa obeletrjem n. vrsta - eluZbena red INIEGER ili REAL,
END i ERR mogu 6e po.Zeljt piaati u READ-naredbl. Moraju se pisa- liata - spieak imena promenljivih, medju sobom razdvojenih zarezi_
ti lza obeleZja FORMAT-haredbe j, a njlhov redoeled navodjenja je bez zna- ma, koje se deklari5u po vrsti.
6aja. Tako se pored (4. 1 I. I ) i (4. f 1, 2) mogu plsati I obllci Tako oplsne naredbe

READ(i, j, END=n1 , ERR=n2 ) liate (4. 11. 3) INTEGER A,GODINA, 812


REAL JOT, MASA,16
READ(i, j,ERR=nr,END=n1 ) Lieta (4. 11.4) dgktrritu, u programu na dijem se podetku nalaze, prornenljive A, CODI_
Naredbe (4. f1.3) t (4. f1.4) su ekvivalentne. NA i Bf 2 kao celobrojne, a JOT, MASA i 16 kao realne pronenljive.
)
4. 12. Deklarisanje vrste promenljive 4. 12. l,/Implicitna deklaracija
..- '--^-f

Unutradnja konvencija FORTRAN-jezika razdvaja promenljive po vr- Eksplicitna deklaracija.eluZi za deflnieanje vrate promenljive po
eti, na cilobrojne I realne, u zavisnosti od prwog slova imena promeljive. konkretnom imenu promenljive. pored ovakve deklaraclje, Eoze se vrsta
Medjutim, nlje teEko pretpo6taviti da ime promenljive, koje odgovara pri- promenljlve deklarlsatl po poEetnom slovu imena promen{lve. Ovakva de_
klaracija se zove lmpllcltna deklaraciJa vrste promenljlve t zadaje se opi-
snom laredbom:
70 ?l

IMPLJCIT USIA (4.12.21


4.13. Tekstuelna obja5njenja u programu
gde je
IMPLICIT - slulbene red, t ukazuje na implicitnu dekkiraclju vrste 4, 13. 1. Privremeni prekid rada i poruke operatoru
promenljlve,
Naredba STOP prekida rad po programu bez mogu6nosti nastavljanja
lieta - spleak saetavljen od elernenata medJu eobom razdvoJe-
rada po istom programu. Medjutim, ako postoji potreba da se izvr5i izve-
nlh zarezima.
sna manipulacija u toku rada programa, kao Sto je promena ulaznih kartica,
Elemenat liste u naredbi (4.12.2) je obllka
papira na Stampaeu i sl. moie se izvr5iti privremen prekid rada po progra-
vrsta (lletal ) (4. 12.3)
mu, Ovo obezbedjuje izvr6na naredba
gde je
PAUSE (4.13. l)
vrata - slulbena re6 INTEGER ili REAL,
gde eluZbena red PAUSE ima znaEenje privremenog prekida rada po pro-
listal - episak velikih slova engleske azbuke medJu sobom razdvoje-
gratnu. Naetavak rada po programu vr5i operator odgovarajudom manipu-
nih zarezlma.
lacijom na komandnom pultu radunara. U nastavku rada, po programu, iz-
Sve promenljive 6ija imena podinju elovima navedenlm u llstil , prl- vr3avanje programa podinje naredbom koja sledi iza naredbe PAUSE ko-
padaju po vretl celobrojntm ili realnim promenljivim saglaeno sluEbenoj jom je izvr5en privremeni prekid rada po programu.
re6i (INTEGER iU REAL), koja stoji na meato re6i vrstq, ispred odgova- Ako postoji viSe naredbi za privremeni prekid rada po programu, o-
rajude llete. ne 6e mogu ozna6iti brojevima. Tako se moZe pisati
Ako slova engleske azbuke u (4.12.3) alede u azbudnom redoeledu,
PAUSE n (4. 13 , 2l
- moZe ae umesto navodjenja svih slova, navesti aamo Prvo i zadnje. elovo
gde je n neoznaden ceo broj koji ukazuje na naredbu kojom je izvr5en pri-
razdvojeno povlakom, tako da elemenat Uste moZe imati obUk
vremeni prekid rada po programu.
it: az (4.12.4)
Ako se Zeli izdati saop5tenje kojim se obja6njava razlog privreme -
gde su a1 i az vellka elova engleske azbuke.
nog prekida rada po programu, moZe se pisati

Primer PAUSE Uteral (4.13.3)


gde je literal tekot kojt ee biti Stampan kao poruka operatoru ili programe-
Opisna naredba ru.
IMPLICIT REAL(I, L), NTEGER(A-F, Q) Tako naredba
PAUSE ,PROMENITI PAPIR NA SIEIIPAEUI
deklari5e, u programu na 6ijem se poEetku nalazi, promenljive dije ime
podinje slovom I i L kao realne promenljive, a promenljive, dije ime vr6i privremen prekid rada po programu, i Etampa tekst koji ukazuje ope-
poElnje slovom A, B,'C, D, E, F iQ kao celobrojne promenljive. ratoru da treba izvr5iti promenu papira na Stampadu. Posle promene pa-
pira na 5tampadu operator zadaje naetavak rada po programu i izvr5ava -
nje programa se nastavlja naredbom koja sledi iza naredbe PAUSE.
72
?3

4.13.2. Komentari u programu

Ako se Zeli, u programu, plsati tekst koji objaEnjava program iU po_


jedlne delove programa, radi rakEeg pradenja argoritma, moze ge
korrstl-
ti plsanje komentara. Komentar podirije slovom C i mole da sadrZi slova,
clfre I specijalne znake.
Kada se komentar bu6i na kartici, u prvoJ koloni se buSi elovo C,
a od 2. do 80' kolone tek.t komentara. Komentar se ne analizrra od stra-
ne programa za prevodjenje, ved u onom obliku kakav
Je bio na ulaznlm
karticama, lzdaje se na Btampanl dokumenat na kojem se Btampa FOR_
TRAN-program pri prevodjenju na ma5insld jezik (vldi glavu 2).

4. 14. Primeri

4. 14. l. Izradunavanje teZlrta


sl.4. 14. 2
zavrte parova. zadatih dlmenzija r i a odreditr koordinate teziEta
Program eastavlen po dgorltmu na el.4. 14.2 lma aledeGi izgled
povrEine na e1.4. 14. l. Velldine g i : su zadate sa dva gela i dva decl _
malna mesta. Rezultate flqmpail u obllku tebele: C TEII3TE RAvNE FIGURE
lRlfEl6rl0l
IZRAEUNAVANJE TEZISTA
l0 FoRtttt I tr ll3rr I lzRAcuilAvAr{JE rEilsrar/
r
lr0r r7I r Rt ;91 1 .A. r 9xr I I.,9xr .Yr / I
I5 R€AOl5r20rEtlO.{Ol R' A
R A XY 20 FoRfiAT t 2F5.2 t
X r -AtR/l3.l4rR+2.rAt
Y s (4.*Rlr2-t.a[.rz, I lt.*3.14*R+6.*Al
rRITEl6r30l Rr Ar X, Y
30 FoRllATlr rr4Fl0.2t
GO TO l5
40 rRtTE{6r501
50 FOR'IATI IOI I'KRAJ PROGRAIIAI I
sroP
ENO

sI.4. 14. r Za zedate ulazne podatke, lzlazrrd rezultatt se dobijaju u obliku tabele:
Koordinate teZi{ta na eI.4. 14. l, mogu se izradunatl pomoGu formula
IZR CUilAVANJE TEiISTA
X=-
er. R AI
ffi. (4. 14. I )
30.o0
Y

40.o0 -6.89 -2.30


4r2 -3a2 30.00 30.00 -5.84 I .95
Y = siF7ii (4. 14.2) {0.o0 30.OO -6-47 6.65
(RAJ PROGRA'II
Sema algorltma prikazana Je na s1. 4. 14.2
?5
71

4. 14, 2. Statistl6ld.Prlmer

Izvr6eno Je nlz merenia. Svako merenJe daJe jedan podatak x1 , koJl


Je buEen na kartlci od 1. do 10. kolone. Saetavlti Program
koji 6e utvrdltl
broJ merenJa (n) I lzraEunati ar€dniu vrednost

- 1$
" =i &*,
(4. r4.3)

I gtandardno odetupanje

6= (i I o'-'))i (4. 14.41 h+1, n

kao I odstupanje pojedinih merenja od arednje vrednoeti.

lzLezne r"ezultate Stampatl u obliktr tabele:

N x X - NADX
I
2

tzL..n,x,x,r

SREDNJA VBEDNOST = i sI.4. 14. 3


STANDARDNO ODSTUPANJE = o

Program sestavlien po algoritmu na sl.4. 14' 3 ima slededi izgled:

Algoritam je prikazan na sI.4. 14.3. Kao Eto ee vidi ea slike, atgorltam c PROGRAIT ZA IIRACUNAVANJE
ee aastoji iz dva dela. U pnrom delu ge vr6t uno6enJe ulaznih podataka u C iniin.rt vREonosrt I sTANDARDNoc oosruPANJA
c
cilju izra6unavanja srednje vr€dnoetl, a u drugom delu ae vrbl ponovno u- REAL NAOX

no6enje ulaznlh podataka u cllju lzradunevanja odstuPenJa Poiedlnih mere- ^l=O


NADX = 0.
vrednostl I lzradunavanja etandardnog odstupanja'
ll0 REAOl5rl0rEND=201 x
nJa od erednje lo FORqAT(FlO.0l
TADT = NADX+X
N=N+l
GO TO 30
20 PAUSE IPOSTAVITI PONOVO ULAZN€ PODAT'(E NA CITACI
HRlrEl6r40l
78
77

40 FORXAT {/ I I I I tx t.N. r l2X r I X I r I 5xr . I_tI


IIADI = NADX./N ADx. L Algoritam za izradunavanje korena Jednadine (4.14.5) prlkazan je
N=0 na s1.4. 14.4, gde je uzeto da je e = l0-r
SICT|A - 0.
70 R€ADI5rl0rEt{D'50} t
fl r t{+l
IR : X-ltAOX
SIGIIA . SIGilA+XRtXR
TRITE(6r601 Nr Xr rR
60 FORIIATI r ir J3r5XrEl4. 7,5X,Et{. 7'
co To 70
50 SIGllA r SQRTIStcHA/Nt
TRIIE(6,80I NADT,SIGTIA
80 FORt{Af(/. SREDNJA VRCDI{OST-.,it4.ttl
*. STANDARDNO oosTupAr.t.re.i reri. zt
STOP
ENO

ze z".dsle ulazne podatke xr , lzlazni r€zultati 6e dbbljatu u obliku tabele:

NX x-tAox
I 0.2190000E 03 -0.20313{2E Ol
2 0.2225000E 03 .0.I468658e 0l
3 0.21r6500E 0l -o.538t3t8E Ol
{ 0.21820008 03 -0.2831345€ Ol
5 0.2210000E 03 -0.31 341 t'E-O r
6 0.22{}500E 03 0.33186{eE or
7 o.22652008 Ot 0.5488647E Ol
SREDAIJA VREDNoSI= O.22lO3L3E 03
STANDARD{O TIDSTUPATT|JE= O.3472305t Ol
sr- 4.14.4.
4. 14. 3. IzraCunavanje korena transcendentne jednadlne

FORTRAN-program napfuan po &lgorttnu na el.4. 14.4, lma eledeGl lzgted:


Odredlti naJmanJl pozltivan koren tranecendentne jednaClne

(4.r4.s)
"irr'=* x
C PRT'IEi TTERACIONOG POSTUPKA
za zadate vrednoett parametra A 1z lntervarq [0, t; t,0j. Zt tzra6unava- c
nJe korena prlmenitt lteratlvan poatupak c
C TILAZ ZIGIAYTJA TABELE
c
Xtrr = A tR trE ( 6r'10ot
aU Xl IOO FOR'IATIIIIZR,A'UilAVANJE KORENA JEONACIXE'
gde je xo = tr/2. Iterativan .f Sll{lX, . AlXr ll /l6Xr rArrl2XrrXr/l
poetupak prektnud kada bode lepunjen ualov c
-
C ZADATA GRANICA APSOIUTII€ ERES(E tEPS'
lx'., - xrl<e (4. t4.71 c
CP3'l.E-{
gde je e zedeta ta6noat.
7E

c
C UIAZ PARAI4ETARA 'A'
c
l0 REAOl5r200rEND-701 A
2OO FORfiAT(F5.2I
c
C IESTIRANJE PARAXETRA
'A/
c
tF(a-.tl Lot20t20
20 IFIA-l.l 3Or30rlO
c
C POCEINA VREDNOSI KORENA IX'
c
30 X-3.141592r. i
c
C IT€RAClor'tI CIKLUS
c
{0 II . A/SIN|X! 5. PNOMENUIVE SA INDEKSIMA . NIZOVI
IFlAESlXr-Xl-ePSl 60r5o,tO
50 X.XX
G0 T0 +0
c 5,l. Definlcija niza
C TZLAZ PAN,AilEIRA 'A' I I(ORE{A IX'
c
60 tRITEl6r300l Ar I U mnogim oblastima primene matematike, dolazi do potrebe izvodje-
300 FoRIAIl6Xr2lEX,F5.2ll
GO IO l0 nJa operaclja nad grupom brojnih podataka. Da se ne bi pojedinaCno imeno-
c
C ZAVRSEIAK PROGRAXA vall brotni podacl, ovakva grupa dobija zajednidko ime. Tako se uvodi po-
c i matrice. FORTRAN-jezik pruZa mogudnosti
70 ttIlE I 6, roo I Jam vektora, determinarte
4OO FORI'ATI/' XRAJ PROGRA'IA" lakog zapiea grupe brojnlh podataka. Ovakva grupa brojnih podataka regis-
stoP
Er{0 truJe ee u memor{i talco ifto se svaki elemenat grupe registruje u jednom
memoriJekom regiatru. Neka eu registri memorije adreeirani redom sa
L, 2, 3, .. ., n, gde je n broj regiatera memorije. Neka gr.upa brojnih poda-
Za zedele vrednoati parerDetra A, lzlazni rezultatl re Etampaju u ob[ku
tebele: taka, koja se tell registrovati, eadrZi m elemenata (brojeva). Ako je prvi
eleBenet grupe regl8trorran u registru ea adresom r, tada Ce za registro-
TZR^CUilAVANJE KOREI{A JEDNAEIil€ STNIX) = vanJe cele grupe bitt upotrebljenl redom registri
^./T
r, r+1, r+2, .,. , r}m-l ' (5. l. 1)

0. lo o.a2 Sadrlajl regiatara (5.1. l) Jeeu brojni podaci grupe, Sto znali da se
o.tz o.tt
0.6! 0.8t svake grupe broJnih podataka prlkazuJe u memoriJi u obliku jednog nlza bro-
t.00 l.lt Jeva, bez obzira na raapored broJeva u grupi.
rIAJ PROGRA'II ViSe podataka aa zaJednldldm imenom, u FORTRAN-Jeziku zove se
niz. Prematome, veldorl, deternlnente I matrice u FORTRAN-jeziku |i-
U programu je promen[lva xl , iz algorltmr ne s1.4.14.4, ozna6e-
6u ae kao nlzovl.
na se xx. Tako, kede re elem€rtl mstrice
80 81

se pojavljuje u Programu. Ovo se zadaje opisnom netedbom

^ f':, :::;, tii] (5. r. 2) DIMENSION lista (5. r. 6)


asz 3sr a
Ltr, gde je
registruju u memoriji raEunara, tada se formira niz u obliku DlMENsloN.sluZbenareE,iodredjujeopisnunaredbuzadefiniga-
nje maksimalnih vrednosti indeksa,
att,aut,a31,a11,aer,alz,att,art,ag3,t14,a:t,alt li6te - sPissk sastavljen od elemenata, medju gobom razdvo-
(5.1.3) jenih zarezima.
Ako je prvi elemenat art reglstrovan u registru 6ija je adresa 300, Elemenat liete (5' 1.6) piSe se u oblilm
onda 6e za regiatrovanje matrice A, biti angazovani registri
ime (lista) (5. 1. ?)
300, .301, 302, ..., }tt (s. r.4)
gde je
diji Ce sadrtraji biti redom elementi niza (5. 1.3). lme - ime nize,
llata - episak celih neoznadenih brojeva, koji predstavljaju najvede
5.1.1. Irne niza i indeksi mogu6e vrednosti indeksa, medJu eobom razdvojenih zsrezi-
ma.
Tako se mole Pisati
Ime niza defini6e se na iati na6in kao i ime promenljlve. Medjutim,
ako jedno ime predstavlja ir'e promenljive, to 6e ne more kori'titi isto i- A(r0, r0), vEK(50)
DTMENSION
he i za ime niza.
Da bi emo oznacili pojedine el€mente niza Eto znatt da 6e u Bemoriii raEunara biti rezervisano 10o regietare ze e-
uvode se lndeksi. vrednost
indeksa je ceo broj kojim se jednoznadno odredjuje jedan elemenst niza. lemente mstrlce A i 50 registara za komponerte vektora VEK'
Broj indeksa niza zove se dimenzija niza. Niz moze bitl jednodimenziona-
lan, dvodimenzionalan itd. do rnaksimum sedmodimenzioualan. Tako da je 5. 1- 2. Vrsta niza
opsti oblik promenljive sa indeksima
Povrstinizovisedelenacelobrojneirealne.Akosuevielementi
ime (lista) (5. l. 5) niza cell broJevi, oada je niz celobroJan, a ako su elerrerdi nlza realni bro-

gde je levi i niz Je reilan. Vrsta niza Je odredjena unutraSniom konvencijom FloR-
TRAN-Jezika, kao i vrsta promenljive, tj. ako ime niza poEinje slovom I,
ime - ime niza koje se definiEe, kao i ime promenljive,
J,K,L,M ili N, onda Je niz celobrojan, e u auprotnom niz je realan'
lieta - epieak indeksa medju sobom razdvojenih zarezircrra.
Broj indeksa mole biti najmanje jedan, a najvlSe sedam. Ako ge Zeli nizu dodeliti ime koje je u suprotnosti 8a unlrtragnjom
Indeke moZe biti aritmetiCki izraz, Eija ee brojna vrednost izracuna- kornrenclom FORTRAN-jezika, moze 8e korlstittr ekeplicltna tlt lmplicitna
va, a zatim za odredjivanje elementa niza prevodi u celobrojnu konstantu. deklaraiijavrate niza. ,Ekeplicitina,deklaracija vrgte niza vr6i se.oplenim
Vrednost ovako dobijenog celog broja mora biti veda od nule i manja ili jed- neredbama REAL INTEGER, objafnjenim u odeljku 4'tz't; Ime niza se
ifi
naka najvedoJ predvidjenoj vrednostt indeksa. NaJvece predvidjene vredno- navodi u jednoj od ove dve naredbe u zavignosti od toga koje je vr6'te niz'
sti indekea nlza moraju biti zadate na po6etku programa za svaki niz koji
82
83
Ako se deklari.e realan niz, navodi se ime niza
kao elemenat liste naredbe
REAL, ili ako se deklari.e cerobrojni niz, navodi 5. 2. Jednodimenzionalni nizovi
se ime niza kao eleme-
nat liste naredbe INTE.ER. opisnim naredbama REAL i TNTEGER pored
deklaracije vrste niza mogu se zadati i najvece Elemenat jednodimenzionalnog niza ima opSti oblik
mogu.e vrednosti indeksa
odgovarajuceg niza. Tako u ovom sr.ucaju
elemenat u listi ovih naredbi mo-
te imati oblik (5.1.?). Ato eu makeimalne vrednosti ime (i) (5.2. r)
indekea definisane u
I naredbi REAL
ili INTEGER onda ovo ne trebe posebno pieati u naredbi DI-
gde je
MENSION. Medjutim, za svaki niz koji se koristi
u programu moraju se de_ ime - ime niza,
finieati makeirnalne vrednoati rndekea, odakle sredi
da ee svako ime niza i - indeks niza.
mora pojaviti ili u naredbi REAL ili INIEGEB ili
DIMENSION. Tako se mo- Maksimalna vrednost indeksa niza moZe biti zadata u naredbi DIMEN-
Ze plsati
SION ili REAL ili INTEGER. Niz, u ovi.m naredbama, navodi se kao ele-
f,EAL M(5,121, J(2o,20) menat liste u obliku
(5. l. 8)
TNTECER A(5,5), T(10) (5.1.s) ime (i*,) (5.2.21
Naredba BEAL deklarige matrice M i J kao realne
nizove, a naredba INTE- gde je i-.,ceo neozna6en broj koji odredjuje maksimalnu vrednost indeksa,
GER deklariSe matricu A i vektor T kao celobrojne
nizove. odnosno broj elemenata niza. Tako naredba
Implicitna deklaracija vrste niza vrsi se na ieti nadin kao
i implicit-
na deklaraclja vrate promenljive (vidi odeljak 4. lZ.Zl. A(20), VEK (s0) (5.2.3)
To ee postiZe opis_ DTMENSTON
nom naredbom IMPLICIT, kojom se vrsta niza
moZe deklarisati_po poaet_
nom slovu u imenu niza. Tako defini5e 20 elemenata niza A:

IMPLICIT REAL (J, M, INTEGER (A, T) A(1), A(2), A(3), . . ., A(20)


(5.1.10)

deklariSe sve promenljive i nizove dija imena poEinju odnosno 50 elemenata niza VEK:
slovom J ili M kao
realne promenljive, odnoeno nizove,.i eve promenljive
i nizove 6ija ime_
na po6inju slovom A ifi T kao celobrojne promenljive,
vEK(l), vEK(z), .. ., vEK(50).
odnosno nizove.
?reba uoEiti razliku lzmedju deklaracije (S. l. l0) i (S. 1. 8) odnosno Elemenat niza zove se promenljiva sa indeksom. Svaki elemenat ni-
(5' l'9)' Deklaracija (s. l.ro) deklari.e eve promenrjive
i nizove cija ime- ze regictruje se u jednom memorijskom registru. Sve Sto je rebeno da va-
na po€inju alovon J ili M odnosno A ili T, dok
deklaracija (b. l. B) i (S. 1.9) Zi za obianu promenljivu vali i za promenljivu sa indeksom.
deklarise samo nizove 6ija eu imena M i J, odnosno A.
i T.
Eksplicitna deklaraciJa vrate promenrjive i niza irna najvi6i prioritet,
5.2. 1. Jednodimenzionalni nizovi u listi ulazno-izlaznih naredbi
a zatin inplicitna deklaraciJa vrete i na kraju unutrasnja konvencija FoR-
TRAN-jezika.
Nizovi se pojavljuju kao elementi liste ulazne naredbe, kada se vrsi
dodelJivanje brojne vrednosti elementima niza sa ulaza. Ako se vr3i izda-
vanje brojnih vrednosti pojedinih elemenata niza tada se nizovi pojavljuju
84
85
u liati izlazne lraredbe' Elemer$i jednog niza
mogu se pojaviti na v15e na6i-
na u liati.ulezne, odnoano lzlazne j
naredbe.
a) Ako elementi nlza ne elede jedan
za drugim po odredjenom zakonu, je u opisnin naredbama DIMENSTON tU REAL lli INTEGER'
tada ae mogu navoditi u ligti na isti
narin kao imena pt'omenljivih. Tako
ee c)iko elementt niza koji ae navode u listi ne slede jedar iza drugog,
moZe pieati
moze 3e u listi Pis8ti oblik

READ (5,10) A(4), A{2), A(s), A{r5) (ime(i), i mz, mr) (5. 2.8)
= -t,
Sto znadi da Ce elementima A(4), A(2), i u (5. 2-4), a uvedena v€Udina m!,
A(B) i A(1S) niza A biti dodeUeDe gde sve oznake imaju isto znadenje kao
brojne vrednoati sa uleza.
moZe biti ceo neoznaten broj ili celobrojna promenliiva. Zapis (5' 2'8)
b) Ako elementi niza koji 8e navode u
listi slede u.redosledu, poEev ima isti efekat kao da su elementi niza nabrojani u fedosledu:
od elementa m, do zekljulno sa eleo.entorn Erz, tada ae moze plEati
ele-
meDt liste, u ulaznoj, odnoano izlaznoj
naredbi u obliku ime(m), ime(mr+mr), ime(mi +2m!), ..., ime(mr+kmJ (5'2'9)

(ime(i), i = m1,m2) gde Je


(5. 2. !)
gde je
ime - ime niza,
-=l=rl (5.2. 10)

i - ime eelobrojne promenljive, gde erednja zagrada oznadava celobroJni deo koli[nika
r[1, m3 - celi neozaadeni brojevi ili celobrojne promenljive. Prema tome, oblik (5' 2.8) eadrli k+l elemenst niza, koji eu Davede-
zapie (5'2'4) ima isti efekat kao da su erementi ni u (5.2.9).
niza u listi, navde-
nl u redosledu

ime(mr), ime(m, +l), .. ., ime(m2)


5,2.2. Elemerti niza u eritmetickoj naredbi
(5.2.5)
Ako se evi elementi niza tele navesti u listl,
onda se oblik
Elemedi niza mogu se na6i na levoj ili na deenoj strani znaka Jedna-
( S, 2 . 4)
evodi na koeti u aritmetickoj naredbi. Pojava elementa niza u aritmetidkoJ naredbi
ima isto znadenJe kao i pojava obidne promenljive. Ako 6e elemenat niza
(ime(i),i = l,iq) (s.2.6) pojavljuje na desnoj strani tada predstavlia argumenat aritmetickog izta",
a ako se pojavuuje na levoj strani onda je to elemenat niza kojem ae dode-
umesto oblika (s.2.61 moi,e se pisati i samo ime niza u risti, tj.
ljuje brojna vrednoat izracunata aritmetickom naredbom'
ime g.z.7l
Primer
Prema tome, ako u listi ulazne, odnosno izlazne naredbe etoji samo
ime niza, to ime isti efekat kao da su navedeni je F8.3. Sastaviti program,
elementi niza podev5i od pr- Na kartici zadato 10 brojevri u formatu
vog do posrednjeg. Informacije o tome
koliko niz ima elemenata sadrza'a koji 6e uneti brojeve se kartice u memoriju radunara, itampati nJihove
broJne vrednosti I lzra€unati i Etampati njihw zbir.

\t
t\

86
8?

Ovaj zadatak Cemo re5iti na dva na6ina:


bez kori5denja aizova i
kori5denjem nizova u .programu.
sa 5. 3. Ciklidne algoritamske strukture

a) Prvo re5enje: bez korilldenJe nizove


u programu 5.3. l. Naredba za opis Programskog ciklusa
i, lO I _Xl r X ? r X3 t 14 t X5 t X6 t Xlr
READ (
Xrtr 19r XIO
l0 FoRfllTltoFS.3t
y.Il+x2rl3+x4+x 5+x6+x7+x8+x9+xI ciklidne algoritamske struKure vrlo se cesto javljaju pri sastavlja-
o
nju algoritama za regavanje razliditih zadataka' Kao sto je obja5njeno u
llRlTE(
61 201 Xl r X2r X3r I4r X5 r X5, 17, lgr o-
-
Zo FoRfiaT(r, rlOF12.31t; Xe I X ; 6, v
vJ;,ig.tt pri-
S Toe deljku 1. 4., izlazni kriterijum iz ovakvih ciklusa moZe biti razlidite
€l{D pomo-
se
rode. Najde5de, su ovi kriterijumi brojadkog karaktera' tako da
b) Drugo re6enje: se koriEdenJem nizova programu Cu njih kontroli5e broj ponavljanja ciklusa. Kada se ciklus izvr5i zadati
u
broj puta, vr5i se izlaz iz ciklusa. Da bi se omogu6ilo lako pisanje
rrvalcvih
DI^tEltsloN xt lo I
REID(irl0t cikluea u FORTRAN-jeziku postoji posebna naredba za njihovo definisanje'
X
lo FoRltATaloFS.3' to je naredba oblika
y-O.
lrl (5.3.1)
l3 Yry+I(Il DO n i=m, ,m2,ra3
lF(t-l0l ltrl2rlt.
ll I.Irl
co ro 13 gde je
l2 tRtTEl6r20t x,Y
20 FOR'{ATl I rrlOFl2. rll. y..rF9.3t DO - sluZbena red FORTRAN-jezika'
stoP n - obeleZje jedne izvr5ne FORTRAN-naredbe' koja se naiazi iza
EIID ' naredbe (5.3. 1),
i - ime celobrojne Promenljive,
rn1 I m2 mr- celi neoznadeni brojevi ili irnena celobrojnill
promenljivih'
Prvo resenJe zahteva uvodjenje promenljivih
(X1,X2,, , ., XIO) kojima
Naredba (5.3.1) ima sledede zna6enje: naredbe koje se nalaze
ispod
8e dodeljuju brojne vrednosti zadete na
kartici. Iete promenljive se mora- n' 6ine programski
ju naveati u aiitmettEkoj naredbi da naredbe (5.3.1) zakljutno sa naredbom 6ije je obeleZje
biemo izradunali njihovu sumu. Medju_
tim, u drugom reitenju, gde su kori.Cenl nlzovi uvodi ciklus, koji 6e se izvrSiti k+1, puta gde je
ae Jedno ime niza (X) ,
a promenom indekga postite se isti efekat
kao i u prvom resenju. prvo re_ (5.3.2)
senje je moglo biti primenjeno u slu.aju 10 -=
o vedem broju brojnih podataka, napr.
brojeva, medjutim, da se radilo Fs'-al
1000, ovo bi bilo nemogude zapisati pri
uvodjenjem 1000 imena promenljivih, dok Promenljivaf pri prvom izvrsavanju ciklusa ima vlecnost ml ' a
se drugo regenje bitno ne menja poveCava
povecanjem broja brojnih poclataka. Tako, svakom slededem izvrSavanju prethodna vrednost promenljive 1
ako bi se radilo o 1000 brojeva
niz.X bi bio definisan u DIMENSION-neredbi 6e za m3 , tako da promenljiva i uzima redom vrednosti
kao X(1000) i predvidieno su-
miranje bi se moglo izvrsiti zamenom broja l0 (5.3.3)
sa lO00 u naredbi Il... i = m' mr +m3 , mr +2m, , ..., mr +km3

Promenljiva i zove 6e inrleks ciklusa, a m, je potetna vrednost incieksa'm,


gornja granica indeksa, a m3 prirastaj indeksa. Na sl' 5'3' 1' prikazana
je Sema.cikliene algoritamske strulcture koja se realizuje naredbom (5' 3 1)
88
-€9

Prema tome, u rluCaiu nattdbc cllhr.r u oblttu (5.3.4) prolazl kroz clklug
vrle ge 8a vrednoatima lndckaa

i=Et, mr*1, mr+2,..., E, (5.3. ?)

Zadnja naredba u ciklugu (naredba sa obeletjem a) ne eme bitt Jedna


od slededih naredbi

co ro
L-mr*kntr, PAUSE
STOP
L*ms + L
IF (po vrednosti aritmetidkog lztazal
DO

si. 5.3. I sl. 5.3.2


Primer
Sema na sl. S.3. t sad,rZi detalje koji ee
uvek ponavljaju kod ove vr_
ste programskih cikrusa, kao sto je postavljanje Ranlje navedeni primer, nqtrraju odeljka 5.2.2., u kojem ae vrgi
podetne vrednosti indeksa
ispitivanje izraznog kriterijuma i pove.anje sabiranJe 10 broJeva, kao eleme-nata niza X, mote 6e reSlti primenom na-
indeksa za navedeni prira.taj.
Da bi se izbeglo ovo ponavljanje uvedena je redbe ciktu6a. ReSenje uFORTRAN-jeziku ima elededi izgled:
ekvivalentna gema na 61. 5.3.2.
Iz Seme na sl. S.3.1. vidi ee da Ce se algorltameki Olr.tENStOr{ Il lOl
koraci, koii Eine cit<-
lus, izvrsiti najmanje jedanput, bez obzira REAO|5rl0l I
na odnos izmedju velicina mr l0 FoRfiAtlloft.3t
yr0.
imr.
OO ll l.lrl0
. Ako je m, =1 ne mora se navoditi u naredbi (S,3.1) ll YrVrIl I I
, pri demu se TRITE(6,20I Y
pise ni zarez ispred m3 r pa se oblik (S.g.l)
svodi na 20 FORT,|AI(r f:rlF9oll
STOP
DOni=mt,mr ENO
(5. 3. 4)
U orrom sluEaju programsld ciklus BadrZi jednu naredbu
gde je znadenje pojedinih simbola isto kao i u naredbi (5.g. l) s tim 5to je
k uvek ceo broj i iznosi Y=Y+X(I)

k=mr -m, koja se izvrdava 10 puta, zg vrednosti promenljive l=1,2,3,...,10. Kako


(5.3.5)
je pre ulaska u ciklua promenljivoj Y dodeljena vrednogt nula, a svaki pro-
pa Ce algoritameki korak za ispitivanje
izlaznog kriteriJuma u ciklusu na lazak kroz ciklu8 povedava pr€thodnu vrednoat promenljive Y za odgovara-
sl. 5.3.1 biti
Judu vrednoat elomenta nize X, to de po izlaeku iz clldusa vrednoat Promen-
I =_-, lJtve Y bltl euma zadatih 10 elemenata nlze X.
(;. 3. 6)
90

5.3.2. Naredba bez dejstva

U FORTRAN-jezikil postoji mogu6noet zaplsa naredbe


bez dejstva.
Ova naredba se pile u obliku

CONTINUE (s. 3.8)

gde Je
- eluibena reE i oznadava naredbu bez dejstva.
CONTINUE
Izvr6avanJe ove naredbe ne proizvodi nikakve promene u
4adunaru,
ve4 samo prelazak na naredbu, koja treba da se izvrgi iza
ove naredbe.
Ovde treba razlikovati dva sluCaja:
1) Ako je naredba (5.3. S) zadnja naredba programekog
ciklusa, tada tzL^z: z
ie posle ove naredbe do6i do ponavljanja ciklusa, ako to zahteva izrazni kri-
ierijum, odnosno do prelaska na naredbu koja sledi iz.a naredbe (S.3. S), a-
ko se izlazi iz ciklusa.
2) Ako naredba (S.3. g) nije zadnja naredba ciklusir, tada izvr3avanje sI. 5.3.3.
naredbe (5.3.8) predstavlja prelazak na naredbu koja sledi
iza ove naredbe.
Naredba (5.8.8) koristi se u programiranJu, naJ€eSCe u slededa
dva nalaze se na l0 kartica i to na prvih 5 nalaze 6e elementi niza x' a na dru-
sluCaJa: gih 5 elementi nlza y. Blok-gema algoritma prikazana je na sl' 5 ' 3 ' 3 '
f) Ako bi zadnja naredba ciklusa trebalo da bude neka od nedozvolje_ Program sastavljen po algoritmu na sI' 5' 3' 3' ima slededi izgled:
nih naredbi, tada se kao zadnja naredba moze koristiti naredba (5.3. g).
olrtEr{sIoN x( 501'Yl5Ol rZ(5Ol
2) Ako se Zeli izbaciti iz programa naredba koja ima obeleZje, READl5r50l XrY
tacla,
da se ne bi menjala obelezja, moZe se na mesto izbadene naredbe 5o FORr{ar(10F8.31
ubaciti DO 30 I=l'50
naredba (5. 3.8) sa istim obel< Ijem. lF(YlIll l0'20rlO
to Zllt=x(lllY(I!
30 CONTINUE
Primer tlR I TE t 61 60 I ( Zl I I r I =l 501
'
60 FORHAT( r r17Xr. 1". // lr r rgl4.7l I
! STOP
20 Z(Il'0.
Zadeta su dva niza brojeva x, i y, GO rO l0
END

z, ='\ i = 1,2,...,50
'Jr U ovom primeru naredba sa obeleZjem 10 sadrZi operaciju deljenja'
.

pri je y* = 0, uzetida je z* = 0, Ova operacija se nalazi u ciklusu, jer je treba izvrSiti 50 puta da bi smo
Cemu ako k€ 1r,r,...,SOf . Elementi
nizova xi i y, su brojevi sa maksimum 3 cela
formirali niz Z. Medjutim, u operaciji deljenja delilac ne sme biti jednak
i 3 decimalrra mesta. Neka
se na jednoj kartici nalazi nuli. Zato se pre dolaska na operaciju deljenja vrSi ispitivanje vrednosti
l0 ovakvih brojeva. prema tome, ulazni podaci
delioca(elemenatnizaY),iakojenjegovavrednostrazliditaodnuledola-
n 98

zi lardbu 10, a zadm ne nercdbu CONUNUE


ae na Za orrakrru kompozictju od p programsldh clklusa.C 1, C2,.. ., Co va.
koja je zadnja ruiredba
cikluea. Ako je vrednost tndekss (i0 trl eledede:
I vrll se ponavljanje cikluea, a ako
I . 50 vrdi ee izlazak iz cikluea, Je
- broj ciklusa pu ovakvoj kompoziciJi je neogranlEen,
tJ. prelazak na naredbu koja sledi
iza na-
rcdbG CONTINUE. Ako je vrednost
delioca (elemenat niza y) jednaka - obeleZja D1 , n2 r .. ., Dp su mdju sobon razLicta,
vrl rt prelazek na naredbu sa obeleljem nuli,
20, kojom se postavue nula kao - dva tU vlBe indekea iz skupa lt, , t, , ... , ie | -*u imati igta i-
vt.cdnost odgovarajuceg elementa mena.
niza z, posle ovoga vr.i se
prelazak na
za'lnJu naredbu u ciklusu, cime 2) Konc ertridna kompoziclja progro m e kih cikluea.
8e obezbedjuje normalno izvr'avanje
cikluse,
Za dva llt vl6e ciklusa, koji se nelaze Jedan u okvfuu drugoga, kale
5.3. 3. Odnos dva i vi5e ciklusa
ee da obrazuJu koncentridnu kompoziclju progra-skih clklusa. U ovom slu.
6aju odnos ciklusa je slede6l:
VeC smo videli u prethodnon primeru
da naredbe koje Cine ciklus ne
moraju biti zapisane izmedju DO naredbe
i zadnie naredbe ciklusa, prema
tome' nekom naredbom usrovnog ili
bezuslovnog preraska moZe se privreme-
no izadi iz ciklusa I ponovo vratiti rr1 ir=mlll, tntt, -gt
u ciklus. ovaj povratak u cikru'
ti na Ea koju naredbu u okviru ciklusa, more bi-
uklju6uju6i i zadnju naredbu ciklusa.
llfedjutim, treba voditi raluna da ee
vrednost promenljive koja predetavlja
n2 Lz=mfi,-!x, -f)
indeks cikluse tre ame menjatl naredbama
u okviru ciklusa.
Posebno je vaZno pravilno koristiti cikluse np ip=-P,-tn,mln
kada ih lma vedi broj u
programu. Ovde 6emo razlikovati
tri mogu.a slu.aja u odnosu i"mea;,. ava
i vi3e ciklusa:
l) Linijska kompozicija programskih ciklusa.
Za dva ili vi5e ciklusa koji slede jedan
iza drugog u programu, kaie
ee da dlne linijeku kompoziciju
ciklusa. U ovom eludaju odnos ciklusa je
slededi
i
n, i1=6!rr,^!1,-['t
f-P
"'fI nr_, i

T
f_E
t?
n2 i,=m(21,_f),-!r,

s,I
tli
I n2-+
i
:
Za ovahru kompoziciJu od p programskih ciklusa C1 , C2 , . .., Cn
i
:t f_D9 I
ne i"=61n, -lD,,rrlrt
vaZl sledede:
cpl i
tt
l--np - neki od ciklusa mogu lmati zajedniCla'r zadnju naredbu, a to znali
I
: da neka od obelelja iz elorpa [n1,n2,...,np | -o* biti jednaka,
04 96

- lrdekst 11, ,. . ., lp moraju imail razllelta lmena.


!2
U koncentrldnoj kompoziciji prograurstdh cilJ.u6a
obelezJa zadnjth naredbl ctkluaa, Bamo
mogu biti jednaka lll i,:-ltr, -tl *fl
ako ne doyde do eeCenJa pojedtnih
cikluea. Ako obelerja medju 80bom Jednaka, tada koncertridna
eu eva n2 rr=-1'),-f;t, -!"
kom_
poziciJa dobija elede6i lzgled:

n t,=m{rl, -[tt, *ot

n ir=ra{2),
-!r}, -tzt 5. 4. Dvodlmenzionalni nizovi

n Elemenat dvodimenzionalnog niza ima opSti oblik


ip=mlDl, r'!1 mln

ime(i1 ,5) (5.4.1)

I
gde je
I
ime - ime niza,
Ako gu lzleznlkriteriJuml clkluea Cr, C2,..., ir , i2 - indeksi niza.
Cp, koJi grade kon_
centricnu kompoziciju takvi da ulazak u ciklus
c1, znaEi prorazik kroz cik- Maksimalna vrednost indeksa niza moZe biti zadata u naredbi DIMEN-
lus q* puta, tada ulazak u koncertricnu kompoziciJu SION ili REAL ili INTEGER. Dvodimenzionalni niz u ovim naredbama
navo-
crklusa defini5e slede_
6i broj prolazaka kroz poJedine clkluse: di se kao elemenat li6te u obliku
- kroz ciklue C, prolazi Be qr puta,
ime(ir-., , ir-*) (5- 4.21
- kioz ciklug C2 prolazi 6e qt .qr puta,
kroz ciklus C1 prolazi ae 91 .9r . . .
9r puta, i
- lcoz ciklus Cp prolazi ae gr . g: . . . qp puta. gde su ir-o i ir-., celi neoznadeni brojevi koji odredjuju maksimalne vred-

ovakav broJ prolazaka kroz ciklus sledi iz cinjenice nosti indeksa.


6to se za svaki
prolazak kroz ciklue Cr_, cillus C1 izvrdi Tako, naredba
9r, Futa.
3) Nedozvolena kompozicija programskih cikluga. DIMENSION A(10, 1o), B(20, 8)

Dva ill vlEe cikluea medru sobonr ae ne smeju sedi. Tako ci-
za dva deftniSe 100 elemenata mstrice A:
kluea C1 t C, niJe dozvolJen alededl odnos:
A(r,r), A(1,2), ..., A(1,10)
A(2,1), A(2,21, ..., A(2-10)

A (rb,
ti*----------i
r), (i0,2), ...,A(lri,10)
A
96
n
160 elemenata matrice B:
Ako se u listi navode evi elementl dvodimenzionalnog niza, tada Ee
B(1,1), B(1,2), ..., B(1,s) oblik (5.4. 3) svodi na
B (21 1), B (421, . . ., B (2, 8)
t: ((ime(ir,iz), ir = 1, i1-.1)p i, = 1, i1-..) (5.4.4)

B (2b,1), B (2b, s), .. ., B (2d,8) samo ime niza, tj' olr-


Umesto oblika (5.4.4) moZe qe u listi navesti
lik
5.4. t. Dvodimenzionalni nizovi u ligti ulezno-izlaznib naredbl (5.4.5)
lme

Kao I elemertl jednodimenzlonalnih nizova (vldi b.2.1), teko I ele_ Ovde je vaZro uoditi da obtik (5.4.41' odnosno (5.{' 5) obezbedjuje po-
mentl dvodhaenzionalnih nrzova mogu ae pojaviti u listi ulazno-rzlazne oa- javljivanje elemenata niza u listl u redosledu kolona po kolona mairice'
redbe na vi6e naEina: Medjutim, ako se Zeli redosled vr6ta Po vrsta matrice tada (5'4'4) treb^'
a) Ako ae poJedfnadnt elementi nizova pojavljuju u llsti tada ee vr6l zapisatl u obliku
navodJenje odgweraJu6ih elemeaeta. Tako ee moZe pleati
((lme(i, , ir), iz = 1, i2.o), ir = 1, ir-.,) (5. 4.6)

wRrTE (6,50) A (35, 10), B (18,4), c t3,3)


Medjutim, zapis (5.4.6) ne moZe 6e zameniti zapisom (5'4'6)' ier
5to znacl da treba lzdati brojne vrednoeti odgovarajucih elemenata matrr- (5.4. 5) podrazumeva redosled (5.4.4). VaZi op6te pravilo Ca se u zapisima
caA, BlC. (5.4.4), odnosno (5.4.6) brZe menja indeks prvi sleva, a sporije indeks ko-
b) Ako elemertl matrice kojl ee navode u llsti slede jedan za druglm, Jieledi.Tako,u(5.4.4)brZesemehjaindbksil,aspo):ijeindeksi2'tj'
tada se elemenat Uete moie pisati u obliku zair=1, indeksl, uzimasvevrednostlir = 1,2,"', Lr^u' azatimdo-
Iazi do promene indeksa i2, ti. iz=2, Pri 6emu opet indeks i, uzima sve
((ime(i'iz), ir =-(ir, mft ), ir=-l'), *1', (5.4.3) it
)
mogude vrednosti. Kod zapisa (5.4.6) indeks\i2 se brZe menja' a indeks
gde je 6porije.
ime - ime niza, c) Ako elementi niza, koji se navode u listi' ne slede jedan za drugim'
it , ir - imena celobrojnih promenljivih, moze 6e u li6tl p188ti oblik

-!tl - .uU neoznadeni brojevi ili imena celobrojnih promen{ivih, ((ime(i'ir), i, =*lt)., -lt) , m[f) ),i, = -1" ,-1" ,."!') ) {s'e'z)
i' j = r'e'
Zapie (5.4.3) ima isti efekat kao da su elementi matrice navedenl u
gde su eve oznake iste kao u (5.4.3), velidine -lt) i -!') -ogu
a dopisane
slededem redogledu:
blti celi neoznaceni brojevi ili celobroine promenljive. Zapis (5.4. ?) ima
i-e(m{t}, -tit ), ime(mlt) +r,*(r'}),...,ime(m!t), -1,, ), istiefekatkaodasuelementimatricenavedeniuustiu6lede6emredosle-
ime(mjr), -1" *r), ime(mf), +r, -j') + 1),...,ime(m!'),mltr +11, du:
ime(mf),rJ," t, ime(mf) **1",-14 ),...,ime(m!) *krrn:t',t"1")'
ime(m(,t} , -1" ), ime(m!" + l,-lrl ),..., ime(m!r),m(,2) +-l2l 1, ime(-f) *-lt),-!') +,,,!') ), "',ime(m!l) +
ime lrrrl'l , -jrr)
**r,,.$' ,-l') +-!'l ),...,ime(m!t' ,*1" +tr-fl 1,ime(ml') *-(i) ,
m!') trrm!'' ),,,,,Ime(mlt)+lr1mt' ,*l'' *hxml" )
98
99
gde eu
lol rtJ( 5r l0 I rc(5, lol
f ,r, ,tl I
k'|=1fu+l lo
Dll'lENsloN A(5,
qEADl5' l0! I lA(
FoRMAT{ 10F8.3)
I,J ),J=1, lO), l=l 15t, ( (ts(LJl rJ=I, lO), l=l r5l
(5.4.8)
0O ll I-t,5
O0 ll J=lrt0
ll cu,J)=A( I rJl+Bll,Jl
f ,r, ,:,.| r{RIIE(6r20l ( (c( t rJl rJ=lrtolr I=lr5)
k' =l.*;r'-J (5.4.e) 20 FrlRfiAT(. MATRICA C,// (. r,l0Fll.3ll
S ItIP
Er.rt)

celobrojni delovi odgovarajudih kolidnika.


Tako, zapie ciklus unutrasnji ciklus se izvrsi l0 puta, tako da naredba l1 (ova naredba
je zadnjg i zajednidka naredba za oba ciklusa) izvrSi se pri jednom izvrSe_
((A (r,o, t = 2,6,2), J = 4.s,3) nju programa 50 puta.

proizvodl sledeCi redoeled elemenata niza A u listi:


5.4.2. Fegistrov?nje dyodimenzionalnog niza u memoriji radunara
i veza sa jednpdimenzionalnirn nizom
A (2,4), A (4,4), A (6,4), A (2,'rl, A (4,'tl, A (6, ?)

VeC je redeno da se nizovi u memoriji raeunara registruju kolona po


Primer
kolona u registrima memorije, dije adrese slede u pri.rodnom nizu brojeva.
Posmatrajmo niz a(i, j), gde je a ime niza, ! iIsu indeksi niza, koji uzima_
Sastaviti program za izradunavanJe zbira matrlca
ju sledede vrednosti i = 1,2,...,n; j = 1,2,...,m. Uvedimo oznaku a,..,/k
c =A+B u kojoj a,,, predstavlja elemenat niza a(i,j), a k relativnu adresu registra
u kome se registruje elemenat niza a(i,j). R.elativna adresa registra defini-
gde su A i B matrice 5x10. Elementi jedne
5e registar u kome se nalazi prvi elemenat niza sa l, a ostale registre re-
vrste matrlce A, odnosno B, bu5eni su na
jednoj kartici sa opisom F8.3, Na izlazu
Tabela 5.4.1
Stampati rezultujudu matrlcu C. Sema algo-
rltma prikazana je na sl. S.4.1, gde su sa A,
B i C oznadene tnatrice, a aa ait, , b,,i i
",.J
elementi odgovaraju6ih matrica, program, na
FORTRAN-jeziku, eaetavljen po algoritmu na
sl. 5.4.1 ima izgled koji je dat na stededoj
strani.
Kao 5to 6e vidi, program sadrZi dva
ciklusa jedan u okviru drugog. Spolja5nji ci-
klus se iZvr5ava 5 puta, a unutra5nji 10 puta.
sl. 5.4. I Medjutim, za svakl prolazak kroz spolja5n,ji
100
101

dom 2, 3 , 4, , , ., n. m, gde je n. m relativna adresa zadnjeg elementa niza meru na kraju odeljka 5.4.1. u ovom slu[aju tabela 5.4.1 za registrovanje
a(r^, m). U tabeli 5. 4. I prikazan je raspored elemenata niza a(i, j) sa odgo_ elemenata matrice A ima obliktabele 5.4.2. Na isti na6in se reg:struju
.i :l
va:'aju6im retativnim dhresama, elementimatricaBiC.
Iz tabele 5.4.1 sledi da se relativna adresa k, elementa sa indeksi_ Kako je u navedenom primeru pretpo'tavljeno da se elementi matrice
j
ma i, izraEunava po formuli A unose vrsta po vrsta, to znadi da 6e elementi prve vrste biti regi.slrovani
u registrima dije su relativne adrese 1, 6,.11, !6, ZL, 26, 5I,36, 4l i 46.
k=i+n(i-l) (s.4. 10)
Zatim se unose elementi druge vrste i registruju u registrima z, 1, Lz, ird.
Prema tome, dvodimenzionalni niz a(i, j) Ciji indeksi uzimaju vredno_ U istom programu sabiranje matrica je izvr6eno preko dva programska ci._
sti i = 1, 2, ...,ni j
= 1,2,.. ,, m, moZe se posmatrati u memorijt radunara klusa, tako da se sabiraju vrsta po vrsta matrica A i B'i formira se matri-
kao jednodimenzionalni niz a(k) diji indeks uzima vrednostl k = 1,2, . . ., ca C.
n.:n. Veza izmedju indeksa dvodimenzionalnog niza a(i, g) i jednodimenzio_ b) Re5enje zadatka preko jednodimenzionalnih nizova.
nalnog niza a(k) data je relacijom (5.4. 10). . Isti zadatak ae inoze re6iti ako se koriste jednodimenzionalni nizovi.
U ovom slu6aju prograrq na FORTRAN-jeziku ima elede6i izgled:
Primer
DIilENSION A( 50),81 50t,C (50)
READ( 5r IOI A,B
Nadin registrovanja dvodimenzionalnih nizova i njihovu vezu sa jedno_
to FORr.,rAI( 10F8.3t
D0 ll l=t,50
dimenzionalnim nizovima prosledicemo na primeru sabiranja dvodimenzio- ll C(ll=AlIl+8llt
r{RITE(5r20t C
nalnih matrica. Ovde Cemo razlikovati dva sludaja: 20 FORilATIT HATRICA C' lllt .rloFt1.3t,
STOP
1) Dimenzije matrica u programu su iste sa dimenzijama matrica de_ END
finisanim opisnom naredbom DIMENSION.
a) Re5enje zadatka preko dvodimenzionalnih nizova. Tabela 5.4.3 prikazuje registrovanje elemenata matrice A, kada su
Na ovaj naEin reSeno je sabiranje dvodimenzionalnih matrica u pri_ uneti kao jednodimenzionalan niz, a pri tome su na karticarna bili raspore-

Tabela 5.4,2
djeni vrsta po vrsta.
Tabela 5.4.3
,]
N. I 2 3 L 5 6 I I f,) t.i
t\ 1 2 3 L 5 6 7 8 I r0
o l.l o t,2 o o t,4 o l,s o o ol,g o t,9 o
I
1.3 1,6 1,7 t,to
I 6 1l 16 21 26 3t 36 t1 t6 9r,t ot, 02 ,6 o3, t o3,6 oa
,l ol,e los,r los,o
o 2,1 aza o a o z.s o 2,6 o.. o3!- oe
I
t
6
"l,l-
fi 6 -36 ! lt l-ts-
z.i z,t o o 2.to 6 2l 26
- -11- --'---'----'-
ol.z los.z I,--'
2
? 7 t2 l7 22 27 '32 tt L2 L'T ol ot.? 42,2 42,7 03,2 og,?
,7 9l.,a- los,z
orr g.t 2 12
i-17-
I tz- - i--
- 37
o 9,2 o 3,1 o o 1,5 o 3,6 Orr o 3,8 o 3,9 a 3,to 2 t? fl z2 :27
3 _12--.. - 'J'-" --.
I !q t8 q 02.: ol-
-
3

o(,3
13 23 28 33 38 43
3
r,3 or, g oz.8 03. g 8
ol.3 n-e !os,r i9s,a
L
o {,1
I
ot,,2
I t4
a L,r.
tll
n
!!_ 9 4,6_ a r,,? o 4,8 9 4,e o4,lo _,3. I !3 _19 - 23, .28 _ i?. ts-:41 j.__ol-_
2L 29 34 39 I,L 19 ol , t 9r,g 02,L, 02 .9 03, 4 03 .9 q_.L a,n i1r-.-l-
g:,L 19s.."-
5 1!-2_ 9 s,r
o5,4
9!l)< os,6 Oct o5,8
1i,s- o5,io : I 9 IL l9 2T E -34 3e ,, tt i 4e__
5 l0 t5 n 30 35 LO L5 s.1l

5 \s 5
ot, o
t0
42, s
15
oz-r-a-
fr
03,s
)q,
ol,to
1n
oa,--s--
35
1-ro_ i9s,5 ,os,tL
40tt1lso
L.tz 103

Ii Poredjenjem tabela 5.4.2 i 5.4.3 vldl se da su to dva sasvlm razlidi_


[' za koje se izvrbava program zadaju se preko ulaznih podatakal
ta nadina registrovanja elemenata matrice A, a isto 6e biti i za matricu B. a) Re5enje zadatka preko dvodimenzionalnih nizova. Neka su matrice
I
p tabeli 5.4.3 elementi prve vrste matrice nalaze se u registrima dije su A I B tipan x m, gde je n<5, m< 10. Ulazni podaci neka su rasporedjeni
i relativne adrese 1,2,3,4,5,6, ?,8,9, 10, a zatim slede elementi druge vr_ u redosledu vrsta po vrsta, a na svakoj kartici se nalazi l0 elemenata jed-
I
ete itd. Izradunavanje rezultujude matrice C vr5i se preko Jednog program_ ne ili vi5e vrsta. FORTRAN-program u ovom sludaju ima slededi izgled:
skog ciklusa, koji se izvrSava 50 puta.
c) ReSenje zadatka pod a) i b) je sprovedeno pod pretpostavkom.da su
Dlr{ENSION A(5, l0) rBl5,l0},c(5, l0}
READl Sr l0' NrMr ( (Al LJl rJ:1,Ht I I=11N) rI IBl t rJl rJ=Ir il1, l=IrNl
ulazni podaci bili u redosledu vrsta po vrsta matrica A i B. Medjutim, ako lo FoRHATI 2t2t tLOF8.1t'
pretpLetavimo da se na jednoj kartici nalaze elementi jedne kolone.matrice
D0 ll I-lrN
DO ll J=lrt'l
A, odnosno B, tada 6e za registrovanje, matrice A biti potrebno l0 kartica, ll I'Jl
Cl trJl=A( I'Jl+B(
t{RITE(6r20'
a na svakoj 6e se nalaziti po jedne kolona matrice. Isto Ce biti i za matricu 20 FORilATII H.ATRICA CIlI
D0 l2 I=lrN
B. l2 |TRITE(6'30l (C( IrJlrJ=lrlt)
Program za sabiranJe matrlca moZe ae napisatl u sledede'n obllku: 30 F0RHATI. rrloFll.3l
S TOP
END
DII{ENStON At 50l rBt 50r,C I 50t
REAOtSrl0l A,8
IO FORilAII5F8.3I Prema tome, pre unosenja elemenata matrica A i B, unosi se broj
DO ll I.tr50 vrsta n i broj kolona m matrica A i B, i ovi brojevi dodeljuju se promen-
ll Cll)=a(Il+8lIt
r{RlTEl6r20l ljivim N i M. Nadin registrovanja matrice A, u sludaju matrice 3x4, pri-
20 FoRIIAT( | ltaTRlcA crll
DO 12 Jrlr5 kazan je u tabeli 5.4.4. Kao Sto se vidi iz tabele, matrica A je registrova-
l2 l{RlTEl612l, lCl I I r I=Jr5Or5l na u 12 registara 6ije su relativne adrese 7,2,3,6,7,8,11,12,13,16,1? i
2l FoRfiATl. rrloFll.3)
STOP 18, a svih ostalih 38 registara je slobodno. VaZno je uoditi da sumiranje
ENO
ovako registrovanih matrica ne moze da se izvrsi preko jednodimenzional-
Elementl matrica A i B unose se sa kartica kao elementl Jednodimen- nog niza koji ima 12 elemenata, jer adrese elemenata matrica A i B ne
zionalnih nizova. Izra6unavanje matrice C takodje je izvr5eno preko sabi- slede jedna za drugom.
ranja elemenata Jednodimenzionalnih nizova. Nacin registrovanja elemena- b) ReSenje zadatka preko jednodimenzionalnih nizova.
ta. jednodimenzionalnog niza A identl€an je kao i u slu6aju dvodimenzional- Neka su matrice A i B tipa n x m, i njihovi elementi rasporedjeni na
nog nizi i prikazan Je u tabeli 5,4.2. Medjutim, kako rezultuju6u matricu karticama vrsta po vrsta, a na svakoj kartici da se nalazi 10 elemenata
C lelimo da Stampamo u obliku vrsta po vrsta, to se u listi izlazne nared- jedne ili viSe vrsta. Tada program na FORTRAN-jeziku moZe biti zapisan
be matrica C piSe kao jednodimenzionalni niz, 6iji se svaki peti elemenat u obliku:
Stampa u Jednom redu, pri Cemu je prvi elemenat odredjen indeksom (J) oil.tENsloN at 501,8 ( 50t,c( 501
REAo( 5, l0) N,r{
koji ee menja u DO ciklusu. IO FORIlAT( 2I2
K=N*l.t '
2) Dimenzije matrica u progranu su manje od dimenzija matrica de- REAOl Sr40l lAl t l'1=1rKl r(8(l lrl=lrxl
finisanih opisnom naredbom DIMENSION. U ovom sluCaju opisnom nared- 4O FORMAT ( TOF8.3
D0 ll I=t'K '
bom defini5u se najvede mogude dimenzije matrica, a dlmetlzije matrica rr Cl I l.A( I t+B( I I
*RlrE(6r20)
104 105

20 FORf.TAT{. r{ATR,ICA C'll


D0 12 J=lrK,M c) Ako se elementi matrica A i B registruju kolona po kolona na kar-
I
L= I +H- ticama, i to tako da se na kartici nalazi 10 brojeva tada Ce program imati
l2 !,lRITEt6r30l (C(Jl rJ=l rLl
30 FORI{AT( r'rlOFll.1} slededi izgled:
S IOP
ENO
DfilENSl0N A(501'ts( 501 rC(5Ol
REAo( 5, lo I N, H
Neka su matrice A i B tipa 3x 4. Gornji program 6e izvrSiti regis- l0 FoRxArl 2l2l
K3N* l,l
trovanje elemenata matrice A u rasporedu prikazanom u tabeli 5.4.5. READ(5'40) lAl I )1I=l1Klr(B(I I'I=1'()
40 l0F8.3l
FORr,lATl
Tabela 5.4.4 D0 llI-lrK
ll C(tt=A(Il+B(I)
brRIrE(6r20'
\jt\ I 2 3 L 5 6
,1
8 I t0 20 FORr{Arlr ilATRICA Crll
L=l't- I
DO l2 I=trN
or,l ol ,z ol ,g or,t __i__l__ tZ l{RITE(6rlOt (C111 r.1=l 1K1L}
I
I 6 'n 't6 i
i ?r 26 3l $41166 ,0 FORt'lAT('' tlOFll.3l
:il
02.1 oz,2 02. g o^, 5TOP
2
2 1 12 l7 -n n'v a 1l- END

o3,'t og. or.3 o3.l


3
1 I
2
B 18 23 28 33 38 ' 43 r,a U ovom siuEaju elementi matrice A, tipa 3 x 4 bide registrovani na
na6in prikazan u tabeli 5.4.6.
L
t, 9 1L 't!l 2L Js- Tabela 5.4.6
I
5 q t0 l5 ?0 25 30 35 -{,0- 4slt_ s0

Tabela 5.4. 5

\jt\ 2 3 L 5 6 7 I I 0
01, I 02, z
I 9i,-1-
I 6 1l l6 u ,6 31 36 4 46
ar, z
oz,3 o3, l
2
2 7 t2 I'l n n n -n t2 _t7 -_ l_-- ! I I I *-
ol,3 o2,t, lt I ts i2L l2e 131 13e',14_L!9_ -
J
3
or , {
8
o3r I
13 ls n 28 33 38 Lf IL --
-

L
I 9 IL f) ?t, 29 31 39 t,1 -zE-
o2, 1
43,2 Kao Sto se vidi, tabele 5.4. 5 i 5.4.6 razlikuju se Po tome 5to u ta-
5
p 6 n 25 30 35 to -at- 50
5
beli 5.4.5 elementi slede po vrstama, a u tabeli 5.4.6 po kolonama. Kako
Prema tome, elemerti matric€ A sada su rasporedjeni u registrima rezultujudu matricu treba Stampati po vrstama, to se naredbe izlaza t od'
dije adrese slede jedna za drugom. I sabiranje matrica moze se izvrSiti a- govaraju6im programima razlikuju.
ko se primenjuje jedan programski ciklus koji se izvr5ava n x m puta. Navedeni primeri ilustruju razlidite nadine registrovanja dvodimen-
zionalnih nizova u memoriji radunara. VaZno je uoditi da uno5enje eleme-
106 10?

nata dvdimenzioD€ tnatrice kolona po kolona, i unosenje iste matrice kao Ako se indeksi u (5.5.3) menjaju od 1 do maksimalne vrednosti, tj'
Jednodlmenzionog niza ima isti paspored registrovanja elemenata u memo-
riji, ako je tip matrlce jednak maksimalnim vrednostima indeksa u pro- i,^"J, ... , iu =1, i*-.') (5. 5' 4)

gramu. U evim drtglm sludajevima ovo registrovanje je razlidito, Medju-


tada se mogu izostaviti, i oblik (5. 5.4) svodi se samo na ime niza
tim, obrada nad elementima matrica, predstavlja bolje programsko rege-
nje, ako ae matrlca tretira kao jednodimenzionalni niz. Tako u slueaju sa- lme (s.5.5)
biranja matrica videli smo da tretiranje matrice kao dvodimenzlonalnog ni-
za zahteva dva programaka ciklusa, a u sluCaju jednodimenzionalnog niza Kaoikoddvodimenzionalnihnizova,takoikodviSedimenzionalnih
zahteva Jedan programski ciklus. nizova najbrZe se menia prvi indeks sleva, a zatim sleva na desno sporije
se menjaju, tako da krajnji desni indeks se menja najsporije'
5. 5. Vlgedlmenzionalni nlzovi Tako, elemenat liste u obliku

(((A(I, J, K), I=2, 6,21 ,I--1,2\ ,K=a, 12, s\


Elemenat viEedimenzionog niza ima opSti oblik
ima isti efekat kao da su navedene indeksne promenljive u sledecem redo-
ime(lista) (5. 5. r)
s Iedu:
ode je
A(2,1,4), A(4, 1,4) , A(6,1,4), A (2,2,4\, A(4'2,4\' A(6,2,41 ,
lista - epleak, od najvl5e ?, indeksa niza medju aobom razdvojenih
zareilma. A{2,1,e), A(4, 1,e), A(6,1,e), A (2,2,s\, A(4,2,e), A(6'2,e)
Prema tome, vlEedimenzioni n|z moZe imati najviSe ? irdeksa. Sve
Visedimenzionalni niz sa k indeksa il , i2, . . ., ir, moZe se posmatra-
3to je reCeno za dvdlmenzlor(alne nlzane vaZL I za viEedlmenzionalne nizo-
ve. Maksimalne vrednosti indekaa navode 6e u listi naredbe DIMENSION, ti kao jcdnodimenzionalni niz sa indeksom j. Veza izmedju indeksa viSedi-
menzionalnog i jednodimenzionalnog niza data je relacijom
pri 6emu elemenat liste ima obfik (5. 1. ?). Vrsta niza moZe bitl definisana
jednom od oplenlh naredbi za deklarisanje vrate. j - i, +{iz -1)irF..+(i3 -l)i,-.,. ir-.,* ...
Vi6edlmenzionalni niz u listi ulazno-izlaznlh naredbi navodi se ,r ob- . ..+(ir -1)ir-*. iz^^,... i1r-r) -."
(s.5.6)
Iilnr:
Relacija (5. 5.6) zavrednosti indeksa visedimenzional'nog niza
zad,ate
(...(ime(i,,12,...,\), ir =mltr,-ltr, .f' t, odredjuje indeks odgovarajudeg jednodimenzionalnog niza, odnosno relativ -
ir=ml2) ,
^!:t , 'ot" ),...,
i*=-lut, *'f , -!* ) (5.5.2) nu adresu elementa vi5edimenzionalnog niza.

Ako je prira6tal indeksa 1, moZe se prirastaj izostaviti i oblik (s.5.2)


svodi se na Primer

(...(ime(i, ,12,...,i*) i, =6(1) , -lt'), Najednojkartici,'tkolonama4,25's2i4Sbu5enisujednocifrenibro-


iz=m(,2) , -!'' ),,.., i*=m(,H, mfr) (5.5.3) jevi od 1 do 5. Oznalimo ove brojeve redom sa i, j, k' i' Sastaviti prog-
ram koji Ce u proizvoljnom broju kartica utvrditi broj pojavljivanja m, sva-
108
t(D
ke od mogudih kombinacija i, j, k, l. Na izlazu Stampati 5.6. Redgslel elemg.nata dva niza ili vi5e nizova
kombinacije i, j, u listi ulapno_
k, I koje se pojavljuju u zadatom paketu kartica, kao i njihov -rzraznln naredbr
broj pojaviji_
vanj a.
Ako se elementi nizova navode kao indeksne promenljive sa konkret-
DIt{ENSI0N tt( 5r 5r 5r 5 ) nim vrednostima indekea, njihov redosled moze biti proizvoljan, ali u.a-
D0 t0 I=l'5
D0 l0 J=1,5 glasen sa ulaznim podacima, odnosno sa obrikom Stampanja na izlazu. Me-
00 l0 K=I,5
D0 lO L=lr5 djutim, ako elementi jednog niza slede u odredjenom redosledu; onda se
l0 H(I1J1K1L)=O
40 READlSr20rENp=39,, I rJrKlL oni mogu skraceno pisati na naEin kako je to objasnjeno u prethodnim odelj-
20 FORHAT{3Xr I lr20Xr I 1,6X, i l, t5x, I t } cima (vidi 5.2. I i 5.4. r).
ll{ t rJrKrLl =H( I, JrKrL l+l
Go ro 40 eesto postoji potreba da elementi dva niza ili vi5e nizova slede naiz-
3O ltRlTE(6r90)
90 FORl{aT(r rr4Xr.I r14X1.J. r4XrrKr14x1.Lr r4Xrr4' menieno jedan iza drugog. u ovom sludaju element liste moze imati slede-
11
DO 50 I!lr5
0O 50 J=lr5 Ci oblik:
D0 50 K=tr5
00 5O L=lr5 (ime, (i), ime2 (i), i = m' , mz , m3 ) (5.6. r)
lF(|1( IrJrKrLl
) 60r50r60
60 HRITE(6r80, IrJrKrLrH(IrJrKrLl
50 CONTINUE gde elementi niza imer' i ime, slede naizmeniIno jedan iza drugog. Zapis
80 FoRilAT(, ,r5i5, (5.6. f) proizvodi slededi redosled elemenata,
STOP
END
ime, (mf , imer(m,), imer(m, +m.), ime, (m, +mr),
Naredba 6a obelezjem 10, koja se izvrsava 62i puta,
vr5i postavlja_ , ime, (m, +krn.), imer(mr + kms)
nje nule, kao brojne vrednosti svih €lemenata detvorodimenzionalnog
niza
M' To postavljanje vr.i s€ na taj na.in .to se redom menjaju gde je k odredjeno sa (5.2. 10).,
indeksi niza
M. U obradi svaka kombinacija I, J, KwL definise jedan elemenat matrice Oblik (5.6. l) koji defini5e y'wa jednodimenzionalna niza u naizmenid_
M, i pojava ove konibinacije povedava vrednost odgovarajudeg nom redosledu elemenata, moze se prosiriti na veci broj jednodimenzional-
elementa ma-
trice M za jedinicu. Na ovaj nadin izvr5eno je prebrojavanje svih nih nizova.
kombina_
cija na ulaznim karticama. Takodje, umesto jednodimenzionalnih nizova mogu se u naizmeni6nom
Stampanje je programirano tako da se u jednom redosledu elemenata pisati visedimenzionalni nizovi.
redu stampa kombi-
nacija i broj pojavljivanja. Kombinacije koje se ne pojavljuju,
ne6e biti
Stampane. Za jedan primer ulaznih kartica i.zlazna
tabela ima slededi iz- Primer
gled: {) IJKLil
I I Koordinate ta6aka Ai , i = 1, 2, 3,4 sa sl. S. 6. l, zadate su na jednoj
3 l
2 5 kartici u slededem redosledu xr, yr , x2, y2, x3, y3 , x. , y,i i to tako da
) 3 5
4 5 svaka koordinata zauzirna l0 kolona, od kojih su tri namenjene za decimalna
4 2 I
4 5 I mesta. Iza ove kartice nalaze se dve kartice i to tako da se na prvoj nalazi
I 8 vrednosti, a na drugoj
t
3
tri vrednosti za argumenat x, pri eemu argumenat
moze imati tri cela i tri decimalna mesta. za zadatih ll vrednosti argumen-
ta r izraeunati y(x), prema sl. i).0. l, i Stampati x iy u obliku tebele.
ll0 r11

lstom algoritmu Q oznadava r.iz diji su elementi q, , i = 1,2, " ', ll zadate
vrednosti argumenta x. Vrednlsti funkcije fi, i = 1,2'..., ll oznadene su
nizom F. Kao Sto se vidi sa sl. 5.6.1. vrednosti funkcije izmedju tadaka
odredjuju se linearnom interpolaciiom, a vrednosti funkcije levo od tadke
A, i desno od tadke An odredjuju se linearnom ekstrapolacijom' Program
ne FORTRAN-jeziku sastavljen po algoritmu na sl. 5.6.2 ima slededi iz-
gled:

DII..ENSION X(4lrYl4l rQ( lll'F ( ll I


REAfr( 5r l0t lX( I I tYl I l l I-l'141 rC
sl. 5.6. IO FORHAT( BFIO.3 I
1
DOll l.lrll
tF(Q(ll-X(2) I l2rl2rl3
13 IFlalll-x(31 I 14rlarl5
Blok Sema algoritma prikazana je na sl. 5.6.2. Sa X I Y oznaderri l5 F(I t=Yl3t+lYl4l-Yl3t l/(x{'?t-xl3l lt(0ll t-xl3l }
nizovi 6iji su elementi apscise, odnosno koordinate taEaka A1(x, , yr ). U 1T CONTINUE
lRlTEl6r16l lQ( I )rFl I lr I=l rll I .'FlO'ltE20'7')
t6 FORHAT(r rr5Xrrlrll?Xr'\t lll'
sroP
L2 Fltt-Y( I t+{Yl 2l-Yl I r I / ( xl 2 l-xl ll rt(Ql t l-xl I l'
G0 T0 ll
l4 F( I t-Yl 2 l+(Y( 3l-Y{2 I I /( x( 3}-x (21,t(o( I l-x{ 2l'
G0 T0 l1
END
vL.tx,y,Q
U listl uLazno-izlaznih naredbi pojavljuju se nizovi diji elementi sle-
de u naizmeniCnom redoeledu.
Za zad^te koordinate tacaka A, , tako da je 41(-80;45), Ar(-4O; -2o\,
Ar(10;1oo), A1 (?0; 1o) i 11 zadatih vrednosti argumenta x rezultati se do-
biJaju u obliku tabele:

f=v,*ffie; .E+H*(qixt - lo.ooo 0.5199998E 02


loo.o00 -o.350c000E 02
12. ou 0 o.e700000E o2
60.000 0.2500000e 02
222.OOO -0.2r80000E 03
1 .000 0.?83e9e8E 02
13.0(tO 0.95500008 02
-4,000 o.66_r99e8E 02
10.000 o.999999?E 02
20.ooo 0.8500000E 02
50.000 0.4000000€ 02

sl. 5.6.2
/,/ // 7- ,17 -" nu

6. PorPRoc*o*i-)
\-.-

V ViEe naredbi izdvojenih u posebnu programsku celinu grade PotPro-


gram. lPotprogram najde66e predstavlja niz naredbi koje bi se pojavljiva-
le na viEe mesta jeilnog programa i kojima bi se vr6ilo izraEunavanje po
istim formulama, ali za razlidite vrednosti argumenata. lzdvajanje ovih
naredbi u posebnu programeku celinu omoguduje kra6i zapis programa, a
samim tim i njegovo lak5e prenoEenie na radunar i manje angatrova4ie me-
morije radunara. Tako ako se niz od n naredbi oznaden sa P (sl. 6. 1. I. ) u
programu pojavljuje m puta, tada se ovaj niz moZe izdvojiti u posebnu pro-
grameku celinu - Potprogram (s1.6. 1.2).
Program na sI.6. 1. l, Pored
PROGRAH ostaUh naredbi, G'aarZl m. n nared -

: bi, jer se niz P od n naredbi Ponav-


lja m puta. Ako se niz P od n nared-

' lJ' bi izdvoji u potprogram (sl.6. f.


tada ee u programu na mestima gde
2),

ut ;)ilo se nalazio niz P vr6i prelazak iz


t. tp"og..-" u potprogram. Po izvrEe-
t:
r =)
nom potprogramu vr6i se povratak
' -lJo
: u program i to neposredno na slede-
: 6u naredbu koja sledi iza meeta pre-
laza na potprogram. Na ovaj nadin
umesto m. n naredbi pi6e ae samo n
sl.6. l. I sl.6.1.2
naredbt koje Cine potprograrr. y'e-
ma tome, kciriSdenje potprograma u Programiranju ima slededa svojstva:
- pruia mogudnost kradeg zapisa programa, a samim tlm smanjuje
tt4
11s
mogucnost greske u pripreml programa,
6. 2. F\rnkcijska naredba
- smanjuje aDgazovanje memorlskog prostora,
- omogucuje lakse testiranje programa, jer se potprogrami kao po- Funkcijska naredba omoguduje izdvajanje jednog aritmetitkog
sebne programske celine mogu odvojeno testirati, i izraza
kao potprograma. Opd_ti oblik pisanja funkcijske
naredbe je
- isti potprogram moZe se koristiti u raznlm programima,
Ovde treba hapomenuti da koribdenje potprograma uopgte ne utide na ime(lista) =e (6.2.1)
brZe izvr5avanje programa od strane ra[unara. Jer, I ako je
umesto m. n
gde je
naredbi zapisano samo n naredbt, kada se lzvrsava program, izvrsice se
ime - naziv funkcijske naredbe i defini5e se na isti nadin
m, n naredbi. kao i ime
promenljive,
Iz svega Sto je do sada redeno o potprogramima sledi da se za kori5_
iista - spisak fiktivnih argumenta medju sobom razdvojenih
cenJe potprogiama u programlranju moraju poznavati slede6i elementi: Fiktivni argumenti mogu biti sarno imena p.o..,u.rt1iuiir.zarezima.
-- -'
- na6ln zaplea potprograrne, tako da on 6ini posebrm programsku ce_ l' - aritmetidki izraz, u kojem se kao argumenti mogu javiti:
liriu, tivni argumentt,. tT".": promenljivih L p."g";I, f;;;;", fik_
-1lr1
d ruga imena funkc ijskih naredbi I fu nkc ijskil potp.ogr".rr" _
- nadin prelaska iz programa u potprogram, i di 6. 3).
- nadin povratk3 iz potprograma u program. Funkcijska naredba (6.2.1) poziva se na taj nadin Bto
se kao arg-ume_
Izradunavanje elementarnih funkcija (odeljak 4. g) vr6i se pomodu pot_ nat aritmetiekog izraza u programu navodi ime funkcijske
naredbe sa stvar_
programa. Za izradunavanje elementarne funkciJe, kao 6to je trigonome_ nim argumentima izmedju zagrada, tj.
trijska funkcija sinus, potrebno Je oko r00 naredbr na maiinskom jeziku,
Svaka naredba angaZuje 3edan memorijsld registar, Ako se izradunavanje ime (Iista) (6.2.2\
sinushi funkcije vrsi na r0 mesta u programu, i ako se ovo izraEunavanje
gde je
ne bi vrSilo preko potprograma, to bi znadilb da bi 10 puta po r00 naredbir/
bilo zapisano u programu na ma5inskom jeziku, odnosno za ovo izraduna_ ime - naziv funkcijske naredbe,
vanje bilo bi angaZovano 10.100=f0O0 registara u nemoriji. Medjutim, a_ lista - spisak stvarnih argumenata, medju sotront razvojenih zare_
zima.
ko se lzradunavanje vrsi preko potprograma, bice angazovano samo r00 re- Kada se izvrsava program, svaki argument aritmeti[k
gista/ra u memoriji radunara, og izraza u
I programu, oblika (6.2.2) izracunava se tako sto se u funkcijskoj
naredbi
J KoriSdenje potprograma pruZa mogu6nost da se jedanput izradjen
odgovarajudeg irnena (6.2.1) fiktivni argumenti redom zamenjuju
potprogram moZe datl na koriSdenje Sirokom stvarnim
lrrugu programera, koji ga argumertima. za ovako definisane vrednosti fiktivnih argumenata
mogu lako koristiti u r'azliritim programima.'lNa ova5 nacrn formira se izraduna_
va ae vrednoat aritmetidkog izraza I i tako dobijena brojna
biblioteka potprograma u ratunskim centrima, u kojoj se nalaze kao goto- vrednost dode-
ljuje ee imenu funkcijske naredbe.
vi potprogrami mnogi postupci iz numeridke matematike, statistike i dru-
Prema tome, funkcijska naredba predstavlja potprogram, sa proiz_
gih oblasti primene radunara.
voljnim brojem ulaznih velidina. Izvestan broj ulaznih velitina se
. U FORTRAN-jeziku postoje tri vrste potprograma navode
u listi (6.2. 1) kao argumerti potprograma,
a ostale ulazne velieine pred_
- funkcijska naredba,
stavljaju promenljive koje su definisane u programu, kojem je pridruZena
- funkcijski potprogram i
funkcijska naredba, a figuri5u kao argumenti u aritmetidkom
- opsti potprogram. izrazu 9
11?
ll6
l. ).:I1rnke'ijska naredba mora imati naimanje jedan fiktivni argumer$'
(6. 2. - povratak iz potprograma u program oznaEave se lrr.utnim gimbolom
u koji se upisuje skradenica PUP (Povratak U Program).
lztazni rezultat potprograma je jedan broi koji se dodeljuje imenu funkcijske
naredbe. Pr.imer
Na mestima stvarnih argumenata u (6.2.2) mogu se pisati aritmetidki Za zadate vrednosti x1 , yl i = 1,2;3 izraEunati
izrazi.
Fiktivni i stvarni argumenti moraju se slagati po broju, redu i vrsti'
To znadi. ako fiktivnih argumenata ima n i stvarnih mora biti n, i pri tome
, = *lbj+ F (x3, ys )
l.
stvarni argumenti u (6. 2. 2) zamenjuju filctivne argumerte u (6. 2 . l) redom gde je
sleva nadesno, Slaganje argumenata po vrsti podrazumeva da ako je fiktivni
I
argumert celobrojna, odnosno realna Promenljiva, onda odgovarajuca veli- F(x, Y) = 3xz + 8Y + etr+EY
6ina mora biti na mestu stvarnog argumerta.
Vrsta funkcijske naredbe deklariSe se na isti na6in kao i vrsta pro- Algoritam za oyo izradunavar\i€ prikazan je na sl. 6.2.2. A ovom aI-
menljive goritmu koristi se potprogram PPl (sl. 6.2.31 za izraEunavanje funkcije
- unutragnjom konvencijom po poeetnom slovu imena funkcijske nared-
be, F (x,y) = r, (x,l) * gF1(r'Y1

- eksplicitnom deklaracijom pomodu opisne naredbe REAL ili INTEGER


iIi gde je
- iglplicithom deklaracijom pomodu opisne naredbe IMPLICIT'
Funkcijske naredbe se navode na podetku F, (x,Y) = 3x2 + 8Y
programske jedinice pre prve izvrSne naredbe
programa. a vrednost funkcije 4(x,y) izradunava se pomodu potprograma PP2 (sl.
GrafiEki potprogram se prikazuje pomodu: 6.2.4) koji se poziva u potprogramu PPl.
- kruZnog simbola, u koji se upisuje broj
potprograma (PPn, n = 1,2,...), i oznadava po-
t NAREDBE 6etak potprograma (sl. 6.2.11 ,
: xtx,i-1,2,s
POTPROCRAHA - iza kruZnog simbola sledi grafidki simbol
sa polukruZnim bodnim atranama u koji se upisu-
ju ime potprograma i fiktivni argumenti potpro-
grama, koji se po broju, redu i vrsti moraju sla-
F,(x,v)-5azvgY
gati sa stvarnim argumentima. Ime programa
tnoze se izostaviti i u tom slueaju algoritam pot-
*.6.21
programa se razlikuje od ostalih potprograma oz-
nakom u kruZnom simbolu na poletku potPrograma.
sl.6.2.2 sl. 6.2.3 sl. 6.2.4
118
119

Program na FOnTBAN-jezlku aartrv{en po algorltmima na sl. gde je


6.2.2, 81.6.2.3 i sl. 6.2.4 ima slededl lzgled; .' FUNCTION - sluZbena red, koja oznadava poCetak i tip potprograma,
DtltrNstoN xtJtrYt3t '\. ime - naziv potprograma koji se defini5e na isti nadin kao ime
Fl(XrYl.3.tlI*X+8.rY
/ promenljive,
FlxrYl=Fl(irY l+EXPtFllXrYt' lista - spisak fiktivnih argumenata potprograma, medju
REAoI 5rz0l tx( l r ry(t I rI_lr3t sobom
?0 FORIiAT(6f5.2' razdvojenih zarezima,
Z.F( X( I I r Y( I I I tFtxl2t,y( Z I txF I xt3l,y t3 t I END - re6, koja oznaCava fizidki kraj potprograna.
eluZbena
xRtTEl5rS0' Z
80 FOR||ATl ' t t'Zs' rE14.7l Fil:tivni argumenti mogu biti imena promenrjivih, imena nizova iri
STOP
END
fildivna imena drugih funkcijskih ili op5tih potprograma. Kako se filiitivna
imena drugih potprograma mogu koristiti kao fiktivni argumedi u Iisti

U ovom programu Je predvidJeno da se ulazni podaci nalaze na Jed-


(6:3.f) bide obja5njenou odeljku 6.?.
noJkartlci u redoeledux1 r X1 r x2, !2 , xs, yil a evald od njih ee opisuJe
Funkcijski potprogram se pi5e kao posebna programska celina. SluZ_
sa Ft.2. bena reE FUIrcTION oznadava poEetak ovog potprograma, a sluZbena red

Za ulazne podatke END kraj potprograma, i pi6e se uvek kao zadnja naredba potprograma. Iz_

x, o 1,00 medju prve i zadnje naredbe potprograma moze se nalazitl proizvoljan broj
FORTRAN-naredbi, osim
Yr -0
xr = -o' 14 - druge FUNCTION - naredbe,
Y2 = -1,05 - druge END - naredbe, ili
xr = 0,35 - SUBROUTINE - naredbe.
Vreta fiktivnih argumenata odredjena je unutrasnjom konvencijom
xs = -o' ?5
rezultat se dobija u obliku FOTRAN-jezika ili opisnim naredbama za eksplicitnu, odno'no implicitnu
deklaraciju vr6te, koje se piSu iza prve naredbe potprograma.
Z. o"L55191i2 02 Prelazak iz programa u ovaj potprogram vr5i se na isti nadin kao i
kod funkcijske naredbe, navodjenjem imena po.tprograma, kao argumenta
6. 3. Funkcijski potprogram aritmetidkog izraza u obliku

Funkcijska naredba se moZe kofistiti kao potprogram, ako se radi o ime(lista) (6. 3. 2)
Jednom aritrnetiEkom izrazu. Medjutim, vrlo desto potprogram sadrZi ve6i
gde je lista spisak stvarnih argumenata, medju sobom razdvojenih 'zarezima,
broJ naredbi I to ne eemo aritmetlCkih. Ovakav potprogram zove ae funk-
kojima se zamenjuju redom fiktivni argumenti potprograma. Na mestima
cijski potprogram. Op5ti@ stedeCi
stvarnih argumenata mogu do6i i aritmetidki izrazi fii imena funkcijskih
FUNCTION ime (llsta) ili opstih potprograma. Stvarni i fiktivni argumenti moraju se Blagati po
(6.3.1) broju, redu i vrsti. Funkcijski potprogram mora lmati najmanje jedan ar_
: gument. Izlazni rezultat funkcijskog potprograma je jedan broj koji 6e do_
END deljuje imenu potprograma. Prema tome, medju FORTRAN-naredbama ko-
I

120 t2l
je dine potprogram mora se nalazlti najmaujF jedna aritmetiCka 4aredba,
na dijoj levoj strani od znaka jedriakosti stoji ime.potprograma, a kojom ee
Tabela 6.3. I
bu rlEr. ot1.
dodeljuje iilazoi rezultat potprograma njegovom imenu. I qrurhr.
!
Povratak iz potprograma u program vr5i se posebnom FORTRAN-na-
4l!, I nlta,att I a,rt.ta_t' tlEltdu ls-
Ett.
redbom
E(rl b(rt I I r,rl.rl-r E@ lqslb
wloht lq{d .T I l,0t.rO_' M l*t6
RETURN (6. 3. 3) F(l) a I T a"a.tl
tlr(tl tblrl I rr<l,tl3.to' t l. tt.ta

koja se mora pojaviti najmanje jedanput izmedju prve i zadnje naredbe pot- illrt I rl<4,:tt.to'
b tdLrb,
* l. tt. lO{ tllptsrtt.
programa. Ako se u potprogramu koriste programski ciklusi onda naredba tM ar, rt [t rl<a,tr5.lO- I l,3l.rc-t
rr, lt !/art
ld. r.r. -. -
(6.3.3) ne sme biti zadnja naredba ciklusa, na slidan nadin kao 5to naredba
rulrt .t{ (rl I rr.l,2tl. l0 I a.3a. r!-'
rr, rt
STOP ne sme biti zadnja naredba ciklusa u programu.
rnlll aoabllt I rt$ I t.:a. ro_'
U FORTRAN-jezlku postoji veliki broj funkcijskih potprograma, koji Icl rr{l I l,al.rc-' M.- Brtc.
rrrd. tdsl,.
se u programu pozivaju propisanim imenom. Ovo su potprogrami opdteg {l:l .Ett(rt rtat I ,.rr.to'
rffilrt,rll 6rt l.!/r:, ri .rY.t a ,.7r.tc-'
karaktera, kao 5to,je izradunavanje elementarnih funkcija i sl., koji se 6es-
to koriste u raznim prora-unima. U tabeli 6.3. I dat je spisak ovih potpro- ruld .Dlr) I .r < lta.atl I !,to.ro{
grama. U tabeli su uvedene sledede oznake slrt I ar <!?a,atl t o.tat.to_'
ua:l 6lrt I a l. u. to-t
x, xr, x2,.,. -artimetidkiizrazi, wlrt,rl....l E(t,rr,..., c .r1.1.2a....<i I

R - realna veliEina, koja se registruje u obliku pokret- ucrr2....t rlr I


nog zareza, 'ttt,...<t er.rr*
MFt.a:,...' c rrl,tr2t....<r C

C - celobrojna velidina, koja se registruje u obliku celog


broja, ur(at.1,...t T rrl,lrrl....<t c

M - maksimalna vrednost celog broja (M=2 147 483 6411 , Nu(4t.rr,..., Sarl'.1...., C rtr.r.:r,...<r I

P - maksimalna vrednost broja registrovanog u obliku [.r lrl.rl,..., rrr'rrlr,.!r<t I


pokretnog zareza (P s ?,2. 10?3 ),
qFhr.t,..., c rtt , utt ,... (r
["]
L"J - celobrojni deo broja y.
Navedena relativna gie5ka funkcije je najveda EtatistiEki dobijena re- I .tr,11,... <t c

lativna grSka za razne vrednosti argumenta iz dozvoljenog intervala. 6IeFac I s,zc. ro'7 &tr. r&
Funkcijski potprogrami navedeni u tabeli 6.3. 1, pojavljuju se jedan-
Ul!l t-&fi'et !tat I t.rl'to-l lAl-! l@lt

I o.rr,ro-flrrr.rrrr I a. ta. !a_t


put u programu posle prevodjenja sa FORTRAN-jezika na ma5inski jezik. rulrt lc<,ul.rot'
I t.tt'll-'
Svako mesto u .FORTRAN-programu na kojem se pojavljuje ime funkcijskog
potprograma znadi prelaz na ovaj potprogram, a zatim, kada se izvrSi ovaj
potprogram, vrsi se povratak iz potprograma u program.
U FORTRAN-jeziku postoje i funkcije koje se pi5u na isti naain kao
i funkcijski potprogrami, a pojavljuju se u programu onoliko puta koliko
-_\

L22
123

6d trd rt puta su zapisani. Dakle, na svakom meatu gde ae nalazi Diihovo ime, u ma-
,{.o I
do0tN ,a ia

@
t
G1I
,k
Otrt tx tt
,a
-l
t,
o
a,
I
o
E
7 Sinskomprogramu,bi6epostavljenizvestanbrojmaFinaldhnaredbikoje
N'
N J. o
c o e
I d
c utt
Ofi realizuju odgovarajudu funkciju. Ove funkcije su prikazane u tabeli 6' 3' 2'
d
dt
oo
'lnbi a
tl o
L
6 !
o
g rtok
pc) okc n
,a ,
L t, t
d s n.o aJ
c oo Ic 6 no.o
rl O Urk C n o a.t Primer
F o
o 6O.$ a,
dF{ o a
L o
F{ e
t
c
,{
c
at
aa,
>{a
d ,t n t do
OOOL
to .o
ot
8 al A rre
o )ao.o +{ t o d
ttl N d I AE Sastaviti program koji izralunava vrednost funkcije
I
l{ a-l
!.Xra.{
A
4 ta
o
A I Io x:
ra
e,
k-at 0(x,Y) = U(x-Y) - 4,3 u (2x-1,5Y) (6. 3. 4)
tt
a I
n on I I I I I t
(, &t
.ra gde Je
tc lo za t < o
L a,a
a & (, (, e u & (,
ft U & U & &
u(t) = t =o
.l o,u ze (6. 3. s)

o Lt,t z4 t >o
o A E A E
v
t
v Il x
c c| (x, y) nalazi 6e na po
u v tl, za proizvoljan broj parova (x, y). Svaki par brojeva
r, {,o
c N ee opisom polja F10.4'
L d N x jednoj kar{ici, i registruje
o c
3 L
ttl tn
rt
v,
:t
x x 1 Iu:
B
I
A A Algorltam je Prikazan na sl. 6.3.1, gde ie pretpostavljeno da se iz-
! o
x ?
Y
x
A
x x
Y, T I u (sl' 6' 3' 2) '
x x x ta x x x ra€unavanje funkcije (6. 3.5) vrSi pomodu funkcijskog potprograma
It
4,
6 (, a o a o tr (, & o fr q &
r.

d
(, a{ l\
x x N
-,1
.,rt N x
F
E
o
I *ur x
d
x x l\
E x -l
c ,{c
I
.l, or
Ul q c
a
I
A
g o
;x I E
I
g
I
E :l:
a D I
I,a ,a x x x x x x E': li:
o. c{
a tc x N d
a
a x x N x
I x x
,a x
.a,
t C.
I
z r x
x x
x x x
o 1 x (, z tH o t
ra ,l
3t
3 l-a H o 2 o o o ai E
5 h
&.
H
o
H
H
a^
o
H
H
o Io I fi 4o z
f<
H

t
il sI.6.3.1 sr. 6.3.2
II
I
,.\

j
3
ji
o

124
125
FORTRAN-program sastavljen po algoritmu na sI. 6.3.1 ima slede.
vrsta FUNCTION ime(lista) (6. 3.6)
Ci izgled:
iI
hRITE(6rl0l
l0 F0RHATI' rr5Xrrxrr)4Xr'Yrr9XrtTEIA' ll !
l4 READ( 5r 12, EN0:20 I xrY END
l2 FOR},|ATl2FlO.4t
I-+. 3*UFUN( 2. rX-I " 5fy'
TETAiUFUUI X-Y gde namesto redi vrsta moZe doCi sluZbena reE INTEGER ifi REAL u zavis-
IIRITEI6Tl3I X,Y,TETA
|
l3 FORHATI 'rFl0.4r5XrFl0.4r5XrF4. l l no6ti od toge koja se vrsta brojnog podatka dodeljuje imenu promenljive kao
G0 TO l4 rezultat potprograma. Sve ostale re6i u gore navedenoj konetrukciJi imaju
20 sT0P
END ranije opisano znadenje (vidi 6.3. 1).

Izra6unavanje funkcije U(t) vr5i se pomoCu slededeg funkcijskog potprog-


6.4. OpSti potprogram
rama
FUNCTION UFUN(T' Funkctjska naredba i funkcijski potprogram kao izlaznu velidinu daju
IF(T) l0rtlr1Z
lO UFUN=0 jednu vrednost koja ee dodeljuje imenu odgovarajuceg potprograma. Medju-
RETURN
ll UFUN.o.5 tim, vrlo 6esto se zahteva da potprogram moZe dati vi6e vrednosti na iz-
RETURT'I lazu. To je omoguCeno opStim potprogramom, koji se pi5e kao posebne pro-
l2 UFUN-1.0
RETURN gramska cellna oblika
EI{D

SUBROUTINE ime(lista) (6.4. 1)


Za Sest zadatih parova (x,y) na ulazu, izlazni rezultati se dobijaju u
;
obliku tabele I
I

END
x Y TETA
gde je
I 5" 0750 - 1o.0000 - 3.3
0.0033 480.0000 0.J SUBROUTINE - eluZbena reC i oznaEava podetak i tip potprograma,
- I 50. O000 30" 5000 0.c'
-12.5500 -20.0000 -3.3 ime - naziv potprograma i definiSe se na isti naein kao ime
0"o 0o0 -1.6 promenljive,
5Or OOO0 70.0000 o. ('
Iista - spisak fi}*ivnih argumenata, mediu sobom razdvojenih
zatezima,
6.3. l. Eksplicitna deklaracija vrste funkcijskog potprogram4 END - sluZbena red, koja oznadava fizi6ki kraj potprograma.

Fiktivni argumenti opgteg potprograma mogu biti imena promenljivih,


Vrsta funkcijskog potprograma moZe se deklarisati unutra6njom kon- imena nizova, fiktivna imena drugih funkcijskih lli opStih potprograma (vi-
vencijom FORTRAN-jezika ili implicitnom deklaracijom po prvom slovu di odeljak 6.?).
imena potprograma. Pored ovih mogudnosti, funkcijski potprogram moZe Izmedju prve naredbe potprograma (SUBROUTINE) i zadnje naredbe
se po vrsti deklarisati eksplicltno na slededi nadin (END) moZe se nalaziti prozvoljan broj FORTRAN-naredbi, osim:
- naredbe FUNCTION,
t

t28 L27

- druge END-naredbe, lll Primer


Sastaviti potprogram za reiavanje kvadratne jednadine
- druge SUBROUTINE-naredbe.
Vrsta fiktivnih argumenata odredjena je unutraSnjom korvencijom Ax2+Bx+c=o (6. 4. 4)

FORTRAN-jezika ili opisnim naredbama za eksplicitrnr, odnosno, impli-


citnu deklaraclju vrste, koje se piSu iza prve naredbe potprograma.
Kako opgti potprogram mole dati vise vrednoeti na izlazu, to ee od
svih navedenih argumenata u listi neki pojavljuju kao ulazne velidine u
potprogramu, a neki dobijaju brojne. vrednosti u Potprogramu i predstav-
ljaju izlazne veliCine. Prema tome, lme potPrograma u ovom sludaju slu-
Zi samo za raspoznavanje potPrograt+a, a ne za dodeljivanje brojne vred-
nosti na izla?.lt iz potprograma. OpBti po,tprogram ima smisla i bez argu-
menta. Ako je potprogram bez argumenata, onda se piSe u obliku

(6. 4. 2) Algoritam potprograma


SURROUTINE ime
je prikazan na sl. 6.4'. 1.
I
I
I

END

Prelazak iz programa u oP5ti potprogram vrli se pos'ebnom nared-


Re(x) = --b1?^
bom Im (x.)=ylDl/2A

CALL ime (lista) (6. .l . 3)


lDl <o,1 ' 10

gde je
CALL - sluZbena ret i oznaCava poziv op5teg potprograma,
ime - naziv opSteg potprograma koji se poziva,
lista - spisak stvarnih argumenata, medJu sobom razdvojenih za-
rezima.
Stvami argumenti mogu biti aritmetilki izrazi, imena funkcijskih i-
Ii imena op5tih potprograma.
Stvarni i fiktivni argumenti moraju se slagati po broju, redu i vrsti'
Od navedenih stvarnih argumenata neki de biti ulazne veliEine u op5tem
potprogramu, a neki Ce biti imena promenljivih ill nizova kojima se docle- n"(xn)= Re(x.)
ljuju vrednosti u potprogramu i predstavljaju izlazne velidine potprogranr:r'

6.4.r
t29

U FORTRAN-jeziku ovaj potprogram moze se zapisati u vidu opgteg


potprograma u obliku

SUBRUUTINE KVJ€D( Ar B rC t REXIr I l{Xl rREX2I I tlX2 rI I


REAL IHXI' II1X2
lF{Al 20r21.r20
20 DISKR=8**2-40*A+c ULAZ: qQ./R
REXI=-Bl I 2.*A )
I ilXl= SQRT ( ABS ( D I SKR I ) / ( 2. *A I
l-l"oE-61 ll'll'22
IF(ABSIDISKR
22 lFl DISKR t l0r rlr l2
10 lF(61 l3rl4rl3
l3 I=3 rED(ea,R Re(xli.(x),
l5 IHx2=-Iltxl Pe(v.),I- (Y.), x )
l6 REx2=RExl
RETURN
la I=a
GO T0 15
I I I =2
co To 16
l2 I -l
REX2=REXI-Ir,!Xl
REXl=REXlrIl'lXl
RETURN sI.6.4.2
2l I.5
R E TURN
END
ljen po algoritmu na 61. 6.4.2. ima slededi izgled
rT ovom potprogramu vr5i se ispitivanje uslova
REAL Il{Yl r lHY2
HRITE( 6, IO
lol <t.o.to-6 lO FORIIAT( | I r' 3Xr rAr 17X1 tBtr7Xr'f t rlOIr'Xl I r l4Xr tX2r rBXr
.tltlt rr24xrrREALAI{ . tilAclN REALAT{ lfiAcll{r/l
da bi se izbegao uticaj greske koia se javlja pri prevodjenju koeficijenata t3 READl5r llrEND-lil Pr'QrR
ll FoRtlAT(3F6.21 ,.
jednadine u interni kod radunara (binarno kodirani heksadekadni brojni sis- CALL KVJE0I PrQrRrREYlr IllYl rREY2r ll{Y2r I I
GO TO (16r 16r l5rl5rlTlrl
tem), kao i uticaj greSke usled radunanja sa pribliZnim,brojevima. l5 IIRITE I 61 2O I P rQ rR rREYI r t l'lYl r REYZ r I l{Y2 r I
20 FORIIAT(' t t7 lF6o2tZXl rl ll
Primeniti opsti potprogram za reSavanje kvadratne jedna6ine (KVJED) co ro 13
na reSavanje prolzvoljnog broja kvadratnih jednadina, pri eemu su koefici- l6 IRITEI 6t30, PrQrRrREYI rREY2r I
30 FORilATI t' t7(F6.2tZXlrF6.2rlOXrF6.2rl0Xrll I
jenti svake kvadratne jednadine zadati na jednoj kartici sa opisom F6.2. GO T0 13
l? URtTEl6r+Ot PrQ'Rrl
Algoritam za ovo izradunavanje prikazan je na si. 6.4.2, gde je 40 FORhATI'' t3lF6.2t2)(lr32XrIl t
pretpostavljeno da je op5t-i oblik kvadratne jednaEine G0 ro 13
l4 sToP
END
Pyt+Qy+R=0 (6. 4. 5)
Za ulazne podatke, za re6avanje 4 kvadratne jednaEine, po gornjem

a promenljiva I svoj.om vredno5Cu odredjuje karak:ter re5enia, kako je to programu, dobiJaju 6e rezultati u obliku tabele:
opisano u opgtem potprogramu na sl. 6.4. f. FORTRAN-program sastav-
i

r30
131

c xl CiJe je obelel,je n1 , gde je ! redni broJ obeleZJa u listi stvarnih argumena-


t2
REALAN ITIAGIN REALAN IilAGIN ta potprograma.
lr0O -6100 -+8.00 12.o0 -4.00 I U ranijem primeru, za resavanje kvadratne jednadine, u programu
1.00 -2r40 lo4l lo 20 1.20
6000 0.0 2+.00 0.0 2.00 0.0 -2.00
2
4 ae vrgi prelaz na razlidite naredbe Etampanja u zavisnosti od velidine I,
1.00 -10r00 41c00 5.00 {o00 5o 00 -4c 00
0.0 -10.00 o.o 3
5
kojoj se dodeljuje brojna vrednost u potprogramu (KVJED). Ako se koristi
naredba (6.4.6), moZe se isti program napisati u obliku

6.4. l. Promenljivi izlaz iz potprograma REAL lilYlrlltY2


HRIIE(6r10'
lO FORI{AI( t, r3X, .Ar rTXr rB, r 7Xr rC r r t0Xr rXl, rl4xr. X2r r gx,
*tl.l. rr24Xr.REALAN It{AclN REALAN IilAGlXr/t
lzlaz tz funkcljskog I oplfteg potprograma vrgi se preko naredbe RE- l3 READ(5rllrEt{D.l4l prQrR
TURN' u slucaju funkciJskog potprograma naredba RETURN vrsi povratak l l FORT,|AT ( 3F6.2 t
caLL KVJ ED{ pr Qr R r REyl r t tlyl, REy2, tt{y2, I,El 6r fl 5r tl 7 I
iz pqtprograma u program, i to u onaj aritmetiCki lzraz programa, l5 LRITEI6r20 I PrQrRrREYIr ItlYlrREY2r IllY2r I
u kojem 2J FORI{ATl' t tl lF6.2t2I I rtl I
se kao argumert pojavilo ime funkcijskog potprograma,po GO TO t3
kojem se doSlo iz
programa u potprogram. U sluEaJu opsteg potprograma l6 I{RITE(6, 30 t P,Q,R,REYI, REY2, I
naredba RETURN 30 FORl.lATl. . t3lF6"2t2X lrF6.2r lOXrF6.Zrl.0XrI ll
vr$i povratak iz potprograma u program i lo na naredbu koja neposredno GO TO t3
l7 t{RlTEl6r40 I PrQrRrI
sledi iza naredbe CALL kojom Je izvrden preLaz iz programa 40 FORIIATI | . tJlf6.2t2Xlr32XrJl I
u potprogram. G0 ro 13
Pored ovakvog povratka lz op3teg potprogranra u progratn, moZe se l+ sToP
vrgiti i povratakna naredbu sa odredjenim obeleZjem u programu. [, ovom END

sluEaju naredba povratka ima oblik Op5ti potprograln u ovom sludaju ima slededi izgled:

suBRouIINE KVJED( Ar IrCr REXIr IilXl,REX2, IilX2, t,1, +,II


RETURN i REAL IIIXI,JHX2
(c.4.6) tF(Al 20r2lr20
20 DlSKR.Brr2-+o*A*C
gde je 1 ceo neoznaEen broj ve6l od nule
ili ime celobrojne plornenljive, REXI'-8/(2.rAt
I |lxl.SQRTlAbS I DISKR ,11 12.+At
Brojna v.ed'ostjukazuJe na obelezje naredbe, zadato medju atvarnirn IFt t-1"0E-6t
ar- AESt DtsKR 11, 11, 22
gumentima potprograma, ObeleZja naradbi u programu 22 IF(DISxR' l0rll,t2
na.koja se moie do- l0 IFlEl l3rl4113
di iz potpr.g'ama navode se kao stvarni argumenti pdprograma l3 lr3
u obriku t5 I }lI2r- I ilxl
J.2
&n (6.1. ?) l6 REx2.R EX I
RETURN J
gde je It t-+
Go To It
& - simbol koji ukazuje da je argument obetezje naredbe, a ll 1.2
n - obeleZje Jedne izvr5ne FORTRAN naredbe u programu.
J.l
GO TO 16
l2 I.l
Kako se fiktivni i stvarni argumenti moraju slagati po broju, redu i REx2.RE X l- I |'tX I
REXl.REIlrtitxl
vrsti, to se na odgovarajudem mestu, u nizu fiktivnih argumenata pise,+. RETURN I
Tako, naredba (6.4.6) vrll prclaz iz potprograma u program na naredbu 2L lr5
RETURN 3
€r{0
I

132
133

6. S. Nacit![ preno5enJe argumenate lz progreEa potprqgreme SUBROUI I ilE r.V JED I t Al, l8l t t RE'.l t ltitxl,
u
RElt tHxlrlllxz
tf C RE XZ, I ilXZ, I r. r*, I t
lFl^t 20t2lr20
Funkcijski i op6ti potprogram predstavljaju posebne programske 2J DlsxRr 8r12-{. *a*c
ce- REII.-.8/(2..A1
line. Ovakvi potprogrami kada ee jedanput napiEu mogu se po po,,trebl I llxl.SQRT ( ABS I OtS(R I I I I 2. tA.l
korie_ lFlABSt DISKRt-l.OE-6t llr tlr22
titi u razliditim progrqmima, Sve promenljive i obeleZja koja ee 22 lFlOtSKRl lOrllrl2
Jav{aju u to ;Ft8t l3?l4rl3
potprogramu nezavlsni su od onih u programu. Tako It
se ista obeletje I i.me_ l13
na promerJjivih mogu pojaviti u r5 Itlx2r- I ilx I
Flcrtprogramu i programu. Medjutim, za J.2
ista inena promenljivih, u programu i potprogramu, angaZuju se
razllll_ l6 REI2.REx l
RETURN J
ti registri u mehoriji. U opStem potprogramu za redavanje kvadratne l{ I't
Jed_
nadine, pronenljivrm A, B i c dodeljuju se brojne vrednosti GO TO r5
stvarnrh argu- ll l-2
menate P, Q, R (vidi primer na kraju odeljka 6.4). promenljiva J.l
I Jav{a ee GO TO 16
kao stvarni argumerd i kao fiktirfni argument potprograme. l2 l.l
Medjuttm, broj-
na vrednost p.omenljive I u progremu bi6e u jednom,
REX2-REXI- lrXl
a broJna vrednost pro- RETI'RETIiIHxI
menljive u potprogramu bide u drugom memorijskom reg.istru. RETURN I
Ovakav ne_ 2L 1.5
din prenoEenja vrednosti argumenata zove ae dir:ektan prenos RETURN 3
argumeneta
EilD
iz programa u potprogram.
Prema tome, u slucaju direktnog prenosa argumenata iz programa
u tada ee brojne vrednosti stvarnih argumenata p,
potprogram, vrednosti argumeneta ae prenoEe iz registara Q i R ne6e dodeliti fildiv-
memoriJe -u ko_ nim argumentima A, B i c, ve6 6e se u potprogramu
jiqna se nalaze atvarni argumenti - u registre namesto fiktivnih ar_
memorije angaiovane za fik- gumenata /N' /B/ 7/c/
Euvari adrese registara u kojima se nalaze
tivne argumente potprograma. brojne
vrednosti promenljivih p, e i R. Na ovaj naEin brojne
Pored ovog nadina prenogenja argumenata iz programa u potprograa, vrednosti argumena_
ta P, Q, R koriste ae u potprogramu, indirektno iz
moie se koristiti indirektan prenoa argumenata. u ovom slucaju, kao registara memorije u
fik- kojima se one duvaju u programu, a preko odgovarajudih
tivni argument pojavljuje ge adreea registra u kcjem se nalazi stvarni er- adresa ovih regi_
atare.
gument programa. Na ovaj na6in ee vrednost argumenta
uzima iz registra
memorije u kojem se nalazi stvarni argumert. Da bi se ukazalo
na to da
na mesto fildivnog argumerta dolazi adresa, a ne vrednost
6.6. Promenliivi ulazi ,, -a^-^--^-^
stvarnog argu_
menta, filctivni argumert se pi5e izmedju kosih crta, tj.
U funkcijski i opiti potprogram dolazi se lz programa,
na prvu izvr,
/a/ 6nu naredbu koja eledi iza naredbe FUN.TI.N
(6. 5. r) ili pored
ovakvog prelaza na potprogram, kod ovih potprograma''BROUTIONE_
gde je a ime fiktivnog moze se koristiti
argumente. i promenljivi ulaz u porprogram. pod pojmom t'ulaz u potprogram[
podra_
Tako ako bismo u opBtem potprogramu za regavanje kvadratne jedna- zumeva ae meato u programeko.ur algoritmu na
koje se vr6i prelazak, ka_
6ine,.u prvoj naredbi, fiktivne argumente A, B i C napisali izmedju kosih da ee prelazi iz prograrna na potprogram. promenljivi
ulazi u potprogram
crta, tj. potprogram u obliku oznadavaju ee naredbom
t

r8{ 135

ENTRY tme, (llata) (6.8. l) Naredbe (6.6. l) ne utiCu na redosled lzvrSavanja naredbi patpragraan1
ciklusa del;ni-
ma. Ove naredbe se ne smeju nalaziti u okviru prc'gramskih
gde Je
sanih naredbama DO.
ENTRY - sluibena reE koja ozna{ava mesto ulaska u potprogram,
Primena naredbe (6.6. l), za definisanje viSe ulaza u potprogram' u
ime, - naziv i-tog ulaza u potprogram, koji 6e definiEe na isti na- programiranju je korisna kada se Zele na razli[itim mestima
programa
Ein kao i ime potprograma, vrsti i redu sa
definisati razliditi argumenti, koji se ne slaZu po broju'
Iista - spisak fiKivnih argumenata i-tog ulaza upotprogram, me- (FUNCTION' odnos-
dju sobom razdvoJenlh zerezima. Ovi flltivnt ergumerti se argumentima definisanim u prvoj naredbi potprograr4a
definiSu na isti naCin kao i fiktivni ergumerdi pdprograma,
no SUBROUTINE). Pored toga, ova naredba
je korisna i kada se na razli-
ali mogu biti razlidlti po broju, redu I vrsti od fitrflvnih ar-
gumenata potprograma. ditimmestimaprogramadefiniSurazliditeizlaznevelidinepotprograrna.
Na ovaj na6in motre biti definisan veCi broj mesta u potprogramu, od
koJih moZe podeti izvr5avanje potprograma, pored normalnog pr.elaza iz Primer
programa na potprogram od prve lzvrEne naredbe {za naredbe FUNCTION,
slede6i nadin
odnosno SUBROUTINE. Na ma koje me6to potprogrema, oznaceno kao mo- Velidine A i B odredjuiu D(karlove koordinate na
gudi ulaz naredbom (6,6. 1), moze se dodl u sluCaJu funkcijskog potprogra-
(6. 6. 4)
Ere, navodjenjem argumenta aritmetickog izraza u obllku x-- tf$T6'z
y= tr+B (6. 0. i,)
ime, (lista) (6. 6. 2)

Saetaviti Program koji Ce izradunavati Dekartove


i polarne koordirrltc tada-
gde je
ka, na osnovu zadatih vrednosti A i B' Na sI' 6'6' i prikazan it algr;pi13'
ime, - naziv i-tog ulaska u potprogram
lista - spisak stvarnih argumenata i-tog ulaza, medju sobom raz- za reSavanje ovog zadatka.
potprograma, diji
dvojenih zarezlma. Ovl stvarni argumerti 6e definisu na Izradunavanje polarnih koor<]inata vrSi se preko
lstl nadin kao i stvarni argumenti potprograma, samo Sto mogu6a tt-
se po broju, redu i vrstl moraju slagatl ea fiktivnim argu- je algoritam prikazan na sl. 6'6'2' Kao Sto se vidi' postoie tri
PP1 obezbediuje izradunava-
, ,mentima i-tog ulaza u potprogram. laza u ovaj potprogram PP1, PP2 i PP3' Ulaz
U sludaju op5teg potprograma, prelaz na ulaz, definisan naredbom nje
(6.6.1), vr$i se naredbom
(6. o. nt
R= \fizTjz
CALL ime, (lista) (6.6.3)
lJlazPP2 obezbedjuje izraeunavanje ugla u radijanirna
gde je
CALL - sluZbena reE koja oznadava pozivanje opiteg potprograma, X (6.6. ?)
Q.= arctg 1.
ime, - naziv i-tog ulaska u potprogram,
lleta - spieak stvarnih argumeneta l-tog ulaze u potprogram, me- a ulaz PP3 obezbedjuje izradunavanje ugla
u stepe-
i R po formuli (6.6.6),
dJu sobom razdvojenlh zarezima. Ovi etvarni ergumenti
8e definigu na istl necln kao i etvarni ergumerili potprogra- nima na osnovu zadatog ugla Q" u radijanima'
ma, samo lfto se po broju, redu i vrsti moraju sla$ati sa
180 q" (6. 6. 8)
fiktivnim argumertima l-tog uleza u potprogiam Q" =
um't'
t

136
13?.

Program sastavljen prema algoritmu na sl. 6.6.1 ima slededi izgled:

HRIrEl6rtOt
r0 FoRtfATl. tr3xrrxrrSxr.y.rgxrrSrll0xr
trIETAr/. . t.26lf-t.RADIJANA STEPENI./l
50 READ(5r20rENDr4Ol ArB
20 FORiArl2F6.2t
y-A.g
CALL KORR(A,8,XI
CALL KORRTIX,Y,R, RADI JI
CALL KORTSISTEPEN
XETTE(6, 30 I '
XTYTRTRADIJ,STEPEN
30 FORIIATI | . t3lF7.2t2XlrF6.3t2Xtfl.Zl
GO TO 50
{0 sToP
END

a potprogrem, prema algoritmu na sl. 6.6.2, bi6e


(a., s,x )
SUEROUTI}I€ KORRTI X, Y,RI TETA t
TETA.ATII{l Y./X I
EN'RY KORRtX,Y,RI
R.SQRTI X.XiY.Y t
RETUR,N
(x,v,n,e^; EI{TRY KORTSITETASI
TETAS-TEIA*I 40. /3. I +l 59
RETURI{
EIID

Potprogram nosl ime KORRT i ima 4 fiktivna argumenta, od kojih su


Xi
Y ulazne vrlldine, a R i TETA izlazrc;e veliEine. pored toga, potprogram
sadrZi dva ulazna mesta, pri cemu ulazno mesto aa imenom KoRR ima
tri
fiktivna argumenta, od kojih 6u prva dva ulazne velidine, a dnrgi izlazna
veliEina potprograma. poredjenjem normalnog ulaza u potprogram, preko
ioena.KORRT sa ulaznim meatom KORR vidimo da ee u prvom radunaju
obe polarne koordinate g tR, a u drugom eamo koordinata R. ulazno me-
(x v,ng.) ato sa imenom KORTS ima jedan fiktivni ergument i to izlazni. Na ovo u-
lazno mesto ima smlsla da se predje iz programa samo ako je pre toga pot_
program pozivan preko imena KORRT, Cime j6 promenljiva TETA dobila
broJnu vrednoet, pa je aritmetirki izraz na desnoj strani aritmetidke na-
redbe
f €f ASrT€TArI 8O o I 3. L1ti9
definleen I promeriljiva TETAS Eote doblti korelctrnr broJnu vrednoet kada
sI.6.6-2 se na potprogratn dodje prsko ul8z. KORTS.
'!

r38 4
j
139

Za ulazne podatke Naredba (6.?.2) pi5e se u programu pre prve lzvrEne naredbe pro-
A B grama.
13,20 -?,50
6, l8 ?, 50 Primer
4,37 -6,0?
ll,8? -3,60 Sastaviti potprogram za numeridko izracunavanje odredjenog integra-
izlazni rezultati se dobijaju u obliku tabele la po Simpsonovom obrascu
XY R TETA b
RAOIJANA STEPENI
v = i rt'l a' = | [rt*"t
+4f (xr) +2f(x2)+. ..+4f(xo-t)+f("J] (6. ?. 3)
l8
I 5. ,.7t) 16.22 0n359 20.50
9.72 !3.69 16. ?8 0.953 5a.61
7.48 - l. 70 7.67 -O.22? -l2o8l gde je
12. +O 8.2f ll.gt 0.588 33r59
.h:- b-a (6.?.4)
6. ?. I?",,1: pdprog."-. koj nti d"ugih n
potprograma
an broj podintervala na koji se deli interval integracije
[", U-]. U (6. ?. 3)
VeC je reteno da se kao fiktivni, odnosno odgovarajudi Etvarni, ar_ vrednost apscise x, odredjena je relacijom
gument funkcijskog i opsteg potprograma mote pojeviti ime drugog potpro_
grama. Medjutim, ako u programu 6toji naredba xr =a+ih, i=0,1,...,n (6. ?.5)

FUNtnATrArDt (6. ?. l)
'\'
-c4LL odakle sledi da je
gde ie MAT ime potprogrr. ar A i D imena promenljivih, tada program ze
f(x.) = f(a)
prevodjenje ea FORTRAN-jezlka na maginski jezik ne ra8polare (6. ?. 6)
informa_ f(x") 1161
=
cijom o tome da li je MAT ime potprograma ili lme promenljtve. prema
tome, ava imena potprograma koja se javljaju keo stvarni argurnenti u dru_ Ulazne velidine za potprogram jesu ime potprograma za izradunava-
gim potprogramima moraju biti deklarieana kao takva u programu. nje vrednosti funkcije (x,), granice integracije a i b, kao i broj podinter-
Ovo ae
vr6i poeebnom naredbom vala n. lzlazna veliCina potprograma je vrednost integrala y i broj k koji
u potprogramu dobija sledede vrednosti
EXTERNAL lieta (6.?.2)

gde je f O - "Lo je koreltno izraeunata vrednost integrala,


k= l
EXTERNAL - sluZbena reC u FORTRAN_Jeziku, I\ I - ako je ulazna velicina n < 2, i tada se vrednost integrala
ne izradunava.
lista - spisak ime.ne potprograma, medju sobom razdvojeni
zarezirna, koja se javljaju kao irgumenti u potprogra- Algoritam saetavljen po gornjim zahtevima prikazan je na sl.6. ?. I,
mima, I
Kako se Simpsonov obrazac (6. ?,3) primenjuje za paran broj podintervala
to se ne poCetku algoritma, na osnovu zadatog broja n izradunava broj
140

l.l1
gram na FORTRAN-jeziku aaetav{en prema algoritmu na el. 6. ?.1 lma
slededi lzgledt
J,o,b,n v k
SUBROUI TNE SlilPSf l FUltrArBrNryrKt
llr2.lll/21
lFti-2t torltrll
l0 K-l
RETURN
ll K.O
H- ( 0-A l/x
SlrOo
S2=0.
X.A+X
lrl =il- l
J.1
DO 12 l.lrill
GO TO lt3rl{lrJ
13 Slr5lrFUN(Xl
J.2
l2 XrX+H
YtlHlTo I r{ FUNI A t +FUN ( I I +4" *Slr2. rS2 I
RETURN
l4 s2rszrFuN(Xl
J.l
GO TO l2
END

Primeniti izloZen potprogram na izradunavanje integrala

I
fax
l-
(6. ?.8)
J1+xz
o
x+h?x
Prematome, funkcija f(x), u ovom s).u6aju, ima oblik

1
r(x) = If;r- (6.?.e)

U ovom slu6aju treba aastaviti program Ciji 6e zadatak biti da pozo-


sr. 6. ?.1 ve pqtprogrrh SIMPSN i da Ftaapa vrednoet izraCunatog integrala. Medju-
tim, potprogram SIMPSN eadrZi fiktivan argumerd fUU, t o5i predstavl.ja
-=,.[;] (6. ?. ?) ime fun&cije, pa prena tomg i medJu stvarnim argumentima mora ae po-
gde srednja zagrada oznadava celobrojni
javiti ime potprograma po kojem ae vr6i izradunavanje vrednoati funkcije
deo kolidnika. promenljiva j, u
okviru algoritamskog cikluea C, defini5e da li se (6.?.9). Program u ovotn sludaJu ima slededi izgled
vrSj. izraaunavanje sume
ordinata funkcije (x), koja se kasnije mnoti sa (suma
4 sr). OpSti potpro_
t42
143
EXTERNAL F679
READI 5r 1(.1 ArgrN Medjutim, je niz argumert potprograma, tada
l0 FoRr{ATl2F6.2rl2l .ako se ime niza mora
cALL SIl.tpsNlF6TgrArBrNrvRED, I t pojaviti takodje u naredbi DIMENSION
u potprogramu, ali se ne moraju na_
IF(tt tlrl2rll voditi maksirnalne vrednosti indeksa, jer je
ll t{RITE(6r20t za ovakav niz prostor u memo_
20 FORI'iATtr VREONoST ITTEGRALA NlJf TZRACUNATA JER. riji rezervisan u okviru programa, a ne potprograma. prema
*. JE N }IANJE OD 2I} tome, ime
STOP niza u naredbi DIMENSION, kada je niz
l2 HRITEt6130t argument potprograma, sluZi samo
vREo
3O FOR}IATII VREONOST TNTEGRALA JEITEI5.?I zato da ukaZe da je odgovarajuci argument
ni.z, a ne zato da rezervige me-
STOP morijski prostor' zato se za ovakve nizove u DIMENsIoN-naredbi
ENO najde.ce
navodi samo ime i poaetne vrednosti indeksa.
Naredba EXT ERNAL ukazuje programu za prevdjenje sa FORTRAN- Tako, ako se napiie
I rutclIoN. pptArNt
-Jezika na maitinskr jezik da ime F6?9 u naredbi cALL nije ime promenlji- DIhENSIOfu A(lt,ct20t
ve, ved ime potprograma. pri prelasku iz programa u potprogram SIMPSN, to znari da potprogram pp ima za pr-vi fiktivni
argument jednodimenzional_
flktlvno ime potprograma FUN zamenjuje se stvarnim imenom F6?9. To ni niz A, dija Ce maksimalna vrednost indeksa
Je biti zadata u programu, a
ime funkciJskog potprograma koJi se mora naplsatl odvojeno za svaku funk- konkretan broj elemenata niza A, koji se
koristi u potprogramu, zadat je
ciju liji se irdegral izraEunava, Tako za funkciju datu sa (6. ?,9) ovaj pot_ fiktivnim argumentom N. Naredba DIMENSION
defini5e u ovom sludaju da
program ima sledeCi izgled: je argument A jednodimenzionalni niz, a
niz C posto nije argument potpro-
grama bice definisan u potprogramu i za njega
FUNCT!ON F679IXI bi6e rezervisano 20 memo_
Fo79=lolll.+xrx, rijskih registara.
R€TURN
Prema tome, elemenat liste DIMENSION_naredbe
END u potprogramu, ka_
da niz nije argument potprograma ima
oblik
Ovaj funkciJski potprogram poziva se u op5tem potprogramu SIMPSN,
Jer Je prelazom iz programa na potprogram SIMpSN fi}iivno ime potprogra_ ime(i-^,) (6. 8. r)
ma FUN zamenjeno atvarnim irnenom F6?9. Vrednost irtegrala (6.?.S)
gde je
Stampana je u obliku
ime - naziv niza, a
VREDNOST INTEGRALA JE 0"78539808 OO i-u. - maksimalna vrednost indeksa niza.
u programu Je uzetoda je A = o; B = 1,0 i N = 20. Medjutim, ako je niz argument potprograma,
tada se moZe pisati ob-
lik (6.8. l), aliCe on imati isti erekat kao i
6.8, Nizovi kao afgumenti potpr.ograma
ime(t) (6. 8.2)
Niz u pdprogramlr mole blii argument pdprograma lli ne. Ako niz
Posto broj elemenata niza moze biti promenljiv
nir€ argument potprograma, tada 8e rrrakglnralne vrednoati njegovih in- kada ie niz argumerd
potprograrna, to se dozvoljava i oblik
deksa moraJu definlsati u naredbi DIMENSION, kao i kod svih druglh pro-
gratna. Za ovako definisan niz rezervi6e ae potreban prostor u memor{i, ime(n) (6.8.3)
t'oval prostor se koristi aarno u okvlru odgovarstudeg pdprograme.
gde je
ime naziv niza, a
L44
145

n - ime celobrojne proritenlJive, Eijom brojnom vrednog6u se


definise broj elemenata niza u potprogramu. 11 t2 13 14

()blik (6.8.3) je dozvoljen samo u potprogramima


i to za nizove koji 2t 22 23 24 (6.8.5)
se javljaju kao argumenti potprograma. Za jednodimenzione nizove,
koji 31 32 33 34

su argumenti potprograma, oblici (6.S. 1), (6. 8. 2) i (6, 8. 3) imaju isto


zna_
i potprogram koji Stampa elemente dvodimenzionalnog niza (6. 8. 5) ze raz!
6enje.
Medjutim, kada je u pitanju vi$edimenzioni niz, tada je op5ti oblik li6ite oblike DIMENSION-naredbe u Potprogramu.
(6.8,3) sledeCi Neka je ime dvodimenzionalnog niza (6.8.5) NIZ, tada 6e program i-
mati sledeci izgled
ime ( Iista) (6. 8. 4)
3ral
OItlENSION NIZ(
gde je
l0 l=1r3
0O
D0 l0 J-lr4
1G NtZ(IrJlrlO*I+J
ime - nazl mza, a hRITE(6120l
I ista - spisak, od najviSe ?, imena celobrojnih protnenljivih,me- 2L FOR}|ATl I f r3Xr'Nrt3Xt rltl'llOIr
t TNIZOVI U POTPROGRAI{U'lI
dju sobom razdvojenih zarezima. Brojne vredngsti ovilf
promenljivih defini5u maksimalne vrednosti indeksa u pot_ D0 3O I'1r3
DO 3O J=lr4
programu, 3',t CALL VARNI2{NIZrl rJ I
Oblik (6.8.4) omoguduje razliditi raapored elemenata vi5edimenzio_ STUP
END
nalnog niza. U memoriji radunara vi5edimenzionalni niz se regictruje ko_
lona po kolona. Tako Ce elemenat ime (2,2) biti 4. elemenat u nizu, ako gde je VARMZ ime op5teg potProgrema, Eiji su argumerti: ime dvodimen-
je u pitanju niz in^e (2,3) zionalnog niza (NIZ), broj vrsta (I) i broj kolona (fl istog niza u potprolra-
rnu, Neka su broj vrsta i kolona, u PotProgramu, definisani kao promen-
ime( 1. 1) ime(1,2) irne( I , 3) ljive, tada potprogram ima slededi izgled
ime(2, 1)
|..ar-ril ime(2,3)
sU8R(IUTINE VARNIZ ( Arilr I{ I
odnosno peti elemenat ako je u pitanju niz ime (3,4): DlltENSlot{ Atr{rr{t
t{RITEI 6r l0 I l{rl{r (A( I r J I t J=ltlll
ime(l,l) 'ime(1,2) lir FORI,|AT( . .,2I4r3Xr4l 5l
ime(1,3) ime( l, 4) lF(N-ll 2Or39t2O
ime(2, 1) ime(2,3) ime(2,4) 2t DO {O I=2rN
10 llRlTE( 6r 501 lA( I rJl r.Jtl rl'll
ime(3, 1) ime(3,2) ime(3.3) ime(3,4) 50 FoRHAT(r .rllXr4ISl
3Cr RETURIII
END
Slede6i primer ilustruje, razlidite rasporede elemenata dvodimen_
zionalnog niza u potprogramu za isti dati dvodimenzionalni niz u programu. Dvodimenzionalni niz (6.8.5) u memoriji, registrovan je kolone po
kolona. Prvi indeks niza u naredbi DIMENSION definiSe broj vrsta dvodi-
Primer menzionalnog niza, odnosno broi elemenata kolone. Prema tome, u Potpro-
gramu 6e biti koriSdeni elementi niza (6.8.5), tako da svaka kolona sadr-
Sastavitl program koji formira dvodimenzionalni niz Zi N elemenata niza u programu. Rezultati gornieg potprograma Etampani
su u sledecem rasPoredu
lt8
t17

t{ NIZOVI U POTPROCRAIIU 40 lrRlTEl6150l (Al lrJlrJrlrHl


t ll 50 FoRrAllr rrllXr4l5l
3O RETURN
2 lr 2l
I ll 2t 3t ENg
I tl 2l 3I 12
I II tada Ce nizovi u potprogramu imati slede6i izgled
2l
2 2 ll 3l N H I{I ZOVI U POTPROGRAIIU
2l l2
2 3 II Itl 22 I I ll
2t 12 32 I 2 ll 2l
2 4 tl lr 22 13 I t tl 2t 3l
2l Iz !2 23 I t ll 21 31 t2
3 ll 2 I l1
2l 2l
3l 22 ll ?t
ll l2 2l 3l
2l h.z 2' tl 21 3l
3l bz 2t 3l t2
ll t2 13 2+ lt 21 3t 12
2l 22 2.3 2L 3l t2 22
3r 32 33 3l ll
ll t2 13 l+ 2l
2L 22 23 1.4 3l
3l 32 t+ ri .L
'? 2l 3l
Kao Eto se vldi tz prikazanlh rezultata, dvodimenzlonalni niz sa di- 3l l2
ll 2L 3t
EenzlJrma A(2, 2) u potprogramu korietlde sledede elemente niza (6 . 8. S) 2l 31 L2
lz programa 3l 12 22
ll 2t 3l 12
2t 3l L2 22
11 31
3l L2 22 32

2t L2 U ovom slulaju evaka kolona dvodimenzionalnog niza u programu po-


Elnje narednim elementom niza (6. g. 5), kada se ovaj shvati kao jednodi-
ll t2 menzionalni nlz porcdjan u redosledu kolona po kolona. Zato rriz A(2,2) u
2t 22 potprogramu lma obllk

Jer svaka kolona dvodimenzionalrlog niza u potprogt'mu sadrti dva elemen_ 1l 21


ta, iz nlza elemenata (6. S. S) u programu poreaia(ih kolona po kolona. 21 3l
Medjutim, ako ge u naredbi DIMENSION potprograma, niz zapise u
jer prva kolona podinJe elemertom 11, a druga gledeCim elemertom, posto
otitlku A(1, l), tj. potprogram u obliku
prvl tndeka u naredbi DIMENSION niza A ima vrednost 1.
suERourtilE VARNI ZIArN,il' Ako se u potprogramu, u naredbi DIMENSION, niz A zapise tako da
otr{€NstoN Atlrlt
lJRllEl6r lOl trllr lAl lrJ t rJ=lrtt pnri lndeks ima,iatu vrednost kao i u programu, tako da potprogram ima
l0 foR,flAtl | .;214111,r4151
o&lilk
lFln-lt 20r30r20
20 OO {O I.Z|N
ll
li
I

l L49
il 148
ll
SUER0UTINE VARNI Z (A rN, fl I
DIHENSION A( I I
ii
I SUEROUTIIJE VARNT Z( Arrtr it t Nll.Ntll
DIIIENSION A(3III IOI llrllr lAl I l r-}rlrNt{l
l{RITEI 6r
llRIT€l6r l0t Nrttr lA{lrJI 1J-l I!{t
rr2t4r3Xr{l5l I0 FORIIAT(' tt214r3XrL2I3l
l0 F0RB r(r RETURN
rtil-l) 2Ot3Ot2O ENO
2O DO +0 I-2rN
40 llRITEl6r50t (fltrJtrJ.lrt{l U ovom EluEaju niz (6.8,5) u programu biGe u potprogramu uzet kao
50 FoRttATl. rrllxrtt5l
30 RETURN jednodimenzionalni niz i to u redosledu kolona po kolona niza (6.8. 5). Tako
ENIi
da 6e za razne vrednosti N i M biti definisani elede6i Jednodimenzionalni ni-
tada Ce nizovi u potprogramu imati slededi redosled zovi u potProgramu
A NIZOVT U POTPROGRAI{U
I{IZOVI U POTPROGRA}IU
I ll
rl 11 2 rl 2l
l2 lt L2 3 ll 2t 3t
l3 ll 12 13 + Il 2t 3l r2
l4 lt l2 13 l+ 2 t I I 21
zt ll 2 2 lI 21 3l r2
2L 2 3 LL 2L 3t t2 22 32
2? ll L2 2 4 tL 2L 3t L2 22 32 L3 23
2t 22 I I ll 2l 3l
2t tl t2 13 v 2 LL 21 3T L2 22 t2
2t 22 23 3 3 tL 2L 3t t2 22 32 13 22 3i
24 lt L2 13 1+ 3 + Ll 2t lr tz 22 32 t3 2-7 t1 t+ 2+ 3+
2L 22 23 24
3l ll U potprogramima koji 6e odnose na matriEni ra6un, i nalaze se u bi-
2t
tl blioteci gotovih pqtprograma radunsklh centara, najdesCe 5e matrice treti-
ll t2
2L 22 raju kao jednodimenzionalni nizovi, U ovom sluaaju je vazno uoeiti da Ce
31 32
redosled elemenata matrica u potprogramu biti kolona po kolona matrice,
ll L2 13
zt 22 23 kao jednodimenziorialni niz.
31. 32 33
1l t2 13 14
2L 2; 23 24
31 32 33 34

U ovom sludaju isti indeksi u potprogramu I programu octredjuju is-


te eleErerte niza (6.8. 5).

{rlo Ieeto u potprogramima vi5edimenzionalni nizovi tretiraju se


kao jednodimenzionalni nizovi. Tada se potprogram VARI.fIZ mofe napisa-
ti u obliku
<^ (.(
$
"
U.

to ?, AI.GORITMI SA I.OGIEKIM KONSTAIfTAMA


I PROMENLJTVIM

7. 1. Operaclje poredjenja

29 ?.1. l. DeXniclje operaclja poredjenja

U mnoglm problemima tok algorltma zavlsl od odnosa nekih brojnih


velldina. U dosadaEnjirn lzlaganjima ovakve odnose uvek smo svodlli na
lepitlvanje vrednoetl aritmetlEkog lzraza, a tok algorltma menjall u za-
visnoetl od toga da l1 je vredrost izraza bila manja, jednaka lll veda od
nule.
U FORTRAN-jeziku postoji mogudnost dlrektnog poredjenja brojnih
vellElna. Op6ti oblik ovakve operacije poredjenja je

aOb (?.1. l)
gde su
a,b - aritmetidki lzrazl,
O - operaclja poredJenja.
Operacija poredjenjau (?. f. l) moZe biti jedna od operacija navede-
nlh u tabeli ?. l. l.
Tabela ?.1- 1.
Operacije poredjenja
U FORTRANU u matematlcl Opis

F:o ledmko
. GT. veCe
.GE. >/ vece lli iednako
. L't'. manle
. L!l^ \< manie lll iednako
. NE. * razliCito
152 16:t

Navedene oznake operaclja poredjenja u tabeU ?,1.1,, treba


ehvatiti a) Ako naredba u (?.1.4) nije uelovan llt bezuslorna naredba prelas-
kao jedan nedeljivi si.mbol FORTRAN-jezika.
Operacija pbredjenja (?.1.1) ka, tada 8e izvrgava naredba koja eledl iza naredbd (7'L'41'
uvek izraZava jednu tvrdnju koja moZe biti istinita ili prelaza'
laina. b) Ako je naredba u (?. f.a) ualovna ili bezuelovna naredba
Ako je tvrdnja -iskaz izra|en sa (?. 1. 1) istinit, ozna6i6emo ga, kako
je to uobidajeno u algebri Logike, sa 1, a ako je laZan tada se lzvr5ava naredba ukazana ovom naredbom prelaza'
sa 0.
2) Ako ie vrednost Prediketa p = O, tada se ne izvr6ava
naredba za-
Tako se moZe, u FORTRAN-jeziku, pisati operacija poredjenja
piaana deeno od zatvorene zagrade u 1?' f'4), ve6 odraah
prelezi na nared-
J, GT.5 (7. r.2)
bu koja sledi iza naredbe (?. f.4)'
6to u matematidkoj notaciji predstevlja relaciju
Tako, naredba
j>s (7. 1.3) (?.1.5)
lFlJ.GT.5l A'BrC
U $atematici je uobiEajeno da se funkcija (?.1. l) zove predikat, pa
6emo ovaj termin
ima sledede dejatvo:
koristiti u daljem izlaganju. Kara}cteri.stika funkcije
(?.1.1), odnosno predikata, jeate da argumenti funkcije uzimaju vrednos_ - ako je J ve6e od 5, lzvrFi6e se naredba A=B+C' a zatim naredba

ti iz potencijalno beskonaEnog ekupa veudina, a sama funkcija uzima vred- koja sledi lza naredbe (?.1.5),
nosti iz etcupa - ako je J manje ili jednako 5, preskodlde ae neredba A=B+C i izvr-
lO, ff . tafto, argument j predikata (?. l,3) uzima vredno_
sti iz skr:,pa celih brojeva, a vrednost poredjenja j)b moZe biti istinita lli 6iti naredba koja sledi iza' (1. 1.5).
lazna, a to znadi da uzima jednu od vrednosti, u'rovno oznadenih sa l ili 0. Medjutim, u sluEaJu nar€dbe
(?. 1.6)
j o ?. 1.2.
rF(J.Gr.5' G0 T0 100
Naredba prelaza po vrednosti poredjenja
na naredbu
ako je J veCe od 5, izvr6i6e 8e naredba bezualovnog Preleska
Grananje u programima po vrednosti operacije poredjenja, moZe se
sa obeleZjem 100, a ako je J manje ill jednako 5, pre6i 6e
se na naredbu
izvrEiti pomodu naredbe
koja eledi iza naredbe (?' 1' 6).
IF(p)naredba (?. 1. 4)
gde ie Prlmer
IF - sluZbena red, Zadal je niz brojevaxr, l=1, 2, "' Svaki od brojevd xr nalazi se ne
p - predikat (definisan sa ?.1. l, ), po Jednoj kartici u polju od l. do l0' kolone ea opieom F l0' 5' Odrediti
ko-
naredba - jedna izvrSna FORTRAN-naredba, osim druge naredbe IF brojeva xt ve6e od 25,8'
liko Je od zadatih
po vrednosti poredjenja, ili DO_naredbe.
Algoritam za re5evanje ovog zadatka je prikazan na sI' ?' l' l'
Naredba (7. 1.4) izvrSava se razlidito u zavisnosti od vrednosti pre_ Program saetavljen po algoritmu na 8l' ?' 1' f ima slededi izgled:
dikata p: N.0
30 REAO(5rlO0rCND.20l X
l) Ako je vrednost predikata p = l, tada se izvrEava naredba zapisa- loo FoRtATlFlo.5t
IFlIrGTo25.El ll-N+l
na desno od zatvorene zagrade u (?.1.4), a zatim mogu nastati dva slu6aja: GO tO 30
20 lRlTEl6r40l r
tC FORKATIT 11rrtf4l
STOP
Et{D
tt{
155

Ilste - spleak lmena promenljivih medju sobom razdvojenib zarezi-


ma, koje se deklarisu kao logidke promenljive.

Pored eksplicitne deklaracije logiCkih promenljivih, moZe se izvrEi-


tl I implicitna deklaracija pomo6u naredbe

IMPLICIT lista (7 .2. 4l


gde je
IMPLICIT - sluZbena red, a
lieta - spisek elemenata medju sobom odvojenih zarezima.
Element llste u slu6aju lmplicitne deklaracije logidkih promenljivlh
lma lzgled
sl. ?. l. I LOGICAL (lletar) (?.2.5)
gde je
?.2. Logi6ke operactje
. LOGICAL - eluZbena red, a
32 7.2. l. Losidke konstenfF i nF^h6-ri{,,^ listal- spisak velikih slova engleske azbuke, medju sobom raz-
dvojena zarezima.
U dvoznadnoj algebri logike (Bulovoj algebri) postoje
dve konstante,
NaJde66e se ove konstante oznadavaju ciframa 0 Impllcitnom deklaracijom kao logi6ke promenljive deklariEu se eve
I 1, pri demu 0 predstav-
promenljive u jednom programu, dija imena podinju jednim od navedenih
{a vrednoet laZnog iskaza, a I vrednoet istinltog iekaza. U FORTRAN-Je_
glova u implicitnoj deklaraciji (7.2.4l,, gde je elemenat liste obltka 0.2'5).
zlku za logiEke kongtante koriste se simboli
Ako v16e uzastopnih elova engleske azbuke predstavljaju podetna slo-
. TRUE. (7.2. rl va lmena logiCkih promenljivih, tada ee elemenat llste u (?.2.4) moZe pi-
za ietlnitoet, I
eatl u obliku
. FALSE. (7.2.21
TOGICAL (x1-x2,x3-xa) (7.2.6l
za laZnost iakaza.
Logidka konstanta se registruje u jednom memorijskom registru. DekleractJa (7.2.6) deklarlEe eve promenljive tija lmena po6inju od
Imena logidkih promenljivih konstruisu se na istl na6ln kao i irnen. vellkog elova xr do vellkog slova x2 engleeke azbuke, odnosno od x3 do
brojnih promenljlvlh. Da se jedno ime promenljive u programu x., kao loglEke promenljive u programu.
odnosi na
logtcku promenljivu, ukazuje se opisnlm naredbama za deklaraciju Ta&o oplana naredba
vrste
promenljive. Ova deklaracija se moie izvr5iti ekspllcitno naredbom
LOGICAL AFITLTBIJLL 9.2.71
LOGICAL lista (7.2.31 deklarlSe promenljlve ABf, L I BULL u Progrs.mu kao logiEke promenlji-
gde je
ve.
LOGICAL - sluZbena re6, a
156
15?
Opisna naredba
IHPLTCII L06ICALIA-D,L I
Funkclja konjukcije z je takva eloZena funkcija algebre loglke, koja
(7 . 2.8)
deklariSe sve promenljive Cija imena poCinju slovima A, B, C, D i je isttnita samo eko au oba argumenta t I y, od kojth je oaatavljena, ie-
L kao lo_
gidke promenljive. tinlU. U evl- dr.ugim eluEajevima ta funkclja je laZna. Ova frinkclja se pl-
ViSe logidkih promenrjivih sa zajednidkim imenom obrazuju niz. I Be

sve sto je receno za nizove u s1udal'u brojnih veuEina vazi i za nizove aa z = x^':' (?.2. 10)

logidkim velidinama. gde simbol A oznedava operaclju konjukcije, I 6ita ge "t I y". U tabell
7.2.2 dala je tabela ietlnltoetl za funkclp (7-2.l0l.
?. 2. 2. Definicije logidkih operacija
Tabela 7.2.2.
Logidke operacije definiEu se nad argumentima koji mogu uzimati x v z=xhy
vrednosti iz skupa od dva erementa
fo, rj . Rezultati.logickih operacija u- 0 0 0
zimaju takodje vrednosti iz istog skupa elemenat" 0 I o
rl . u algebri logike
lo, I {, (,
skup funkcija preko kojih se moze izraziti proizvoljna funkcija algebre ro- I I
gike zove se pun sistem funkcija. pun sistem funkcija grade razlidite funk-
Funkclja dlsjunkcije z Je takva sloZena funkcija algebre loglte, ko-
cije algebre logike. u FoRTRAN-jeziku su izabrane tri funkcije koje 6ine
Ja je laZna aamo ako su oba argumenta x i y, od kojih Je saatavljena,la-
pun eistem funkcija, to su:
Zna. U evtm dnrgim eludajevima ta funkcija je tstlnitE. Ova funkclja ae pl-
- negacija ili ne funkcija, le
- konjukcija ili i funkcija, i z=rYy (7.2.1r)
- disjunkcija ili iU fuakcija. gde almbol V oznadava opbraciju dlejunkclje, i 6ita ge
t'r ili yt'. U tabell

Pomodu ove tri funkcije moZe se izraziti proizvoljna funkcija algeb_ ?. 2. 3 data Je tabela letinltoeti za funkcifu (7.2. lLl.

re logike. Sa druge strane, primena ovih funkcija na_jbliZa je Eirem krugu Tabela ?.2.3.
.ljudi, jer argumente povezuje na na6in koji je vrlo blizak uobidajenom na_ x v z = rVy
dinu razmi6ljanja.
o 0 o
Funkcija negacije z je takva sloZena funkcija koja je istinita ako ar_ o I
gument x nije i6tinit, odnosno laZna ako je argument x istinit. Ova fun- I 0
1 I
kclja se dobija primenom operacije negacije nad jednim argumentom
Deflnlsane trl 1og16ke operacije: Degacija, konjukclja i diejunkclja
z=A e.2.g) predatavljaju logidke operaclje u FORTRAN-jeziku. U tabeli 7.2.4 pfika-
gde povlaka iznad x oznadAva operaciju negacije, i 6ita se "ne x,,. ta_
U zanl su simboll ovlh operaclja u FORTRANU.
beli 7.2. 1 data je definicija funkcije negacije.

x z=x
0 I Tabela ?.2- I
o
15E
159

-3t ?.2.3. tpgtctd tzrez Polje na karticl, koje sadrZi logidku konstantu moZb imati jednu ko-
lonu iU vl5e njih. Medjutim, sa glediSta reg"istrovanja logidke konstante od
fddEkl izraz Je aaetav{en od logickth konstalru. foddkfh promen{l_ znaCaja je samo prva kolona. U prvoj koloni polja rno." ju nalaziti bu6en
vlh sa lndeksom ilI bez njega, r predikata'edju aobom povezanih kod elova T, za konetantu.TRUE., odnosno kod slova F za konstantu .FAL-
logirr.rn
operac$ama. vrednost logtEkog tzraza odredjuJe ee rzvrSavanjem sE. .
logld-
&{h operac{a gleva nadeano, prr rem-u vazi alede6r Ako su promenljive A i B deklarisane
prrorrtet: naJpre ee rz- u programu kao logiike pro-
ra6unava vrednoat predlkata. a zatlm redom logi6klh menljive, tada naredbe
operablJa negactJe,
tonjulctle i na kraJu dreJunkclje. Ako se zeli drugacrjt redoaled u prlortte- REA0l5rl0t ArB
tloa operac{a, to ae moZe poett6l uvodjenjem zagrsda. Deo logtEkog l0 FORiArt2LSt
lzra_
ze replsan rzmedfu otvorene r zatvorene male zagradb rma dodeljuju vrednoeti promenljivim A i B sa jedne kartice, pri demu u kolo-
naJvt6l prrorttet.
Dve logiEke opereraclJe u loglGkom lzrazu mogu bltl nama 1. i 6. mora biti bu5en kod slova T ili F u zavisnosti od toga koja
do Jedna druge,
eqho a.ko Je druga od nJth operac{a negaclJe. konkretna vrednost se Zeli dodeliti promenljvim A i B. sadrzaj ostarih ko-
Prlmer loglIkog lzraza u F0RTRANU lona, od 2. do 4. prvog polja i od ?. do 10. drugog polja, na kartici je bez
B. AND. C. L.3.6 (7,2, t2) znaCaja.

Ovde Je prvl argumentj operac{e log{Eka promen{lva


B, a drugl predltat : '. 7.2.4,2- Logldka naredba
C. LT.3.6. Promenljivd C Jeste broJna promen{iva,
t ako Je C < g,6, i B
latlnlto, logi€ld lzraz (.7.2.L2, Je tstinlt; u gvim dnrgtm elu.aJevima lrt dode]ili pro_
on ze_.se. Lqgtqtoj
Je lalan. menljivoj, pglgglr {eredbe
-
l: e (7.2.14)
3€ t.r. n. gde je
a - ime logi(ke pr:":_"!lf:_*:3.._in_deksom,iti bez njegar
7.2.4. l. Dodeulvanje vrednoatt ea ulaza
= - simbol FORTRAN-jezika,
--+
Inena logi.rdh promenljrvih, pojedtni elementi logt.kth nizova ili 9 - loglCki izraz.
tro-
glcH nizovt navode se u lietl ulazne naredbe po retrm pravflrma Tako se moie oisati
kao i u
eluEaju broJnth velrErna. Medjutim, u odgovaraJucoj FoRMAT-naredbi
opi- (7.2.1s)
suJe ee po{e u ulaznom slogu koje sadrZi loglEku konatantu,
sa ive, Izradunavanje logidko g izraza
nLw (7 . 2. r3l sti vr5i se sl.eva nadesno. Kako je X. O-Tti y
gde Je - re izraEunati vrednosl
n- ceo neoznaden broj kojt ukazuJe koliko puta ae prlmenjuje oplc L,
L - efr*6f FORTRAN-jezlka kojlm se ukazuJe da odgovarajude polje
u ulaznora elogu aadrli fodGku konstantu.
w - c.o Deozna€en broJ kojlm ae deflni6e Birlna polja u ulaznom slo-
gu, odnoano broJ kolona na kartlcl kada ae radl o ulazu ea lltaEa
lirrttca.
180 r6l

3,f t, r. u.

imena logidkih promenljivlh, pojedini erementi logtdkih


nizova ilt. lo -
gi6ld nizovt navode se u lieti izr.ezne naredbe po
iatim prav[ima kao u elu-
daju brojnih velidina. Medjutim, u odgovarajud0j
FoRMAT-naredbt navodi
ee opie (7.2.1S), ea&o 6to w oznadava broj slmbola u polju izlaznog elo-
ga' Ako ee izdaje logi.6ka konstarte .TRUE., tade 6e krajnjr
degni erobol
polja u izlaznom elogu bitt slovo T, a ako Ee izdaje logi.ka
konstanta
' FAlsE., tada ce krajnji desni simbol u porju bl* elovo F. svi ostal' srm-
boli u polju lzLeznog eloga bi6e znaci blanko. Fr - Xrz\livxs
Tako naredba izalza Fs-\vxrvx3
lrRIfE(6r20t ArB
20 foRrtATl. .r2L5l (?. 2. r6)
formira dva polja od po 5 sinbola. prva Cetiri etmbola svakog polja
bi6e
znaci blanko, a u zadnjim pozicijems polja bi6e alovo T, odnoeno
F u zavi_
snosti od vrednosti logidkih promenljivlh A i B.
Program na FORTRAN-jeziku zapisan po algorltmu na al. ?, 2, l. ima
/ Prlmer
l--
.-i
lr'' slededi lzgled
Odrediti vrednost logidklh tunkcija IHPLICIT LOGICALIX,FI
DlHeNSlOr{ X(3lrF(31
Fr=xrnxzVxs yRI IE ( 6t2001
20o FoRiATl. ,r3xr'ArrTXr rB,tSlt
Fz=xrVxzVfr (7.2. r7) i rxl XZ Xt Fl F2 Frt ll
F!=xrAXznXs 600 READ(5r3O0rElilD:5O0t ArDrXl2lrX(31
300 FoRHAT(2F6.2.2Lt1
gde su x2 i x3 togidke promenljive, a x1 predikat
xlllrA.6E.8
F( I l=Xl I lcAND.x(Zl. OR.Xl3l
F( 2l=oNOT.X( I l.OR.Xl 2 l.OR..NOf. I(31
x, = (a >b) (?. 2. r8) F{ 3 l=xl I l.ANtr..t{OT. X( 2 l.At{D..NOT. x(3 I
tj. HRI TE( 6r+001 ArBr lX( I I I !*1 r3l r lFlI I r l-l r3 I
40O FORilATl.' tF6.2t2XtF6.216L5l
(o *" je a1b GO T0 600
500 sroP
*' =l (7.2. t9) END

l.r ato je a>u


Velidine koje ulaze u algoritam jesu brojevi a i b, i logidke Za zadate veliilne a, b, x2 i x, rezultati se dobijaju u obliku ta-
kone-
tante koje predstavljaju vrednoeti argumenata x2 i x3 bele
:

.
Algoritam za izre.Cunavanje funkcija (7.2. I7l prikazan je na
el.?.2.1,
t@ 163

xl x2 x3 FI F2 F3 Primer
10050 13. l2 F F FF T xt natazi
+0. lo 60.00 F F TT T
F
F
Zadat je niz brojeva x1 , i=1,2,... . Sv'kl od brojeva se
1.50 22,00 F T FF T F na po jednoj kartici u polju od 1. do 10. kolone kartice sa opisom FlO' 5'
{o 80 -1o00 T F FF T T
-12.00 -12c00 T T TT T F Odrediti koliko od zadatih brojeva xi leZi u intervalu [-20; -10] iu [5, 1;
-12100 0.0 F F. Ff T F
8,51 .

Algoritam za re5avanje ovog zadatka je prikazan na sl'7'2'2'


39 - ?. 2.6. Naredba prelaza po vrednosti logiEkog izraza y'

U odeljku 7. l. 2..videll smo naredbu p.relez/po vrednostl predikata.


Medjutim, op6tiji oblik ove naredbe bl6e

I[(9) naredba ,,/


gde sve oznake lmaju isto znaEenje, kao i u sludaiu naredbe (?. 1.4), samo
6to ee izmedJu zagrade moZe pisati ma kakav logiEH Tzraz g.
Dejstvo na_
redbe (?.2. l?) 3e lsto kao I u eluEaju nar6dbe (1.1,41, samo sve
ono Eio se
odnoet na predlkat p sada se odnosi na loglCld, Iziaz j. Zapravo naredba -20<x<-1O
(7.1-4't j€ poseban sludaj naredbe (?.2.r7.. kada je logldki
izra?sastavljen
od jednog predlkata.
5<x<8
n+19fl
Tako ee _moZe plgati
IF.(A. AND. B. OR. C. cT. 28. 5) c,o To l0o sI. ?. 2. 2
U*9ySlq*cluCeju pqgme4_.jive A
i B moraju bitl dektarisane kao lcgilke pro_
men{lve, a promenljiva C mora blti brojna promenljiva. Program eastavljen po algoritmu na el. ?' 2.2, irna slede6i izgled
I,,radunavanje z
vrednostl logiEkog izraza u gornjoj naredbr odvija se
srede6im redosledom:
a) Odredjuje ee vrednoet konjukcije A. N.t
AND. B koju 6emo oznaCtti 3C READl5rlO0rEND=20t x
sa pr. lco FoRttAT(Fl0.5l
I I F I'I. GE. -20. ANo. x. L E. - 10. I'R.
b) Odredjuje se vrednost predlkata C.GT.28.,5 koju Cemo
oznadi_ .X.G€o5o t.ANO.X.LE.8.5l NEN+l
tl ea p.. GO TO 30
20 l.RtTC(614Ol N

. c) Na kraju se odredJuje vrednost logidkog iztaza pr.OR. t0 FORI{ATlr N.'rl8l


p, koju stoP
6emo oznaCiti ea p. END

Dejstvo gornje naredbe je aledede: ako


Je vrednost logidkog lzraza p
istinita prelazl se na naredbu C,O TO 100, u auprotnom na naredbu koja
eledi iza opleane lF naredbe.
8, ALGORITMI SA REALNIM KONSTANTAMA I
PROMENLJIVIM DVOSTRUKE TAENOSTI

Pri razmatranju algoritama sa realnim kon'tantama i promenljivim,


u glavi 4, podrazumevala se tzv. obidna taEnost, tj. registrovanje mesovi-
tog broja u jednom memorijskom reg"istru. ovakav naiin registrovanja do-
zvoljavao je da meBovitl broj sadrzi najvide 7 vazelirt dekadnih cifara.
U mnogim, posebno tehni6kim primenama ra6unara, ova tadnost je
dovoljna. Medjutim, u nekim naudnim problemlma, kao i u izuzetnlm teh-
nlckim izraEunavanjima, moie 8e zahtevati predstavlanje me5ovitih bro-
jeva sa ve6om ta6no6cu. Naj6eE6e se uzima povedan broj cifara meSovitih
konetanti dva ili vi$e puta ve6i od obidne taEnosti. Kod radunara IBI\{-
'360144 registrwanje brojeva u dvostrukoj tadnosti obuhvata 16 vazedih
dekadnih cifara broja.

Me5ovita konstanta dvostruke taCnosti pi5e se u jednom od slededa


dva oblika, kao

0 al Niz dekadnih cifara, pri Cemu se celobrojni i razlomljeni deo raz_


dvajaju decimalnom taekom. Ispred ovakvog niza moZe stajati znak + za
pozitivne brojeve, a mora stajati znak - za negativne brojeve. Ovako za_
pisan meSoviti broj moze imati najmanje 8, a najviEe 16 dekadnih cifara,
r b) Oblik kao pod a), sa najmanje jednom cifrom, a najvile 16 dekad_
nih cifara, iza kojeg se pi6e slovo D, a zatim se navodi ceo dvocifreni de-
kadni broj, hoji predrtavua eksponent broJa 10. Blojna vrednost 0vek0 zlr_
166 t67

pisane konstante jednaka je prolzvodu brojeva ispred elova D i stepena bro-


DOUBLE PRECISION IiStA II (S. 2. 1)
ja lO, sa celobrojnim eksponentom navedenim iza elova D.
cde jt
IVlesoviti broj dvostruke taenoetl.registruje se u memoriji u obliku
' DOUBTR PRECISION eluZbena red, koja oznadava opisnu naredbu
pokretnog zareza, tako da se eksponent I deo mantiee ve6e teZine registru-
za deklarisanje realnih promenljivih dvos -
je u jednom registru, kao u sludaju obidne tadnosti, a deo manje teZine
truke tadnosti,
mantiee u susednom memorijskom registru (s1.8. l. l). Ovako registrovan zlieta - spisak imena promenljivih i nizova medju so-
bom razdvojenih zarezima, koji se u Prcgr.r-
i
mu deklariSi.r kao promenljive i nizovi dvos -
51 9---24.23----- 1051 50- truke tadnosti-
---10
I
ZNAK XH ^.t:z - \/- r 1 '.1.. lzAko seime niza deklariSe kto niz diji 6u elementi dvostruke tran'ls-
_( aa-
sl.8. 1. I
'ti, tada se u zagradi iza imena ni:a navodi dimenzija niza na isti na6in l^:ao
lu naredbi DIMENSION. Kada je ovakav niz naveden u listi opisne irar:'lLe
broj x ima brojnu vrednost
(5.2.1), ne navodi se i u listi DIMENSION-naredbe. lt*ko moze piiati
".
x = xM.16xB (8.1.1) !.bOUBLE PRECISIC}N KITEI,IT C( 20 I
gde za x, vaZi relacija (4, 1.3), a. za. x6 vaZi relacija e.1,4), s tim Sto
Eto znadi da 6e u programu promenljive K i TEM, kao i niz C koji ima 20
se u ovom sludaju u mantisi naLazi L4 binarno kodiranih heksadekadnil ci-
elemeneta, biti dvostruke tadnosti. Za svaku promenljivu, sa indeksom ili
fara, Sto odgovara pribliZno 16 dekadnih cifara.
bez indeksa dvostruke taEnosti, u memoriji radunara bide angaZovana dva
Primeri registra.
Treba uoditi da opisnom naredbom (8.2. 1) eksPlir:',ino se deklaridu
a) Dozvoljeni oblici meSovitih konstanti dvostruke ta€nosti lmena promenljivih navedena u listi kao realne promenljive dvostruke tad-
384. I 5?I)4 nostl, Tako u gornjem prlmeru promenljiva K, koja je po unutraSnjoj kon-
-14.t)D-2 venciji celoborjna, deklariEe se kao realna i to dvostruke tadnosti.
15684.3?90?
Opisnom naredbom (8.2. 1) deklaridu 6e i imena funkcijskih naredbi
b) Nedozvoljeni oblici meSovitih konstanti dvostruke tadnosti i potprograma ako ee ZeU rezultat potprograma u dvostrukoj tadnosti.
t2.004 Opisna naredba (8.2. f) se piEe na po6etku programa, pre prve izvr-
-5.07D150 6ne naredbe p"og".-") h.edosled pisanja opisnih naredbi na podetku progra-
ma je slede6i:
8.2. Definicija realne promenljive dvostruke tadnosti t
' ' 1. Naredbe za ekspUcitnu deklaraciju vrste promenljivih (REAL, IN-
Ime realne promenljive dvostruke tadnosti definiSe se na isti naain TEGER, DOUBLE PRECISION, LOGICAL),
lcao i ime realne promenljiveobidne tadnosti. IMedjutim, da bi se imcna , 2. Naredba za implicitnu deklaraciju vrste promenljive (IMPLICIT),
ovih promenljivih razliltovala u programu, sva imena promenljivih dvo- , 3. Naredba za navodjenje imena potPrograma kojl se javljaju kao ar-
struke tadnosti Inoraju biti eksplicitno <.leklarisana jeclnont opisnom nared- gumenti drugih potprograma (EXTERNAL),
lrorn. Ova opisna naredba se piie
168
169

4. Naredba za,definiciju rttmenzija nizova (DIMENSION), gde Je


i 5. F\rnkcijske naredbe, i
4n - neoznalen ceo broj, koji ukazuje na broj ponayljanja oplaa D,
6. Oetale.naredbe programa.
I'D - slnbol FORTRAN-jezlka, koji ukazuje da pofJe eadrZi konstan-
t. r. tu dvoatruke tadnostl,
dvostruke tadnosti 'k - neoznaden ceo broj, kojf ukazuje na broJ koloua polja na kartici
koje eadrZi konetantu dvostruke ta6nosti,
8.3. 1. AritmetiEka naredba ' d - neoznalen ceo broj, koji ukazuje na broj decimalnrh megta kon-

Na lsti nadin na koji se obidnim promenJ.jivim dodeljuje brojna vred_ stante dvo8truke taonosti.
nost aritmetidkom naredbom, moZe se i promenljlvoj dvostruke tadnosti Opis (8.3.2) navodi Ee na odgovarajudem rnegtu FORMAT-naredbe.
dodeliti brojna vrednost. U ovom sluEaju aritmetidka naredba irna oblik. Konstanta dvoetruke taEnogti, sa odgovaraju6eg polja kartice, dodeljuje se

a=V odgovaraju6oj promenljlvoj dvostruke tadnogti u Usti traredbe.laza. Ovak-


(8.3.1)
gde je va konstanta registruje se u dva memorijeka registra, kako je to prikazeno
,Jo,rJ.it i - .. ,' ,'.,1, cl.r8. 1. 1.
a - inie promenljive dvostruke tadnosti,
V - aritmetiEki izraz. Pored opiaa (8.3.2) moZe ee korietlti 1 opls

nFk.d (8. 3.3)


Ranije smo videli da ako je jedan od argumenata neke aritmetidke o-
peracije u aritmetidkom izrazu y, u obliku pokretnog zereza, a drugi celo_ gde Je ziradenje sinbola ieto kao i u sludaju opisa konstar*e obiEne taEno-

brojni, tada 6e medjurezultat ove operacije biti u pokretnom zarezu.. Me_ eti. Obllk (8.3.2) i (8.3.3) ne razlikuju se bitno kada se radi o ner:edbi u-
djutim, eada argumenti aritmetidkogizraza V mogu bitl vehdine u pokret- leza. U oba slu€aja konstenta se ulaza dodeljuje se pronenljivoi u Usti i
nom zarezu obidne i dvostruke ta6nosti i celobrojne velidine. U ovakvim regtstruje se na leti nadln u memor{i raEunara. Obllk (8.3,2) je pogoderr
aritmetidkim izrazirna medjurezultati se javljaju u obliku dvoetruke tadno- za zapla vrlo 'nrlih i velikih brojnih vrednoeti, dok je u evlm drugim slu-
sti, ako je barem jedan argument dvostruke tadnosti, Medjutib, ako arit_ 6ajevlma pogodnije korlgtiti oblik (8.3.3).
meti6ki izraz g ne sadrZi argumente dvostruke tadnostl, tada 6e izraEuna_
8.4. Izdavaaje brojnih vrednogti promenljivih dvostruke ta6nosti
ta vrednoet aritmetidkog izraza biti prevedena u oblik dvostruke tadnoeti i
dodeljena promenljivoj a u (8.3. 1). Za lzdranje brojnih vrednooti promenljivih dvosttruke taEnosti moZe
se kortstlti Jedan od oavedenih oplea (8. 3. 2) iU (8.3.3). Kao I u sluEaju o-
8.3. 2. Naredba ulaza
blEne taEnoetl, opie (8.3.2) je pogodan kada ee radi o vrlo mellm ill vrlo
Kada se promenljivoj dvoetruke tadnosti dodeljuje brojna vrednost vsl{klm brojnim vrednostlma, dok je u svlm drugim slu6ajevioa pogodniji
sa ulaza, tada se u ulaznom slogu mora opisati polje koje sadrZi konsten_ opig (8.3.3). Ovo lz razloga Bto je eksponencijalnl oblik broja nepogodniji
tu dvoetruke ta6nosti, Ovaj opis polja pi6e ee u obliku za Eitoqje nego oblik 8a flk8nlm brojem c€lih i decimalnlh mesta. U sluda-
ju dvoetruke taEnostl ekapoaeacijalnl obUk ge izdaJe sa slovom D umeeto
nDk.d (8. 3. 2)
alova E koJe se korigti za obiduu tadnost,
170
L7L

Prlraer

sastavitl funkciJsl{, potprogram koJl i.zradunava sa dvostrukom tac -


FUNCTJON SINP+X(XI
no56u DULIBLE PRECISION SINP4X'B( 5I rXrY
8 ( I I =u" 7E5396L6)397 4265
a A I 2 I - - 8.-07 45, I 21 87 66e4D- 2
rr)a2., x2r*r (8.3.4) B( 3 I =2" a9C39+565299t0-3
"h * A I 4l = - 3. 65761 8.?3 95: D- 5
B(51=3cL1t336833D-7
lxl<r, gaeie YrXtX
S I NP4X=- 1.7347987f,-9
ai = 0, ?85 398 t63 397 426 5 DO l0 l=lr5
e! =-0,080 745 512 18? 669 4
l0 SINPaX=SIf,tP4X*Y+Bl6-1,
SINP4X.5l\P4X*X
85 = 0,002 490 394 565 299 5 RfTURN
ENI')
E? =-0,000 036 5?6 18? 395 3 R.y+b5_i ? R
a9 = 0,000 000 3r3 333 683 3

all =-0,000 00.0 00r ?34 798 7 Program koji za zadat ugao u ra-
dijanima (x), izra6unava ugao Ittl4\'x
IzraEunavenje po formuli (8.3.4) daje vrednostl sluuene funkcije sa
i sin((n/a). x), ima elede6i izgled:
relativnom greEkom

E < 16. l0-r6 (8. 3.5)


sI.8. 3. I
Algoritam potprograma prikazan Je na sI.8.3. 1.
Brojne vrednostl kondtanate a2s., . dodeljuJu se etementima nlza br*r , DOUELE PRECISION XTYTALFAI
5INP4X

i u RADIJANITIA' rl4Xr'sINUs'/ I
=0, 1, ...,+, zatlm lzraEunava
^ ,, lBllil?lu?]n*,'*'r?Xr'UGA'
x
IOO nelOt5rl00rEND-l0ll
Y=x2 lo0 FoRfrAT(F8.51
Y.SINP{X(xl
aLin=3. rar 5 s26535ae7 et 2 / 4' x'
da bi se u clklueu odredila vrednost polinoma r
HRtfE(612OOl X'ALFAtV
n = br +yfbr +y [u3 +yfta+y 1ur+u.y1;]f (8.3.6)
zoo i6inlii;' lFBo5rF22ol6ro2€''161
G0 T0 300
6to odgovara polinomu 10r sToP
ENT)

R = ar +x2 las +x2[a5 +xz (a7 +xz (ae +a11 xr))]f (8. 3. 7)
Rezultati ee Stampaju u obliku tabele
Po lzlasku iz ciklusa dobijena vrednost R se mnoZl sa x, dime je odredjena SINUS
X UGAO U RADIJANIMA
vrednost aprokelmacionog polinoma (8. 3.4) za detu vrednoet x.
l. oo0u0 o.7853eSl 633974480 o.?071067811865450D 00
FunkciJsld potprogram Bastavljen prema algoritmu ne sI.8.3. I ima -o.4oo0o -0.31415e26515897e2 -o.3090169943749487D O0
0.0 0.0 0.0
slede6i lzgled -0. ?85398 I 63389t5L90-O5
-0.oooot -0.0000078539816340 0. 39716789063477e39 00
0.52000 0.40840?0449666730
t72 1?3

Izradunavanje elementarnih funkcija Tabela 8.b.1.


sa UU ,rEt.
dvostrukom tadno5du e1r. Ot
u Eira
Eb, | {lta.att ! t' !t.!a_rt E{*!t.rr rG
Ako se proraCun izvodi sa dvostrukom Elt.
taeno5du, tada je potrebno i relrl a ! ,,tt'la-l'
sve elementarne funkcije, koje
se javljaju u proradunu, lzraeunati
sa dvo_
&lo(rl
0F lr,
{ I n a.ta. L-l'
E@
m
l{[tc
btGtb
strukom-tadnoscu- vec je redeno 6 u B l.{.la-'t
da se u sludaju obiEne ta.nosti [ulrl .bo { . l.tl.rcll 4 a.[.U-L
ove funk- u[t {Ert&
cije radunaju preko funkcijskih potprograma DI I rl < a.tt.tcr' d a,x. ra-l!
sa propisanim imenima, koji r(r, at (.1 d I { <!.lt.lol' I
8e automatskl pozivaju pri prevodjenju t 4 , a\.vrrt,
!,!t.ll-lt
programa 6a I,ORTRAN-jezika
na
metinski jezik. potprogrami koji izradunavaju m|tl { < o.tt.lor' B a,ar.la_ll
elementarne funkcije 6a drtt. H.t..
dvostrukom tadno66u imaju takodje propisana uu(t, r l.l u q< I n I' O. tl-l'
imena, a prvo slovo. ovih Etrt il t(l
imena ie uvek D, dto ukazuje da B l,t:.r-r'
se radi o potprogramu sa dvostrukom Ulrl &cEtd n r{(t il r.r. ro_tl hEqE.
ta6- E:atrrrl
noB6u. U tabell g. S. l. dat je spieak propisanih B latt ,tnt a t I 1.il. tt-r.
imena ovih potprograma.
Pored funkcijsrdh potprograma navedenih cntrl ! lta.art x
u tabeli g,5. 1, u FORTRAN-
I < !.9.ra_l'
rd I
-jeziku postoji I izvestan broj funkcija koje l I'tl.la-l'
,.
se pi.u na isti nadin kao i funk_ Nl.' ritr(lt a !at a a'at.la-rr
cijsld potprogrami, aU se ne javljaju jedanput ru4rt,n,..., Elt,rt....l B 11,.try,... a t T bU-F
u programu na ma5inskom rtrra.
jeziku, ved onollko puta koliko puta uq.rr,.,.t 6t.t..r..,.t n t{,rrrr,... < t E LLI-r.
su zapisane u programu, To zna6i xh..r.
da Eb *flt-a
se ova funkcija zamenju;e nizom l T lril. rl-13
ma5inskih naredbi na svakom mestu
grertra na kojem je zapisana.
pro_ Eb, r-;[/in'r. 4 rttat & t.o.to-L' Et!.-t tUto
Spisak ovih funkcija sa propisanim
je
imenima 5L, r:-\-r.r n It.ta-tt<rdt.tta B a.:.ra_L
dat u tabeli g.5. 2.
o4br uJ.-ttt'ra d c<r <a,ut.tctt il l.rl.tt-D
U tabelama 9. S.1 i g, S.2 uvedene
su sledeCe oznake:
I

x, xl, x2 ,... - aritmetidki izrazi,


R _ reaLna velidina koja se registruje u obliku pokret_ Tabela 8.5.2.
nog zateza, ubrb,.
ab
&Lrta_td
C _ celobrojna velidina, koja se registruje qbliku
u ce_ reb c I Edrrr.
log broja, Dhc, t'l T ,r.{ I c
dl4.bt. rtrdl0
dlt!
t&rtq ss.r I
M _makeimalna vrednost celog broja (M=Z go B Irtao
14? 4gB 647), l.
p _ maksimalaa vrednost broja utd a E& turt r
registrovanog u obliku
d Db&ar+
h|rtt il
pokretnog zareza (pr7, Z. IOls re(tt,tt
), .r-Ft/f,rJ..r t Hrr.E.ql-db
[yJ - celobro;ni deo broja y, uol bl T rrtaQ B
DR _ realna velidina koja se registruje u obliku
pokret_
nog zareza dvostruke tadnosti,
Dp - maksimalna vrednost br.oja registrovanog u obliku
pokretnog zateza dvostruke tadnosti (Dp*T
2. l0?5),
lrt
liil t71
1?5
ilir Navedena
relativna greEka funkctj{r, u tabeli 8.5.
Iii l, predetavlja naj_ Razlike izmedju ovlh rezultata i rezultata u primeru na kraju odelj-
vedu atatigddki dobijenu relativnu
greBku za rezne vrednosti ka 4.9, nastaju zbog izradunavanja elementarnih funkcija na 16 vaZedih ci-
argumenta iz
il dozvo{enog lntervala.
fara, prema ? vaZedih cifara kada ee radi Ea obidnom tadno56u.
Prlmer
ti
[1 f,I2nlme primer naveden na kraj.u odetjka g,
4. s tlm Eto 6emo eada
lzraEunavanJe erementarnrh funkclja
I' izvr.iti preko potprograma aa dvoetru-
kom tadno66u. U ovom zadatku treba
l' lzradunati
lr

Xr - l-e-reln2x + log(coezx).tgx

Jr ='ercaln (#) . h lxl.arqtsx

xr =y[lT]ffi1 +stnhx - 2costix


za zadatih ? vrednoetl argumenta x.

FORTRIIN-prog?am u eludaju koriEdenja potprograma


ea dvoetrukotn
taEnol6u lma elededl izgled:
ggyg!E PRTCISTOT{ xrYrrY&Y3
HRlrEt6, loot
IOO FOnllAT(
!.1. 14X1 t I I r l4Xr . yl . rl 5Xr, y? | rl5Xr . y3. l;
DO l0l t-lr?
REAO{512001 x
2OO FORilAT(F8.4I
Yl !l' -oExP | -Il t rx t r o1s61o, ocos ( r r rrz, rorAN
y3.DARstNt x/loo., :D-s lJl ?: Ix I
y3.DseRr I Dms r r..-oraii r ola iiiiiIoArAN( x r
+oLoG
lol xRrrEt6r3ool xr ylry2rij:--;t; i ;iiiililiocos"
i; ;i ; r, I
3oo FoRlrATt . . rFo.irii, iitt-i.t t
STOP
, .Elrlo

Izlazd. rezulted au Etampanl u obliku tabele:


xYlYZY3
-75.t+2f -o.5828t970 32 -0.758+e52D Ot
-3r.2665 -0.!989881o l5 -0.t?99992D Ol
-Oo?E88785O 3l
-2t.0032 -0.74071620 lz -0ol16?878O l6
i2.3{lo -o.97to9590 0t
-Oc.57992?*D Ol -0o21?633e0 t3
0.rbg+ -Oot0t6tt4D 0l -Oo1122784o e2
o.3911757tr 00 -0.e86t05?o oo
.t.2026 0.2229++10 0t oo2t29i40D Ot
-o.to35loio ol
tt..33t! o.a728656D 02 o.lt90?20D
-Or9089O7!D O2
Ot r0.l6E5t9lD 0!
l{$

til$

ti!fi
lrlJF
tfrff
i lrll

i$
aii 9. ALC,ORITMI SA KOMPLEKSNIM KONSTANTAMA
'il1

r pnbvrnrvr"rrvuvr
ffi
;{
U neklm oblaetlma nau6nih i tehnt6kih izradunavanja javljaju,ee kom-
ff plekene veliEine I operacije sa ovakyim veliElnama. Kako ee aritmetieke
rl operacije ea kompleksnlm velidinama svode ne aritmetidke operacije aa
tw
rtt
a+{l
realnim veliEinanta, pri demu se vodi ra6una o realnom i imaginarnom
$i
{ft delu kompleksne veliEine, to Be ovakve operacije mogu programiiati pomo-
6u naredbi u FORTRAN-jeziku koje operi5u sa realnim veli6inama. Medju-
#
tim, kako jedna aritmetiEka operacija nad kompleksnim argumentima zah-
ffi teva vedi broj aritmetiCkih operacija nad realaim velidinama, to je progra-
ll
llil
miranje aritmetidkih operacija nad komplekenim veliEinama vrlo zaroetan
iii poeao. Tako, ako su z1 i z2 kompleksni brojevi
f{'
'.t.
zr =a+bi (e.l)
r$
z2 =c+di
gde su a, b, c I d realne velidine, a i = 6l- tada je
lj
,t'
j1
zr+zz=(e+c)+(b+d)i
21 - N2= (a - c)+(b - d) i (s.2)
i
I
zr . zz = (ac-bd)+(ad+bc)i
It Zt ac+bd bc-ad
+-i
z2 c2+d2 c2+d2
i
l

l
vldi, aritmeti.dka operacija deljenja kompleksnih veliEina
Kao 6to se
j
l zahteva dve operaciJe stepenovanja, detiri oper&cije mnoZenja i detirl ope-
i

I rac{e sablranja, odnosno oduzimanja realnih velidina. Da bi se izbeglo


lT8
1?9
programiranje aritmetlEHh opetrclra aad hompleksnlm vellItnama u FOR-
imena komplekanth promenlJlvrh moraJu bld dekrarisana
TRAN-jeziku, postoji mogudnost rada .s tomplekenim veUIinana bez raz- kao komplekene
promenllve. /Ova deklaraclJa mole bltl eksplicltna, pomodu
dvajanja realnog i funaglnarnog dela ovlh vellElna. oplsne narJd_
be
9, 1. Definicija komplekene konetante / coMpl.nx ueta (9. 2. l)
je
68de
J Kompleksna konstanta ee pi5e u obtiku
I COUpIOX - elulbena re6 kojom ee deklarigu lmena komplekenih
/ (a, u) (e. r. r) promenljivlh,
gde eu a i b meBovlte konstante u FoRTRAN-jeziku./Konatanta (9. 1. l) \ llata - spteak imena promenljivih, medju eobom razdvojenih
u matematldkoj notacljl predstav{a kompleksni broJ zarezlraa, koJa se deklariEu kao komplekane promen_
ljive.
I a+bl (e. r. 2)
Teho, optana naredba
Ako Je realnl lli tmaglnarni deo jednak nuli, I tada mora bltl naveden
u obllku (9. 1. 1).' Za regletrovanJe ko'nplekene konatante (9.1. f) o lr€tuo- coHPLEX XTYTNAPoNTA{ 1O I (s.2.2)
r{l ralunara ge koriste dva reglstra;"/U jednom regl8tr:u ee nelezi realnl dsklrlSe promenljtve X, y t NAPON kao kompleksne promenlji!.e I nlz A,
deo kompleksne konstEnte, e u drugom lmaginarnl deo. Oba dela ae regl- Lro nlz ra l0 el.emenata, od kojlh je evaki kompleksni broj.
struju p obllku pokretnog zereze. pored' eksplrcitne dekraracije (9. 2. l komprekenih promenrjrvih,
) mo-
gu tc oyo proilenljive deklarisati lmpllcttno oplenom naredbom
Prlmerl
IMPLICIT lista (e. 2. 3)
a) Dozvofienl obllcl kompleksnih konstanti gdc F
(1.4, -3.2) IMPLICIT - eluZbena reC, a
(0.0,45. ) ll8ta - epieak elemenata, medju gobom razdsojenih zarezima.
(0.0, 0.0) Element ltete (9. 2.3) je oblika
(t2.38-2,5.4)
vrsta (listel) (e.2.41
b) Nedozvoljenl obllcl komplekenlh konstantl gde Je
(A, B)
vrsta - sluZbena re6 COMpLEX, REAL, INTEGER ill LOGICAL,
(A,4.0)
Ustar - epiaak velilcifi elova engleske azbuke, medju eobom razdvo_
(r2.4E-3)
Jena zarezima.

9. 2. Definiclja kompleksne Fromenljlve Impllcltnom deklrracijom (9.


2, S) deklarlEu se 6va lmena promen{i_
\ rrlh koJa podfnJu Jednlm od navedenih elova izmeoJu zagrada u (9.
2.4), kao
Iae komplgkene promenljlve defini3e Ee na latl naEln kao i ime real- promeulve odredJene vrate, a preBa tome koja erutrbena rer etojl
nanesto
-ne
promenljlve. Medjutlm, da bi ee imena ovih promenlJivih razlikovala, r€El vrste u (9.2.4).
Tako oplana oaredba
lnPtlc I T r0clcAt I lrslrcotptEX.l Tr RrZ I (9. 2.5)
r81
180
konstanta, dodeljuje se komplekenoJ pr.omenljlvoj a na levoj strani znaka
ima eledede znalenje: promenljive Elja imena podinju slovima A i S, dekla- jednakosti. Ako je vrednost arltmetiEko g lztaza realan
? broj, tada de bi-
riEu se kao logidke promenljive, a promenljive Cija imena podinju slovima
ti lormirana kompleksna konstanta, 6ijt ce rearan deo brtl vrednost arit-
T, R ill Z, kao kompleksne promenljive. metiEkog tzteza. a imaglnarni deo 6e bitl nura. ovakva komplekena kons-
Ako slova koja ee navode izmedju zagrada u (9.2.4) slede u azbud-
tanta bi6e dodeljena promenljivoj a .
nom redu, tada ee moZe pisati samo pr-vo i zadnje slovo izmedju kojih se
u arltmetiEkom izrazu r mogu se koristlti Ietiri erltmedEke opera-
etavlja povlaka (-). tako naredba
clje izmedju celobrojnrh, lsornrfu i konpleksnih konstantl i promenrjivih.
IHPLICI T COJ'IPLEXI tI-II,T I (9. 2.6) Moie ee korietiti i operacija stepenovanja, prr 6emu u sludaju da je.
deklariEe promenljive 6ija imena po6inju slovima D, E, F, G, H i T kao kom- oanova komplekena velrEina, stepen mote bitt eoho celobrojna veu€ina.
pleksne promenljive.
Opisne naredbe za deklarisanje vrste prornenljivih piSu se na podet-
9.3.2, Naredba ulaza y'
ku programa pre svih drugih opisnih naredbi, odnosno pre prve izvrBne na-
faaa a" L^-Fleksnoj promedjfvol t :ejF:1' __teda
redbe programa ako drugih opisnih naredbi nema, i to tako da se najpre na- ge u ulaznom etrogu pojav{uju dve porja koja eadrre dve realne. konstante. u,
vodi eksplicitna, a zatim implicitna opisna naredba za deklarisanje vr6te
promenljivih. Jto-*i"*"_
Za svaku kompleksnu prornenljivu u memoriji radunara bi6e rezervi- "t Fgi-
gaglaaren deo komplekgne promenljive./Ou. po{l ee opisulu pomo6u opl-
sana dva registra, za reg"istrovanje realnog i imaginarnog dela promenljl-
ve, kao brojeva u pokretnom zarezu. _"-1."..rl"Eo"tte t]ljtss.ttg({ iu E- gpit:--
, 1/ TaEo, alo kompleksne promenljive X i y, i celobrojna promeljiva
Opisnim naredbama (9.2. l) i (9.2.3) deklariSu se i imena funkcijskih J
doUtil-iu brojne vrednosti ea ulaza, tada ee moZe pisati
naredbi i potprograma, ako je rezultat ovih potprograma kompleksni broj.
&EADl5r lo9t XtYtJ
-100 FORIAf l 2( FO.3rElA.5 ], I4t
9.3. Dodeljivanje vrednosti kompleksnim promenljivim r'
U ovom slu6aju na JednoJ karttct Je opiaano 5 polja:
9.3. 1. Aritmetidka naredba / - prvo polje od 8 kolona, sa opleom Fg.3, eadrli realrri deo komplek_
ene promenljive X,
Kompleksnoj promenljivoj moZe se dodeUti vrednost pomofu aritme-
- drugo polje od 12 kolona, sa opisom 812.5, eadrZi imaginarni deo
tl6ke naredbe
komplekane promenJ.jlve. X,
a=9 (e.3. l)
- tre6e polje od 8 kolona, sa oplsom F9.3, sadrZi realni deo kom_
gde je
plekene promenljive y,
v - aritmetiEki izraz, a ,
- Eetvrto polje od 12 kolona, ea opieom Elz.S, sadri,i imaginarni
a - ime kompleksne promenljive.
deo komplekene promenljive y, i
y Arltmetl6kiizraz g moZe kao argumente imati celobrojne, realne i - peto polje od 4 kolone, sa opisom 14, sadrti ceo broj koji se dode_
kompleksne konstante i promenljive, Rezultat aritmetldke operacije izme- ljuje promenljivoj J.
dju dva argumenta, od kojih'je bar jedan kompleksan, bl6e uvek komplek-
sna konstanta. Izradunata vrednost aritmetidkog izraze V. kao kompleksna
t62
r83
b. 4. Izdavanje vrednortl lonptrtrotb promenljtvth

fZa lzdevanJe vrednoatl komplGt.rth promenUlvth vaZt ellGno kroI ze


q9l9 u_{e-
. tl lzlazne neredbe navodt tme komplekgne pron"dJly",lt_llrlfb49lS_qL.So
ophuJu rc dva poUa koja radrZe r9afn9 broJevlr-prvo po[e rrdrll realnl
deo, a drugo lmrginernl deo komplekrne promen{lve. Ove po{e ae opleuJu
opislma ze nelorrlte konltanto (F tlt E ople).
/ uL-^z: x,z,L
Ui
Talco ako ae leU izdati vrednoat komplekene promen$lve Z, mo?e ee
pieatl
\,/-200 rRtTE{6.2obl z
FORllaT ll , ._ .- _.
- lzlezni ilor. redrtl'
I tEll.4t?xrF8.+l
_U
orron rluGelu
-@ItaaopeCu),
- g4jr-o4ll-€t!qb(tla, ra opleom E1!r4,
-!9je9a-odnasqr i"jgtjgn-
, lonplstrne prbmsnglve Z,
i.!91$ra{!,rgtedJuAlgrtora, ra opleom 3X. t taAz"x,z.Y,L
-.to{e ^d n rimbol.. .r oplsom F8.4, foJlg:l3ggllt !-:glf:4
deo komplokrne promenlJlve Z.
sl.9.4. I

Progrem na FORTRAN-Jeziku, eastavlJen po algoritrnu na e1. 9,4. l.


Prlmer
tme rlededl tzgled:
broj l. COllPlEX ZrY
ra HRITE(612001
;lIj t\ 200 FoRH^Tl | .r3Xrrxrrl0lr.zt t22\tryrrl6xr rLrl
,riU* 1r rlSXrtREALo lHAG.rrEXrtREALerrgXr
r Y" .uIAc../l
400 READ(trt00rE)|Dr50O I Xr ZrL
300 FoRHATI F5. L t f 6. 2tF).2r I Ll
G0 T0 llrZr3r4lrL
YrXf Z
r0l HRlTEt6120U xrZrYrL
201 F0RilATl I t 1l)t lrFEo2rFTr2rlXrl€l!r6rl{l
G0 T0 +00
I Yrx.t.lt.2r-!r6l
00 ?0 +0t
2 Yrl-;r12.gra.O,
Progmm.e.tlvttl trko dr ta bror.vt ) Z | ! nrlazo na JednoJ kar- G0 ?0 40t
t l.Z.ZlX
tlcl I dr ovskvih kutlcr motG bltl prolzvolJen broJ. Al3orltem za ovo lzra- 80 t0 401
'1 ftZl l0t0t-lo0l.I
dunrvrnJo prlkrzrn 1r ne rl.9.f.'t.
c0 t0 aol
t00 sToP
EI{D
186
184

Rezultati su StamPani u oblllil tabele Tako ee ne moZe Pisati


COHPLEX A'B
L DoUBLE PRECISIOII Ar0
xL L. I I'iAG. ved
REAL. I t4AG" REA
COltPLEXtl6 Ar B

25"2 36.78 -1"26 0" 5361 83E o2 -0.367800E ol 3


4.00 0.2loo00E c1 o.+00000E ol 5 O zadavanju broja podregistara za registrovanie promenljivih, u opis-
Z.r 0.0 -0.9999968- 0l 2
- l.O 2.2O -lo lO 0.420000E OI nlm naredbams, bi6e redl u odeliku 10.1'
o.100000E 01 3
2.J 1.00 1.00 0.0 I
2.00 3'00 0. r32000E 02 0.144000E 02 Kompleksnoj promenljivoj dvoetruke taEnosti moZe ae dodeliti vred-
6'!, 0.300000E ol o. r20000E 02 4
1.5 s.oo -2.oo nost pomo6u aritmetiEke naredbe

5. Kompleksne velidine dvostruke tadnosti


/ a =* (e,5. 2)

gde je a ime promenljive deklarisane kao komplekEna promenliiva dvostru-


pomo-
ve6 smo videli da se komPleksna velidina u radunaru prikazuje ke tadnoeti. Aritmetidkl Lzrez ,lr moze lmati za argumente celobrojne kone-
pokretnog zatez^' Prvi od
6u dva realna broja, koja se registruju u obliku tante I promen\jive, kao i realne i kompleksne konstante i promenljive obld-
kompleksnog broja'
ovih broieva Predstavlia realni, a drugi imaginarni deo neill dvoetruke ta6no8ti. Rezultat aritmetiEke operacue lzmedju dva argu-
brojevi u pokretnom zairezrt mogu u radunaru registrovati i u obll-
Kako se menta, od kojih je bar jedan kompleksna veucina dvostruke tacnostl, b16e
kudvostruketabnoeti(g1avaS),toseikompleksnekonEtanteiprorhenljive uvek kompleksna konetanta dvostruke taEnosti. Izra6unata vrednost aritme-
mogu pojaviti u obliku dvostruke tadnosti' tiEkog lzraza v, kao kompleksna konstanta dvostruke taEnoetl dodeljuje ee
tadnoeti pi6e se u obliku
. Kompleksna konstanta dvostruke promenljivoj a na levo j strani znaka je dnakosti u nare dbl (9 ' 5 ' 2 ) '
(a, b) DodeljivanjevrednostlkomplekanojPromenljivojdvostruketaEnosti
qde su
-\---- '-;+;---
a i b mesovite konstante dvostruke taEnosti u FORTRAI\hIgiEI' sa ulaza, vrEl se na slidan naein kaoi u sludaju komplekene promenljive
tmets-mpfet"nu p.o-""liive deklariSe se pomo6u eksplicitne
nared- obldne taEnogti, eamo 6to ee u eludaju dvostruke tacnoeti za opis polja u u-

bezadeklarisanjevrstepromen1jivih.Medjutim,l@.
-- - laznom Elogu koristi opls meEovltih konstanti dvoetruke tacnostl. I6to vazi

'Iil"" iu eluEaju lzdavanja vrednosti kompleksnih promenliivlh dvostruke taeno-


ima oblik
=""d13 sti.
* 16 listq- (9. 5. 2)
-^---
COMPLnX
Primer ,L (
sde broi -:-_+da
16 ukazuje se 16 podregistara koristi za re-gistrovanje brojne
.6-- -- -"
sadr Zi 4 podre gis -
vrednosti kompleks ne p"o-t"11iil__f tlo svakiie gistar Prirrernakrajuodeljkag.4.reditisadvostrukomtaEno66u'Uovom
slu6aju FORTRAN-program ima elededi izgled
j.r"pl"k"i" nam:nl:ive avo:trute ta!n9 COHPLEX+16 ZrY
i*.":::O-
uoditi da se dvostruka tadnost kom-
OOUELE PRECISION X
narni deo
-r- kolnpt"t"togEfrllT"Eiil" HRI TE I 61 20O I
::- moZe deklarisati PRE- 2OO FORHATI | .r3Xr rXrrlOXrtlt t22XttYrrl6IrrLr/
oil""tn p.o-"nijiut,te Pomo6u naredbe DOUBLE rr r18X;.REAL. lllAGrrrSXr.REAL.'r9Ir
ove naredbe mogu navesti satno imena realnih
pro- r.lHAG.r/,
CISION, jer se u listi t00 READI 5r300rENDr5O0l XrZrL
menljivih. 300 FORITAT( F5.LtF6t2tF5.2r I I I
GO TO llr2r3r4lrL
Y.X+Z
186
18?
401 l{RITE(612Oll IrliVrL
201 FORIIATI I rrf5olrfOrZIFT.2rllt2€l5.6rt4l ne funkclje. Tako, ako Je argumcnt loodrlA blt 6$oc tednoett, bl6e
G0 TO 400
I Y.X*ZIl lr2D0r-fo6D0l I vrednost funkctje komplekenl broJ obllar trb.d, odlo.no eko Je argu-
G0 T0 401
2 Ytz_t*l2o0D0r4.oDol ment kompleksnl broJ dvostnrte trcm.tl bl6c t vrcdno.t t\lDIcuG komplek-
GO T0 +01
snl broj dvoetruke ta6nostl. Ime komplekanlh elementsmlh funkc{a oblEne
3 Y.Z*ZIX
GO TO 4ol tadnosti poElnJe slovom C, a ime komplekenih funkcija dvoetruke ta6noatl
4 YtZl lOoODOr-1.000 lrI
GO TO 401 podlnje slovlma CD.
500 sToP je spieak funkcijekih Potprograma sa propisanim
END U tabell 9.6. 1. dat
imenima, koji se Eogu koristitt u FORTRAN-jeziku za izradunavanje kom-
Rezultati se dobtjaju u obliku tabele plekenih elementarnlh funkcija.
xz REAL. Pored funkcijsHh potprograma navedenih u tabeli 9.6. 1., u FORT-
IIIAG. REAL. I HAG.
RAN-jeziku poetoji I lzveetan broj frurkcija koje se pidu na isti nadln kao i
25.2 -1.26 0.5351 83D o2 -0.36?800D 0l I
2. I 0.0
'6.?8 +.00 0.2100000 0r 0.+000000 ol 5 funkctJakl potprogreml, aU ee ne javljaju jedanput u Pr<tglatlu na ma6ln-
-1"0 2.20 -4.10 0.420000D 0l -oc1000000 00 2 Ekom jezlku, ve6 onoUko puta kollko puta au zepleane u prograntu. Spieak
2.0 1.00 r.00 0.0 0.1000000 0l 3
6"0 2.OO 3100 0.132000D 02 001{4000D 02 I ovlh funkctja ea propleanim lmenima dat je u tabell 9.6.2.
1.5 8.00 -2.o0 0.3000000 0l 0" 12000 D 02 (
. U tabelama 9.6,1 I 9.6.2 kori66ene 8u slede6e oznake:
Razllke u rezultatima, kada je prlmer re6avan 6a obidnom tadnoilu.
(na kraju odeuka 9.4), t prlkazanlh rezultata u sludeju dvostruke talnoatl,
K - kompleksna veUdina obiIne tadnoetl,
potlEu iz slededih rezloge.
KK - kompleksna ve1i6lna dvoetruke tadnoeti,
R - realna vell6ina obidne tadnosti,
- vrednosti promenljivih x. 7 z, u sluEaju dvoetruke tadnosti, btde
prevedene aa vedom tadnoScu iz dekadnog brojnog slstema u binarno kodl-
RR - realna veUdlna dvostruke tadnosti,
z - kompleksna veUdine, z=a+bi,
ranl heksadekadnl brojnl sistem u pokretnom zar.ezrr,
P - makeimalna vrednost konstante u Pokretnom zatezu obilne ta6-
- vrednosti konetanti koje se javljaju u prog"amu takodje 6u sa ve6-
nosti (P e 7,2. fi15 L
om tadnoS6u registrovane u memoriji,
DP - maksimalna vrednost konotante u pokretnom zarezu dvostuke
- izradunavanje po navedenim formulama izvrBava se ea ve6im bro-
jem vaZe6ih clfara argumenata, i medjurezultati pojedinih aritmetidkih o-
, ta6nosti (DP E 7,2'Io75 )

peracija, ako je jedan argument - .lh operacija dvostruke tadnosti, bide ta-
kodje dvostruke tadnosti.
Sve ovo 6ini tadnijim proradun izveden sa dvostrukom taEno56u od
onog sa obidnom taEnoE6u.

9. 6. IzraEunavanje komplekenih elementarnih funkcija

Izralunavanje elementarnlh funkciJa za kompleksne vrednosti argu-


menata daje kompleksnl broj, kojl Je lste vrste kao i argument elementar-
188

Tabela 9.6.1
&!t! Dlr.nlr Primer
U toftranr Ytau ogrelaanr. Opl l
krb
Crylr) I rl < I?a,57f, , I t,ta.to-5 Zz zadatr vrednost kompleksnog broja z izradunati funkcije
u< a rir<-rac
OEP (.1 n rl<l?{.5t3 -- t,5f,' to-rt :lJ. ].
u < o.3i!?.loro n y,
CE{t) I .t&01 t
["", +Ln(3,6+4, Zi)] lcosz I sinzz
=
h(:l z,oo.ro-5 ,rlrodhl 1o9!rttu
CoG(z) u / 0+01 n s.7!. to- "
Jz =[Re(y,1+I-(y,)] * [n"1y, )-I-(rr)] i
CSF(rl
vt n -tbt <9 x
@80nf, (!) Kvrdratnl lorcn
I rt,lbl(P g 9,8c. lo-'" yr = conj(y2)+3,8-4i
CSrr lr) I rt <0.82t5-loo T l,17. to-'
u obidnoj tadnosti.
-'DSIX (r,
ta(t)
( rl < 0,351t.1O"
rl < lta,5tl
I t, ?t. to-r'
tlgotr*t!ljtt.
l[rlc I t.

CG(tt x rl < 0,8239.106 I l,ur-to-6 Za izra6unavanje u obidnoj tadnoeti FORTRAN-program ima slededi
co. (r l )l <l?4.5t!
CDCga ( t! u il <0,35!t-1016 g
lzgled
s, te. ro-t5
bt d lTa,atr
qS(r) I (.2rr2tt/2 <p t 1.8?.to-6
colrPLex Yl3lrz
I rl - lr+btl ltRlTE(6r51
CNs (r) u (.'+b't'lr < D? E t,32. to-l: 5 F0Rl'lAT(r'r6Xr'ReALNI DFO II'IAGINARNI'r
*. DEor/ I
READI 5r l0 I Z
l0 FoRr'rAT( 2F8"41
Y( I l*CSQRT(CEXP ( Z+1. I {CLOG( ( 3.6r4.21 I I r
*ca8sl c c0s(z tFcsINlz.rLl
yl 2 l=CilpLx( REAL(y{ I I l+AIt{AGl yt I I I r
rREAL I Y( I t l-AIr'lAGl Y( I I I I
yl 3 l=CON.rGt y( 2 t l+( 3. 8r-4.O1
URITE{6'201 Zr (Y(l I'l=l'31
20 FOR||ATl t trtZ ='t2El5.7It ItrYl=trZtL5.Il
*, .r.yZ.r t2El5.7lr I, rY3=r rZeL5.7l
STOP
Tabela 9.6.2 ENO

Nlaln plenrr ruhkclrr


*"-l .'n..nrr."r. RGI.grcl. tG
Qir
EnJ. od Rezultati se dobijaju u obliku tabele
&ar (r R. (r) x lul,lbl<P
' balnl de k6plct.nd,
rrDG(r) I!{ tl ( tal.tbr<P i n91n.rn1 deo t6pl.t
D€O IHAGTI,IARNI OEO
R,EALNI
]OU (.. b I R rar , rbr < P
mu(a,b tt lat,tbt<oP X( sroir od dvd rcaln! Z- -O.{16000OE Ol 0.2t'120(r0E C2
;oNG (a) l.r,tbr<r Ylr -0.!258756t l9 -O.27857788 l9
EoNC (r, con) I f,x i,5r<oP ,lck.nog broj! Y2' -0.6044533E 19 -o.4729?80F l8
Y3. -C.6044533E 19 O.rr72978OE l8
I o. RActoNALNo KoRTSC ENJE uNUTRASt.re MpuonI.lr
neCuuene

U unutra6njoj ili operativnqj memoriji radunara nalaze se naredbe i


podacl u kdernom kodu radunara. Automatska obrada podataka odvija se po
odredjenom programu. Za ovu obradu neophodna je komunikacija izmedju
memorije i komandnog organa u cilju izvrsavanja pojedinih naredbi prog-
rama, kao i izmedju memorije i aritmetidkog organa u cilju obrade podata-
ka. Preme tome, od unutra5nje memorije se zahteva ve.lika brzina upisa i
izdavanja informacija. Medjutim, ovakve brze memorije preostavljaju sku-
pe tehnldke uredjaje, pa je unutraSnja memorija po pravilu vrlo ogranieenog
j kapaciteta. Zato je prohlem racionalnog koris6enja unutraSnje memorije
{
radunara vrlo vaZan u programi.ranju. ovaj problem se resava na dva nadi-
]J
.i{

aa.
- izborom optimalne duzine podataka, i
- vitestnrkim koriscenjem memorijskog prostora,

10. l. Promenliiva duZina Dodataka

Najmanja adresiva jedinica memorije je podregistar, u kojem se mo-


Ze regietrovati jedan karaKer. Kod memorija koje su organizovane po re-
gistrima, ovi se sastoje od odred;enog broja podregistara, Tako registar
memorije koC radunara lF.M-360144 sastoji se od 4 podregistara, a podre-
gistar od 8 delija. Za racionalno koriSdenje unutrasnje memorije potrebno
je obezbediti optimalan broj podregistara za pojedine informaciie u raduna-
ru. Broj podregistara koji se koristi za registrovanje podatka u memoriji
tyz
1git
zove se duZina podatka. U programima koje 6mo do sada pisali nije poseb_ gde je s dulina podatka koja se odnosi na odgovarajudu vr6tu promenljivih,
no ul<azivano na duZinu podataka. Za sve podatke koji su kori5deni dija imena poEinju slovima navedenim u lietir.
u prog_
ramu, pretpostavljana je tzv. standardna dul,ina podataka. standardna Ako promenljive koje se implicitno deklariEu imaju standardnu
du_ duZi_
Zina podataka u FORTRAN-jeziku bide primenjena za sve one podatke nu onda se element liste
za pi6e u obliku
koje nije zahtevana drugadija duZina. pored standardne duZine postoji
mi._
nimalna i maksimalna duZina podataka, Minimalna duZina predstavlja vrsta (listar) (10. r.3)
najma
nji broj podregistara, a maksimalna najvedi broj podregistara koji 6e more
tj. oblik bez navodjenja dutrine promenljivih.
koristiti za odredjenu informaciju u FORTRAN_jeziku. Standardna, mini_
Tako se moZe pisati
malna i maksimalna duZina podataka u FORTRAN_jeziku prikazana je
u ta_
beli 10. 1. 1.. I r.tPtIcl T INT€6ERr2l A, 6rCl rREAL*8tRr 5rTl
Eto zna6i da ce promenljive dija irnena po6inju .lovimaA, B i c biti celo-.
Tabela 10. l. I
brojne i svaka od njih registrovana u dva podregistre memorije, tj. u
Jeq-
Vrsta podatka DuZina podatka nom memorij.kom regi'tru mogu ae registrovati brojne vrednosti za dve
Standardna Minimalna Maksimalna ovakve promenljive, a promenljive R, S i T bi6e realne promenljive dvoe_
Celobrojna promenlji truke tacnostl 1 svaka od njih bice registrovana u g podregi.tara, tj. u dva
vb 4 2 4
memorijska registra.
Realna konstartd ili
realna promenljiva 4 4 6
Ako je celobrojna promenljiva duZine dva podregietra, tada njena
Kompleksna konstanta brojna vrednost x mora biti u ir$ervalu
. ili kompleksna pro-
menljiva I o r6 -2ri (x .zL'-l=s2787 (r0. r.4)
Logidka konstanta ili
logitka promenljiva 4 I 4 u naredbi za ekspricitnu dekraraciju vrate promenljivih moze biti u-
kazana duZina promenfjivih. To moZe biti uCinjeno na vi5e nadina:
Celobrojna konstanta u programu uvek se registruje u jednom
memo_
rijskom registnr, tj. ima duZinu 4. Za promenljive u programu 6ija je vr_ a) Definieanje duzine prornenrjivih za sve promenlJive koje se navode

sta definisana unutrasnjom konvencijom FoRTRAN-je zika vazi u listi ove naredbe. U ovom sluEaju naredba ima oblik
standardna
duZina podataka.
vrstaj! a lista (10. r.5)
Za promenljive u programu dija je vrsta definisana opisnom ,aredl
bom za implicitnu deklaraciju vrste duZina podataka moze biti razlidita gde je
i
ukazuje se u naredbi vrata - sluZbena re6 INTEGER, REAL, COMPLEX ifi LOGICAL,
a - c€o neoznaEen broj koji ukazuje na duZinu promenljivih i e_
IMpLICIT iista (10.1.1) lemenata nizova u listi,
llsta - spisak imena promenljivih i nizova medju sobom razdvojenih
gde je element iiste u obliku ' zarezima.
Tako se moZe pisati
vrsta* s (listar) (10. 1.2)
LOGICAL*T A,OELTA,ALFAI I,O I (10. l. 6)
194 195

5to deklariEe promenljive A, DELTA i r0 elemenata niza ALFA gde su elementi liste imena promerrljivih i nizova, pri demu je njihova du-
kao logid-
ke promenljive duzine l, tj. vrednosti ovih promenljivih bice registrovane zina definisana sa brojem s u (10. 1. 1l), ili su elementi liste oblika (10. 1.
gvaka u po jednom podregistru. 9), pri demu je njihova duZina posebno definisana.
b) Definisanje duZina promenljivih za evaku promenljivu ponaosob. u Tako se moZe pisati
ovom sluEaju naredba ima oblik
INTEGER*2 LI ST,MASA ( , GA}IA*4 (i0. 1.12)
'O '
vrsta lista (10. l. ?)
6to znadi da su promenljiva LISTi b0 eiem6nata niza MASA deklarisani kao
gde je
celobrojne promenljive duZine 2 podregistra, a promenljiva GAMA kao 9e_
vrsta - sluZbena red INTEGER, REAL, COMPLEX ili LOGICAL, lobrojna promenljiva duZine 4 podregistra.
lista - spisak elemeneta medju sobom razdvojenih zarezima.
U odeljku 8.2 uvedena je opisna naredba DOUBLE pRECISION za de_
Elemenat ltste, u (10. 1. ?) lma oblik:
klarisanje realnih promenljivih dvostruke tadnosti. Medjutim, eksplicitna
deklaracija pomodu naredbe
ime*s (10. r.8)

ako ee odnosl na promenljlvu, odnosno REAIr*8 lista (10.1.13)

imet s (ltsta, ) (r0. r.9) bna potpuno isti efekat kao naredba
ako se odnosi na niz, gde je
ime - naziv promenljive ili niza, DOUBLE pRECISION tista (10.1.14)
s - duZina promenljive, odnosno elementa niza,
ll8tat - spisak, od najvise ?, celih neoznaCenih brojeva, medju so- gde ee podrazumeva da su liste u naredbi (10. 1.13) i (10.1.14) jednake.
bom razdvojenih zarezima, koji defini5u maksimalne vred_
nosti pojadinih indeksa niza.
10. 2. ViSestruko kori56e mem tora u okviru
Tako se moZe pisati
Progr

collPLEx 8ETA, RaD*1r{ GRAD* 16( lo, l5 | (r0. l. l0) Svakom imenu promenljive ili elementa niza dodeljuje se u memoriji
6to znadi da je promenljiva BETA kompleksna promenljiva obidne tadnosti raEunara fizicko meato u kojem se 6uva vrednost ove promenljive. Kao Sto
a RAD i<ompleksna promenljiva dvostruke taenosti, kao i svih rb0 eleme- emo videli, ovo fizieko mesto moze bi.ti najmnnje jedan podregistar, a naj_
nata dvodimenzionalnog niza GRAD. vi6e 16 r.jih u memoriji radunara. prostor u memoriji potreban za regis-
c) Definisanje dulina promenljivih moZe biti udinjeno i konrbinovanjem trovanje jedne konstante zvademo polje, ViSe polja dine zonu u mem()riji
zajedniEke duZine(a) i pojedinadnih duZina (b). u ovom sludaju raEunara. Prema onome gto smo do sada videli svako polje u memoriji re-
naredba ima
oblik giBtruje vrednost jedne promenljive ili jednog elementa niza. U toku izvr_
Savanja programa iz polja se izdaje registrovana konstanta ili se upisuje, a
vrsta*s Usta (10.1. il) u zavisnosti od mesta odgovarajuce promenljive u naredbi koja se izvriava.
196

197
Tako, ako se ime promenljive nalazi na deenoj stranl znaka jednako_
To znaEi da 6e celobrojnim promenljivtm
sti, u aritmetidkoS naredbi, tada ee vr6i izdavanje vrednosti odgovaraju.e A,BETA i C biti dodeljeno
iato polje u memorijl radunare duZlne 2 podregistra,
promenljive iz memorije, a ako ae ime promenljive a promenljivim JOT
nalazi na revoj strani
jednakoeti vrgi ae upis nove vrednosti u odgovarajude
i G pofje dullne 4 podregistare (l memorijeH regietar),
memorijsko polje. i na kraju promen_
ljivim MASA i DUZINA bi6e dode{eno polje durine dva memorijska
Kako FORTRAN-jezik dozvoljava veliki izbor u imenovanju promen_ registra,
poilto eu to realne promenljive dvostruke
ljivih, to se u toku izrade programa uvode imena promenljivih prema nji_ tacnoati. prema tome, ako se ne
bi koristila opiena naredba EQUMLENCE za
hovom znadenju u problemu koji se re6ava, kao i prema mnemotehnidkim registfovanje promenljivih
A,BETA C, JOT, c, MASA i DUZINA bilo
olakdicame u pilanju programa. Medjutim, vrlo 6esto ovakvo bi angazovano gx2+2x4+2x8 = B0
imenovanje podregietara' Medjutim, upotrebom naredbe
promenljivih dovodi do neracionalnog koribdenja memorijskog prostora. EQ'IVALENCE koristi se i+4+
+8=14 podregistara memorije.
Zato u FORTRAN-jeziku poetoji opisna naredba kojom se moZe zahtevati
Opisna naredbe EQUMLENCE pi6e
da'viEe promenrjivih ili nizova imaju zaJedniEku zonu u memoriji. u nared- se.pre prve izvrlne naredbe pro-
grama lli potprograma, U odnosu na ostale
nom izlaganju upoznaCemo se Ba definisanjem zajedniEke zone u opiene naredbe ove naredba se
memoriJl navodl poele naredbe za deklarisanjevr6te
u okvlru jedne programske jedinice, i dimenzije nizova.

1o.2.2.
lO.2.L. Zajedni6ka polja za promenljive jednakih duZina

Ako su promenljive razliEitih duZina, tada je


Opisna naredba za definieanje zajednidkih polja ima oblik polje odredjeno promen-
ljivom naJvede duZine. Sve promenlJive navode
se u listi u (10.2.2). Kao
3to Je poznato, kompleksna promenljiva
EQUryALENCE lista dvostruke tadnogti predstavlja pro_
(10.2. l)
menljivu najvece duzine (16 podregietara), a logi.ka
promenljiva predstav-
gde je
lja promenljivu najmanje dutine (1 podregistar). Ako
ee u zajedniEkom po_
lju nalazi po Jedaa promenljiva razlldite duZine, tada
svaka od njih po.inje
da se regiatruje od prvog levog podregistra polja,
EQUMLENCE - sluZbena red, Ciju 6emo adreau ozna-
6iti ea 1, prema podregistrima veCe relativne adrese (2,g,.
lista - spisak elemenata medju sobom razdvojenih zarezi -.). Na sl. lO.
ma. 2.1 prikazano je polje od 16 podreglatara i oznaden
raspored registrovanja
Element liste u (10.2. l) je oblika promenljivih razllEite duZine.
Na.sl. 10.2.1 uvedene su sledede oznake;
(listaj (10.2.21 Cl6 - komplekena konstanta dvostruke tacnosti (duZine 16),
CE - kompleksna konsterta obidne taInosti (duZine g),
gde je Listat spisak imena promenljivih iste duZine mediu sobom R8 - realna konateda dvostruke tadnosti (duZine g),
ratdvoje-
nih zarezima. i{ - realna konstarda.obi€ne tadnosti (dutrine 4),
Tako se moZe pieati 14 - celobroJna konetanta (duline 4),
R€ALT8'{A5A, DUZI I{A, JOTr4 Il - logiEka konstanta (du'ine 4),
IilfEGER12 ATBE14TC rGr4
EQUI vaL eNC E I A r BE fA 12 - celobro:tn&konstanta (duline 2),
rCI r ( JOT rG t r I ilASA r OUZ t NA I
Ll - logtdka konsterta (duZine l).
198

ZAf POLJA
c16 Kon2
c8 KOMl

RA R.P 2
R4 RP1
T4 T4
L4 L4
l2 T2
L1 L1

10.2.2
sl. 10.2. I
POL]E
1 2 3 4 516l7l8 ? l10l11 112113 14 1s116
Premtr tome, ako se ZeIe registrovati u polju kompleksne promenlji-
+SADRZAT PoLfA -=
ve dvostruke tadnosti KOM2, realna promenljiva dvostruke tadnosti RP2,
kompleksna promenljiva obidne ta6nosti KOM1, realna prpmenljiva obidne c16
ta6nosti RPl, celobrojne promt:nljive 14 i 12 duZine 4, odnosno 2, i logilke cE co
promenljive L4 i Ll duZine 4, odnosno l, tada Ce opisne naredbe imati sle- Rg RA
de6i izgled R4 R4 e,4 R4
cor,tPl Ex Kor.tl, xo]t2*!6 t4 L4 I4 T4
REAL RP2*8
TNTEGER I2I2 L4 L4 L4 L4
LOGTCAL L4rL l*l
EoUIVALENCF I KOHzr KollLr RP2r RPI r | 4, | 2 tL4 tL|| l2 t2 l2 L2 l2 t2 l2 I2
Promenljive RPI i 14 nisu deklarisane po vrsti i duZini, jer za njih vai,i u- L1 Ll L1 LI L1 L1 L1 L1 Lt lLl lLr lL1 LI LI L1 LI
nutragnja konvencija F.ORIRAN-jezika. U ovom sludaju polje sa raspore-
dom promenljivih prikazano je na sl. 10.2.2. sl. 10. 2.3
Medjutim, u jednom polju vede duZine moZe se registrovati vedi broj nadin prikazan na sl.10.2.3. imaju sledeCi izgled:
promenljivih manje duZine. Na 3I. 10.2.3 prikazano je polje od 16 podregis-
cor.rPLEx KoH2*l6r Konl ( 2)
tara sa mrrgudim registrovanjem promenljivih manje duZine. O:nake na sl. REAL RP2*8(2IIRPI(4I
INTEGER I4(4lrl1*2(81
I O. 2. 3 iste su kao ve6 koriSdene oznake na sl. I 0. 2. l. L0GICAL L4(41'L,rll 16,
Opisne naredbe koje deklariSu kori5denje polja od 16 podregistara rt;t EQUMLENCElKOH2rKolll( I !' RP2( I I rRPII I I r
*I{( I }r Il (1. lrL4( I IrL( ll )

!
I
I
r
200
20t
Na sl. 10. 2.4 prlkazan je raspored promenljivih unutar memorijskog
Pored oblika (l0. z. B) na konkretan element niza mote se ukazati i
polja od 16 podregistara
preko odgovarajuceg elemerda Jednodimenzlonelnog niza (vidi odeljak b. s,
POLJE relac{a 5. 5.6), tj.
1lz 3 4 5 617 a 9 110 11 12 .13 114 15 16
ime(J) (10.2.4)
SADRZAJ eolr-
Koy|2 gde te J ceo neozneCen broj odfedten relacljom (5.5.0).

KOM1(1) Kao 6to Je poznato, nizovl se fegistruJu ri rsgldrima memorlje ClJe


KOM'r(2)
P2(1) adrese blede Jedna za drugom. u EQUIVALENCE-nerecrbi navode 6e kon-
R e.P2(2)
Rp1(1)
kretni elementl nizova koji ce trrratl zajedniEko po{e, a a obzirom na to
Rp1(2) RP1(5) RP1(4)
da se ostali erementr niza regletruJrr u eueedriim regiatrrna, to 6e i drugi
r4(1) 14(2) r46) 14@) elementl nizova imati zaJedniCka polja.
L4(1) L4(2) L4G) L4(4) Tpko opiene naredbe
r1(1) I r.t(z) r1(3) I r1(4) I1(s) | I1(6) r1(7) I r1(8) DI|IENSl0N At5t? I trll'l
-(r )lL(z) L(s (4 (5)l L(6)lL (7)lL(8
-(9)lL(ro)L(11 /raVt ar aLlt hillLh4 EQUI vALEt{CE ( Al I,1,,, Bl l, t

deflnigu dvodimenzioni niz A l Jednodimenzionahi niz B od po gb €leheneta,


kao nizove kojt se registruJu u zajednlckoj zoiri od 3b regietara memoriJe.
st. 10.2.4
Isti efekat 6e imati i zapis
Kao 5to se vidi, u naredbi EQUIVALEI\C_8, u ovom sluCa;u, DI,IENSION Al 5r?l r Bl 351
treba eQUIvArEI{CE tAt I tr8(l t I
havesti prve elemente nizova. Detaljnije o zajednidkim zoirama nizova gde Je u prvom sludaju, u naredbi EQUIVALENCE konkretan erement nlza
bi-
6e redi u slede6em odeljku. A ukezan oblikom (10.2.9), a u drugon sludaju obDkom (tO.Z.4r.
Medjutim, ako nizovi ne eadrze rstt broj eremenata tada ce biti defi-
LO.2.3, Zajednidka zona za nizove nisana zajedniEka zona u kojoj ce raepored nizova zavisiti od navedenih kon-
kretnih elemenata u naredbi EQUMLENCE. Tako 6e naredbama
Elementi dva niza ili vi5e nizova mogu imati zajednidku zonu u me_ OtxENSION Al lOl rB(5 I tCl2t 2l
EQUIVALENCE (Al5rrBl I lrC( lr I I I
rdoriji. U ovom sludaju element liste u (10.2.2) jeste obtika
bitl definigana zajedniEka zona od l0 registara u kojoj 6e nlzovi biti respo-
redjenl na nadin prikazan na sl. 10.2. S,
im e( I ist ar) (10.2.3) Isti raspored nizova proizvodi i zapie
DI'{ENSION Al l0 I r8( 5t rcl 2r 2l
gde je EQUIvAtENCE lAl5l rB(2lrCl e, I t I
ime - naziv niza, kao i drugi zapiei prema el. 10.2.5, koji definiiu odgovarajuCe elemente
lista2 - spisak, od najvi5e ?,
neoznadenih celih brojeva, medju nlzova A, B i C u ietom polju memoriJake zone.
sobom razdvojenih zarezima. O;ri brojevi definisu konkre_
tan elemenat niza- Ako eu nizovi ea erementima razliditih durina, tada se elementi nizo-
va reglatruju u zonr od navedenog poc€tka eleva na deeno, prema odgovara.-
ju60j dultnl ele.enata. pri ovome !e u
Jsdnora memorrjskom regi.tru mo!
202
203
j
l- zoNA oDro REorsr^RA
COI'1PLEx C(41
$

2 INTEGER J*2II2I
1 5 4 5 6 7 o 9 10 OITTENSION A(IOI
EQUIVALENCETA( l t rc( I lrJ I I )l
saocZa: zoxe
U ovom sludaju raspored elemenata nizova prikazan je na s1. 10.2. ?
A(1) A(2) A(3) a(a) A(s) A(6) A(z) .A(6) A(1o)
^(e) ZONAOD IO REOIS'IARA
B(1) B(2) B(5) B(4) B(s)
c(!,1) z(z,t) 4t.z) *4 1 2 5 4 5 6 7 a 9 ro

sADRiAr zoNE--*-.|
sl. 10.2. 5
A(1) A(2) A(s) A(4) A(s) A (6) A(7) A(8) A(?) A.(1o)

ra nalaziti podatak registrovan prema propisanom nadinu registrovanje od- c(1) C(L) c(3) c(4)
govarajuceg podatka.
(1 h ,F)fJ16. (z)FG r(7F(rc (",
Tako se moZe pisati
coHPLEX Ct 4t
INTEGER J*2( I2 I s1. 10.2.7
DIilENSION A{ IO I
EQUIVALENCE(A'3', CI I IrJ( I I I
Raspored elemenata nizova prikazan je na sl. 10.2.6. Elemernat C( l)
10.3. Vi5estruko kori56enje memorijskog prostora od strane
niza C zauzima dva registra u memoriji, kao kompleksna prgmenljiva obid- @
ne taEnosti. U istom polju registrovani su elementi A(3) i A(4) niza A, odr
nosnoelementiJ(l), J(2), J(g), J(4) nizaJ. Naredba EQUMLENCE omogu6uje viSestruko kori56enje memorij-
skog prostcra u okviru jednog programa ili potprograma. Medjutim, pot-
ZONAOD 10 REGISTARA
programi se vrlo desto koriste lt programiranju, i nije teSko pretpostaviti
1 2 5 4 5 6 7 a 7 lo da se izvestan broj podataka koristi u programu kao i u jednom potprogra-
mu ili u vise potprograma, ili pak da se isti memorijski prostor koristi u -
SADRZAI ..+
vise programskih jedinica. u ovom sludaju treba omoguditi da polje ili zona
A(1) A(5) A(s) A(6) A(7) A (o) A(?) A(10)
^(z) ^(4) u memoriji bude zajednidka za vi5e programskih jedinica' Orakve zone u
c(l) c(2) c(5) c(4) memoriji mogu se definisati na dva nadina, kao
- neimenovane zajednidke zone u memoriji, i kao

- imenovane zajednidke zone u memoriji.


sr.10.2.6
10.2. 1. Neimenovana zajedni6ka zona u memoriji
Isti nizovi mogu se registrovati i od podetka zajednidke zonc; tada
bi opisne naredbe imale slededi izgled: Opisna naredba za definisanje neimenovane zajednidke zone u memo-
riji, pi5e se u obliku
2U 205

ti ekvivalertne llste u celini ili jednim njihovim delom sleva nadesno.


COMMON lista (10.3. l)
Tako, ako se naredbe
INIEGERT2 Jrt(
gde je LOGICALT! LlrL2
COl.ll{ON Al 30 I r JrKrLl rL2
COMMON - sluZbena r€C,
nalaze u programu, a naredbe
lista - spisak elementa medju sobom razdvojenih zarezima. INTEGERT2 CrO
LOGICAL*I FIrF2
Elemenat liste moZe biti ime promenljive ili niza. Ako je
elemenat COltl{ON Bl30 I rCrDr FlrF2
liste ime niza, onda se iza imena izmedju zagrada m.gu navesti maksimal- u potprogramu, liste COMMON-naredbi su ekvivalentne i u ovakvoj zajed-
ne vrednoEti indeksa niza, tj, nidkoj zoni mogu se prenositi i vrednosti iz programa u potprogram, i o-
bratno po6to se li6te 6laZu po redu, vrsti i duZini promenljivih i nizova.
ime(listal) (r0.3.2) Ako se zajedniCkom zonom ne prenoae vrednosti promenljivih, ved
gde je se aemo racionalno koristi memorljski prostor, tada redosled promenlji-
ime - naziv niza, vih u listl moZe biti proizvoljan. Medjutim, ovaj redosled mora biti usa-
listar - spisak, od najvise ?,
neoznadenih cetih brojeva, koji de- glegen u.programu i potprogramu. Ova eaglasnost Eroze se posticl na dva
fini5u maksimalne vrednosti pojedinih indeksa. naEins
Ako se jedna naredba (10.3. 1) nalazi u programu, a druga ovakva - navdjenjem promenljivih u redosledu po njihovoj opadajucoj du-
naredba u potprogramu, sa ekvivalentnim iistama, tada de odgovarajude Zini, ili
promenljive iz jedne i druge liste imati zajedni[ka polja u memoriji. pod
- navodjenjem promenljivih u proizvoljnom redosledu sa uvodjenjem
ekvivalentnim listama podrazumevaju se liste sa istim redosledom promen- filrtivnih promenlivih da bi se usaglaeile duZine promenljivih u listama
Ijivih po vrsti i duZini. COMMON-naredbi.
Tako, ako se u programr.r nalazi naredba
10.3.2. Imenovana zajednidka zona u memoriji
COMMON AI, A2, A3, J7, J2

a u potprogramu naredba Zajednicka zona u memoriji kao i pojedini njeni delovi mogu dobiti
ime. U ovom BluEaju element liste u (10.3. 1) ima oblik
coMMoN xL, x2, x3, Kl, K2

tada Ce promenljive Al i Xl imati zajednidki registar u memoriji, /ime/ tista, (10.3.3)


kao i
proruenljive AZ i)I.2, Ag i X3, Jf i Ki, kao i J2 i KZ. gde je
Odmah treba uoditi da ovakva zajedniEka zona izmedju programa i ime - nazlv zone koJu 6lne promenljive koje slede u listi2,
potprograma predstavlja jedan nadin za ulaz podataka u potprogram, bez
liata2 - gradl se na istl nacin kao i lista u (10.3. 1).
njihovog navodjenja kao argumenata potprograma, kao i za izraz rezunata
Nazlv zone defiriile 8e na isti na6in kao i ime promenljive i uvek
potprograma.
se pi6e izmedJu kosih crte.
Ako se COMMON-naredbom ZeIi dobiti zona za zajednidkim podaci_
Tako re moZe pisati
ma zs viEe prograrnsldh jedinica, tada sve coMMoN-naredbe moraju ima-
t08
2VI

co'|NoN I zoNAtI Al 5I t8 I lO'/zoNA2/KSI I 5I, JOT 6. Olrisna naredba za definisanje zajednidke zone u jednoj programr
gde elementi nizova A i B 6ine_deo zone u memoriji, koja noer ime zoNAl, skoj jedinici (EQUMLENCE),
a elementi niza KsI I promenljiva Jor cine deo zone u memoriji 6a imenorn ?. Funkcijske naredbe, i
7,oNA2. 8. Izvr5ne naredbe programir.
u istol coMMON-naredbi mogu se nalaziti imenovani i neimenovani
delovi zone u memoriji. Ako se iza imenovanog dela, Zeli navesti neimeno-
rran deo zone, tada se oni razdvajaju sa dve kose crte.
Tako se moZe pisati
' collHoN AtBErAlstr92tB?ltCtD,EtLOl
ovakva zajednicka zona sadrZi neimenovani deo, koji 6ine promenljive A.
C, D i niz t(10), i imenovani deo, koji line promenljive E}1, 82 i 83 ea
lmenom- BETA.
Ako ee nadJe vi6e COMMON-naredbi u jednoj programskoj jedinici
ea n razllEitih lista, tj.

COMMON lista,
COMMON llsta, (10.3.4)
I

I
COMMON listao

onda je njihov efekat isti kao da je jedna naredba oblika

COMMON listar, listar, .. ., lista" (10.3. s)

Naredba COMMON, kao opisna naredba, navodi se pre prve izvrSne


.nare'dbe programa. Ako postoje i druge opisne naredbe u programu,
tada
je njihov redosled slede6i:
l. Opisne naredbe za eksplicitnu deklaraciju vrste (REAL, INTECUR,
COMPLEX, LOCICAL, DOUBLE PNECISIO}9,
2. O2isna naredba za implicitnu deklaraciju vrste (IMpLICIT) ,
3. Opisna naredba za navodjenje imena potprogramt, koji se javlja-
ju kao argumenti drugih potprograma (EX,[ERNAL),
4. Opiena naredba za dimenzionisanje niTova (DIMITNSION),
5, Os:isna naredba za definisanje zajednidke zone u raznim progranl
"-
kim jedinic ama (COMMON),
il

l
fi

1 1. DODEIJIVANJE POEETNIH VREDNOSTI


PROMENIJTVIM
/

U mnogim problemima, pored ulaznih podataka, javlja se i izvestan


broj konstantl, koje ulaze u prora6un sa nepromenjenim vrednostima Pri
promenljtvlm
svakom izvodjenju proraduna. Ovakve konstante dodeliuiu se
jedanput na PoEetku Prora6una.
Takvo dodeljivanje podetnih vrednosti promentjivim, odigledno' moZe
se izvrSiti pomodu aritmetidkih naredbi, kod kojih 6e se na desnoj strani
6e o-
rnaka jednakosti nalaziti konstarta, a na levoi ime promenljive kojoj
va konstanta dodeljuje' Medjutim, aritmeti6ke naredbe predstavljaju izvr5ne
na ma-
naredbe programa i posle prevodjenja programa sa FORTRAN-jezika
Sinski jezik, ove naredbe ostaju u programu na ma6inskom
jeziku' 6ime zau-
izvrliti jedanput na
zimaju prostor u memoriji i pored toga Sto 6e se samo

podetku programa. Prema tome, ovako dodeljivanje podetnih vrednosti Pred-


stavlja neekonomidno kori5denje memorijskog Prostora'
Uovojglavibi6eobjaEnjenerraredbekojeomogu6ujudodeljivanjepo-
detnih vrednosti promenljivim u fazi prevodjenja Programa sa FORTRAN-
ne javljaiu u Pro-
-jezika na maEineki jezik. Prema tome, ove naredbe 8e
gramu na maEinskom jezilni, ali obezbedjuju Postavlianje konstanti u
me-

morijeldm registrima, bez koriS6enja izvr5nih naredbi FORTRAN-jezika' i

11.1. DodeliiYPie po.C9t-nih vl.ednosli P:ojnenljiyi.{n naredbom


, I
FaekEiEiliTEEklaraciju viste promenljivih V
Ve6 smo videll da opisna naredba za eksplicitnu deklaraciju
vrste
promenljive (REAL, INTEGER, COMPr'FX,LOGICAL) ima dve funkcije:
.r.*:-]Tffi
fl
i+

i
F

2Lo

2lr
- deklariEe vrstu promen{lvih po lmenima promenljlvih,
m*k (11.1.4)
- defini5e duZine promenljivih. gde Je
Pored navedenih funkclja, ova naredba se moZe koristitl
i za dode- m - c€o neoznaden broj koji ukazuje na broj konetantl
sa vredno66u
ljivanje poeetnih vredno6ff promenljivim i nizovima koji k,
se pojavljuju u
listi ove naredbd, .iako, oplta funkcija ove naredbe moZe se k - konetanta koja se ponavlja m
opisati na puta.
slededi nadin
Tako ee mole pleati
vfFte * I llsta (11. l.l) ,, INTEGERi2 JOT/186/TALFA(5, tOt t5O+Ot
gde je REAL ftAsA/_7.2f3/ rBEtA( lOt/5.1.0, 5+2.0/
col{PlEXrl6 DEt TA/ I -1.4D-2 13. 2D4 I
vrsta - slulbena red (REAL, INTEGER, COMPLEX ili LOGICAL), LOGIcAL LoG*I/"TRUE. /,PLus/.FALsE./
I

s - nbobavez4n ceo neoznaden lroj kojt definlse duZinu promen_ Iime ee postiZe eledede dejstvo
ljivih za koje to nije posebno ukazano u listi ove naredbe, - promenljiva Jor i elementl niza ALFA deklariSu se kao celobroj-
lista - spisak elemenata medju sobom razdvojenih zarezima. ne promenlJlve duZine dva podregistra, i promenljlvoj
JOT se do_
Ako se deklari5e ime promenljive u listi, onda je elemenat Uste deljuje podetna vrednogt 186, a evih 50 elemenata niza ALFA
dobi-
jafu potetnu vrednoet nula,
tuE * q/k/ (ll.l.2)
gde je - promenljlva MA'A i elementi niza BETA dekrarrdu se kao rearne
ime - nazlv promenlJtve, promen{ive duZlne 4 podregistara, t promenljivoj MASA
dodeljuJe
- oe pocetna vrednoet - 7zoo, a prvrh pet elemenata nlza
s1 neobavezan ceo neoznaden broj koji deflnlEe duZinu promenljl- BETA do-
ve, blJaJu broJnu vrednoat t, dok elede6ih 5 eremeaata
a vrednost 2,
k - neobavezna konstanta, koja - komplekanoj promenljtvoj dvoetruke tadnoeti DELTA dodeljuje ee
ee dodeljuje kao podetna vrednost
promenljivoj. podetna vrednost -0, 014+32000.i,
- logidkoj promenljlvoj LOG duZine jedan podregietar dodelJuje ee
Ako se deklarile ime niza u listi (ll. I. l), onda je element liste poEetna vrednost . TRUE., a logidkoj promenljtvoj pLUS,
duZine
ime*sz (lista r ) llista2 / (ll. 1.3) 4 podregletra, dodeljuje se vrednost . F-AI^SE.
gde je
ime - naziv niza, )rft' ft.2. Naredba za dodeljlvanje podetnih vrednoeti
s2 - neobavezan ceo neoznaden broj, koji definiie duZinu eleme-
nata niza, DodeljivanJe podetnih vrednosti moZe se izvrBiti i pomodu poeebne
lieta1 - neobavezan spisak, od najvi5e ?, neoznadenih, celih naredbe obllka
brojeva,
medju sobom razdvojenih zarezlma, koji defini5u makeimal_
ne vrednosti indeksa niza, DATA Ueta (11.2. r)
gde je
lista2 - neobavezan episak konetanti, medju sobom razdvojenilr
zare-
zima, koje se dodeljuju kao poEet-ne vrednosti elementima DATA - sluZbena re6,
niza.
libta , epleak elemenata medju sobom razdvojenlh zarezima.
Ako au u lieti2 uzaatopne konstante medju sobom jednake,
tada ele-
ment llste2 moie imati obllk Elementl liete, .u (11.2. l), imaju obltk

rlr
\
li:

ii
212 tl

i 'aa3
Iietal /lieta21 (r1.2.21 skom registnr poetavlil pfolzvo{en btaarnl radrzaj. Makaimalni broj clfa_
gde je
ra koji moze imeti hek.edekadna konstarta zavisi od definieane duzine pro-
Ustal - spisak imena promenljivih sa indeksom
ili bez njega i imena menljive, Kako se duZina promenljtve odredjuje po broju,podregistara
za
nizova medju 6obom razdvojenih zarezima, njeno registtovanje, a jedan podregiatar sadrZi dve heksadekadne
Iista2 - spisak konstanata koje se sleva nadesno cifre, to
dodeljuju promenlji_ je maksimalni broj cifara h"ksadekadne konatante dva puta
vedi od duzine
vim i elementima nizova navedenim u listil promenljive kojoj se dobeljuje ova konstanta. Ako j6 broj
, medju sobom cifara heksadekad_
razdvojenih zarezima.
ne konstante ve6i od dozvoljenog,za datu duZinu promenljive,
odbacuju €e
Konstante u listi2 mogu blti celobrojne, realne, heksadekadne cifre e leve strane; ako je pak broj cifara manji, s leve stra_
kompleksne, heksa_
dekadne, 10gi6ke ili alfabetske (literali). ne se dodaju nule. Tako se moZe pisati
Ako je viSe uzastopnih konstanti
jednako, moZe se pisati CoHPLEx CrOrl6
INTEGER*2 OETA,ALFA
m*k (11.2.3) LOGICAL IOG*I
gde je DArA C/ | 3. E "197O. I IDIL6HSREDNJA VREDN0SI/,,
. BEt At I Ag. I , ALFA|ZCLCS| tL}clar'rl
m _ ceo neoznaden broj koji ukazuje na broj ponavljanja
konstante k, dlme ae poettZe slede6e:
- k- konstanta koja se ponavlja.
'Tako se moZe pisati - promenljlvoj C, dtja Je duZlna g, dodeljuje se podetna vrednost li_
teral
LOGICAL t{2I
DI rtil,is I ON Al lO,, C ( 5l 3. 8. 1970
oAr a N/ L 2 / t A / tO+O. I, B,
C f 3, 2t 5*t / t L f .TRuE. r. FALsE. kojl je definiean izmedJu apostrofa,
6ime se postize slede6e dejstvo: "
5 /
- promenljivoj D, 6ija je duZina 16, dodeljuje se kao podetna vred_
- celobrojna promenljiva N dobija brojnu vrednoet 12, noet llteral
- deset elemenata niza A dobijaju vrednost nula,
SNEDNJA VREDNOST,
- promenljiva B dobija vrednost 5,2, apet elemenata niza C dobija_ kojl Je deftnlean opleom 16H,
ju vrednosti l, S, i
- promenrJlvoj BETA, 6lja je duZina 2, dodeljuje se kao podetna vre-
- Iogi6ke promenljive L(l) i L(2) niza L dobijaju vrednosti dno€t llteral
.TnuE
odnosno . FALSE.
.AB
Ako se Zeli proizvoljan sadrZaj postaviti u
memorijski.registar, po_ kojl je definisan lzmedju apostrofa;
godno je koristiti heksadekadne konstante. - promenljivoj ALFA, Eija je duZina 2, dodeljuje se kao podetna vre_
Heksadekadna konstanta pi5e se kao niz dnogt hekeadekadna konstanta
heksadekadnih cifara o,1,2,
3,4,5,6,7,8,9, A, B, C, D, E i F ispred kojih stoji slovo crcs
Z.
Kako binarni k6o heksadekadnih cifara sadrZi koja je definieana podetnim slovomZ, i
detiri binarne cifre, to
znadi da u jednom podregistru sa g 6etija - promenljivoj LOG, Cija je duZlna l, dodeljuje sc kao podetna vred_
mogu da se registruju dve hek_
sadekadne cifre. posto je binarni kod heksadekadnih noet heksadekadna konstanta
cifara potpun ravno_
meran kod, to zna6i da se pomoCu heksadekadnih D3
cifara moie u memorij-
koja je definleana poEetnim elovo
2t4 2t5

Izmedju prve naredbe programske jedinice (BLdCK DATA) i zadnje


Naredba (11.2.1) plBe se pre lzvrlnlh naredbl progratna, i tada je
naredbe (END), ne 6me 6e nalaziti nijedna izvr5na naredba. Ako se koris.
redoaled oplenih naredbl glededi:
te.naredbe za eksplicitnu ili implicitnu deklaraciju vrgte promenljivih one
1) Oplane naredbe za ekeplicltnu I lmpllcitnu deklaraclJu vrste (RE- se moraju pisati neposredno iza prve naredbe potprograma (BLOCK DATA).
AL, INTEGER, DOUBLE PRECISION, COMPLEX, I.OCICAL, IMPLICII), Iza ovih naredbi navodi se naredba COMMON u kojoj sG mogu navesti sa_
2) Optsna naredba za navodJenje lmena potprograma koJl se javljaju mo lmenovane zajednidke zone, i to sve promenljive ovih zoia, bez obzira -
kao argumenti drugih potproglama (EXTERNAL), da li dobijaju podetne vrednosti ili ne. ova programska jedinica se posebno
3) Optena natedba za definisanje dimenzije nizova i maksimalnih ne poziva u programu, ve6 dini sastavni deo programa, i izvr5ava se na
vrednostl lndekaa nizova (DIMENSION), poCetku programa.
4) Oplene naredba za deflnisanje zajedntdkih zona (COMMON), Tako se moZe pisati
5) Opiena naredba za dellnlsanje zajednidldh polja (EQUfVALENCE), ELOI( DAIA
R,EAI. KORz
6) Optgna naredba za postavljanje podetnih vrednosti (DATA),
collHOilrl'oN/?l r Er KOR2
?l FunkdJake naredbe, I OATA Pl r Er KOR!/3. l4l 599 t 2.7 lB2B2 t l. +t+2t4 I
END
8) Izvr6ne naredbe programa.
dlme se postiZe sledede:
Naredba (11.2.1) ne mole ee koristiti za dodeljivanje poEetnih vred-
noetl promen[lvim koJe uleze u zajednidku zonu pr6gr"msldh jednlca (CO-
- zajedniEka zona aa imenom KON sadrZi promenljive pI, E, KORZ,
kojima se dodeljuju podetne vrednosti,
MMON-zona). Ovalfftm promen{ivim dodeljuJe 6e podetna vrednoet pomo-
6u poaebne progrqmske jedlnice BTJOCK DATA, koja je opiaana u slede- - promenljivoj PI dodeljuje se podetna vrednqst 3. f4lS93,
€em odeljkr,r.
- promenljivoj E dodeljuje se poietna vrednost Z.7t8ZgZ, i
- promeljlvoj KOR2 dodeljuje se poietna vrednost t.4t4?t4.
11.3. Programeka Jedlnlca za dodeUivanje poEetnih vrednosti
zajednlEldm zonama u memorlji

PostavljanJe podetnih vrednoeti promenl5lvimi nizovima koji Eine


zajednidku zotttr ze vlSe programskih jedinica vrSi se preko posebne pro-
ri
;,1 gramske jedinice, Etja je etruktura elededa
rl
l
BI-OCK DATA
I
I (1r.3. l)
I
END
gde Je
BIiCK DATA - sluZbena re6, koja oznaEava prograinsku jedinicu
za postavljanje podetnih vrednosti u zajednickim zo-
name u memoriji,
END - eluZbena red koja oznadava fizidki kraj programske
jedinice.
ti

I2. OPSTE MOGUCNOSTI UNOSENJA


I IZDAVANJA
FODATAKA

U ovoj glavl blCe izloZene dalje mogudnostl


unoEenJa I lzdavanJa po_
dataka u FORTR"A,N-jeziku. prvl deo materi3rra (odefJa&
12. l.i 12.2)pred-
stavlja da\ie mogu6noe* oplene naredbe FOBMAT,
a drugi deo (odeljak
12.3) odnosl ee na unoEenJe i izdavanje podatarra
bez korl6denJa naredbe
FORMAT.

t2. l- DaUe moguGnoail naredbe FORMAT

12. l. l. Op6tl opie podataka

PolJe ulaznog lll rzraznog eloga, &oje aadrzr cerobrojae,


meEovtte,
kompleksne tlt logtdke konatante, moZe lmatt opitl opla

nck. d (12.1.1)
gde Je

- ceo neoznaCen broj koJl uka2uSs na broj ponevljanja


n
opisa,
G - glnbol FORTRAN-jezl&a,
k - ceo neoznaCen broJ koji ukazuje na duZlnu
polja u ulaznom, odno_
I
gno lzlaznom, elogu,
i
d - ceo neoznacen broj kojl ukazuje na broJ
var.6rh cifara kada ge
opleuje po{e aa meEovltld lli kooplekantm
brojevlma. Ova kon-
atanta je bez znadaJa kada ee opleuJe pol,je
aa celobrojnom ili lo_
gllkom konstantom.

Ako ee lzdaje meEovlti broJ x u lntervalu


0,lrlxl<rd (t2. r.2l
218
219
gde je d parameter u speclflkacltt (12. l. l), tada se broj izdaje bez lzlo-
Po6to Je vrednoat promenljlve R van intervafa (12. I.21, to je StampanJe
Zioca. U suprotnom Bludaju, meEoviti broj se lzdaje sa izloZiocem E iU D,
izvrieno u ekeponenclJalnom oblLku (ea zaokruZenjem).
6to zaviai od deflnlsane duZine promenljlve, Eija je to brojna vrednoct.
McdJutlm, pri izdavanju me5ovitih brojeva u 3irlnl polja k treba uvek L2. l, 2. KoeficUent razqere
predvideti meata za izloZilac broja.
Pri korlE6enju opisa (12.1. l) treba voditi ra6una o slededem: ako je Ako se konatante u ulaznom, odnosno, lzLaznorn slogu opieuje opis-
duZlna polja (k) nedovoljna za sme5taj brojnog podatka, tada Ce bitl polje om F, E ill D, tada se moZe uz ovai opis primeniti koeficijent razmere u
lopunjeno sa k zvezdica (*). obllku
mPnFk. d (12.1.3)
Prlmer
ili
' mPnEk. d (r2. 1.4)
Sietaviti program koji dodeljuje poEetne vrednosti promenljivim
Stampa njlhove vrednoeti na slede6l naEin
iu
mPnDk. d (12. 1. 5)
a) CelobroJne promenljlve gde je
ALFA = 4236
m - ceo oznaden broj koji ukazuje na koeficijent razmere,
JOT =5 P - elmbol FORTRAN-jezika.
b) Realna promenljiva dvostruke tadnocti
Ako ee opie (12. 1.3). kortett za ople polja u ulaznom slogu, tada lma
D = 324.12
slede6e dejstvo
c) Realna promenljiva obidne ta6nosti u=s.10-- (12. 1.6)
R = -125.6 gde je

d) Kompleksna promenljiva
a - vrednoat konatante u ulaznom slogu, a

KOM = (r4.2, -s.Bl u - vredtroat konstante koja Ce biti regietrovana u memoriji.

e) Logt6ka promenljiva Ako ge opla (12.1.3) koriati za opis polja u izl:aznorn slogu, tada on

LOG = .FA[,SE. lma elede6e deJstvo


s=u.108 (12.1.7)
Progro- ima slededl izgled
gde je
INIEGER*2 ALFAt1236l, JgT l5t
REAL.8 Dl tZ4. LZt, R!1 f -LZ'..- 6t u - vrednost konstente u memoriji, a
collPtEx t(Otrllt4r2r_r.8t, e - vrednoet konetante koja 6e biti izdata u izlaznom slogu.
LoGtCAt.l LOG/.FAt SE. /
, rRITE(6rl0t ALFI,JOTTDlRl|(Qil1!916
l0 FonilAtt I t r2G4tGt2.s,eir.zrz6ir .t$!t Ako ee opie (12.1.4) iU (12.1.5) prlmenjuje na konstante u poljima
stoP ulaznog eloga., on je bez dejstva. Ako se ovi oPi.si primenjuju na izlazu,
END
tada ne u.tlEu na brojnu vrednost konstantl, veC semo na oblik Stampanja
Vrednosti promenljivih Etampaju se u obliku tako 6to 6e se vrednoet mantlse povedati 10o puta, a eksponent umanjiti
42t6 5 ?24.12 -0el3E 03 14.2 -3" 80 ze m.
220

22L
Koeficijent razmere primenjen na jedan opis u
FoRMAT-naredbi os_
taje u vaznosti i na svim ostallm opisima koji slede vr€dnost promenljive B, nede bitl promenjena, ali 6e oblik dtampanja bitl
iza ovog opisa, Ako ee
ZeIi ukinuti va'noet koeficijenta razmere, treba zapi.sati takav da 6e mantlsa bltl pomnoZena sa 103 , a eksponent umanjen ze 2. lI
opis F, E ili D u
obliku (12. 1.5), (tZ. r.4) iU (12. 1. S) u kojem 6e biti m dfugom lzlaznom slogu raspored polja u slogu je definlsan opislma T.
= 0.

L2.7.9. Razme6taj polja u ulazno_izlaznom slogu 12. L. 4. Opis heksadekadnih konstanti

Posebnim opisom moZe se definisati poCetak polja u ulaznom, U odeljku 11.2 videli smo da se podetna vrednost promenljivih moZe
odnos_
no u izlaznom slogu. Ovaj opis se pi6e u obliku postavltl pomo6u heksadekadnih konstanti. Medjutim, hekeadekadna kon-
Tn (12.1.8)
stanta ae moZe na€i i u polju ulaznog ili izlaznog sloga. U ovom sluCaju o-
gde je pisuje se ea

T - simbol FORTRAN_jezika, rrZk (12. 1.9)'


n - ceo neoznaden broj, manji od maksimalne duZine sloga lli gde je
jed_
nak ovoj, i oznadava podetak polja u slogu. n - ceo neoznaEen broj kojl oznalava broj ponavljanja opisa,
Z - elmbol FORTRAN-jezika, i
Medjutim, kada ee radi o izlazu treba imati u vidu da je prvi eimbol
k - ceo neozna6en broj koji definide duZtnu polja u slogu.
u lzlaznom elogu komandnog karaktera i da ee odnosi na vertikalno
pome-
ranje papira na Etampadu. Tako je drugi elmbol lzlaznog sloga Ako je heksadekadna konstanta duZa od duZine polja, tada se odbacu-
u etvari pr-
vi simbol koji se Etampa, pa n u (f 2. 1.8) ukazuje na (n-l)_vi elmbol u Ju clfre eleve. Ako Je heksadekadna konatanta kra6a od duZine polja, vrdi
jednom Etampanom redu. ee dopuna sleva nulama u sluEaju ulaza, odnosno znacima blanko u eludaju
tz]reze,-
Prlmer
12. f.5. Opie alfabetaklh podataka
Slede6l program
FORTRAN-jezIk je deflntean pre svega ,^ opi" problema, u kojima
4.2f. 13
E'-0. Oli ae preteZno javljaju izradunavanja po odredjenim formulama; drugim re-
IRITE(orl0t Ar8 llma za obrEdu brojnih podataka. Alfabetski podaci koji predstavljaju niz
l0 FORHA7(, A-rr2pF6.0 fT4tElA.lrFlr I B=rt
S IOP simbola, javljaju se u obllku literala, kao neimenovani podaci, a eamim
EAID
tlm, ne pruzeju ge vede moguCnosti manipulaclje sa njima u progremu.
daje Ftampanl dokument u obllku
A. 22t3. Medjutim, da bl I u FORTRAN-jeziku postojala mogu6noet za ve6e mani-
B= _l4oDE_03 pulactje sa a[abetskim podacima, uveden je opie
PoSto je na opis F, za promenljivu A, primenjen koeficijent razme- nAk (12.1.10)
re 2P- to je brojna vrednost promenljive A, pove6ana l0 puta pre Stam-
gde je
panja. Kako se koeiicijent razmer€ prenoei I na sledede opise koji
slede, n - ceo neoznaden broj kojl ozne€ava broj ponavljanja opisa,
to je i za opis E primenjen isti koeficijent razmere.. Medjutim, brojn:r
A - simbol FORTRAN-jezika, I
k - ceo neoznaden broj kojl defniEe duZinu auabetskog podatka.
gaz

opla (r2. l. l0) mote rc tor{rdtt ze ulez t tzraz alfabeterdh podataka.


oval ople ee odnosl na erfebetrke podat&e, koJlma ee dodeljuje rme na iart 3 YrXaX-2.1X-4c
G0 T0 400
naEln kao t lme promen{ivfua. Dullna aUabetakog podatka odgovara
dutrini
t00 STOP
END
promen{lve, CiJe ime se dode{uJe alfebetekom podatku. Ime ovakvog
alfa_
Za ulazne podatke date u tabell 12. l. L, rezultati se dobijaju u obli-
betekog podatka prBe se u liail
ulazne naredbe, kada ee unosi, odnoeno u
Urti lzlazne naredbe, kada ee lz.daJe aUabetski podatak. ku:
Ako je duZlna auabetskog podatka (k) jednaka po broju slmbola aa Tabele 12.1. I
dclderleanom dulinom promenljrve kojoj ee dodeljuje auabetski podatak k x
teda odgovarajude polje u ulaznom, odnoeno u izlaznom alogu sadrZf 0ETA . 0.600008 Ol
L sl_ 2 r,26 ALFA . O.l700O€ 02
mbola. Akb je durtna alfabetekog podatka manJa od duzlne porja, tada ae GAI{A r -0.35600E 0l
I {,00 ALFA . C.20000E 0l
elfabeteki podatak poetavlja u polju sleva nadesno, a u oatali deo polja 3 2.20
post8vuaju se znacl blanko. Ako je {ulrna auabetskog podatka I
ve6a od du- -1, 00
Itne po{a, tada ge alfabetskr podatak poatavlja eleva nadeeno, a vrEak ai-
mbol,a ge odbacuje. A dodeljene su kao poEetne vrednosti, aUabeteld
Elementlma olza
podact ALFA, BETA t GAMA, I Etampanje teketa izvr6eno je pozivanjem
Primer odgovaraJudeg elementa niza A.

U l.koloni karticg bu5en je ceo broj k, a od 2. do 10. kolone broj x.


12.2. Promene FORMAT-naredbe za vreme izvr6avania programa
tzracunativrednoet n, F ill y uzavisnostlodvrednoetibroja k, nasle-
de6l naGln Prema dosadaBnjem izlaganju FORMAT-naredba se pi5e u programu
f t izraEunati t= x2+l I nJen obllk se ne moZe menjati za vreme izvr5avanja. Medjutim, u neldm
k =1I 2 ', F.=2x+g,s aluEaJevtma Je pogodno da ge ova naredba moZe menjati za vreme 7zvr6a-
I
I\ a " y-x2-2x-4 vanJa programa. Ovo se moZe postldi na dva nadina:

Program saataviti tako da ae moze korlstltl za prolzvoljan broJ ula_ - postav{anjem ea'drZaJa FORMAT-naredbe sa ulaza, i
znlh kartlca. -poatavljanjeeadrZajaFORMAT.naredbekaopodetlevrednostirrlza.
Program na FORTRAN-jeziku ima elededl izgledr
DlHEilStolt A(3t 12.2.1. PoetevUanje eadrZaja FORMAT-naredbe sa ulaza
DATA Al ll l. ALF|. l. f
3OO READIjrl00rENtrriool 2l t.gElA. f ,A l3l t.cAnA.
^l KrI U odeljku 4.8.5 obJa6njeno je da se llteral u FORMAT-naredbi, koja
100 Fo8t|atlllrFg.tl
G0 TO llr2r3lrK
'G0 r0 300 Je prldnrZeoa naredblulaza, zamenjuje aadrZajem odgovarajuceg polja u
I V.X||X+I. ulaznorn elogu. Prema tome, ako je opiena naredba napisana u obllku
{OO llRlTEl6r?O0l AlKl rY
2OO FqRlffllr rlA4r! ' rrEl2.5l j FORMAT('Uteral') (r2'2' r)
60 TO'300
2 l'2tlX+1.5 a lzvr6na naredba ulaza, pomo6u koje ee unoel novl eadrZaj FORMAT-na-
GO r.O 400
redbe
READ (i,J) (t2.2.2)
221 225

tada 6e izvr.nom naredbom (Lz.z.z) brti postav{en Ze ulazne podatke date u tabeli 12. l. l, rezultati se dobijaju, kao i
novr eadrraj naredbe
(I2.2. l) na predvidjenoj duZini izmedju apoetrofa. ranije, u obliku
Na ovaj naEin eadrZaj FORMAT_naredbe moZe se menjati proizvolj_
.= O.1700OE Oz
B€fA 0.6OO0OE Ol
an broj puta
za vreme izvrEavanja programa. Medjutim, ove promene ALFA
ae 6AflA - -0.356O0E Ol
odnose aamo na pisani tekst (Uteral) koji se nalazi ALFA = 0.20000E Ol
izmedju apostrofa.
Tako je ovo pogodan nadin kada ae unoae razlldita objaEnjenja
koja
treba Etampati uz rezultate.
,r.r.
12.2.2.
Uno6enje i izdavanje podatala vrEi se navodjenjen imena promenlji_
vlh, u Usti odgovaraju6ih izvrEnih naredbi, i navodjenjem opiea u listi
SadrZaj FORMAT-naredbe, ukljuduju6i spoljnu otvorenu i
zatvorenu FORMAT-naredbe. pri ovome ae jedna ista informacija o vrsti podataka
zagradu, moZe se postaviti kao vrednost niza sa odgovarajudim navodi dva puta. prvi put je to reEeno preko imena promenljive, a drugi
brojem e_
Iemenata u zavisnoeti oct broja ermbola koje sadrZi put preko opiea polja u ulaznom, odnosno u izlaznom slogu.
FoRMAT-naredba.ova
vrednost moze biti postavljena kao podetna vrednost nlza Postoji mogudnoet da se unoEenje I tzdavar{e podataka
lri dodeljena ele- vrdi lsk{udi_
mentima niza sa ulaza. Naredbom vo preko lmena promenljivih i nizova. Ovo se postiZe naredbom
READ(i, ime)Usta (12.2.3) NAMELIST lleta (r2.3. l)
odnosno gde je
WRITE(i, ime)Usta
, (t2.2.41 NAMELIST - sluZbena red,
gde je liste - epieak elemenata koji se medju sobom ne razdvajaju
ime - naziv niza Cijim elementima je dodeljena vrednost sadrZaja zarezima.
_ FORMAT-naredbe.
Elernenti liete imaju oblik
Primer /ime/lieta, (r2.3.21
gde je
Tako raniji primer na kraju odeljka 12.l.S, mole biti iapiean ime - nazlv koji se eastoji.od jednog do 6est alfanumeridkih sim_
bez
FORMAT-naredbe, i tada program ima slede6l izgled bola, od kojih prvi mora biti slovo,
OIHENSION A{3I,FORUL( 3I,FCRIZI5' Uatal - splsak imena promenljivih i nizova medju sobom razdvoje_
t.iaeiliili
DATA A./.aLFASETAGAMA,
I tFeoit. I nlh zarezima.
_- -]FoRlzl2oHl. rrA4rr . .rEl2.5i
s

3o0 REAo( 5TFORULT ENO:5oot i;i-- - "t


G0 T0 llr2r3trK U ovom slu6aju nare{ba ulaza ima obllk
G0 T0 300
I l=l*l+11 READ(i, ime) (12. 3. 3)
400 t{RtTE(6,FoRIZl A(|(l,Y
G0 T0 ]i00 odnosno u elu6afu izlaza
2 Y=2;rX+3.5
GO TO 400 IvRITE(i, ime) (12.3.4)
) Y-XrX-2. *X-4.
G0 T0 400
500 STOP
E
^10
li
)l

226
227
irl gde te .
Ulazni podacl koji se unose pomo6u naredbe (12.3. 1) moraju biti bu-
l
i - ceo neoznaden broJ llt ime celobrojne promenljlve, kojim ee Seni podev od 2. kolone kartice.
i, definlEe nlazno-izlazna jedinica,
i, Naredba (12.3. l) moie se nqlq2ill bilo gde u prograrnu, ali mora bi-
ime - naziv promen{lvlh sadrZanih u lletll u (12.3. Z). tl lspred prve naredbe u kojoj se korrste imena promenljivih iz listel u
fako-ime u (fZ. g.3), odnoeno (12,1, \,-ukazuje na eplsak promeh_ (L2-3.2). Pomocu ove naredbe mogu ae unostiti i izdavati vrerlnosti svih
ljivth t nizova, to znadl da Je ovlm deflnlsana lista urazne. odnosno izlaz_ vrsta promenljivih: celobrojne, meSovite, komplekdne ilt logiike konstan-
ne, naredbe, Opia po{a ulaznog, odnogno Lzlaznog sloga u ovom cludaJu te.
nlje zadat, ali ee zato ulazni, odnoeno lzlazri podaci moraju pisati.u ob[_
ku Prlmer
ime lista2 & EI{D (12. 3.5) Zadate eu dva kompleksna broja Cr i Cz, i l0 elemenata niza A sa
gde je
realnlm konstantama obidne tarnosti, kao i 3 elementa niza L sa Iogidkim
lme - nazlv promenljlvlh eadrZanlh u Uetll u (12. S. 2),
konatantama. IzraCunati C, P i K po formulama
- siisak elemenata medJu sobom razdvojenlh zarezima, i
11sta2
cr
END - gluZbena red, koJa oznaEava kral ulaznlh podataka. c= c,
Elementl llete2 eu oblika l0
P= l-la'
lmeo = I (12. 3.6) I'l
tu K = Lr IrLz ALt
lmeo = llsta3 (r2.3.71 Program na FORTRAN-jeziku ima slededi izgled:
gde je
COIIPLEX CTCTIC2
imep - lme promenllve, koJe mora biti eadrZano u lletll , LOGICALII L(3I,K
k - kongtanta koJa se dodeljuje promen{lvoj sa lmenom imep , OI ON A I IO
'{ENsI
NAI.IEL I ST/ULA '
ZICI,C2,L, AI IZLAZ/CTP TK
lmea - lme niza, koje mora biti eadrtreno u UEtil , R EAo l 5r u_AZ
C-CllC2 '
lieta3 - episak konetand medju sobom razdvojenih zarezima, i<oje se pr1
redom dodefiuju elementima nlza Cije je lme na levoj etrant
0O lO l.lrlO
l0 PrPr11 1 1

znaka jednakoati. K-l-( I l.AND.Ll z t.ANo.Lt 3I


ltRt TE ( 6r I ZLAI I
STOP
Ako je u lietl3 viEe uzaetopnih konstantl jednako, onda element liste EITID
moZe lmatl obllk
Ulaznl podacl ee pripremaju na karticama, tako da se buEe od 2. ko-
m*kr (r? 3.8) lone kartice. Za ulazne podatke
gde je
m - ceo neozna6en broj koji ukazuje 6ULAZ Ct-(2. t4.21 tC2. l-L. t5.21111=T1 TlF g
na broj ponavljanja konstante, 1r{1 l4lle rt12. r 6END
kl - konstanta koja ee ponavlja. rezultatl se ltampaju u obliku
rt zLlz
f,r (0.?0419616r-Oo5l?O54621rP. l28.0OOO0 rt(.F
tEND
'!iJiilii
13. KORISCENJE SPOLJNIII MEMORIJA :i;it:!j

Kao spoljrl memorije kod raEunara najde5ce


se koriate magnetnr ,.1: i r,.1,r
diEk i magnetnatraka. Ove memorije sp
relativno apore.u odnosu na ope-j ,r;r{.!,,
rativnu (feritnu) memoriju raIunera, ali au
zato velikog kapaciteta. I mag-
netni diek i magnetna traka su po svojoj prirodi ii
medijrim na koji ,e irrfor]c"'s,:rr,-1
macija upisuje i sa kojeg se izdaje serijeki, i.to " it
kod magnetnog dieka bit rr rj1i" t#
po bit, a kod magnetne trake znak po znak (karakter). ., ,i:,. rr;ii

' ii'4'- d1[


-gd
13. I Magnetni disk ,:i ji,r ,i{
:,i$
:;:61
,if;

f 3.l.l. Definisanje podataka


_
.1i

/t: \.1,

$
svi podaci koji 6e 6e prenositi ng magnetni disk
ili izdavati aa dis_ ,r,

ka moraju biti definisani u jednoj grupi podataka, pomodu oplsne naredbe


r riil
rr#
.tll 1

.;
DEFINE FILE lista ( r3. 1. 1)
gde je
DEFINE FILE _ sluZbena red,
lista - spisak elemenata medju sobom razdvojenih zarezi-
ma.
Elementi u listi (tB. t. l) su oblika

g (s, d, f, p) (13.1.2)
gde je
tt0 231

I - c€o neozna6en broj koJi predatavlja identifikacioni broj grupe, r - ceo neoztreEen broJ ili aritmettckt lzt9;z Elit vrednost ukazuje
8 - c€o neoznalen broj koji definlEe broj elogova u grupi sa iden- na relativan poloZej sloga u grupi sa idertifikacionim brojem g,
tifikacionim brojem g,
d - ceo neoznacen broJ kojt defini6e makeimalnu dutinu sloga u gru.
pi sa identiflkacionim brojem g, 13. 1. 3. Prenos Podataka
f - elovo L, E ili U koje definiFe neEin preno6enJa lli izdavanja po-
dateka, i 13. 1.3.1. UPis Podataka na disk
p - ime celobrojne promenljlve, Cija vrednost definiEe slog na dis-
ku.
Upie podataka iz unutra6nje memorije radunara na disk vr5i se iz-
DuZina sloga d moze se lzraziti broJem podregistara ili brojem re-
vr6nom naredbom
glstara u memoriji Eiji se eadrZaj izdaje na disk ili poatavlja sa di6k; jed-
WRITE (g'r, j) Iieta (13.1.4)
nim elogom obrazovanim za ovakvu komunikaciju.
Slovo L defini6e da se srog za komunikaciju izmedju diska i unutraE-
gde jel
nJememor{e obrazgJe prema F08MAT-naredbi ili bez ove naredbe. Mak-
WRITE - sluZbena re6,
simalna duZlna eloga (d) izraZava se brojem podregistara u memoriji.
g - ceo neoznaden broj ili i-e celobrojne PromenlJive Ciia
Slovo E definiSe da se elog za komunikaciju izmedju diska i unutraS- vrednost predstavlja iderdifikacioni broj grupe,
nje menorije obrazuje prema FORMAT-naredbi. Mahimalna duZina slog'a r - ceo neoznacen broj ili aritmeti6ki izraz tiia vrednost uka-
(.d) lzraZava se brojem znakova. zuj€ na relativan poloZaj eloga u grupi sa idedifikacionim
brojem, g, i
Slovo U definiEe da ee slog zq komunikaoiju izmedju dieka i unutra5- j - neobavezan Parameter, koji ako se navodi mote biti obe-
nJe memorije obrazuje bez upotrebe IORMAT-naredbe. Maksimalna duzi- leZje;edne FoBUaT-naredbe, ili irne jednog nlza' 6iji sa-
na aloga LztaZava ee broJem registara u memoriji. drZaj odgovara sadrZaju jedne FORMAT-naredbe kojom se
defini6u izlazni podacl,
Poele evakog obradanja disku vrednost celobrojne promenljive p bi-
lista - splsak imena promenljivih i nizova, medju sobom razdvo-
va uvedana za jedinicu, Cime ukazuje na slededi slog na disku. jenlh zarezima, 6ije Ce ee vrednosti Prenositi'

13. 1. 2. Pozicioniranje glave disr<a 13. 1.3.2. Izdevanje Podatka aa dieka

Da bl se omogudllo pozicioniranje gleve dlska pre nego 6to dodje do i njihovo prenosenje u unutra6nju memo-
Izdavanje podataka sa diska
izvrdne naredbe uno6enJa ili izdavanja informaciJa ea diska, uvedena je na- rlu re6unara vr6i 8e izvr6nom naredbom
redba
READ (g'r, i, ERR=n) Iieta (13. 1.5)
FIND (g'r) (13.1.3)

gde je 8de je
READ - sluZbena reC,
FIND - sluibena red,
g - ceo neoznecen broj ili ime celobrojne promenljive 6ija
g - ceo neoznaden broj ili celobrojna promenljiva diia vrednost vrednogt predetavlja identiflkacioni broj grupe'
predstavlja identifikacioni broj grupe,
r - ceo neoznaEen broj ili aritmeti6ki izraz dija vrednost uka-
zuje na reletivan p"t"Z.j sloga u grupi ss ldentifikacionim
broJem g,
232
233
;- neobavezan parametar, koji ako se
je jedne FORMAT-nareabe, ili ime navodi mo'e biti obelez_
jednog niza 6iji sadrZaj 30 blRI TE ( 6r 40 I ( 0l J t r J=56t 601
odg.ovara.sadrZaju jedne FORMAT_naredbe
kojom se defini_ 40 F0RilAT( ! rr516l
5u izlazni podaci, 500 STOP
END
n - reobavezan parametar, koji ako se navodi
predstavlja
leZje jedne izvrSne naredbe na koju se vrSi prelazak obe_
u slu_
daju da se otkrije gre5ka na disku za vreme prenogenja
dataka u unutra5nju memoriju radunara, i
po_ Elementi matrice A dine grupu podataka sa identifikacionim brojem
lista - spisak imena promenljivih i nizova, medju sobom 2. Svaka vrsta matrice[ini jedan slog, pa prema lomc grupa je saEinjena
nih zarezima, kojima se dodeljuju brojne vrednostirazdvoje_ od 20 slogova. Svaki slog sadrZi 60 elemenata jedne vr.te matrice. Upis
sa diska.
na disk vrEi se vrsta po vrsta matrice, Sto dini ulnrpno 20 slogova za upis.
Primer Izdavanje sa diska vrsi se u pet slogova, diji su sadrtraJi redom prva, dru-
ga, treCa, detvrta i peta vr6ta. Iz svake vr6te matrict koja se prenese sa
Sastaviti program koji elementu ai,.; matrice dieka u unutragnju memoriju raeunara, Stampa se zadnjil 5 elemenata vrste
od 56. do 60. elementa. Tako ftadlprni dolorment ima slededi izgled
at, al,6o
s6
156 Lrl rto I59 160
?2, Se ai,,eo 256 297 2rA 259 260
356 )r1 tt6 759 360
: i
,,, ',, 456 457 458 +59 +60
516 558 560
15,'s6 a s,'o o
'57 '59
azd, se arri. oo
/ U sludaju da se pri prenoGu podataka sa diska u unutrasniu memori-
dodeljuje brojnu vrednost ju radunara otkrije greSka, tada dolazi do prelaska na naredbu zauetavlja-
nja (ea obeleZjem 500), Eime se prekida dalji rad po Programu.
ar.J = 100i+j (13.1.?)

ovako formiranu matricu upisati na magnetni


disk, a zatim preneti elemente
ta'2.W
13. 2.1. Prenos podataka
3t, se 3t,60 13.2. 1.1. Upis podetaka na magnetnu tralor
ii (13.1.8)
asiso tr,'oo Upis podataka iz unutra6nje memorije ra€unara na.magnetnu traku
vr5i se izvrSnom neredbom
diska u unutra5nju memoriju ra6unara i Stampati
njihove vrednosti.
Program ima slede6i izgled WRITE(i) Iista ( 13. 2. 1)

lNTt6ER At20r60 I,81 60'


DEFINE FILE 2(20r6OrUrKt gde je
DO l0 l.lrZ0
DO 20 J'1r60 WRITE - sluZbena fed,
20 al I;J l.loo*frJ i - ceo neoznaden broj ili celobrojna promenljiva, 6ija vreri-
l0 l{RITE(2r I I lAl I rJ I rJrlr6Ol nost ukazuje na jedinicu magnetne trake,
O0 30 l{rlr5
REA0l2.il'ERR=5OO) lgl J I r J.l r6O I tista - spisak imena promenljivih i nizova medju sobom razdvo-
j€nih zarezima, dije se brojne vrednosti upisuju na mag-
nctnu traku,
234 235

Naredbi (13.2.1) nije pridrutene opisna FORMAT-naredba, jer ob- koji ima iFto znscenJe kao i neredba ulaza opieana u odeljku 4. r1.2, s tim
lik (13.2.1) pretpo.tavlja prenogenje podataka u internom kodu radunara, 6to i seda ukezuJe na jedinicu magnetne trake. Prema tome, naredbi ( f 3. 2.
tako da FORMAT-naredba nije potrebna. 4) pridrulujq ee FORMAT-naredba 8a obeletjem j.
Pored oblika (f3.2. f) moZe se koristiti i oblik
13.2.2. Oznaka kraja grupe podataka
WRITE (i, ) rista 1t3.2.21

koJi ima isto znaCenje kao i naredba izlaza opisana u odelJku 4. S., s tim Kraj grupe pdataka na magnetnoj traci oznadava se posebnlm zna-

sto 6eda i ukazuje na Jedinicu megnetne trake. prema tome, naredbi (13. kom koji se upisuje naredbom
2
2.) prtdrulute ee FORMAT-ndreilba sa obeleljem j. END FILE g (13.2. s)

13.2.1.2. Izdavenje podstaka ea magnetne trake gde je


END FILE - sluZbena re6,
IzdavanJe podataka sa magnetne trake i njihov upis u unutradnju me- g - ceo neoznacen broj tli celobrojna promenljiva, {ija
moriju ralunara vr5i brojna vrednost predetavlja idertifikacioni broj grupe
se izvrgnom naredbom podataka.

READ(i) li6ta (13.2.3)


3, Premotavanje magnetne trake
13. 2,
gde Je L3.2.3.1. Vradanje trake na prethodan slog
READ - slutbena re6,
I - ceoneoznaden broj ili celobrojna promenljiva, Eija brojna Vracanje trske na prethodan slog postize ae naredbom
vrednost ukazuje na jedinlcu magnetne trake,
lista BACKSPACE g (13.2.6)
- spisak imena promenljivih i nizova medju sobom razdvoje_
nih zarezima, kojima se dodeljuju brojne vrednosti sa mag_
netne trake. gde je
Naredbi (13.2.3) nije pridruZena opisna FORMAT_naredba, jer ob_ BACKSPACE - sluZbena red
lik (f3.2.3) pretpostavlja da se sa trake izdaju podaci koji su upisani u in_ g - ceo neoznaeen broj ili celobrojna promenljiva, dija
ternom kodu ralunara, naredbom (19.2. l). brojna vrednost predstavlja identifikacioni broj gru-
pe podataka.
Ako su duZlne liste i sloga na magnetnoj traci jednake, tada 6e sve
izdate informacije sa trake upisuju u ukazane memorijske registre imeni-
t3-2-3.2.@
ma u listi naredbe (13.2. 3). Ako je duZina li6te manja od duZine sloga na
traci, tada se prenosi aamo ona duZina sloga koja odgovara listi. Medjutim, VraCanje trake na poEetak grupe postiZe se rrrr -'dborn
ako Je duZina liste veda od duZine sloga na traci, tada se ovakva naredba
(13..2.3) nede izvr5iti i dolazi REWIND g (1s.2.'i)
do prekida rada po programu.
Pored oblika (13,2.3) moZe se koristrti gde je
i oblik
READ(i, j) lista (13.2.4)
REWIND - slutbena red,
g - ceo neoznacen broj ili celobrojna promenljiva, dija brojna
vrednoat predttsvua identifikacioni broj grupe podataka'
LITERATURA

trl Fredric stuart: FORTRAN ProgramminS, ilohn Wiley & 8ons, inc' ' PRILOG
New York. 1969,
t2l John Blatt: Introductlon to FORTRAN IV Programming: Using the
Watfor Compiler, Soodyeer Publtehlng cornpany'
Pacific Pell.rdtt, California, 1968'
IBM System/360, FORTRAN IV Language (G30'€b16) ' RAD SA FORTRAN _ PROGRAMIMA
t3l
NA RACUNARU PDP.I1/70
t4l Milan Zotalj: FORTRAN IV, Koordlnecioht odbot' korienika meElna
zs obradu podataka Jugoslavije, 1969'
lsl IBM System/360, FoRTRAN Iv lJtbrery Eubprograms (Cz8-6596-2)
S A D R Z,A J

Strana
l. Uvod 241
2. Opis radunrrskog sistema PDP-ll/70 242
2.1. Tchnidke karakteristike 242
2.2. hoganrski sistem 245
3. Komuitocija korisnika sa sistemom 245
3.1. Podetak rada na terminalu 245
3.2. Kr i rada na terminalu 246
4. Rad na FORTRAN - progamima 247
4.1. ddresa teke 247
4.2. Uno&nje novog prograna 248
4.3. progama
Prevotlenje 249
4.4. programa
Povezivanje 251
4.5. Izwtavanje programa 252
4.6. Obrazovanje komandne teke 252
5. Urealivad tekgta - editor 253
5.1. ReZimi rada editora . 254
5.l.l.Relim unoienja ZS4
5.l.2.ReZim ureilenja 255
5.2. Komande editora 255
5.2.1. Ubacivanje novog telsta ?55
5.2.2.lzbuivan1e teksta 256
5.2.3. hetraZivanje tekrta . 256
5.2.4. Rad sa pokazivadem reda . 2Sj
5.2.5. Unolenje rcvog bloka. 257
5.2.6. fkC nda n cditorom ZSg
240

6. Neke osobine implementiranog FORTMN _ jeziira 258


!.1 . Priprema programa
258
6.2. Elementi iezika
258
6.3. Na';d;iorrnnN-j."ik"' : : : : . :
259
6.3.l.Naredbaulazaiilaza . . : : . : . : : : : 259
6.4.2. Naredba promenljivog bezuslovnog prelaska
261
6.3.3. Naredba ciklusa .-: 26t
6.3.4. Konverzija podataka
261
6.4. Funkcijski potprobarn
263
9.1.l.geilrisanjJ$ue4nihbro.yeva .:: :: : : : : . 263
operacde nad redima
9.1.?.?r;ok"
6.4.3. Logidko pomoanje
2&
. 264
6.5. Biblioteki potpiograma 266
9.l.l.Fgeklediniceiteke
6.5.2. Datumi i weme .
.. 266
I. WOD
267
6.5.3. Kraj izvrlavurja programa
267
UTERATI.]RA Uovom prilogu izloZeni su osnovni elementi o radunarskom sistemu
27t PDP-l I/70, rad sa FORTRAN.programima pod operativnim sistenorn IAS,priprema
I9lTleN+tograma u interaktivnom radu, kao i osobenosti implementiianog
FORTRAN-jezika. Za ovo izlaganje koriidena je dokumentacija proizvottaCa,
navedena na kraju priloga. Izlaganje nema cilj da prikaZe we mogudnosti koje je
proizvodad predvideo, za rad sa FORTRAN-programima, ved je nadinjen izbor,
onih mogudnosti, koji de biti dovoljne da korisnik, koji poznaje FORTMN-jezik,
moZe koristiti rad unar.
lzlagnje osobenosti implementiranog FORTRAN-jezika. ima cilj da ukaZe
na razlilie izmedu FORTRAN-jezika opisanog u knjizi i implementiranog za
raEunare PDP-Il. lmplementirura varijanta jezika nosl oznaku proizvodada
FORTRAN IVVOIC.O3.
Pri izlaganju sintaksnih definicija. koristi se slededa simbolika:
l"lrr - elenrenat o mole sc ponoviti najmanje
r-puta. a najviSe j.put;r.

lal - isrojestoiIo]l
t_, * meiluprostor ili blanko,
CTRL/Cr
C-]RL/ZJ
- ovo su tastaturne komande, kcje se proizvodejednovrem:
eninr pritiskom na tastere CTRL i C, odnosno Z
parumetor - mala kurziv slova, oznadavaju parametre, koje korisnik
definite.i unosi,
TEKST - crna velika slova, oznadavaju tekst, koji korisnik unoci,
uvek u navedenom obliku,
wram(tar - mala kuziv podvudena slova, oznadavaju.parametre, diie
vrednosti rad unar izdaje,
TEKST - velika slova, cnadavaju tekst, kc{i ratrunar izdqie, uvck u
navedcnorn obliku.
- telat podwCen isprekidanom linijom korisnik tipka olt n
no vidi na cltrulu.
242
243

. Ovde su poronetott TEKST, pg.gllg_t_gl i TEKST primeri navedenih oblika Upravljadki orgar
slova.
- asinhronost opcrac{a,
- sistcm prekida,
2. OFIS RACUNARSKOG SISTEMA Pt'P.I T/70 - komunikacioni kanal za vezu izmedu organa sistema (UNIBUS).

2. l. Tehnicke karakteristike Spoljnja mernorija


Radunar PDP-lr/70 je najveci radunar iz serije radunara pDp-l l, arneridkc Magnetri disk RP{s
-
firme DEC (Digital Equipment corporation). osnovne karaktcristike sistemi su:
l6'to bitna red sa mogudnosdu obrade po recima (16 bita), po bajtovima
- - broj povr$na: l9 povrsina/paketu,
(8 bita) i za brzi prenos dvostrula rel (32 bita), - broj staza: 4l I stazay'povrSini.
-
asinhrnost operacija, - broj se(tora : 22 sektora/ sw|i,
-
sistem prekida, - broj bajtova: 512 bajtova/sektoru
-
brzi registri opite namene, - kapacitet: 88 MB,
- komunikrcioni tanat (UNIBUS), i - bzina diska: 3.600 obrtaja/min.,
- mogudnost prikljudivanja rznovrsne periferne opreme. - pozicioniranje glave:
Na sl. 2.1.r orikazana je veza sistemi pomod. komunikacionog
kanara
- zajedan cilinder: 7 msec
(LNIBUS). Kaiakterisrika ovakve organiz.ri:i
iu-f-"to pritfirClr."i.-;;;;; - maksimalno pozicioniranje: 50 msec
opreme.. Komuaikacija sa operativnom m..oiilotn odviia se na istr natin kaoi sa
- srednje vreme: 28 msec.
perifernim urcdajima.
Magnetna traka TE-16

- lirina trake: 1,27 cm,


I

ir,
- duZinatrake:731,6m
l:,ll NIBUS ' - brzina kretanja: l,l4 m/sec,
- brzina premotavanja: 3,8 m/sec,
- vrcme polaska i zaustavljanja: 8 msec,
- broj kanala: 9
- gustina: 800 ili 1600 bita/in,
- rer'mak izmotlu blokova: 1,65 cm,

sr. 2.t.t.
- kapacitet 23 MB ili 46 MB,
- brzina prenosa; 36.([0 bajtova/sec, ili 22.000 bajtova/sec.

Opcrativna mano{ia [Jlszneizlrni srt hi


- kryacitefi 64KB4MB, IinijCd stmpat LA-lt0
- vrcme prilaza: 0p gccc, - matridni lt8rrpaC,
- direktni
mcmorijrkiregistar: t6 delija,
-- matrica 5x7 tafakr,
- poluprwodntna
pristup memoriji,
- skup znakova: 96 znakova (rrelika i mala slorva),
o, .. I medumemorija od 2 KB, smanjujo brcj obradrnja
lcritnoj memoriji, tako da je srednje vrerne prilaza 0,4 psec - duzina reda: l32znaka/ndu,
- bzina: oko 100 redova/min (zaviri od dutine reda).
AdnretiCki o4n
- bzi registri oplte namcne, TcminalW-50
- ultnctfli(c operacijc u fikrnsn zarezu (vrcme bvrlavriria 0.96.?,scc). - alfurumeriCki tcrmind se tastaturqn i okranorn,
aritmetickc operac{c u pokretnom zarean (vrcme
lrtcc),
tL"il;ii,ii4; - skup simbola: vtlikaslova, dckadno cifrc i ryecijalni zawi(sl.2.l.Z),
- broj rcdovrnackruru: 12
- obrada m dudni redi (t6 bita) i duzini bdtl (E bitt).
- broj pctcUr u rcdu: 80.
244 245

2.2. Programski sistem


H Programski sistem radunara dinc operativni sistem i progamski prevodioci i

H H H rEr
interpretatori. Za ratunu PDP-I I /70 je razvijen operativni sistem IAS (Interactive
Applications System), koji omoguduje:

- rad u razdeljenom vremenu,

H LflJ
tr tr t-il -
-
sekvencijalnu obradu poslova,
rad u realnom vremenu.
i

tr n tr lll
Na sistemu postoje prevodioci za sledede jezike:

-_ simbolidkijezik,

E tr tr N
FORTRAN IV,
_ FORTRAN IV PLUS, i
- coBoL

tr tr tr E
klao i interpretator za BASIC-jezik.

tr tr tr tr 3. KOMI.JNIKASJA KORISAIIKA SA SISTEMOM

tr tr tr E 3.1 . Podetak rsda n8 termhalu

tr tr tr tr
Svaki korisnik mora, pre rada na sistemu, dobiti Sfre pomodu kojih Ce mu
ol operativni sistem omogueiti rad sa programima sistenra. Ove Sifre korisnik
al odre<luje u dogovoru sa sistem-programerom, koji iste saoptrtsva qerativnom
sistemu. Kada korisnik Zeli da radi na terminalu, mora, po uk[udeqiu terminda u

tr tr @ tr
v)
elektriCno. napajanje, sprovesti odreden dijalog, kre kdi se predstada sistcmu.
Ovaj dijalog ima slededi izglsd;

E tr tr tr
CTRL/C
I.AS PROGRAM DEVEIJOPMEMSYSTEM VERSI0N 2I}

tr tr tr E
weme daUm
PDS>IJOGIN

tr tr tr tr
USER NAME? karktnik
PASSWORD? .rrf_a
USER kortnik I TTOI:
tr tr tr tr
WC [tutalos JOB-ID 12 sarc ettu!4

Svaki red korisnik .zavriava pritiskom na taster RET.URI.I (prelezat na

tr
tr E EJ
l-El poCetsk novog reda).
znaiinja:
U navedcnqrr d$dogu porukc korisnike imaju slcdcCc

@ rH koisttik
gtlra
-
-
nisks simbola odrodena u dogovoru se{stem?rogrilrl.
erqm,
niska simbolr odrollena u dqovoru sa sisbmarogrun,
r
crorn, pri t[kanju ne vidi na ekruru,
246 247

weme
doum
- 6as minut i sekund tekudeg vremena, Primcr

latabt
- dan, mesec i godina tekudeg dana.
. Tako, ako korisnik, DRAGAN, zavr5i r.ad sa terminalom moZe se dobiti
- identifikacioni kod korisirika. sledcdi bve5taj:

Posle zavrietka dijaloga, korisnik, na poruku sistema PDS, moze zahtevati: PDS > LOGOUT
- uno*nje novog programa, USERDRAGAN UIC[20l,tm] TT0l: JoB-rD il t7:38:00 26_FEB_79
- rad sa editorom radi ispravki u programu,
CONECT TIME 08 M SYSTEM UTILIZATION I MCTS
- prevotlenje progt:rma,
- povezivanje progama, ili BYE
- iarriavanje programa.

himer
4. RAD SA FORTRAN-PROGRAMIMA
Neka korimik Cije u
Sifre, ranije ved saopstcnc operativnom sistcmu,
.ill DRAGAN i 1951, teli da radi na terminalu. Tada korimik vodi slededi dijalog: 4.1. Adresa teke
'tt:
:

GTRL/C
Teka !t
opranizovan skup infomracr.ia, koji se duva u memorijskor.
medijumu. Ako teka sadrZi podatke zove se datoreka, a ako sadrii progr:rm zove se
,lift programoteka. Na istan memorijskom medijumu moie se nalaziti vi5e teka.
IAS PR,OCRAM DEI/TIOPMENT SIISTEM VERSION 2.0
r,;i' Informacija po kojoj se pronalazi memor{ski medijum, na kome se nalazi teka,
17:29:56 26-FEB-79 kao i teka na medijumu zwe se adresa teke. Op5ti oblik adrese teke je
TDS>IOGIN
T,SERNA"IIIE? DRAGAN
-- furetloi:l[katatoglimeI sadr|aj)f:verziial
PASSWORD? l$l
' ueu - ukazuje na vrstu memorijskog uredaja, i to tako da
TSERDRAGAN ttlC[201,1001 TTOI: JOB-ID 12 l?:30:fi) 26-FEB=7e prva dva slova dznadavaju vntu uredaja, abroj iza
slova..ukazuje na uredaj iz date vrste. Tako, pored
tDs> ostalih, postoje sli:dedi uretlaji:
MM - magretna traka,
RK magnetni disk,
-
32. Knjtadanatcrmiaah SY sistemski uredaj (disk),
-
Kada korisnik Zcli da zavrli rad na terminalu, na poruku sistema PDS, LP - StampaC,
.
odgovara sa Loc'our' q' lcotalog - t9- t dva-oktalna broja, razdvojena zarezima, koji se
pitu izmetlu uglastih zagrada i moraju biti iz inte;da
pDs > u)"our I I ,377 | . Ovo je idenrifikacioni kod korisnika.
posle Ccga sistem izdajo zavrlmr ponrku u obliku: ine - do dcvet simbola, koji mogu biti slova ili cifre, stim da
prvi simbol mora biti slovo. Ovo je ime teke.
USER /gonsai& lJlC I kttabr ITTOI: JOB-ID 12 ware datton sdrrsi - ukazuje na sadrZaj teke, i to
FTN, - FORTRAN-program,
CDNECTTIME 4 M SYSIEMUTILIZATIONzT MCTS
LST ,- izveSt{ (listing) o programu,
BYE
OBJ - preveden program,
fdo *.f i n odgovuajuCt yrcmcna. OLB - biblioteka,
TSK - ia,r&ri program,
trd ovalcvog zrvrlct&.a radl, mdc i. sistem prckinuti
tcrmindq ako korirnik odrcdcno urmo (nr primer
opdulfuurt CMD - komurdna teka
l0 minuta) ne saopiti nikrhnr
pondru prcko tlrte0n. U oqn slu0{u sirtcm jwljr ponrku.
DAT - datoteka.
tunila - olilalni broj iz intervala [ 1,77777 ] , koji defini&
TIIrIEOtn verziju tcke. Ako se ne navede podrazumeva se vezija
Ldrfczrrlnu ponrku i pruklde oprlulivrnJc torminrh" sa najvcdim brojem.
248
J49

4.2. Unobnje novqg programa


PDS >CREATE
Ako Zeli da unosi novi program, preko terminala, korisnik tieba da ima
vidu, da, sadrZaj jedne kartice, odgovaralednom redu na terminalu. prema
u FILE? SUMA.FTN
tome INTEGERXI,X2,)c},Y
ako naredba sadrzi obelezje, ouo se unori od pocetka reda i pritiska t"rt t i,c,b,
cim.e se dolazi na poziciju za podetak unosenja naredbe. Ak'o TYPE IO
naredba ne sadrti
oDele+, tada se pritiskom na TAB, takode dolazi na poziciju za unosenje
naredbe.
l0 FORMAT( t UNETITRI BROJA UOPISU t8:')
Pri uno5enju programa korisnik vodi slededi dijalog: ACCTPI20XIX2X3
20 FORMAT(3rE)
Y=Xl+X2+X3
PDS > CREATE TYPE 30,Y
FILE? rrne.FTN 30 ionrr,r,lr 1 ' s[rMA UNETIH BRoJEVA JE' , 17)
READY FOR INPUT STOP
END
fortran-program ctRL/z
lz
CTRL/Z I Exlr ]
tz tDs>
I EXrT ] Posle ovoga, progam pod imenon SLJMA.FTN'nalazi se na dislu i korisnik
PDS > moZe zahtevati.njegovo prevoilenje, povezivanje i izvrSavutje. Metlutim, ako u
programu postqie greSke, ispravke se mogu vr$ti samo pomodu editora,

4.3. Prevodeni: pmgruna


U ovom dijalogu sluibena red CREATE oznadava da se Zeli unositi (kreirati) Da bi izvriili prwottenje FORTRAN-programa, potrebno je pozvati FORT'
novi progtram. Ime programa irne navodi korisnik, i to moze biti niska od RAN.prevodilac, zadati adreal teke sa FORTRAT{-programom i prcdi na izvrhva.
marksimum devet slova ili cifara, pri demu prvi simbol mora biti slovo. Iza imena njc prevoilenja. Ovo se postile komandama:
programa tipka se tailia i tekst FTN, koji ukazuje da se radi o FORTRANfrogra-
mu. SiStem izdaje ponrku da je sprcman za unoienje, posle dega korisnik unosi PDS.> FOIRRANI[kvalifilutorll telnl
FORTRAN-program. Kada je korisnik uneo FORTMNjrogram, tipka CTRL/Z
(ednovremeno CTRL i Z) i program je, pod nryedenim imenom-, saiuvanlna ili
.disku, a sistem daje poruku PDS ) i korisnik-odluduje Jta ieli dalje da radi. FDS > FOIRTRAN] [ftrulrf,tzror]fl
- Kod ovakvog unolenja prog{ama, korisnik moZe vrliti iqpravke, siuno u FILE? tel@l
tekudem redu, i to:
ii a) Pritiskom na tasterDELETE bri5ezadnjiznaku tekudem redu. Kvaldilotor &finis teke koje sc formiraju u toku prwodenja, kao i izvcltaje o
:1r b) Pritiskom CTRL/U brile tekuCi red. Red koji je zavrlen, pritiskorn na izyrFnan prwotlenju. Telul saddi FORTRANjrogram i mora, kao opis sadrlaje
taster RETURN, ne moZe se iqprav.jati. Ovakve grelke mogu sc igravliati sapo imati FTN. (rulgttaton mogu biti:
pomodu editora.
/LIST [ : teka2l
lOBlIECII:telol
Primer
/sw I rTcH | : ([ /fin*aia ll )
Un95e.1lj: novog
Programa ilustrovademo naJednostavnom primeru. Bi& to
qPgatn koji izradunava simu unel8 tri ccla broji. Uno5enje ss'"rgi ;;;;; Kvrlilikator LIST fonnira tiluz o FOf.TRAN-progamu, eis rrdrlrJa o,al<ve
dijalogu: teke je IJT. Ako teloz niie nnredena onda sc izvettaj o progamt izdaje ne
ltsnpdu. Ako kvdilikator LIST niie navc&n izvctt{ sc ne Ldajc.
250
251

Kvalifikator OBJECT formira tehu od prevedenog programa, a opis


Primer 4
sadr2aja ovakve teke je OBJ. Ako kvalilikator OBJECT nije na'eden formira se
teks sa imenom te&e1 i opisom sadrfaja OU. Komanda
Kvalifikator swITcH omoguduje da korisnik bira oblii izvettaja o izvrrenom
prevoilenju. ovo sc zadaje navoilenjem odgovarajudih niski simbola namesto rcei PDs > FORTRAN/SW : (/DE) POTtzLAz
funkciia. Mogu biti navedene sledede niske:
prevodi program POTIZLAZ.FTN, tako da ukljuduje i programske redove, koji u
pwoj poziciji sadrZe slovo D, i formira teku POTIZLM.OBJ.
U:0 izdavanje dijagnostike,
U:l izdavanje FORTRAN-programa i dijagnostike,
Ll :2 izdavurje raspodele memorije i dijagnostike,
Ll:3 izdavanjc gonerisanog koda i d{agnostike,
DE prwotlenje progranrskih redova sa slovcn D u pnoj 4.4. P ove:,iv mje programa .
poziciji,
EX prihvata red od 80 pozicda, u protivnon prihvata red Preveden program nije u izvrSnom obliku, jer je potrebno izvrSiti povezivsje
od 7.2 pozicije. pojedinih programskih jedinica. Ovo se postiZe slededim komandama:

Navotlcnjcm 11 ;7 bide obuhva&ne we funkcdeU: l.Ll:2iLl:3dakle s,i


izvettaji koji se mogu dobiti pri prwodenju. Broj n u definicdi kvalilikrtora PDS > LINK I lcvatifitator lf, - teka I u telca lu teta[/1n11 ">'
fli
SWITCH o&eilen je brojem funkcda koje se navedu.
PDS > LINK I kwlilitutor li
Primer I
FILE? tete f, tet<a 1/LIB l] 3
Komanda
Kvolifilutor definie teke koje se formiraju u toku povezivanja. Navedene teke
PDs > F0RTMN/LIST/SW: (/tl : l) PROGI moraju imeti opis sadr2aja OBJ, a ako se koristi biblioteka, tada iza odgovarajuCe
adrcse tcke trcba postaviti /LIB. Kvaliflearon mogu biti:
prwodi prograrn PROGI. FTN, izdaje izveltaj na ltarptCu, kojl sadrZi FORT.
RAN-progrant i dijagrostiku, i formira teku prcvedepog programa PROGI.OBJ. ftASK; telu1

Primcr2 /MAP[:reAn2 l
Komande
Kvalifikator TASK formira khh d izvr5nog programa, diji je opis sadrZaja TSK;
fDS> FORTRAN ako sc ne navede, tada se formira teka sa imenom programa, koji se pwezuje i
FILE? POTI.]LAZ qisom sadrtaja TSK.
Kvalifikator MAP formira teha koja sadrii raspored i veze izmedu
ptcvode program POTULAZ.FTN, i formiraju tetcu sa prcvedcnim programom pod programskih jcdinica, sa opison sadrzaja MAP Ako * tekh ne navede tada se
imenorn K)TULAZ.OBJ. izreltaj izdaje na Stampadu.
Primer 3 Pdncr I
Komande Komande

PDS > FORTMN/LIST :L /OBL.:P DS>LINKIASK : ZADATAK/


FILE? MAX
I FILE? PROGI,FOTULAZ,MAX,PATIZLAZ
prwodc program MAX.FTN, formir{u teku L.LST o izvr$idn prevotlenju i'tctu
P.OBJ prevctlnog programa.
povezuju prwedcne grogramc PROG l. OBJ, POTULM.OBJ, MAX.OBJ, POT
IZI-|.Z.ON i-forminju now toku ZADATAK.TSK kojs sadrZi ?vrlni program.
252
t53
Primer 2
izbeglo navotlenje istih komandi viSe puta, moZe se od komandi obrazovati
Komanda
komandna teka i komandonr

PDS > LINK/MAP FED PDS) @ re&a

program
'preii na interpretacdu komandi u navedenoj komandnoj teci, diji opis sadrZaja
FED.OBJ, zdaje_zvestaj o povezivanju
lou:t.uj.
zvrSniprogramsarmenomFED.TSK. J - r- '-"sr na Stampadu i formira mora biti CMD.

Primer 3 Primer
Komande Obrazujmo komandnu teku KOM.CMD na slededi nadin:

PDS >CREATE
PDS > LINK
FILE? KOM.CMD
FILE? RAD
povezuju program READY FOR INPUT
RAD.OBJ, i obrazuju izvrsni program
RAD.TSK.
FORTRAN PROGI
4.5.Izvr3avarje programa FORTRAN/LIST FOTI.JLA Z
FONf,RAN MAX
Kada je FORTRAN-I FORTRAN POTITLAZ
radunaru. #*;#;il;;i:"$Tr.[il1?.: povezan moze se izvrriti m
LINK/TASK: ZADATAK
. PROGI. FOTULAZ, MAX POTIZLAZ
PDS ) RUN r.r ,elz RIJN ZADATAK
ili
CTRL/Z
PDS > RIJN tz
FILE? tet@ I EXIT J

predstavlja adresu programa, PDS >


?Or.*t:t koji se Zeli izvrsiti, i mora imati opis sadrZrf
Interpretacija wih komandi, u komandnoj teci KOM.CMD. omoguduje se
Primer kornandom

Komande
' -s>@KoM
gde se podraatmwa opis sadrzaja CMD. Interpretacijom orih komandi vrSi se
prevodenje programa PROG I , POTULAZ,MAX,POTIZI.AZ, djihovo povezivanje
PDS >RIJN u i
izvrlni program ZADATAK prelazak na izvrgvanje ovako formiranog
programa. Pri prevotlenju programa POTULAZ dobija se i izveltaj o prevodenju.
FILE? ZADATAK
omoguCuju prelazak
na izvrfuvanje programa ZADATAK.TSK.
5. UREDIVAC TET$TA-EDITOR
4.6. Obrazoruje kornmdnc
bke
Program koji omoguduje uroitenje bilo kakvog tekstazovc se uredivaC teksta
. Jedan FORTRAN-orogram
prolazi koz ili editor. Ovaj program se pciva komandcn
wrevanja. Za svaku
testrranju prqgrama
*;,[j*:.iil;.;ffiuje fazu prevottenja, povezivanja i
komande. Merrutim, prt
cesro treba vis p'ta prodi kroz PDS> EDIIT I
navedene faze. Da bi rc
254 255

Ovaj p_rogran se koristi zr igravke FORTMN-programa u interakttunom reZimu


5.1.2. Refim urcilenja
rada. Program ima dva osnovna reZima rada: re2im unolenja i rezim uredenja. U
reZimu unolenja omogudeno je unoSenje novih redora u portojedu teku. kao i Kada korisnik Zeli vrtiti ispravke u postojedoj teci, tada editor dovodi u
formiranje novih teka. U relimu uretlenja omogudene su izmene postojeie teke, reZim uretlenja. Ovo se postize sledecim dijalogom:

5.1. Retimirdacditon PDS > EDIT


5.1.1. Rctiauro&njr FILE? relu
Kada korisnik pozove prqgram za uredenje teksta i navede novo ime teke, . I n LINES READ IN I
tada se editor dovodi u re2im unolenja. slededi dijalog prikazuje formiranje nove
teke: IPACE r l
PDS ) EDIT re&a
I CREATTNC NEW F|LE I Ovde adresa tekeul<znr1e na teku koja se Zeli uredivati, anje broj uzetih redova ie
INPUT lcke. Zvetdtca (') na kraju dijaloga ukazuje da se editor nalazi u reZimu uretlenja,
{t tekst pa se odekuje intervencija korisnika. Ako u adresi teke nije navedena verzda,
r EXIT uzima sc teka sa najvedim brojem verzije.
I Exlr ] Teka se sastoji od redova i pri radu editora.obra,uje se zona editora,koja
ffi PDS > mole da primi blok od 80 redova. Ovakav blok redova zove sc strana. Da bi sc
Unotenje ptaznog reda (tipka REruRN) do,odi editor u rcZim uredenja .Zato ako ukazalo na odretlen red uvodi se pokazivad reda. Na podetku rada editora
oe tcti uncti red bcz grafiEkih tipografskih znakova, mora !e uneti jedan ili vi&
pokaziva! ukazuje na prvi red u teci. Neke komande editora menjaju poloZaj
ffi
pokazivaca reda.
mcduprostorr (blankova) u odgovaraju0i rcd. Po uno5enju pr8znog reda editor
izdaje i ako korisnik tipka komandu EXIT editor zatvara iclu.
ffii ' Primer
Primer Pozovimo progam PROG I.FIN radi ispravki. Ovo se posti2e na slededi
nadin:
Sledcdi interaktivur rad korisnika vrti formiranje nry€ teke, pod imenom
PROG I. FTN.
DS>EDIT
PDS > EDIT PROGI.FTN
lffi FILE? PROGI.FIN
ffil I cREATT]tc NEW FILE I
tNPtn
[ 7 LINES READ rN I

C PR.OGRAMPROGI.
IPAGE I l
TNTEGERA(40),Y

ifi CALL ULAZ(NA)


fJ1 52. Komn& cditore
lri y=MAX(N'i{)
{11 5.2.1. tlbrclvrijc novog tsksta
iil
CALLTZ,AZ(Y)
rl
|$' STOP I z ] CIIHNGE] / nislal / nisko2 [ / |
f
:l
'l'. END Ova konianda pootavlje r&lu2 na mcsto niskel u prvon pojavljivanju zrstel
t. *EXIT u tckudcm redu. Alio je nislul grazna, tada * nisluT pctavljr na podetak reda.
li I EXrr I Ako je niska2 prazns,.tada sc nurtar izbacujc iz redr"Nro rrrlzlnijc naalens u
,,' PDS >
I rkudatr redu izdejc re poruka NO MATCH. Cco broj n ukazujc de dc r komrnde
:zvrlti n puta.
t,

I
156
257

Irll./C IHANGE | /nisluy /niskaxl/] Lt lsrl


Kao komanda CHANCE samo Sto se funkcija obavlja u wim pojavljivanjima we redove, na terminalu, podev od tekudeg reda. pbde izvrlenog
Izdaje
izdavanjapokazivae reda nalazi se na poditku bloka.
niskel u tekuiem redu, a ne sarno u prvom pojavljivanju kao 5to se to radi u
komandi C-HANGE. Ceo broj n ukazuje da ie se komanda primeniti na tekudi red i _ Komanda CTRL/O obustavlja izdavanje, a ponorrnim pritiskon
CTRL/O
izdavanje se nastavlja.
slededih n-l redova.

t INSERT
I}
l[nistta I
Ima isto dejstvo kao komanda LIST, samo ito
A*o je niska navedena, tada ubacuje navedenu nisku kao novi red koji sledi sp izdavanje vrii na itampadu.
iza tekudeg reda. Pokazivad postavlja u red kojije ubaeen.
Ako nislct nije navedena editor.prelazi u reZim uno5enja. [n] L [ocATEf [zrs&a]
Postavlja pokazivad,reda u red, u kojem je
naiten z-ti dogailaj niske, podev
AIDD] nril<a od rcda koji sledi iza tekudeg reda.
Akci niska nije navedena pokazivad reda se postavlja
Navedena niska se dopizuje na kraj tekuCeg reda. Pokazivad reda ostaje u u slededi red.
tekuiem redu. [n] PL [OCATEI[nistul
l*niska . rma istu funkciju kao komanda LocATE, samo sto prcuaarje
teke. r.vs.sJw s'e
rrs broko'e
uruAv..
Ima istu funkciju kao komanda ADD, osim Sto se novi tekudi red i izdaje.
5.2.4. Rd sa pokazivadan reda
R[EfiPE] [nrsea]
N [ExT] [tr ]
Izbacuje tekudi red i na njegovo mesto postavlja navedenu nisku. Pokazivad
reda ostaje u tekudem redu. pokun&, reda u z.ti red u odnosu na tekudi
Postavua
n)O, unazad za n(0,
red, i to unaprcd za
Ako nistca nije navedina, tada se izbaorje tekudi r€d, a pokazivad reda se
nalazi u slede6em redu, u odnosu na izbaden red. Ako n nije navedeno postavtja pokaz iva0 na slededi
red.

5.2.2. Izbacivmje teksta ry Ir1


lma istu funkciju kao korn-anda NEXT, sarno
D [ELETE] [a] tto izdaje novi tekudi red.
Pritisak na rasrer RETURN ima istu
ESC ima istri funkciju kao NP-I.
li,"k;idk- $
r,-, pi-iiul'ii.t"r1o,
Ako je n)O izbacuje se tekudi red i n-l slededi red, apokaziva! s€ postav[a
na red koji sledi iza zadnjeg izbadenog reda.
Ako je n(0, tada Ce n redova ispred teku6eg reda biti hbadeno. pokazivad. P IRINTI
reda ne menja polozaj.
[r]
Izdajc tckudi red i n-r srededih redora; ako n nije
Ako n nde navedeno, tada de teku6i red biti izbaden pokazivaC reda
i -- --"- navedenobdaje samo.teku.i
red. Pokazivad je postav[cn na zrdnji a,O"U
postavljbn na sledeei red. LO.

KILL TOF

Zatvan ulaznu teku, bri$e izlaznu teku editoh i vrada sistem u pN. Upisujc tekudi btok u teku ipokazivaC postavlja
naprvi red tcke.

5.2.3. Pretrativarje teksta 5.2.5. Unoenjc novog blokr


RDN [Ewl [z]
[r]F INDJ [nrta] Unosi n-ti blok tcke za iepravtja4ie u
zonu cditora, i pokazivrd postavlja u
Pretratuje redov€, pocev od reda koji dedi iza tekudeg reda, i trati a-ti red prvi red bldra.
koji podinje sa navedenom niskom, postavlja pokhwaC u naiten rod i izdaje Ako z nijo navedeno, trda sc.tpku6i brok upinrjc
u tcku, a stededi brok unori
sadrLaj reda. Ako nr'slra nije navedena. pokazivad se postavlja na slede6i red. u zonu cditon. pokaziva! r
pchvfa u pnireOifoL.
258 259

5.2.6. kaj rada sa cditorom X Y X.EQV.Y X.XOR.Y


EX [tT] [reka]
0 0 I 0
Zatvua teku i vrada sistem u PDS. Isti efekat ima i komanda sa tastature
CTRL/2. 0 I 0 I
ltko je teka navedena, tada izlazna teka dobija navedeno ime.
I 0 0 I

I I I 0

6.3. Nnedbe FORTRANlzika


6. NEKE OSOBINE TMPLEMENTTRANOG FORTRAN-JEZIIG
5.3.1. Nardba ulgn i lg,laza
Ovde 6e biti objasnjc4c n€kc T€cificnosti irplcm€ntacije FORTRAN-lrzika
za radunare PDP-I l. BiCe pomenute silmo one osobine koje sc ralikuju u odnosr l. Ako se drugadije ne defini$, tada je broj 5 broj logidke jedinice u
na FORTRAN-jezik opisan u knjizi. naredbi READ i WRm za rad sa terminalqn, a broj 6 pridruZen je Stampadu.
2. Opcije END i ERR mogu se koristiti u naredbama READ i WRITE.
3. U listama naredbi izlaza WRITE, TYPE i PRINT dozvoljeni zu i izrazi.
4. Ako je duZina podatka, u ulaznom slogu, kraia od duZine rezewisanog
6.1. Priprema programa polja, tada se podaci mogu razdvajati zuezima O. Ovo se moZe primeniti za
Kada se pregrant unosi preko tastature terminala, vaie ista pravila o podatke dija se polja opisuju sa I, O, F, E, D, G i L, ali ne mohe za opise A i H.
rasporedu naredbe unutar jednog reda, kao i za rasporcd narcdbe na kartici. Tako, naredba
Medutim, razlike koje poctoj€'treba da olaklaju interaktivnu pripremu programa. READ (5,10) N, x, Y
To su sledede razlike:
l. Ako programski rcd ne sadrZi obeleZje, pritiskom na taster TAB dolazi se l0 FORMAT (16,2F8.2)
u 7. poziciju zaunosenje naredbe. za ulazni slog
2. Akg programski red sadr2i obeleZje, pritiskom na taster TAB, poslc
unetog obeleZja, dolazi se na 7. poziciju. 30. t.5.-2.04
3. Ako se posle pritiska tastera TAB unese sirnbol koji nije slobo, tada se
ovakav simbol postavlja u 6. poziciju i sluZi za oznaku nastavka programskog reda. dodcljuje vrednosti promenljivim i to: N=30, X=l,5 i Y=-L.M.
4. Progranrski red koji u prvoj poziciji sadr2i dovo D mote biti, Pri 5. U FORMATaaredbi ne moZe se koristiti qis Z, ali zaro posloli opis O,
prevottenju, uzet kao konrentar, ili prcveden kao naredba. Ovo se rcguli& opcijom koji ima op3ti oblik
DE u kvalifikatoru SMTCH.
nOk
5. Ako rcd sadrZi slovo C u rpvoj poziciji, onda je to komentar. Medutim,
komentar se mo2o navoditi u wakom prograrrkom rcdu stim lto se iryrcd gdd je & duZina polja, a n broj ponavljanja opisa. SadrZaj polja, na ulazu, je
oktalni
kqnontara narrodi znak ruvika (!). broj, koji ne moZc biti vedi & 177777, i promenljiva u listi mora biti celobrcjna.
Ako jc polje pridndeno celobrojnoj prunenljivoj u naredbi izlazaradase oktalna
vrednost pranenljive bdajc u polju desno poravnata.
6. Ako se Zbli odrediti duZina ulanqg sloga ili dela ulaznog doga, moZe se
62. ElenortiJczilre na poCetak ili
unutar FORMAT-narcdbe potaviti slovo Q, a u listi, na
l. Cclobrojne konsturtc rnoraju biti u intervalu | -327 68; 327 67 l. odgovarajudem mestu celobrojna pronenljiva, kojoj Ce se dodeliti cco broj koji
2. Rcdna konrtant!, r&lidits od nule, mora biti po rpsolutnoj vrednosti u predstavlja, odgovarajudu duiinu ulaznog sloga.
intcrvalu [0,14x l(Irt;0,17 x lOt ]. 7. Posebno korisna mogudnost, za pisanje interaktivnih programa, jesto
3. Standardna drdina celobrojne promcnljive jc 2 podrcgistra (INTEGER. navotlenjc znaka $ (znak za dolar), kao pwog sinrbola u izlsnqn dogu Ovim se
2). spreCna prelazak u naf,i red, posle izdavurja izlunog sloga na terminalu.
4. Porcd logiekih opcracija .Nm., .AND. i .OR. uvcdcne sr i opcncije 8. Za rad sa temrinalqn postoj€ poscbne narcdbe uleza i izlea Trko, za
.EQV. i XoR.i<bfininne na sledcdi nadin: ulaz sa t$tature tcrminala motc sc koristiti narcdba
260
26t
ACCEYI i,lista
Izvrlavanjem ovog programa dobija se sle&di izvettaj na terminalu.
Sto je ekvivalentno sa naredbom

READ (i,il listo


UNESIE DVE LOGICKE VREDT€STI: F, F
' gde je i broj logidke jedinice pridruiene terminalu.
T.,LAZNE VELICINE SU: F F

Sliino za izlaz na.terminal postc4'i naredba


DUZNA I.'I.AZNOG SI.OGA JE: 3
X=F
TYPE i [, tista I Y=f
Sto je ekviva.lentno sa naredbom
X.EQVY=T
WRITE ( i, j l|ista I X.XOR.Y=F
gde je i broj logidke jedinice pridruZene terminalu.
9. Posebna naredba omoguCuje izlaz na Stampad To,je naredba. Ovaj program ilustruje:
l. Komentar s€ moZe pisati u istqn redr! sa naredbon, ali se navodi iza
PRINTi[,lrira] znaka usklika (!),
Sto je ekviva.lentno 2. Komsrdni ripbol u izlu;nqn slogu moZe biti $,
sa naredbom
3. Broj logidl@ jedinice 5 odnosi ce na terminal,
WKITE / i,j )llistal 4. himona opisa Q uFORMAT.naredbi,
5. Naredbr TYPEje nuedbtzlazana terminal,
gde je i broj logr'dke jedinice.pridruZen Stampadu. 6. Korii&nt logidkih operacija.EQV. i XOR.
7. U listi naredbe izlaza mogu sc navoditi izrazi.
10. Naredba DEFINE FILE moZe se pisati samo u obtiku
532. Nelcdbr plurcn$ivog bczurlovnog prcla*a
If,FINE FILE g( s,d,U,p )
- - U ovoj naredbi dcvoli:no je bctaviti listu, tako da narodba ima oplti
oblik:
Primer
GO TO i[(isra)]
-, ^ .. ! _tl"drdern programu za unete logidke veliCine X i
y odroiluje se X.EeV y i
X.XOR.Y: fJJ. f{rs{gs cikhrrs
Narcdba cikbsa (DO) moZe imati celobrojne ?raze, ,namosto podetne
LCIIICAL*t X. y -
vrednooti, gornjc granicc i priraltaja indekra. hiralt8t indeksa *oz.'irn.ti-i
wRtTE (5, l0) !KOMENTAR SE MOZEPTSATI IZA USKLTCNIKA, nqativno vrcdnocti.
l0 FORMAT('$ UNESIEDVEITGTCKEVREDNOSTI:')
6.3.4. Xovcrzijr po&tdo
READ (5,20) N, X, Y
20 FORMAT ( Q,2L5) Podaci sc nelazo u mcmoriji u inGmqn kodu, a pri komunikrciji sq
fS.-"T ury9"jF1 podaci nr-u ASCII-kodu. Mggudaje trirverzgr poa-ffi i
D wRrTE (5,30) X.Y.N jcdnog u drugi kod. Tako, nrredba
D30 FORMAT ('
ULAZNE VELICINE Su: /
D I'
DUZINA ULAAnOC SLOGA JE:',I5) XIIICODE (n,i,p\ tisa
"2L5
TYPE 40, X, Y. X. EQV.Y,X. XOR. Y konvcrtuje podstkc iz intcmog kodr u ASCII.kod, gdc ar
N rcRMAT ( x="ll/' Y="L1/' X.EQV.Y="lt/' XXOR.y="L{)
sIoP
n - colobrcjni izraz, koji prcdstrvtja broj ASCII-simbola,
koji dc rc dobiti konvoniio,
END i - obcldjc FORMAToalcdbe ili ime niua toii !1drrt
qbcpo!r,
262 2ot

- ime niza, koji de primiti konvertovane podatke u 5.4. Funkcijdd posrogram


ASCII-kodu,
lista - qpisak prornenljivih, nizova i/ili elemenata nizova, Cije 6.4. l. C*nedsmjc sbdajnih brojcva.
vrednosti 6e biti konvertdane iz intemog koda u Skupu elementamih funkcija dodat je potprogram za generisanje pseu-
ASCII-kod. do-sludajnih brdeva. To je funkcijski potprogam ipoziva se sa
Konverzija podataka iz ASCII-koda u intemi kod ostvaruje se naredbom
RAN ( t,i)
DECODE (n,j,p) lista
gde su f i y celobrojne promenljive. Rezultat rada funkciskog potproBrama je
gde su
sludajan broj uniformne raspodele nad intervalom (0,1). Menjaju6i poeeme
n - celobrojri izraz, koii predstavlja broj ASCII-simbola, vrcdnosti arguminata (ij), mogu se generisati rezlidite sekvence sludajnih brojwa.
koji Ce biti konvertovani,
t - obeletje FORMAT-naredbe, ili ime nLa koji sadrli
opise polja,
p - ime niza, koji sadrii ASCII+imbole, koji de biti
konvertofuri u intemi kod,
Itsta
- spisak promenljivih, nizwa i/ili elemenata nizova Primer
kojima de se dodeliti vredncti u intemqn kodu. $ededi program. itustruje primenu funkcijskog potprograma RAN:

kincr
U slededem programu je nrndbon DECODE dodeljena vrednost promenlji- DIMENSTON Y(4)
voj N; ova vEdnost je u intcmun kodu, tako da se moZe koristiti za
izra0unavanja, tto ie ilustrovano mnoZenjem ove vrednosti sa 2, a zatim je rezultat, 70 TYPE IO
naredban ENCODE, transformisan u ASClI.kod. l0 FORMAT('S POCETNE VREDNOSTT:')
ACCEPT 20, I, J. N
C PROGRAM ILUSTRUJE DECODE I ENODE. ?a F0RI{AT (3I8)
DATA X /, 12Y,. / rF ( N. LT.0) SrOP
DECODE(4, lox )N PRINT 50,I, J
FI)RMAT(I4) 60
'O t
FORMAT( /' ZA rcCETNE VREDNOsTti' .t2,',',t2,' DOBUA SE:')
l;=2eN DO30K=l,N+l
F TCODE(4,10,Y) N DOutOL= l3
TYPE20,Y Y(L)
'10 = RAN(1, J)
20 FORMAT (' REZT LTAT JE ' ,iA ;. 30 PRINT 50, Y
$oP 50 FORMAT{ ",4F10.6;
END GOTO 70
END
Lvriavarjem ovog prograrr dobija se izvclt{:

REZTJLTAT
'82468 Izrrbvo!:m wogprogiunamodo se na lturpafu dobiti rlstledi izveltaj:
Ovrj prcdsn ibrtn$r primenu nucdbi DECODE i ENCQDE.
264
265

ZA POCETNEVREDNOSTT:0, 0 DOBIJA SE: gde su


m - cclobrtina promenljiva ili element celobrojnog niza
0.000031 0.000t83 0.000824 0.0032e6 duZinc dva podrcgistra,
0.012360 0.0444% 0.155732 0.533939 i
defini5e vntu broj Pomeranja veltine m i to na
o.002042 0.@6802 0.822440 0.8734t6
n -
slededi naCin:
0.838541 0.r zosor 0.476134 0.322291 n)0, puneranje levo,
o.&8545 0990&g 0.106986 0.72&77 n(0, pcncranje desno,
0.393595 0.826873 0.418881 0.071433 n=0, bez pomeranja.
Apsolutna vrednost z odreiluje broj panerutja.
ZA POCETNE VREDNOSTI: 3, 2 DOBIJA SE:

0.000336 0.001 190 0.0041 20 0.0r4008 Primer


0.M6967 0.1s5732 0.5r t 690 0.668555 Slededi progam unosi oktalne brojeve M i N; i nad njihorim vrednostima,
0.4061t6 0.419702 0.863172 0401 710 uietim kao binarne reCi, vrSi logidke opcraciie i logiitko pqncrsnje i ?dajc
o.ut1t3 0.234E93 0.633938 0.689596 rearltate na terminalu:
0.432130 0.386418 0.429334 0.098243
0.725453 0.468534 0.282129 0475966
40 TYPE IO

6.42 Logj[ke operscije nad rcdima t0 FORMAT(' $ tNETIDVAOKTALNABROJA:')


Sadrzaj dva podregistra ACCEPT ]0, M, N
binarnim redima 1roz: se posmatrati kao binarna red. Nad ovakvim
mogu se rzv,oajt.Joerji.
bitovima. Ovo je omogudeno slededim-fu*"i'rt_
op.,"&. i to nal-sriioufr;r.;ffi" 20 FORMAT (2O8)
i"rprogramima: ll =lOR(M.N)
IOR(n, n) 12 = IAND (M, N)
Logleka llloperacija nad velidinama m 13 = tCIT(M)
i n rr:etimkao binarne re0i,
IAND (m, z)
14 = IEOR(M, N)
15 = ISHFT (M, N)
Logidka loperacija nad velicinama m
in uzetikao binarne redi, TYPE 30, M, N, I I , 12, 13, 14, 15

NOT(rn) 30 FORMAT('M=',06l
Logidka NE-operacija nad velidinan
m uzetom kao binarna red, I ' N='. 06l
IEOR (rz,z) 2 ' IoR(M,N)='. o6l
bgdk" ekskluzivna lll-operacija nad velidinama
3 ' IAI{D (M, N) = ' , 06l
."0i. m i n vzetimkao binarne 4 ' tfor(M) =' , 9,6/
9 *i'' ovim potprogamima argumenti m i n *sr cerobrqine promenljive'i 5 ' IEOR(M,N)=' . 9,6/
elementi celobrojnih nizova du2inJd".poOregirt
a. 6 ' ISI{FT (M, N) = ' . 9,6/

6.4.3. Logidko pcnernje CO TO,t0


END
_ Funkcijski po@rosram
(sadrZd dva podregistra),poava
.kqi_i-omogufuje
logidko pomeranje biname redi
se sil

ISIIFT (m,r) Program zr unctc olddnc broJcvc l7 i 7 ddc alcdcli Xvcttti:


)66 261

UNETI DvA OKTALNA BROJA: l7J


' lf= 17
6.5.2. Datuni i vreme
CALL DATE (arz)
N-7 Argument: niz -ime niza,
IOR (M, N) = t7 , iu"nt.ij., u pnih g podregistara niza postavlja se tekuii datum, u obliku
IAND(M,N)= 7
dd-mmm-g
tlOT (M) = 1777(A dve cifre
gde srr r^lddan u mesecu, mmm-naziv meseca' gg-zadnje
IF0R (M, N) =3600 godine.
UNETI DVA OKTALNA BROJA: CTRL/C
TASK SUSPENDED
CAIL IDATE (t;,e)
DS>ABORT
Argumenti; i,y,,t'celobrojne promenljive,
.II : 30 : 23 SIZE: 5K CPU: 0.06
Funkcija: Promenljiva i dobija vrednost rednog brda meseca u godini,T dana
tDs> u toku meseca, a k zadnie dve cifre godine od tekudeg datuma.

Prograrn sadr2i.ciklus bez blaznog kriterijuma. Korisnik moZe izadi b ciklusa sEcNrF (t
(programa) tipkanjem.CTRl/C, posle Ccga sistem javlja poruku da je zadatak
Argument: i-ceo broj ili celobrojna promenljiva,
privrcmeno iskljrgen ([ASK SUSPENDFD) i dolazi u PDS. Korisnik, ako Zeli da
prckne rad po programu tipka ABORT, r)ime definitivno iskljuduje program,'a Funkcija: Vrednost funkcijskog potPrograma je broj sekundi od ^i - tog
ako Zeli da se vrati u progr.am tipka CONTINUE. trenutka do teku&g vrem€na, pri demu se porod uzima kao vrcdnost 0. Tac-
nost izmerenog vrcnr€na je 0,02 sekunde.

CALLTIME(p)
6.5. Biblioteka potprogrdna drgumentp-ime pronrenljive ili niza,
Funkcija: Tekude vreme kao zbudni podatak u obliku
55.1. LogiCkc jedinie i teke hh:mm:ss

gde zu ftIr{as, rnnrminuti, ss-sekundi, dodeljuje sc aryumentu potPrograma.


CALL ASSIGN (n, telu, dutina)
Argumenti: 6.5.3. Kraj izvtlwoja prognrta
n
- ceo broj, cclobrojna prcimenljiva ili celobrojni iraz,
CALLE)OT
telu - azbudni podatak, koji sadrZi naiv ureilda i ime teke,
dutiw . - duZina azbucnog podatka, kojijc naveden kao argum- Funkcija: To je potprogram koji ima ckvivalentnu funkcijl kao naredba
ent teka, STOP, ooim lto ne izdaje poruku. Ovaj PoQrogam zatvara sltc teke otvorene u
programu i prekida izvrtavutje programa.
Funkcija: Navedenoj recipridruZuje sc broj logilkc jcdinicc n.
Potprogram se mora navcsti pre naredbi vlaza, izlu,a i DEFINE FILE, kojc
koriste narredcn broj logidke jcdinicc.
Primer
CALLCI,6E(n) Sastavidemo prograrn u kome demo koristiti p otptogllrne za datum i vrcme,
kao i poprograme zq rad'sa imenovanim datotekama u FORTRAN-prgEamu' --.
Argumcnt: i.to, it.a.Ci program odrotluje datum (D), redni broj mcseca Q), duta (J) i
n - coo brc{, cclobrojna promcnljiva ili celobrojni braz. i
godine (Kj, vreme-(T), kao vreme u sekundama u lreoutku poietka.radn
Funkcija; Zatv,ara teku nr nryedcnoj logiCkoj jedinidf ir"Sr-itsf i i vte.i iaAa poFrograma (S2).Ovako odrodene velidine upisuje, kao
4 sloga, u datotcku DATUM.DAT:
\

'%9
268
' dobiti slededi rcatltsti na terminalu:
LOGICALTI D(e),T(8) Izvrlavanjem ovog Programa mogu so

Sl = SECNDS (0.)
CALL ASSIGI.i( i.'onruu.nAT' ,9) Sl = 0,4189920Et05
DEFINE FILE I (4,5, U,L) 52 = 0.08

CALL DATE(D) D = 24-FEB-79

CALL IDATE(I, J, K) l= 2

CALL TIME (T) J= 24


52=SECMS(!l) l(= 79
L= I T= ll:38:19
wRtTE ( I' L) Sl , 52
Tumacedi ore rcatltste vidimo da od purodi do vrcmena
I I Crsova, 38 minuta i
WRITE(I,L) D
is;k""dipi"itk". lresg sekundi (SO' a da deo Plograrna izmodu odrotlivrnja
WRITE(l'L) I, J, K St i Sl traj; 0.08 sckundi (S3). Ostali rczultati su oCigledni
WRITE(l'L) T
CALL CK)SE (l)
,KRA' UPISA UDATOTEKU',
STOP
END
Slededi program upisane slogove, u datoteku DATUM' DAT, cita i izdaje na
terminalu:
toGICAL*l D(e),T(8)
CALL ASSIGN ( I, ' DATUM.DAT, ,9)
. DEF',INE FILE l(4'5' U' L)
L=l
READ (l' L) Sl, 52
READ (I, L) D
READ (I, L) I, J, K
READ (I'
L) T
TYPE IO, SI, 52, D,I, J' K' T
0 FoRMAT(' sl =',F14,71
I ' s2=' ,F8.2/
2 ' D=' ,9Al/
3 .'1=',14/
4 ' J=',A/
5 ' K=' ,l4l
6 ' T=',8A1)
CALL CTOSE(I)
I

CALL EXT I

END
LITERATURA.
[]. PDP-II FORTRAN Language Referencc Manual Order No. DEC_.
II *LFLRA-C-D
l2 I . t AS/RSX-I I FORTRAN IV User's Guide Order No. DEC-| r-
-LMFUA-C-D
[3]. tAS EditinS Utilities, Reference Manual Order\o. DEC-I I-OIEUA-A-D
t4l. IAS User's Guide Order No. DEC-II-OIUGA-C-D Digital Eguipment
Corporation, Maynard, Massachusetts 01754
[5]. PDP-I I /70 Procesor Handbook, DEC, 1976.
18
l9
4.2,2. Yrsta prornenljive po unutraSnjoj konvenciji
CENA

vrsta promenljive odredjuje BRUTO


se prema tome khkva brojna vreclnost se
moZe dodeliti promenljivoj, Svaka promenljiva c1846
mora biti delinisana po vrs_
ti. To znadi da promenljlva dobija ili celobrojne vrednosti
ili melovite
brojne vrednosti (brojeve u pokretnom zarezu). Ako promenljiva 4. 3. Aritmetidki izraz
uzima sa_
mo celobrojne vrednoatl zove se cel0broJna promenljiva, '
a ako uzirna vre- Aritmetidki izraz dine jedan argument ili vi5e argumenata medju so-
dnosti meSovitih brojeva zove se realna promenljiva.
bom razdvojenih znacima aritmetidkih operacija. Argument aritmetidkog iz-
Vrsta promenljive, po unutra5njoj konvenciji FORTRAN_jezika,
defi_ raza je konstanta ili promenljiva.
n15e se na slededl nadin:

- ako ime promenljlve podinje slovom I, J, K, L, M ili N, to je ce_ 4. 3. l. Afitmetidke operacije


lobrojna promenljiva,
- ako ime promenljlve ne poCinje jednim od navedenih AritmetiEke operacije su:
slova, to je rc_
alna promenljiva. + sabiranje,

Svakoj promenljivoj u FORTRAN_programu pre lzvrSenja programa - oduzimanje,


na radurteru, dodeljuje se jedan registar u koJem /:e
se duvati brojna vred_
't mnozenje,
nost promenljive. Ako je promenljiva celobrojna njena
brojna vrednost 6e
/ deljenje i
ee reglstrovati u odgovarajudem reglstru kao ceo broj. ** stepenovanje.
Ako je promenljiva
realna njena brojna vrednost 6e biti registrovana kao broj u pokretnom Aritmetieki izraz se pi5e kao niz, koji se sastoji od naizmeni-nog
za-
'.ezu. smenjivanja argumenata i aritmetidkih operacija, pri demu:
- niz podinje sa argumentom ili znakom minus (-), koji oznaiava pro-
Prlmeri menu znaka prvom argumentu, i
- niz se zavrdava argumentom.
a) Celobrojne promenljive po unutraSnjoj konvenciji
Vrednost aritmetiekog izraza izrattnava se sleva na desno, pri demu
I je sa I
vaZl prioritet aritmetidkih operacija, prikazan u tabeli 4.3. l, gde
J
oznaden najvi5i prioritet, a sa pz operacija promene znaka argumentu.
I19
Tabela 4.3- I
IAT]
I\'ASA
Prlorltet ArltnetlEka operacija Izvr5ava se

NETO I s'rPZ sdesna na levo

b) Realne promenljive po unutralnjoj konvenciji 2 sleva na desno


3 +r- sleva na desno
A
I

R
i)

iii

You might also like