140
\ 0 lsr v tb DR NEDELIKo panBzeNovrC FORTRAN )ffIIIZDAI{IE A l, l cqblF^ - *,6.0( -k Eefuiqe r, .'-,t,,!O BEocRAD,reeo. A&4*l-

Fortran Za Treci Razred Masinske Tehnicke Skole

Embed Size (px)

DESCRIPTION

Programiranje

Citation preview

Page 1: Fortran Za Treci Razred Masinske Tehnicke Skole

\0 lsrv tb

DR NEDELIKo panBzeNovrC

FORTRAN)ffIIIZDAI{IE

Al, l

cqblF^ -*,6.0(

-k Eefuiqe r, .'-,t,,!OBEocRAD,reeo. A&4*l-

Page 2: Fortran Za Treci Razred Masinske Tehnicke Skole

DrNedeljko pau;eruvr(,prof. PMF-a u Beogadu

FOR,TR,AN IV

IzdrinC

IDP "IrhnCna

kniiSa"AGoSrA Uam-ldrlrova 5

neoenc€st---___

hPwle Feiwid,prof. FOi{-a u neograu

ZaizAratadz

Ih Bltto Petwii

Urednik

Nlwlafua|,at

T€hdald rrednik

Hilojc Irj;lStutfiC,I

I

ffrnfr*'nr,GiFtl'|4Iln tO.irr|r txra*il*C.F L

t saDRL*ri strana

I1. lryq)... 3

2. ..PNETTK}DITE I{AP'OUENE O FOSTBAN JEZIKU 5

r,Tberu por@ovrJF

rPSu Po'@ovl 5

2.2. N.G|l gkaJe progrenrr .... ?

t. ercl4l FoR''!m"AN JEZUr't I3.1. Ve{f\.dovr aglcskc rzbukc 9

3.2rfic *eq broinog skt€Ea e

' t.3. Logld<c kcetrde 10

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

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

3.8. Zapf zelogl{kaop€rrc|e ........ ll

. $.?. S.atldlil imcf .. ...... .., 11

3.E. Slulbac rcGl ... ll.. AL@NITflI gA FEAI.IIIIM KONSTANTAMA i PNOUSN-

lJMi ........ 13

4.1. Dldldctje broJne konstante..... ......,.... 14

,1.1.1. Celt brojevi .,......:. t{4.1.2. M€iovtd brojevi 15

{.2. Dcfhlcijs realne promenlflve .. 1?

,1.2.1. Ime prorilcntJive .......;.. 1?

4.2.2. Ytstr proraenlJlve po unutrEinjoj konvencitl.. l8

4.3. Arttmedakl l'rrz .... ..... 19

/t.3.1. Arltmetidke operactJe . . .... 19

4.3.2. Upotreba zegpada .,....... 2l4.3.3. Vrsta niitmcti0kog tzroza . 2f

Page 3: Fortran Za Treci Razred Masinske Tehnicke Skole

:i:lEtru.

Stranr

{.{. DodelJlvenJe broSc vr6&o!d prgmstrtyoj{.4,1. ArtbouCke arredbe 28,4.4.2. Neredbr ulezc ... 24

4,4.2.t. Se celth broJeve ZB

4.4.2.2: Opt bo6ovl6h brolein ....-r.,.. 27

4.4.2,3, Opl! pr8'trog pour ... ZO

{.5. Irdsvrnj€ broJne vrednocd proo€ouilvo E0

{.5. 1. Optr cclth brr€ve E2

,[.5.2. Opls nelorrtth broJern

4.5.3. Opte prrzDos polj. .. g6

,1.8. Pro3te lldjsko tlgorltamoke ltruktur€ 96

4.6.1. preldd rade po progreEu t flztCH krlj

a.9.{. Apsolutnr vredDort ....,. i.{. 9. 5. _TrtgonomotrlJrke firnkctJe l.

. . ...

{.9.6. Invsrznc trtgotromoflrsko ftItlkcue ......4. 9. ?.. Htperbollloe funkctJe

{.10. Nerodbe promcnllvot bezuttovnog prolaeka ....{.11. DslJ. tnoguanostl narcdbc utazr .,..

{.11.1. Grclko na ularu ;.,.....1.LL.2. KreJ ulrznth podrtak!

{.U. Dlllrrtlenrc vr'te promaulve

1.12. l. EklpltcltDe deklonctJr

. a.L2.2. Ibpltcltm dokl€raclts

{. 18. T*etuclna objslnj€nra u progremu

1.13. 1. hwcnrcnl preldd rade t porukc opera-

a. lE. 2.

a.ll. PrllodlKomartirl u Drograrru

1.1{.1. I'redunavaaJc t.flltr .....,1.11.2. Strusuald Prtner ,

a. 14.t. Irrrounrv!trJe kor.tr! trrnlcatd.ltn.,.d!ra.ln.

PnoullirlJM tA INDEIGIMA - NXUOVT

6.1. DrllatctJa llil ...6.1.1. lnc nl'r I lnd.krlt.1.2. Vrrts nt{ ...,

6.2. Jc&rodlmaElonrlnl nlzovl ..6.2.1. Jadlodlnanzlonelnl ntroel u llnu ulezno-

Irlsrnlh nrrcdbl ...t.z.r. ElcnGnU nlrl u arltm.UdkoJ n.rldbl ....

5.3. Clkll&rc tlFrlt n!k. rtrukEr!t.!.i. .Nnrcdb:r rr o9l. protrrmtkog clklu.n .,.5.!.2. Norcdbn bct doJrtvn

56

s6

57

58

60

67

67

08

6E

09

09

1t

7l

72

72

72

11

16

70

7'EO

tl8t

E3

8!

8t

8?

00

u

proSramt

.1.8.2. prlmert rlgo,rttrEs sr prolgD ttnlJrldnstruktrrrmr

,1. 7. Rargrrnrtc llnlJeke rlgorttartrlk€ atrukture

4.?.1. Urloml prelezak po vr€dnosd srltnd6koglzrrtr .

s6

'3780a

89

4.?.2. Berullovnl prslrzrk 40

4.?.3. prtm.rl rrzgretrsuh thlrsldh ,truKurl .... {0{.8. DalJe mogudnoa$ lrredbo FORMAT &

{.8. l. ponrvljarj. J€dnog qrtrs .. ...., .. 44

4.E.2. ponavlJrnjc vlac optla .. 1l{.8.3. Pretezek ne novl rlog.,,f,ti.-I. Vezn lzmedju optta I lllte ...,.,,. .114.8.i. 1ek6t u FCRMAT-nar€dbt ... ie..

4,9. Elementarne funkclje 52

f.9.1. Ekrponcnct.,rlnr funkctJr 6a

{.9.2. Logrrltamtko funkctJa 6{4.8.3. Kvadretnl korcn .., r.. !... 55 6.t.t, Odnor dvo I vllc ctklu.n

Page 4: Fortran Za Treci Razred Masinske Tehnicke Skole

ftrm

5. 4. Dvod!uc$r,!@ah{ dr'wt5.d. 1. D+odmaglatN dawl u lild uilrre

fahdb ncrod ..:. ., .. ,......5.,1.2. Rcgtetrovaa! dr,.cdruam@ d'l r!a-

uclJf rrAror. I v€ra-sl tsd[odDodo-nalnlrl dloc

5. 5. Vilcdllncnzi@aljd lnzor{

5.6. Rododod d.Garti difr n*ga ill v.ilc dzova uliafl deruo-lrlazd,h oara& 109

POTPR@AMI ... .. . t138.1. Olnovd pojdovl 113

6.2. r\d.cfj*. arr.&c lt'0.!. nd|cudd pcttrosrlE tt8

S.S. 1.. Slleih d*tcfsctts vretc fiilctJrkqpo{Fo3rrtlr

E.a. OpaU Doipcqrh3.4.tr. Ftoocdsvl tztrz Ir poqrogrrml .......

6.5. N|CH prcaofcnJa rrtundtr Ir prolra.Era u pot-Pl.ogTtmc

6.6. PromarlJtvl u&ll'd u posro0raroG

6.?. lm.!n Fotrogrrrae kofi ae javljeju keo arguacn-tf drucdi po$rotrrma ,.:...,.

8.E. Ntrovl k o argun.lrd potprograEl

ALGONITMI S.I LOGIEIfiil KONSTA.N:TAII&{ I PK}lItD{.LJIVIM

?. 1. Operactje porcdjcnrr

?.1.1. DcflntctJe opsractje poredjonJr g.........?.1.2. Naredtre preleaka po wrdrorH poirdjcalr ..

7.2. Lioglike ogcnciJo

?.2.1. Lc{iluke konatantc I proncndJtvc

?. 2.2. . DefhtclJc logltkth opcrrcfts ..?.2.3. LogtCkl lztaz .

7.2.4. Meutvanjo yrednoEd logtcklra promcnlJlvtm

95

--4,'rgtru

158

r61_160

t&t

8.

?.t.{. 1. lw.{rt{cts yr.dBoru re ul.zr .,.7.2-.a.2. I.odflu ur$a

7.2..5. I&tag rtr&o.d loGd[db proaclfll$ ...?.2;G fr.&. fragU 9o. r*ro&cad tqlGluq trrr-

6....

ALCClt"m er tsALDm 3oilttTAmTAil.A r ptoucDtlJr-vrr Dwra!rc r^@flt.f. Ea{a*cfF u',4,]dto tcrtrot duosfu}o ta&oaH .... 165

t"2. Drddctf rcrlac proapanlttv. dvootfl*r tedaoet{ .... 166

6.3. Doildlfvats broFe vrc&o€A reslnio prolocn{tivtmd!/{!E*a rrt-o.d tCS

8.1.1. Ad*adlfta er..&a 168

E.t..2. l{e*rftr xrrr .. ..:.. ....... 168

t.l. ladrvnf broJfrL wt&oei{ prowtfl*dh dvoctr.ln€Lilosd 169

E,5. IstaAl*artr .q.+-rrt,pll fudlcijs !a dvoahukostdr#r

.tLGOBrlffi 6* x0t{"t lxa$il xo!&sTAlrrail.a r pRo-xoDtl**'il .. .. .. ..e. 1. D4B{f lmdc**c konstsqte l?E

9.2. Ddrfeif 9*cmcntjgvc t?8

0.t. SCd$csir *l.tel.{ }ons{effds proncnl}i-vi:n ... 1a0

t t.l. AtlilndJkr rnm*r rEo

C.S.?. Ncra*r rd*r*.. ..,........: lsf9.{.' Ie&r*lie ltn*erd tenplakr*U 5r,rono*liiv.* Lgz

9.t (antkk?p V*lfiFpdvo*Frrkc ,e{nos{i 184

t.& llfflAnrn*Jc k9ryl**ih deq\E$iln* 4u*ciF .... lSs

n^oralnLllo rci{*eFn{t* w,!ryaa&rr.* MDnf@rurE ffa-ftil ra ror19. l. hendillvn &rl{rr r*{nl3 ,r9,1

fe-?. v*lndr,r*c *spif#esi€ nenerli*qS tro*tepr u sky,rru,rhc r*qlm*e lC*rl€€ ls5

}Gu24

ts180

9.132

133

rt8

142

7.

151

151

151

152

154

154

156

158

l5E

10.

Page 5: Fortran Za Treci Razred Masinske Tehnicke Skole

11.

L2.

10.2.1. Zrr.&lCkr polrr 18 promonlrlvc lcdarldb du-ttnr .,.

10.3.1- ZrrGdntdkr Dolrr rr pro:ndrutva rrrll&6hdutlnr' ..

10.2.1. Zrjcdntdkr i rr nlrovo .

10.t. Vlaoltruko kortl4atc E.morlrrkog proltorl od rtrr-nc vllc pro$rm.ldh Jcdnlor

- 10.8.1. Nctnenovaaa zrJcdrlckr uona u momorul ..10.3.2. Imsrovrn zs.J€dDlcks 2(nt u ltroDoruf ....

DODEIJIVANJE POCETNIH VREDNCS ;I PROMENIJIVTM.

11.1. DodelfvanJe podetrtli wcdaosd promentfvlm aarcd-bom za,ekepllcttnu delilarectru wstG promerlJtvlh .

11.2. Naredba rr dodeljtvanre poletnlh vrednodd .,....,.:l11.3.. Programska Jedlnlce ze dod€Utvrnj. poOetrth vrcd-

noafl zaJednldHm zonama u mcmorlJl .... . :. . . . ...:

oPSTE Mocucxosn UNoSENJA I IZDAVANJAPODATAICA

12.1. Dalre mogrrdnoatl naredbe FICRI\&{T

12.1. 1.' OpiU opis podataka

12. l. 2. Koeficijsrt razmere

12.1.3, Razme6taj poua u ulazno-izlaznorn elogu ...12.1.4. Opis heks8dekadnih brojeva

12.1,5. Opis alfabetskih podataka

12.2. Promene FORMAT-naredbe za .weme iz\.rgavanjaproSTama

12. 2. 1. Po6tavljanje sadriaia FORMAT-naredbesa ulaza

L2. 2. 2. Polbvljaqje sadrirja Fon[1AT-naredbe.keo vrednosti niza ....

12.3. Uno6enJe i izdavanje pchtrka po njihovom imenu ...KONISCE.UE SPoLJNIH ]!r r:MoRUA

13.1. Magnehi di6k .. . .....:..

ttrrlr

1rc

t9?

200

208

203

205

2ott

20s

211

2L1

2LI

?19

220

22L

22t

223

223

224

225

229

229

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 ?tl13.1.8.2. IzdevanJe pod.trka .a dlrlr t81

13.2. Uap€tra trrkr &'|l18.2.L. Prmr podrtakr ztg

8.2.f.1. Upt! poditrkr [r EagD3tru tr*u ... 28t

L3.2.1.2. l!&v!nj3 Dodst*e ra megn trGtrlkc ........ 2g

1 .2.2. OrDskr kraF gruge po&t b 288

13.2.8. Premt varr. nrgFGttre trak€ ...... tt618.2.3.1. VrlGalJG tato Dr pretbodrn elog .. 238

1t,2.8.2. Vr.60r. trrte ne poGotrL grop. ... tt6

Ltt.r.lrs. IEO

mrcc rRAD SA FORTRAN - PnOGRAXTXA NA nACUNARU ?DP-lr /?O . . . . . . . . . . . 237

2L7

2L7

Page 6: Fortran Za Treci Razred Masinske Tehnicke Skole

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 prihvatljivza sve korisnike. Ako s e posmatra problem komunikacije izmedju do-

' veko i raCunara, moraju ae uzeti u obzir Aobre i loie strane jednogI drugog i na oslovu toga mora se formirati jezik za njihovu komuni-kaciJu.

Jczik raCunara je vooma siromadan i zbog toga neprihvatljiv za6oveka. Medjutinr, pisani ili govorni jezik doveka nue dovoljno precizarlda bi bio prihvatljiv za raCunar. Zato se mora traZiti novi jezik koji dcbiti prihvatljiv i za doveka i za ra6unar. Jezici koji su definisani da za-dovolJe ovaj uslov zovu se progTamski jezici. programski Jezik mora daodgovorl slededim zahtevimo:

1. Da pruZi 6to je mogude vedi komfor za doveka, pri prenoienjuelgorltama na raCunar.

2. Da omogu6i lako pra6enje prograrnskog algoritma Sto ve6egbroja ljudi.

3. Da omogu6i formalno prevodjenje sa programskog jezika namasinski 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 oblastiprlmene 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/ tI

. Pored ovih Jezika postoJi jo6 na desctine progranrkih jezikn. I!le-djutinl, od svih ovih jezika najvlBe je rasprostrnnJen IORfiAN. Na skor.obrt% dan:rinjih radunara mole sc korisUU progamski Jezik FORTRAN.

Page 7: Fortran Za Treci Razred Masinske Tehnicke Skole

$nt1,),il

Ilrugi navedenl zahtev za prograurH ,edk trebo da omogu€i razme_nu programsklh algorltama roedju Btrudnjsclme koJf a€ bave odgovarajudimproblemrma. prema tome, progtamski Jeztk mora btd rzgradJen na uobica-jenom 6kupu tipogafstrJh silbolal a konstrukcile u lezitu moraJu biti rakoshvatljive za 6to 6irl krug struCnjaka

- Tredi zahtev omoguduJe izradu programa, koji 6e obezb€dtti daradunar vr6i prevodjarje sa progrrmskog na maltneH Jezlk. OvaJ pro_grnm naziva se program za prevodfenje I kao ulazne poaa*e aobi;akonstrukcije 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 aimbolaje 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 nizasimbola. .Elementarna konstrukcija ima odredjeno znadenje, ali sama za

sebe ne egzietirq u progremu. Elemertarne konstrukcije FoRTRAN-Jezlkasu:

- 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 odredjenismisao sama za sebe. SloZene konetrukcije u FORTRAN-jezlku jesu:

- naredbe,

- potlrrogrami I- programl.

Page 8: Fortran Za Treci Razred Masinske Tehnicke Skole

1

lit:tl ,i

I

lr'

6

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-

ma tome one predstaeljaju akciju koju raEunar treba da sProvede. Opisne

naredbe pruZaju sve dodatne informacije potrebne za izvr5ne naredbe, koje

se odnose na to kako tfeba izvrSiti odredjenu akciju, ili daju informacije o

programu u celini, 3to omoguCuje lak5e prevodjenje programa sa IrORTII..\N-

-jezika na maSinski jezik.

Pravila kako se nad skupom simbola jezika grade elementarne i slo7e-

ne konstrukcije 6ine gramatiku jezika. Prema tome, poznavanjem granralike

moZemo redi o Bvekoj zadaloj konstrukciji u jeziku da li je korektna ili uije,ne ulazedi u nJeno zna6enje. Sintaksa jezika izu6ava gramatiCki korektne

konstrukcije i daje mogudnost formalnog otkrivanja gresaka u konstrukcija-ma. Odmah treba uoditi da sirtaksiCke greSke u programu mogu biti otkri-vene u prograhu za prevodjenje, jer su formalne prlrode.

Semantika jezika izudava znadenje pojedinih konatrukcija u jeziku.

Program 6a6tavua 6ovek. i sve konstrukcije FORTRAN-jezika koje

dine program, napisane 6u prema algoritmu sastavljenom za reSavanje od-

redjenog problema. Prema tome, setnanti6ke gre5ke u programu, po pra-

.vilu, ne mogu biti formalno otkrivene, jer su to najdeSde gre5ke u algoritnru,

a samim tim ove greSke ne moZe otkriti program za provodjenje, ved jedino

Eovek.

Pravila po kojima se grade poJedine konstrukciJe FORTRAN-jezika

lako se pamte, ako se uoEe razlozi za5to su ona uvedena. Zato treba imati

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.

,l

2.2. Nadin pisanja programa

Sve naredbe FORTRAN-programa moraju biti prenete na kartice dabi program bio unet u raeunar. Da bi program za prevodjenje pravilno pri_hvatao naredbe sa kartica, moraju se postovati slecleda pravila o buSenjukartica:

l) od r. do 5. kolone zakljudno busi se broj koji predstavlja obeiezj€naredbe.

2) od 7. do ?2. kolone zakljudno busi se niz simbola koji aine ,ar.ctlbu3) Ako neka naredba sadrzi vise od 66 simboia, odnosno ne mor-e bi.ti

buiena na jednoj kartici, moze se koristiti ukupno 20 kartica za njeno buse-nje, ali svaka kartica, osim prve, mora sadrzati znak razlidit od nule iblanka u 6. koloni.

4) Od 73. do 80. kolone moZe se buSiti ma kakav tekst. Najae5de jeto tek6t koji sluzi za identifikaciju programa i za redoslecl kartica . l)rogra-mu. SadrZaj ovih kolona ne uzima se u obzir od programa za prevortjenje.

5) Obja5njenja u programu koja se ne odnose na progl'arr za prevodje-nje, ved olakSavaju pra6enje programa od strane ioveka, piSu se od 2. do

80. kolone, pri demu se u prvoj koloni mora nalaziti slovo C. Ovakav tekstse mote pisati na bilo kojem mestu programa, i bez znadaja je pri formi_ranju maSinskog programa.

Radi preglednog sprovodjenja navedenih pravila o pisanju programa,pogodno je pisati FICRTIIAN-program u formularima oblika pt'ikazanog lra

s|,2.2.1.

51. ::.2.1

Page 9: Fortran Za Treci Razred Masinske Tehnicke Skole

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

xlYlzgde vertikalna crta nlje simbol FoRTRAN-jezika' vec razdvaja pojedine

eimbole Jezlka.

3.2' Cifre dekadnog broinog aistema

Cifre dekadnog broinog eiatema 6ine l0 gimbola FOTRAN-jezlka i to

olll2lsl{l5l6l?lsle

Page 10: Fortran Za Treci Razred Masinske Tehnicke Skole

rtr

l

l0

$;

Ii3

ilI

3.3, Logidke konstante

Logidke konstante, koje se u algebri logike najdeS6e oznaIavaju eim-bolima 0 i l, u FORTttAN-jeziku se pi5u sa

rfAt,sE. I ;'r'nun.

gde konstanta.I'ALSE. (dita se fo:ls, a znalilatl odgovara 0, a .'l'IttJE.(6ita se tru:, a znadi istina) odgovara I u algebri logike.

3.4. Znaci aritmetldkih opcracija

Znaci arltmetidkih operacija u FORTRAN-lezlku su

+l-l* | 7 | **

pri 6emu lmajti ;lede6e znaEenje

+ sabiranje

- oduzlmanje

* mnoZenje

/ delenJe

** atepenovanje

3.5. Znacl zi operacije poredjenja

Znacl za opcracije poredjenja u FO[tTRAN-jeztku su

.LT. i .LE.'' .EQ. i .NE. I .cr, i .cE.

pri demu imaju slede6e znadenje:

. LT. odgovara simbolu ( u nratematici (simbol je sastavljen ocl pr-vlh slova engleskih reii "LJss Than", Sto znadi "nranje od,,),

. LE. odgovara slmbolu { u ntatematici (slmbol je sastavlJen od pr-vih slova engleskih reIi "Lcss than or Equal to", Sto zuali"manje ili jednako"),

. EQ. odgovara eirnbolu = u m:rtematlci (simbol je sastavljen od pr-vih slova cngleske reli "I.lQual to", Sto zna6i "jednako"),

ll

NE. odgovara simbolu f u matematici (simbol je sastavljen od pr-

vih slova engleskih reei "Not Equal to"' Sto znadi "nije jedna-

ko" ),

. CT. odgovara simbolu > u matematici. (simbol je sastavljen od pr-

vih slova engleskih reEi "Greater Than"' Sto znadi "ve6e od")'

'GE.odgovarasimbolu>umatematici(simboljesastavljenodpr.vih slova engleskih reei t'Greater than or Equal to,', Eto znadi

"veCe ili jednako"),

3.6, Znaci za logiike oPeracije

Znaci za logidke operacije u FORTRAN-jeziku su

.oR. I .AND. I .Nor.

pri 6emu imaju eledede znadenje

. OR. logiika "ili" oPeracija,

.AND. logtEka !'1" oPeracija,

.NOT. Iogieki "net' oPeracija'

3. ?. SPecijalni znaci

Specijalnt znaci, obuhvataju interpunkcijske znake' koji se mogu ko-

r{etiti u FORTRAN-jezilinr I to su

(l)i=l,l'lrlbl'lEgde eimbol b oznalava medjuprostor ill blanko-lzmedju tipografskih sim-

bola.

3.8. SluZbene re6i

SluZbene refl 6u engleske redi koje se u FORTRAN-jeziku koriste

kao gimboli. To zna6i da ee te redi.mogu Pisati 6amo u obllku datom u ta-

beli 3. l. U tabeli je dat oblik pisanja sluZbene re6i u FORTRAN-jeziku' a

poEto znadenje re6i ukazuje na funkciju simbola u ROtrtneN-jeziku to je

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

fl

I

l

j'l;rl

lrllrll

Page 11: Fortran Za Treci Razred Masinske Tehnicke Skole

t2

taoce kojl ne poznaju engleski jezik,zapiaan u fonetekoj transkripcijl.

Takdoje je u tabelt dat i izgovor reEl,

3. 1

'I

I

l

"liil

1tl:1,

I

il

I

Red.br. SluZbena red znadenje dlta se

I ASSIGN dodeli rsalnt BI.,IOCK DATA paket podataka blok delte3. CALL pozovi kol4. COMMON zajedni6ki kgman5. COMPLEX kompleksan kompleke6. CONTINUE nastavi kentinju:7. DATA podaci deitD8. DIMENSION dimenzija dimenEan9. DO izvrSi du:

10. DOUBLE PRECISION dvostruka tadnost dabl preelZenll EQVTVALENCE odgovarajuCi ikwivalanst2. EXTERNAL spoljaFnji ikett:nrl13. FORMAT raspored fc:mat14. FUNCTION funkcija fankEan15. GO TO predji na gou tu16. IF ako lft7- II\TTEGER ceo broj intidt,18. IOGICAL logiEki lodiikall9- PAUSE pauza , po.z20. READ iitaj ri:d27 REAL realan rieltt RETURN povratak rit.:n23. STOP zaustavi Btop24 SUBROUTINE potprogram s r\bru:tl:n25. WRITE piSi rait

1

&

4. ALCORITMI SA REALMM KONsTANTAMA I PROMENIJTVIM

Svaki ra6unski procee moZe se ra5dlanitl na niz formula, po kojlmase vr6i lzraEunavanje medjurezurtata i konadnih rezultata. Formula u uo -blcajenoJ matematiEkoj notaclji sadrzi promenljive t konstante medjueob -om povezane aritmetlckim operacijama. promenljivim, koje se nalaze nadeenoJ stranl neke formule, moraju bitl dodeljene brojne vrednostl pre ra-EunenJa po toj formuli. Ove promenljive dobijaju brojne vredno6tt, pre po_

detka rada po algoritmu, kao polazne velidlne ili gu to udjurezultati izra-Eunavanja po prethodnim formulama.

Tako, formula

Y=xl +xz(3,7 +4'x!)

sadrZl promenlJive xr, x2, x3, 6lje brojne vrednoeti moraju bitl poznatepre izradunavanja velldine y. Na dernoj strani formule ({.1) figurilu i kon-atante 2; 3,7 I 4- Izra6unavanje po formuli (4. l) predetav{a lzracunavanjevrednoett aritmetldkog lzraza deeno od znaka jednakosti, I dodeljlvanje lz-racunate brojne vrednosti promenljlvoj y, na revoj :trani znaka jednakoeti.

Sve ovo je opSte poznato u matematicl i predstavlja uobldajeni nadtnkorlldenja formula od atrane Blrokog broJa ljudt razlidltlh profeelJa.

U ovoj glavi Ce bitl izloZeno kako se pi6u formule u FORTRAN-jezt-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,

(4.1)

Page 12: Fortran Za Treci Razred Masinske Tehnicke Skole

l4

ll

- kako se izradunavaju medjurezultati i rezultati,- kako se izdaju konadni rezultati.

4.1. Definicija brojne konstante

U FORTRAN-jeziku brojna konstanta moZe biti ceo broj ili medovit' broj. ova stroga podela konstanti na cele i mesovite.uslovljena je nadinomregistrovanJa konstanti u memorlji racunara. celobrojna konstanta regi-struJe se kao ceo blnarni broi, a meBovita konstanta se registruje kao broju pokretnom zet^eztu.

4. l. l. Celi brojevi

Ceo broj se piSe kao niz dekadnih cifara, ispred kojeg moZe stajatlznak + za pozltlvan broj, a obavezno znak - za negativan broj. Ovako za-pisana celobroJna kongtanta mora biti u brojnom intervatu i-231 , 2tl -l-l .

Ovaj brojni interval je odredjen kapacitetom jednog memorljskog reglstra(s1.4. l.l.). ltegistarsadrZl 32delijeoznaEene, naeI.4. l.l, sa0, 1,...,31. SaclrZaj delije 3l je najve{e teZine I registruje znak broja. Ceo broj x

ri,1,

!*-l

,-O AJAK+1 ZNAK:

sI.4. l. t.

registrovan u ovakvom reglstru mora biu u intenralu

-2rl ( x : 2tr -l = 2.147.4g3.64?

lz lzloIene deflncije za piCanje celth brojeva eledl da

- ceo broj ne sadrZi decimalnu ta6ku. trl:'I

l

$

izmedju cifara celog broja ne moze stejatl medjuprostor.

(4. l.l)

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

15

Primeri

a) Dozvoljen oblik celog broja:

-386

65

0

2t47483641

b) Nedozvoljen oblik celog broja:

35. 0

35 000

3147483647

4. 1.2. Meiovitl brojevi

Me6ovlt broj ee moZe pieati na dva\nadina, kao:

a) Niz dekadnth cifara, pri Cemu se celobrojni i razlomljeni deo raz-

dvajaju declmalnom ta6kom. ispred ovakvo g niza moLe stajati znak + za po-

zltivne brojeve, a mora stajati znak - za negativne brojeve. ovako zapisan

meSovlt broj mora imati najmanJe jednu cifru, a najviEe ? dekadnih cifara.

b) ObUk kao pod a) lza kojeg ee pi5e "lono/E'

a zalirn se navodi ceo

dvoclfreni dekadni broj, kojl predstavlja eksponent broja 10. Brojna vred-

nost ovako zaplsane konstante jednaka je proizvodu brojeva ispri:d slova.E

i etepena broja 10, aa celobrojnlm eksPonentom navedenim iza slova E'

kx",f. x" II il-----r l l--- ----- ----l u---1 0

/!NAl< Xil

sl.4.1.2.

MesovltibroJeeregiatruJeumemorijiradunarauobllkupokretnogzataza (eI.4. 1.2. ). Ovako registrovan broj x ima brojnu vrednost

Page 13: Fortran Za Treci Razred Masinske Tehnicke Skole

FITii

16

gde se eksponent xE r€gietruje kao ceo blnarnl broj' pa je

_ 64 . xD{63

a mantisa xu registruje se u binarno kodiranom hekeadekEdnom

tako da ie

o<1"* l<l -16*

Zamenom (4. 1.3) i (4. f .4) u

val za broj x u Pokretnom zanezu

o<l*l<(t-lo-').to6t

(4. 1.2) lako se dobtja da je brojnl lnter-

(4. 1.3)

sletemu,

(4. 1.4)

(4. r.5)

tako da svl

registruJu

(4. r.6)

(4. r. ?)

Najmanja vrednost mantiae razlillta od nule ieste 16-l 'brgjevi manji po apsolutnoj vredtrosti od 16-65 u raEunaru ee

kao nule. Prema tome, 'broj r f 0, mora bitl u tntervalu

r6-.!(lxl ( (l-16-6 ).r6Gt

ili u dekadnom brojnom sistemu

5,4.10-?e rlxl< ?.2' ro?5

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

oblika (a) lli (b) tnoraju po brojnoJ vrednogti prtpadati dozvolJenom lnterva-

lu (4. l. ?). Brojevi ispod donje granice lntervala registruju ae kao nule' a

broJevt iznad gornje g""|U"u prouzrokuju prekoradenje kepeciteta regletra'

Primeri

a) Dozvoljeni oblicl meBovitih broJeva:

0.345

-22.O

482.57E-2

-. L2

15. D l5

25. E0

b) Nedozvoljeni obllci melovitih brojeva

2. 000.596

-15. El36

25. E

1.8?6,00

4. 2. Definlcija reElne promenljive

4.2. l. Ime promenljive

U matematlci je uobiCajeno da ee promenljive oznadavaju Jednlm elo-

vom azbuke. U FORTRAN-jezlku nlz simbola oznadavaju promenljivu, Ova-

kav niz elmbola zove se lme promenljive. Niz simbola koji 61ne ime pro-

menljive mora iapu.njavatl slede6e uelove:

- prvt simbol mora blti veliko elovo engleeke azbuke ili specijalni

znak I ,

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

nog brojnog slstema llt opecijalnl znaci I ,

- broJ simbola kojl Clne lme promenljive moZe biti od I do 6.

Prlmeri

a) Dozvo[ena lmena promenljlvih:-

:AAAA

ALz

CDEIs

IAI\/FASA

ZACREB

b) Nedozvoljena imena promenljivih:

Aa,Ct372

t2A

Al0. A

Page 14: Fortran Za Treci Razred Masinske Tehnicke Skole

l

llj

il

1

I.liht

20

Aritmetidka operacija izmeclju dva argumenta, koja su celi brojevi,

daje kao rezultat ceo broj. Tako, ako se dele dva cela broja rezultat je sa-

mo celobrojni deo koli6nika.

Rezultat aritmetidke opc:acije izmedju argumenta od kojlh je jedan

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

a.a.a.a

b) Ako je izlolllac stepena realan broj, tada Ee vrednost atepena ra-6una logaritmovanjem I antilogaritmovanJem. Tako ako treba lzradunati

to se izra6unava kao

a2'5

antitn(2,5Ina)

Iz ovoga sledi da se u operaciji stepenovanja, kade je izlolllac real-an, ne moZe pojaviti negativan broj kao osnovajer operaclja logaritmovanja

nije definisana za negativne brojeve.

c) Niz operacija stepenovanja izvrBavaju se.e desna na levo. Izraz

A**B**C

ra6una se tako 6to se najpre odredi (B ** C), a zatim A'ir (B**C). Ovo je

razlidito od (A*+Bl ':*C.

d) Promena znaka ima iatl prioritet kao i stePenovanie tako ako se

napiSe izraz ,.--A**B

oso ie biti izra6unato kao - (A ** B), a ne kao (-Al**8,

2l

Utabeli4.3.2.navedeniauPrlme:.iaritmeticldhLztazainjihoviek.vivalenti u matematidkoj notaciJi.

4. 3. 2. UPotreba zagrada

Ako utvrdjenl prlorltet aritmetlcldh operac{a ne odgovara aritmetiI-

kom lzralu.koji ae Zeli zapleati, mog! 8e korlstiti zagrade. Prem tonre, za-

grade treba korletitl, kao i u matematici, kada se Zeli proureniti prioritet

operaclja. .Deo erltmett6kog izraza u olwiru otvorene I zatvorene male za-

grade dobija najviEl prioritet. Ako postoji veci broj zagrada, unutrasnja za-

gradajenajvtBegprlorlteta.Deoa'itmetickogizrazaizmedjuzagrada,od-noel ge pretna arltmetiEkom izrazu u celini kao jedan argument'

Utabeli4.3.3.navedenlauprlmeriaritmetidkihizrazaeazagrada.ma i njlhovl et<vlvalentl u matematickoJ notacljl'

4.3.3. Vrsta aritmetiEkog lzraza

Izra6unata brojna vrednost, koia se doblJa kao rezultat aritmetilkog

izraze po vretl jeste:

Tabela 4.3.2.

ARIfI{ETICKI IIRAZI

-ArB.rc

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

rx3+x2-203. rX*.3+X..2-20.

Page 15: Fortran Za Treci Razred Masinske Tehnicke Skole

22

- ceo broj, ako su svi argumenti aritmetidkog izraza celobrojne kon-stante ili celobrojne promenljive, odnosno

- realan, broj, ako je barem jeda5r argument aritmetiekog izraza re_alna konstanta ili realna promenljlva.

Tabela 4

ARITII{STICKI TZRAZI

U FORTRANU U !{ATEITIATICI

Ar (B+C),/D A (B+c)

D

- (A+B) r*2*D-4. - (e+g) 2.o-4

x* (Y,/ (Y+x) ) x.Yy+x( (.:A) rr24ar @/BD.t2 ( (-e) 2+a.L

) 2

B

A,/ (B+c) *r2-4. /D+3. 3_'._1+r(B + c)' o

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

Tabela 4.3.4ARITMETIEKITZ,F"AZ VRSTA

[**4+3*MNl ceo broj

(J I rz1*s13 ceo broj

(J /rz7*1113. realan broj

A**3-ll:r*2 realan broj

-I,:,(3. +K)/A realan broj

il

I

]iI

t'r

ilE

ta

4. 4. Dodeljivanje brojne vrednosti promenljivoj

4.4. l. Aritmctidka naredba

Opsti oblik aritmetilke naredbe Je:

a={ (+.4. t)

gde je

a - ime promenljive,

9 - aritmetidki izraz.

Ova naredba ima sledece dejstvo: vrednost aritmetidkog izraza p,pretvara se u vrstu brojnog podatka, saglasno vrsti promenljive a, i do-

deljuje se promenljivoj a.U aritmetidkorn izrazu V ne moZe se pojaviti promenljiva kojoj nije

dodeljena brojna vrednost pre izvr5avanja naredbe (4 . 4. l).Treba uoditi razliku izmedju znaka jednakosti u aritmeti.6koj nare<J-

bi, i uobldajenog zna6enja u matematici. Znak jednakosti u aritmetilkojnaredbi opisuje proces koji se sastoji od:

- izradunavanja vrednosti aritmetidkog i.zraza, na desnoj slrani zna-

ka jednakosti, prema konkretnim vrednostima promenljivih,

- dovodjenja izra6unate brojne vrednosti promenljive u celobrojni ilirealni oblik, u saglasnosti sa vrstom promenljive na levoj strani znaka jed-

nakosti, i- dodeljivanja ovako dobijene brojne vrednosti, promenljivoj na levoj

strani znaka jednakosti.

Sve navedene faze u izvrSavanju aritmetiike naredbe dogadjaju se je-dna za drugom. Prema tome,'u fazi izraiunavanja vrednosti aritmetidkog

izraza moZe se koristiti brojna vrednost prorneliljive, kojoj ie u zadnjoj

fazi biti dodeljena izraEunata brojna vrednost. Kako se brojna vrednostpromenljive duva u odredjenom memorijskom registru, to u ovom sluiajuznaii 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

Page 16: Fortran Za Treci Razred Masinske Tehnicke Skole

24

A=A+B

5to znadi: sabratl brojne vrednosti promenlJivih A

dodelitl kao novu brojnu vrednost prdmenljivoj A.

Primeri

(4.4.21

B i dobijenl rezultati

l) Primeri aritmetidkih naredbi:

AB=C*:r2+AB+4. 36

I-J+A*+2-4

BRZINA=PUT/VREME

VREDN=CENA*KOLIC

2) Aritft€tidka naredba

A=l/3-4*B

zal = 10i B = 3.5 dodeljuje promenljivoj A brojnu vrednost - f1,0.

4.4.2. Naredba ulaza

Aritmetldka naredba dodeljuje brojnu vrednott p"o-enllivoj, po iz-

radunatoj vrednoati aritmetidkog izraza. Medjutim, neke promenljive u aI-

goritrru dobijaJu podetne vr€dnostl prema konkretnom primeru koji se re-

5ava. Ovalve ve[Elne zovu se ulazne velidine. Tako, algoritam na sl. {. ?.3

sadrZi ulazne velidine x1 i x2, kojima moraju biti docleljene brojne vred-

nosti na podetku izvr5avanja algoritma. U istom algoritmu promenljiv:r .Y

dobija brojnu vrednost preko aritmetidke naredbe. Prema tome, postoia -

nje promenljivih koje dobijaju brojne vrednosti.na podetku algoritma, onro-

gu6uje primenu algoritma za razli.ite konkretne brojne vrednosti ovih pro-

menljivih. Algoritam u kojem ne postoje promenljive, kojima sc brojrra

vrednost mole dodellti kao velidina koja ulazi u algoritam, predstavlja niz

izradunavanja koji pri svakom izvrSavanju algoritma dovodi clo istog rezul-

tata. Jasno je da ovakav algoritam retko ima praktidnog smisla. NajdeSdt'

je potrebno sastaviti algoritam koji de izraEunavati rezultate za raz[ditc

poLazne podatke. Polazni podacl nalaze se na apoljnim nosloclma infornr:r-

26

maciJa I program koJi ih korlstl dode[uje njihove brojne wrednosti odgova-

rajuelm promenljivim, Naredba koja omoguCuie ovakvo dodeljivanje broj-

nlh vrednostl promenljivlrn zove se naredba ulsza. Ova naredba se pile u

obuku

READ(I, J)ltsta (4.4. 3)

gde je

READ - slulbena re6, koja oznaCava da ge radi o naredbi ulaza,

I - celobrojna konstanta bez znaka lli ime celobrojne promdn-

ljive, kojoj mora bltl dodeljenabrojna vrednoat Pre izvt6a-

vanje naredbe (4.4.31'

j - obeleZje jedne naredbe FORMAT,

lista - spisak imena promenljivih, medju sobom razdvoienih zare-

zima, kojima te dodeljuju brojne vrednostl sa ulaza.

Ako je apoljni nosllac lnformacija kartlca, tada vellEina i ukazuje

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.

NaredbE ulaza Je izvr6na naredba i ima sledede znadenje: Proeitati ulazne

podatke sa ulaznog uredjaja 1, p"d kontrolom opisne naredbe j, i dode-

llti pro6ltane brojne vrednosti promenljivim, navedenim t liEti.

Prema tome, izvr5na naredba sadrZi lnformaclu o tome gde se na-

laze ulazni podaci (i), i kojim promenljivim se dodeljuju (lieta). Mediutim

kako lzgledaJu brojne vrednosti ne kartlci to nlje reEeno LzvrEnom nared-

bom ulaza. Brojnl podatak na kartici nalazi ae u obllku konatante, a kon-

stante Bu eastavljene od nlza eimbola FORTRAN-jezlka. Sveki simbol kon-

etante bull ee u jednu kolonu kartice. VlSe kolona, koje z auzima jedna kon-

stanta ne kartlci, Iine polJe. Jedno ili vlle polja, koja se sa jedne kartice

unoae u memor{u raEunara, Elne elog, Oplsna naredba, kojom se opisuje

lzgled sloga, plle se u obUku

j FORMAT(slog) 14.4.4l

j - obeleZje naredbe,

FORMAT - eluZbena re6, koja ukazuje da se radi o naredbi za opis

podataka, I

gde Je

Page 17: Fortran Za Treci Razred Masinske Tehnicke Skole

i,

26

slog - niz opisa, medju aobom razdvojenih zarezima, kojima se opl-

suju pojedina polja ulaznog sloga.

Ulazni slog je sastavljen od vi3e polja, a svako polje sadrii jednu

konstantu. Za opis ulaznog sloga potrebno je opisati svako polje u okviru

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

pojedinih polja, tj. naredba (4.4.41 dobija oblik

j FORMAT(opls1,opis2,9pis3 ) U.4.5)

Opisi pojedinih polja navode se u naredbi (4.4.5) sleva na desno,ona-

ko kako slede na kartici (s1.4.4. 1),

/poLlEl rc/-7E2 PoLIE 5

sr. 4.4.1

Da bi se u nizu naredbi koje di;tle program omogudilo jednozna6no u-

kazivanje na odredjenu naredbu pro-grama, uvodi se obeleZje naredbe.ObeleZje naredbe je jednocifren do

I

li

I

I

lr

Ll

petoclfren ceo neoznaden dekadni broj.

ObeleZje naredbe se piSe sa leve strane naredbe. Svaka FORI\IAT-naredba

mora imati obeleZje (oznadeno sa j u 4.4.4 i 4.4.5), koje seobavezno na-

vorli u.naredbi ulaza (4.4.3), odnosno izLaza (4.5.1). IzvrSne naredbe FOR-

TRAN-programa mogu po potrebi imati obeleZja. U jednoj programskoj je-

dinici ne moie se jedno obeleZje koristiti, kao obeleZje, viSe od jedne FOR-

TRAN-naredbe.

4,4.2.1. Opis celih broJeva

Ako porje sadrZi celobrojnu konstantu, opisuje se na slede6i na6in

rk (4.4.6)

gde je

I - simbol FORTRAN-jezika, koji oznadava da se radi o celom bro-

ju (Integer),

k - neoznaden ceo broj, koji ukazuje na broj kolona polja na kartici.

Ako je broj k takav, da polje sadrZi ve6i broj kolona nego Sto to

zahteva broj cifara brojnog podatka, tacla oclgovarajudi broj kolona rra lcvoj

27

strani polja ostaje nebuSen. Tako, ako u polju sa opisom Il0 koje sadrZi

10 kolona, od l. do l0.kolone, treba registrovati broj -386, to u kolonama

od 1. do 6. nede biti niSta bu5eno, a -386 6e se bu5iti sleva nadesno od 7. do

10. kolone.

4.4.2.2. Opis me.lovitih brojeva

Ako polje na kartici sadrZi me5oviti broj, opisuje se sa

Fk. d (4.4.7)

gde je

F - simbol FORTRAN-jezika, koji oznadava da se radi o me6ovitom

broju lFixed point),

k - neoznaden ceo broj, koji ukazuje na broj kolona polja na kartici,

d - broj decimalnih mesta brojnSg podatka.

Broj k mora biti tako odredjen da zadovoljava rislov

k>c+d+2 (4.4.8)

gde je

c - broj cifara celobrojnog dela broja,

d - broj cilara razlomljenog dela broja,

2 - jedno mesto za znak broja, i jedno mesto za decimalnu taiku.

Decimalna tadka se moZe izostaviti na kartici, i pri tome 6e bi.ti od-

redjena opisom (4.4.7). Tako u ovom slu6aju relacija (4.4.8) dobija oblik

k>c+dI1 (4. 4. s)

Medjutim, ako postoji decimalna tadka na kartici, ali nije u saglasnosti sa

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

a ne u opisu (4.4.7). Tako, opis F8.0 6e upisivati brojne podatke u memo-

riju radunara sa brojem decimalnih mesta, zadatih decimainom tadkom u

od govarajudem polju kartice

Ako se u polju registruju samo pozitivni brojevi, moZe se izostaviti

mesto za znak broja, a ako se izostavi i mesto za decimalnu taaku, to se

relacija (4.4. 9) svodi na

p>c+d (4.4. 10)

Page 18: Fortran Za Treci Razred Masinske Tehnicke Skole

28

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

godan, jer zahteve navodjenje svih cifara broja. U ovom sluCaju pogodno

je koristiti oblik

Ek. d (4.4. l1)

gde je

E - rlmbol FORTRAN-jezika, koJi ukazuJe da ee radl o meBovltom

broJu, zapieanom u ekeponencljalnom oblil<u (Exponential form),

k - neozna6en ceo broj koji ukazuJe na broj kolona polja na kartici,

d - broJ declmalnlh mesta brojnog podatka.

Kohatante zaplaana u eksponencijalnom obli,ku regtstruje Ee u polju

kartlce, kao i raniJe oplsana meEovlta konatanta Semo 6to ee lza declmal-

nlh mesta broja navodi €lovo E, a iza glova E izloillac broja 10. Tako ee

moZe pisatt

17.83E-15

6to odgovare decimalnom broju l?,83.10-lt. BroJ zaplsan u eksponencijal-

nom oBllku zahteve polje sa

k>c+d+6 (4.4. t2lgde je

c - broj clfara celobrdjnog dela broja,

d - broJ cifara razlomUenog dela broJa,

6 - jedno mesto za znak broja, jedno mesto za decimalnu taEku,slovo

E,jedno mesto za znak eksponenta i dva me$ta za dekadne ciirceksponenta.

Znak ekBponenta se moze izoetaviti, ako je eksponent pozitivan broj.

Slovo E se mole lzostavltl, ali se pri tome obavezno m6ra plsati znak eks-

ponenta. Tako se mogu registrovatl sledede konstante ne karticl:

-2.147820

-2.147+20

+8. l4E-02

8. t4-o2

Me5ovltl br.ojevi zapleani bez slova E i ekspdnenta mogu biti uneti

pomodu opiat (4.4. I t), pri Eemu 6e ae amatrati da je eksponent nula.

Tako ae mote pisati

20. 156E0

20.156+0

20. 156

Svl navedenl prlmeri 6e u memoriji racunara blti regratrovanl u obliku po-

kretnog z rezll., I predatavlja6e brojnu vrednost 20,156.

4.1.2.3. Opia preznog polja

Vrlo Gesto je potrebno neke kolone kartlce preekodltl. Qa bl ae ovo

omogudilo uveden Je ople

({. {. r3}

gde je

X - elmbol FORTRAN-jezike,koji oznadava daeeradi o opiau praSnog

polja,

n - c€o neoznaden broj, kojl ukazuje kollto kolona eadrti pol.je tgjetreba preskodltl.

Prlmer

Zs zedete vrcdnoetl promen{ivih 1, C, I I g lzreEunatl vrednoat

X - (el +32,4Xb-2c)

Velldlna f je eeo troclfrgn broJ I nalazi 8e na karticl od l. do 4. kolone.

Velt6lneC, !ig gadrle 3 cela l2 declmalnameata lnrlaze se nakarticlod 20. do 4O. kolote, pri CeEu eveka zauztma po{e od po ? kotona. Izgled

kartlce Je prlkazan nr e1.4.4.2.

/t a" b c

1...1 ulg- !+.{ol

sl. 4.4. 2

Page 19: Fortran Za Treci Razred Masinske Tehnicke Skole

30

Program na FORTRAN-jeziku lma slede6i izgled:

READI 5r lol IrArBrC :

ro FaRMATi l4t ',5xtF7'2tF7'

ltF 7' 2lY: I A*rl +32.4 l* ( B-2. *C I

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

koja 6lne ulaznl slog, ukljueujudi i polje koje se preskeee od 5' do 19' ko-

lone. PromenlJive I, A, B i C dobtjaju brojne vrednosti sleva nadesno' ka-

ko su zapisane u listi naredbe READ. Konstanta 2, u aritmetiCkoj naredbi

zaplsana je sa decimalnom tadkom, Bto znaEi da 6e u memoriji radunara

bitl reglstrovana u obllku Pokretnog zarleza' Na ovaj naein, operacija mno-

Lenja 2.*C izvodi ee izmedju angumenata u pokretnom zarezu' Ako bi kon-

atanta bila zaplsana bez decimalne tadke, tj' arttmetiEka naredba u obliku

Y' ( A'.*l +32.4 I tl 8-2r'C I

tada bi konstanta 2 bila registrov:rna u memoriji raEunara kao ceo broj'

Ovo bi ZnaEilo da pre lzvodjenja operacije mnoZenja 2*C, ova konstanta

mora biti prevedena u oblik pokretnog zareza, a botom izvr5ena aritmetid-

kaoPeracijamnoZenja.Ijedanidrugioblikari'tmetidkenaredbejekorek-tan I dovodl do istog rezultata. Ivledjutim, plvi dbltk (sa decimalnom ta6-

kom)predstavljaboljizapis,jer6etakavaritmetleklizrazbitibtlelzta-Cunat pri izvrBavanju programa na raCunaru'

4.5. Izdavanje brojne vrednosti P:9*gtlilte

BroJna vrediroet promenljive registrovana je u memorlji raiunara u

binarnom broJnom sistemu, kao ceo broj ili kao broj u pokretnom zarezu'

Blnarni obllk broja je neBogodan za koriS6enje od strane 3lreg broja ljudi

koji su korisnicl radunara. Zato ie potrebno broj prevesti iz binarnog u tlt'-

kaclnibrojniaistem,irezultateizdatiudekadnonrbrojnomsisten.ru.Potpu.

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

sadrZi sledeie:

- imena promenljivih iije se brojne vredno6ti Zele iz<lati' kao i

- oblik izdavanja brojnlh vrednosti'

flt

Iin

H

3l

Prvi deo informacije, o imenima promenljivih 6ije se brojne vredno_sti Zele izdati, zadaje se izvr5nom naredbom izlaza

WRITE (i, j)lista (4. s.1)gde je

WRITE - sluZbena red, koja ukazuje da se radi o izdavanju brojnihvrednosti promenljivih;

i - celobrojna konstanta bez znaka ili celobrojna promenljiva,kojoj je dodeljena brojna vrednost pre izvr5enja naredbe(4.5. 1). Ova brojna vrednost odredjuje izLazni uredjaj nakojem se ir5i izdavanje rezultata. Za raaunar IF,M-_360144,

kada se izl.az vr5i na budadu kartica to je broj ?, a na Stam.pa6u broj 6,

j - obeleZje jedne naredbe FORMAT;lista - spisak imena promenljivih, medju sobom razdvojenih zare_

zima, dije se brojne vrednosti izdaju.

Svakoj izvr5noj naredbi izlaza, kao Sto je nareclba (4.5.1) pridruZu_je se jedna opisna FORMAT-naredba, koja sadr-i informacije o obliku iz_davanja brojnih vrednosti promenljivih. Oblik izdavanja zadaje se istim o_pisima koji su sluZili za opis podataka na kartici, sa-mo Sto sada opisujuizgled Stampanog dokumenta ili busene kartice na izrazu. Jedan ili vise po-dataka koji se prenose naizlazni organ dine izlazni slog. DuZina izlaznogsloga zavisi od nosioca informacija na kojem se vr5i upis informacija naizlaznom organu radunara. Ako se izlaz vr5i na bu3a6u kartica, tada jemaksimalna duZina izlaznog sloga g0 simbola, koji se mogu bu5iti u g0 ko_lona jedne kartice. Ako se izlaz vr5i na paralelnom Stampa6u, tada je du_Zinaizraznog sloga 120 tipografskih simbola (ovaj broj moze biti i ve61 kocinekih tipova Stampada), koji dine jedan red na itampanom dokumentu.

Opisna naredba, koja se pridruZuje naredbi izlaza ima oblik

j FORMAT(slog) e.5.2)

j - obeleije naredbe koje se navodi u izvrsnoj naredbi izla-za (4.5. l),

gde je

Page 20: Fortran Za Treci Razred Masinske Tehnicke Skole

Elz

FORMAT - sluzbena re6, koia ukazuie na vratu opisne naredbe'

$log - niz oplsa koji definiSu izlazni slog'

Izclavanjelz\aznogsloganaparalelnomstampaEuzahtevainformaci.

ju o vertikalnorn po*"."rrju papira na StamPa'u' Ova informqcija je sadr-

Zana u prvom simbolu lzLaznog aloga' Kao prvi simbol izlaznog sloga nro-

Ze se pojaviti jedan od simbola +, b,0 i-Li I Pri eemu imaju sledeCe znade -

nje:

+ - bez Pomeranja PaPira,

b - Pomeranje PaPira.za I novi red'

0 - Pomeranje PaPira za 2 n'ova reda, i

I - pomeranje papira na prvi red sledede 6trane'

Jedan od navedena 4 pirnbola mora 5e nalaziti na Podetku izlaznog

sloga. Ako ovaj simbol nije obezbedjen Prvim oplsom u izlaznom slogu'

treba ga naveatl lzmedju apogtrofa kao jedan od opisa izlaznog sloga'

Tako naredba

j FoRMAT (',b,, 13.2x,8r2.5) (4.5.3)

formira izlszni slog od 4 polja, Pri demu prvo polje sadrii jgdan sinrbol

blanko, drugo polje sedrZi tri simbola za vrednost celobrojne promenljive'

trede polje sadrZl dva blanka i detvrto polje l2 limbola za brojnu vrednogt

rcalne promenljive. Prema tome, izlazni elog sadrZi 18 elmbola' Kada se

ovako formlran izlazni slog po5atje na paralelni 6tampai' Prt'i sinrbol bl-

6e upotrebljen kao komandni simbol za vertikalno pomelanje -papira na

Btampadu, i u ovom slutaju proizveSde novi red na $tampanom dokumentu'

Oetalih 1? simbola izlaznog sloga bi6e Stampani ocl podetka reda sleva na

desno kako slede u izlaznom slogu.

1.5. l. gpb ""Uh btoj*

Izdavanje brojne vretlnosti celobrojne pronrenljive opisuje se sa

IK

simbol koji ukazujc' tla sc rarli o cclitu brojcvinl:r'

I

gde je

(4.5..11

33

- ceo neoznaIen broj, kojl odredJuje bnoJ meeta koJi 6e zauzetlbrojna vrednost na izlaznom nosiocu informaclja. To je broj ti_pografsklh eimbola na Btampa.nom dokumentu, kada se LzLaz vt_di na Etampa6u, odnosno, broj kolona kartice, kada ee Izlazvr-6i na bu6adu kartica.

Ako se izlaz vrsi na gtampacu i pri tome brojrla vrednost koja se gtahpa prevazilazi duZinu k, odredjenu na Stampanom dolarmentu tada se Stampa kzvezdica (*) u predvidjenom polju.

Najvedi ceo broj koji moze biti registrovan u memorijskom registrusadrri l0 dekadnih cifara, a ako se uzme u obzir i l meato za znak,to z,.a-6i da format Ill uvek obezbedjuje koreltno &ampane vrednosti celobrojnepromenljive. Brojna vrednoat itampa se na desnoj strani predvldJenog po_lja za Stampanje, a na levoj strani nevaZede rule Etampaju Ee kao medju-prostori (blanko). Znak broJa &ampa €e nepoaredno levo od prve vaIedecifre pri 6emu ee Etampa znak ( -) za negativne brojeve, a znak + ss nsStampa. Prema tome, predvidjanjem ve6e duzine polja od one koja je po-trebna za ftampanJe broJne vrednosti moZe se obezbediti potreban broj me_djuprostora (bfanka) izmedju brojeva koji se Etampaju u jednom redu.

Prlmer

Na kartici eu zadata tri cela broja x, y i z. Broj x je buBen od 10.do 15., broj y od 20.do 24., a broj z od 52. do b4. kolone jedne kartlce,uneti brojeve sa kardce i 6tampad na paralelnom EtampaEu. u ovom sru-Eaju potrebne eu eledeCe FORTRAN naredbe:

READ{5r401 IIr IYrllFORHATI9IT l6r{Xr l5r27I, I3lURITE(614lltXrlYrttFoRtlAT(r .rl6rl0rl6l

U naredbi FORMAT sa obeleZjem 40, opisi 9X, 4X i 2?X definiEuprrl,na polja na kartict izmedju brojevd x, y i z. Naredba WRITE obezbe_djuje Stampanje brojnih v.ednosti promenljivih Ix, ry i IZ redom slevanadesno po opisima u FOnMAT-naredbi sa obeleZjem 41, Tako 6e brojnevrednosti promenljivih rx r rz bru Stampane po opleu 16, a promenrjive Iy

40

4l

Page 21: Fortran Za Treci Razred Masinske Tehnicke Skole

34

po opisu I8. Kako brojna vr€dnost promenljlve rY eadrzl 5 simbola na kar-

ticl, a opis I8 odredJuJe polje od 8 aimbola, to 6e.tri simbola sa leve etra-

ne polja biti nelakorlEdena za prlkazivanje broja I eluli6e za razmak iz'medju brojeva na Etampanom dokumentu. SliEno razmatranje vaZi i za pro-

menljivu IZ. Stampani dokumenat 6e imati elededl lzgled

xx)ooo(bbbxlo(xxbbb)o(xgde Je

r'n.d.rdr ( b ) tri soecrial-X - c{fra dekadnog brojno! sistema, medJuprostor ( b ) iU speclje

ni znak (-),

b - mediuProstor (blenko)'

4.5. 2. Opia meEovltih broteva

MeEovitl broJ registruJe ee u memorlii u obliku pokretnog zateza.

Ako se za fzdavanJe vrednosti realne promenljlve korlsti opie

Fk' d

tada 6e broJna vrednoet na izlazu bltl u obliku:

(4.5.5)

gde je 6 mesto za znak broJa, i to: elmbol - za negativne brojeve i sim-

bol b za pozitlvne brojeve. obuk (4.5.5) izdaje vrednostl promenljivih u

vldu celobroJnog i razlomljenog dela. celobrojni deo sadrZi maksimum k -

- d - 1 tipografeko meato, ako je broj pozltivan, a k - d - 2 tlpografska

meate, ako Je broJ negativan. Razlomlieni deo sadrZi d dekadnih cifara'

Prema tome, broi k je

klc+d+2gde je

c - broj clfara celobroJnog dela broja,

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

(4. s.6)

35

2 - jedno meato za znak broJa (znak negatlvnog broJa lzdaje se kao

simbol - , a.znak pozldvnog kao simbol b), i jedno meato za

decimalnu tadku.

Ako se za izdavanje vrednogtl realne promenljive koristi opis

Ek. d

tada 6e brojna vrednost na izlazu bitl u obliku

(4. 5. ?)

gde je

0 - mesto zaznak broja, I to: slmbol - za negativne brojeve, i sim-bol b za Pozitivne brojeve,

X - clfra dekadnog brojnog sistema,

d - broj decimalnih mesta,

k - ulcupan broj simbola,

Ukupan broj eimbola za lzdavanje brojne vrednosti sa opisom (4.5. 7)

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

k blti izdate zvezdice (*).

4.5. 3. Ople praznog pola

Razmak lzmedju brojeva, kao 5to smo ved videli, moZe se ostvaritl

predvldjanjem vedeg broja ceth u opisirna I, F iU E. Medjutim, opis

nx (4.5.9)

definlSe'na lzlazuprazno polje od n medjuprostora, tako da se ovim opl-

eom mbgu definleatl proizvoljni razmaci izmedju brojeva.

Je

Page 22: Fortran Za Treci Razred Masinske Tehnicke Skole

36

Primer

Nakarticieenalazebrojevil,XiYuslededemrasporedu:

a) od 1. do 5. kolone ceo broj I (opis I5)'

b) od 6. do 12. kolone meEoviti broj X (opis F?' 2)'

c) od 13. do 24. kolone meEovitl broj Y (opis Efz' 5)'

Sastaviti program kojl Ce uneti zadate brojeve sa kartlce i Stampatl:

RCAD{5rBl IrXrY8 FORltAr( l 5t F7.2rELa' 5 I

IIRITE(6r?l trXrY7 fORilAT( r r, t!rlXlF?.2t2/.tEl?.51

Zal=18,X=-24.5iY=0.3E-2O,stampanidokumenatlmaizgled

4. 6. Proste linijske algorltalqqkejlAlge

4.6, 1. Preklo ada po Progralau I flziEki kraj programe

Doeada6nje izlaganje FORTRAN-jezika omogu6uje zapis proetih llnlj-

slrih algoritamsldh struktura' Medjutim' za korelrtan zapie algoritama na

FORTRAN-jeziku nedostaje mogu6nost ukazivanja na zadnii algorltamski

korak u algoritmu. Ovo 8e u FORTRA|'I-jeziku vr6i naredbom

(4.6. l)

(4.6.2)

gde je

STOP - sluZbena reE, koja ozna6ava kraj rada po Programu'

n - jednocifreni do Petocifreni ceo dekadni broj bez znaka'

U jednom programu moZe 6e nalaziti viEe naredbi STOP' Da bi se

omogu6io uvid kojom od viSe naredbi je zavr6eno izvr6avanje programa'

to je uveden oblik (4'6. 2), koji izdaje naredbu (4'6' 2) na Stampaiu'

ili

STOP

STOP n

bbb 1 Sbbb- 24. 5qbbb0. 30000E -20

rs rzx I.7.2tzx E12.5

3?

Program zapisan na FORTRAN-Jeztku, prevodl ee na maEineld, Jezlkpre lzvrgevalja na radunaru. Ovo prevodjenje vr6i program za prevodJe_

nJe, u koJl kao ulaznl podacl ulaze naredbe trroRTRAN-programa, a lzLaz-ne vellEine 8u nanedbe u maBlnekom Jezlku. Da bi progro- za prevodJenJe

doblo informac{u kada je zavrleno prevodJerlje I zadnJe naredbe FORTRAN--programa, uvodi 8e naredba

END (4.6.3)koJa ae mora nalazltl na kraju svakog FORTRAN-programa.

4.6.2. Prlmeri algoritama ea proetlm linijeH.m strukturama

Prlmer 1

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

x4 I x5 rr obltku F?.3. IzraCunatl rezultat y po formuU

t - [t, + r2). x3 - r.] . ",

. ", (4. 6.4)

Na lzlazu ltampatl zadate brojeve x1, I = l, 2, ... 5, 1 rezultat y.

FORTRAN-program lma elededl tzgled:

REAOl5r l0l Ilr12rISrX4rISl0 FoRilaT ( Fl.3 rF?.3 rF7.trF?.3rF7.3 t

Y! | | Ilrxz l.X3-X4 l:txSrllrRITC(6r ll I Xl rX2rXllr14r15rY

I I FORI{ATl I I rF7.3rF9. 3tFj.) rF9.t tF9.3,819.? tSlopE'|{0

U naredbi FORMAT aa obeleZjem 11 promenljiva Xl se Stampe u

ietom obliku u koJem ge nalozl na karttci. Ostale ulazne veliCine se Stam-paju u obltlil F9.3, Cime eu obezbedjena dva medjuproatora izmedju bro-jeve kojl se Etampaju. Rezuttaf,*Y se Etarrrpa u obliku El9. ?, 6ime je o-bezbedjen razmak od 5 medjuprostora u odnosu na brojnu vrednoct promen-

{tve X5.

Page 23: Fortran Za Treci Razred Masinske Tehnicke Skole

38

Prlmer 2

sastaviti program koji za zadatu vredno't - l{ x <1, lzra.unava l't/{

po formull

y = to'11: 0,9994 + 0,5998 x + o, 1?03 ' x2 (4.6.5)

Neka je vrednortt argumenta x zadata od 1' do 6' kolone u obliku

F6..S.NaizlazuStampetivrednogtatgumentalvrednostlfunkcije(4.6.5)u obliku 812,5. Na sl. 4.6, 1. data je blok-shema algoritma'

sI.4.6. I

Program na FORTRAN-Jeziku lna elede6l lzgled:

REA0I 5r l0l Ilo FoRrlllF6.3l-- v'o.sgsqro.5998tXlo.l?0!rri'2

IRtTEl6rl9l lrYl5 FORrArlr rrF6.3r2lr€12.51

sroPENO

Navedeni prlmerl iluetruju prdgrame saetavtJene po zadatim algori-

tmimasaProstlmlinijskimstrukturama.UtokuJednogiavr5avanjatakvogprograma, svaka naredba ge izvrSi jedanput' Naredbe se izvr6avaju odoz-

go prema dole, kako slede u zaplsanom nizu' Dolaekom na naredbu STOP

prekida se dalji rad Po Programu'

Treba napomenuti da su nevedeni primerl zapisanu u obliku progra-

ma koji predstavlja kompletan zapie algoritma na'FORTRAN-jeziku' Sva-

ka naredba ovakvog programa bu5i se u jednu karticu kako je to obja5njetto

u odeljku 2.2.

39

4. ?. Razgranate linijske algoritamske strukture

Niz naredbi koje dine prostu linijsku algoritamsku strukturu izvrga-

vaju se jedna za drugom u zapisanom redosledu. Kod razgranatih linijskih

algoritrimekih struktura, mora postoiati naredba kojom se redosled izvri:r-

vanja naredbi u programu moZe promeniti' Ovakve naredbe se zovu uprav-

ljacke naredbe. Postoje dve vrste upravljadkih naredbi: uslovne i bezuslor -

ne. Uslovne upravljadke naredbe vrie prelazak na naredbu sa zadatitn o-

beleZjem, ako je navedeni uslov ispunJen, a bezuslovne upravljatkc nar'':rl '

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-

ukIF( v )nr, nz, nr (4.7. r)

gde je

IF - sluZbena red, koja ukazuje da se radi o uslovnoj naredbi'

9 - aritmetith iztaz' a

n1 - obeleZja izvrSnih naredbi u FORTRAN-Programu' i=I'2'3'

Naredba (4.?.1) ima sledede znadenje u zavisnosti od vrednosti arit-

metl6kog izraza:

a) q I 0, pre6i na naredbu sa obeleZjem n1,

b) 9 = 0, predi na naredbu sa obeleZjem n2, i

c) I I 0, predi na naredbu sa obeleZjem n3'

Kako vrednost aritmetiEkogizraza mora biti manja' jednaka ili ve6a

od nu1e, to zna6i da 6e se prelazak izvrSiti uvek na jedno od obeleZja n1'

nr ill nl. Odavde sledi da naredba koja se nalazi neposredno ispod uslovne

aritmetieke naredbe mora imati obeleZje.

Na sI.4. ?.1' prikazani su grafidki simboli uslovnih algoritamskih

koraka koji odgovaraju naredbi (4. ?. 1). Po5to ova naredba omoguiuje tri

Page 24: Fortran Za Treci Razred Masinske Tehnicke Skole

40

iz?azau zavlsnostl od vrednosti arltmetidkog lzraza, to ae u grafickom

prikazivanju moZe koristiti simbol prikazan na sI.4. 7. 2 koji v15e odgova-

ra mogu.dnostima naredbe (4. ?. l)'

sI.4. ?. I

nz n3

sI.4. ?.2

4. ?.2. Bezuslovni Prelazak

Naredba IF omoguduje prelazak u zavisnosti od vrednosti aritmetld-

kog izraza. VrIo eesto u programlma treba bezuslovno promeniti redosled

izvrSavanja naredbi'

Ovo je omogu."".;"";t:(4.7.21

gde je

GO TO - sluZbena ree, koja oznadava bezuslovni prelazak'

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

1" ,,, = ",ako je x1)x2

[*' * *'y ={xr xz

L*,, *,

a1

Brotevlxll12moguimatldvacelaltrldecl.roalnam€sta.Prematome,broJ 11 neka je bufen od l. do ?. kolone, a x2 od 8' do 14' kolone jedne

kfruco. UvodJaJem grsf,dkog obllkr ra sl.4'7'2, 'lgsrttrn se Dote prtkazatl

tao na gl. 4.?.3.

FORTRAN-Pro gram aastavlJen Po

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

100

20a0

200

t0

30

REAOl5rl00l Xlr12FORilTT { Ft.:1, F7.3

'tFlxl-x.z1 10r20r30Y'XlrI2ItlrEl6r200l YFOR||AT(' I rEl4.?lsloPYrXl+I2G.0 ro 40Y.XLlf,2GO rO 40ENO

sl.4. ?. 3

Iz gornjeg primera 8e vldl da Jb korl66enjem naredbe CtO TO izbeg-

nuto ponavljanje naredbe WRITE, poale svakog lzradunavanja promenlJive

Y, kao I naredbe STOP za prekld rada po PrograEtu'

Prlmer 2

Funkcija y(x) je zadata na el'4' 7'4, Eto ge mole izrazTti na

slede6i naEin

sl.4. 7.4

Page 25: Fortran Za Treci Razred Masinske Tehnicke Skole

i,

i,,

42

Za -c9(x€-rza -r<x{ 0

zs. 0(x< rza r<x<+@

Ze d < 999 zadatlh vrednosti argumenata xi, x2,.. . ; Xa , izra6unati vredno-

stt funkcije y(x).

a) Opis ulaznih podataka

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

bele:

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

!(1 y(xr )

x2 y(xz)

y(x)

-" ,,r",

FORTRAN-program sastavlJen po algoritmu na sI.4. ?.5

izgled:R€aol5rlo0l NrR

tOO FORI{ATlI3rF9.4l80 lFlNl l0r2Orl0lO REAO|5r20Ol x

200 FoRriAr I F9.41lFlIfRl 3Or30r{0

40 IFIXt tOr50r6060 tF(I-Rl 3Or30r70lQ l:lt-f,1:r*Q.i90 l{RITE(6r3001 XrY

3O0 FORilATI t . tF9.4rEz0.tIilrN- IGO TO 80

20 sToP,o Y-0

GO TO 90!Q fr-(f,rr!-X$21..0.5

co T0 e0ENO

ima slededi

43

sl. 4. ?. 5

Razgranata algoritamska struktura na s1.4,7.5 nalazi se u okviru cik-luea, kojl Je oznaden na slici sa C. Izlazni kriterijum ovog ciklusa sadrZi

ispitivanje promenljive n, kojom se kontrolise broj izradunavanja funkcije

y(x). Kada se lzraduna vrednost funkcije i za zadnju zadatu vrednost argu-

menta, izla,zl se iz ciklusa i prekida se dalji rad po programu.

Za n=4 i t-12, izlazni rezultati po ovom programu se Stampaju u ob-

liku tabele:

8.1240-l 5. oodo-2. 0000t7.o+ao

o.0o.o

-0.1r83216€ 020.500479tE ol

Page 26: Fortran Za Treci Razred Masinske Tehnicke Skole

4.1

gdc' jr. u prvoj koloni Stampana vrednoet argumenta,

6a vrednost funkcije.

a u drugoj odgovaraju-

4.8. Dalje mogu6nosti naredbe FORMAT

Opis ulaznog, odnosno izlaznog sloga u FORMAT-naredbi moZe u ne-

kim primerima biti veoma glomazan. U ovom odeljku bice razmotrene sve

mogu€nosti.naredbe FoRMAT koje dozvoljavaju kraci zapis opisa ulaznih,

odnosno izlaznih polja jednog sloga.

4.8. l. Ponavljanje jednog oPisa

VrIo de6to vi6e uzastopnih polja irnaju isti ogir;. Da bi se izbeglo u-

zastopno ponavljanje istog opisa u FORMAT-naredbi, mogu se opisi pisati

u oblikunIk

nFk. d

nEk. d

(4.8. r)

gde je n ceo neozna6en broj koji pokazuje koliko puta se ponavlia opis ko-

ji sledi. Tako, umesto niza oPisa:

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

moZe se pisati:

FORMAT(2F?.2,3l4l

4.8.2. Ponavlianje viSe oPisa

Ako se vi5e opiea ponavlja, tada se ovi opisi mogu pisati izmedju ot-

vorene i zatvorene male zagrade, tj'

n( list a) (4.8.2)

gde je

lista - spisak opisa medju sobom razdvojenih zarezima,

n - ceo neozna6en broj koji ukazuje na broj ponavljanja opisa na-

vedenih u ligti. Tako, niz oPisa

j FORIVIAT(I2, F6. 4, 12, F 6. tl, 12, F6. 4)

45moZe se kraie pieati u obliku

j FoRMAT(3 (r2, F6.4) )

4.8.3. Prelazak na novi slog

Ako promenljive u listi naredbe READ dobijajurbrojne vrednosti izviEe ulaznih slogova (sa vi6e kartica), tada je potrebno u FORMAT-nared_bi oznaEiti kraj jednog ulaznog sloga r podetak novog ulaznog sroga. sli.nasituacija na'taje kada se vrednostr promenljivlh u listilaredbe wRITE ze-le izdati u viSe izlaznih slogova (novih redova). Ova informaclja, o krajujednog ulaznog, odnosno lzlaznog, eloga I o podetku slede6eg zadaje ee.slm-bo10m kosa crta (/) u naredbi FORMAT. Tako naredba FORMAT moze tna-tl sledeCi izgled:

j FORMAT(slog, I stog2) (4.8. 3)

U opienoj naredbi (4. 8. g) kosa crta oznadava kraj ulaznog elogas, kada jeova naredba prldruZena izvr5noj ulaznoj naredbi, ili kraj izJ.aznog slogal,kada je ova naredba prldruZena izvr5noj izl,aznoj naredbi.

ViSe kosih crta navedenih jedna za drugom imaju slede6e znadenje:

a) Ako je n kosih crta navedeno na poCetku, lli na kraju naredbeFORMAT, tada ce n uraznih slogova brti preskoieno, odnosno izdato npraznih elogova na izlazu.

b) Ako se n uzastopnih kosih crta nalazi izmedju dva sloga, tada 6ena ulazu biti preskoden 1-1 nrezni slog, odnosno na rzrazu 6e biti izdatn-l prazan slog.

Tako, naredba

FORMAT(slo91 / / / sLog2 |

ima sledede znadenje:

(4.8. 4l

a) Na ulazu: sa prve kartice dita se slog1, i prva kosa crta oznaEavakraj ovog sloga. Druga i tre6a kosa crta oznadavaju prolazak druge i treiekartice bez ditanja, a zatim se dita slog2 sa detvrte kartice.

b) Na lzlazu: u prqyom redu ltampa se slog, , a zatim prva kosa crtaoznadava kraj ovog l;hrrog rloga. Druga i tre€a kqse crte prgizy0de p0

Page 27: Fortran Za Treci Razred Masinske Tehnicke Skole

46

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

je dato ne vodedi pri tome raduna o Prvom' komandnbm' qimbolu u LzTez'

nom slogu. Medjutim, slogr i slogz ' moraju imati' iao prvi simbol'ko-

mandni simbol za vertikalno pomeranje papira na Stampa€u' Deistvo ovog

simbola je nezavisno od opisanog dejstva kosih crta u 4aredbi FORMAT'

Primer

Saotavttl program koji celobrojnim promenljivim I' J i K dodeljuje

brojne vrednostl 8a jedne kartice, a realnim promenlilvlm A' B' C i D

sI.4. 8. I

kazan je nlZe:

dodeljuje brojne vrednosti sa druge ka-

kartice. Dodeljene brojne vrednosti

promenljivim 6tarnpat! na paralelnom

Stampadu, tako da su bojne vrednosti

promenlJivih I, J i K u jednom,a Pro-

menljivih A, B, C iD u drugom redu

Etamianog dokumenta. Opisi pojedi -

nih polja, i njlhov raspored na karti-

cama prikazani su na sl.4:8. t'

Izgled FORTRAN-Programa Prl-

READI 5t lOl I I J rKr A rBrCrOlo FoRHAT( t11l2lF7.2 rEl{.71 I

tlR tTEl 6r2Ol I I J1K1A181CrD20 FOR;{ATl. .r3ll0/. I t2lF7.2r2Xr€l{.7r2Xll

5 TOP

ENO

Tako za ulazne Podatke

I=386?; J=-4005; K=1100?

A=312,45; B=-42,58' 10t? ; C=-0,56; D=4, 13i06' l0-r2

Etampani dokument ima obUk

/A

r7.2

B

E14.7

c

=72

D

E14J

1867 -(005772.45 -0.4258000E l9

l 1007-0.56 0.{137O60F-l I

t

I5

I J

t5

K

I5

47

4,8,4. Yeza izmedju oplsa i liste

Posmatrajmo FORMAT-naredbu koja sleva na desno sadrZi n opisa

brojnih podataka. Ulazno-izlazna naredba, kojoj je pridruZena ovakva FOR-

MAT-naredba, neka sadrZi u listi m imena promenljivih. Ovde su mogu-

Ca tri sludaja:

1) Broj opisa u FORMAT-naredbi jednak je broju promenljivih u lis-

ti, tj. m = n. U ovom sludaju svakoj promenljivoj u listi odgovara jedan

opis brojnog podatka u FoRMAT-naredbi, Dodeljivanjem brojnih vrednosti

avim promenljivim u listi, po opisima u FOnMAT-naredbi, sleva nadesno,

lekoriSdeni su avi navedeni opisi u FORMAT-naredbi.

Tako, naredbe

READ(5, TO) AI, M4, K2, JOT

10 FORMAT(F?.3,3I4)

lspunjavaju uslov da je broj promenljivih (4) u listi, jednak broju opisa (4)

u FORMAT-naredbi.

2) Broj opisa u FORMAT-naredbi je ve6i od broja promenljivih u li-

Bti, tj. n ) m. U ovom sludaju svakoj promenljivoj u listi bi6e pridruZen

jedan opis u FORMAT-naredbi redom sleya nadesno, a ostatak opisa

(n-m), u FORMAT-naredbi ne6e biti iskorilden.

Ako se prethodno navedenoi READ-naredbi pridruZi druga FORI\{AT-

-naredba, tako da naredbe lmaju izgled:

READ(5, 1O)AI, M4, K2, JOT

10 FORMAT(F?, 3, 314,Erz. 5,12)

tada 6e promenljivoj A1 biti pridruZen opis F?.3, promenljivim M4,K2 i

JOT opis 14, a opisi E12.5 i 12 ne6e se koristiti.

Prema tome, ako u FORMAT-naredbi Postoji veCi broj opisa nego

6to to zahteva ligta naredbe READ, odnosno WRITE, tada ce biti iskoriEce-

no samo onollko opisa, sleva nadesno, koliko ima promenljivih u listi'

3) Broj opisa u FORMAT-naredbi je manji od broja promenljivih u

Usti, tJ. n ( m. Tada treba razlikovati dva elucaja:

Page 28: Fortran Za Treci Razred Masinske Tehnicke Skole

48r

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

be, koje ae zovu zagrade nultog nivoa, ne Postoje unutra6nje zagrade, tada

6e posle prolaska kroz sve opise, sleva nadeeno, do€i do prelaska na novi

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.

FORMAT (4.8.5)

Primer

Neka su brojne vrednosti promenljivih A, B I C zadate na tri kartice

sa opisom Fl7.2. Tada se dodeljivanje ovih brojnih vrednostl promenljlvim

moZe izvr5iti pomodu naredbi:

READ(5, 20)A, B, C

20 FORMAT(F7.2)

Naredba 20 definiSe ulazni slog od jednog polja sa opisom F?' 2, i u

podetku dodeljuje brojnu vrednost promenljivoi A. Iza ovoga, Po5to 6u i8-

crp€ni svi opisi u FoRMAT-naredbi, dolazi do formiranja novog ulaznog

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

slede6u karticu i dodeljuje se brojna vrednost promenljivoj C'

b) Ako izmedju spoljne otvorene i zatvorene zagrade, FORMAT-na-

redbe, postoje unutra5nje zagrade koje mogu biti prvog I drugog nivoa' ta-

da 6e posle prolaska kroz sve opise, sleva nadesno, do6i do prelaska na

slede6i slog i do ponavljanja opisa sleva nadeeno, koji 6e nalaze izmedju

zatvorene zagrade nultog nivoa i najbliZe otvorene zagrade prvog nivoa'

Oznadimo li dekadnim ciframa O' I i2 otvorene, a sa 0', l"i'2'za'

tvorene zagrade, nultog, prvog i drugog nivoa, tada Ce biti

(op1s1, opis2, opis3 )

0 I 2 2. l, 0-

49

(4. 8.6)

Primer

Na prvoj kartlcl ulaznlh podataka nalaze ee brojne vrednosti promen-rjivih N I E 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 _

ba dodelltl promenljivim Xl, X2 I X3. Naredbe koje obezbedluju unoEenje

ova"lndh podataka mogu ae zapiaati u ubllku

READ(5,40)N, E, Xl, X2, X3

40 FORMAT(Is, E12.5/(F9.4) )

Navedena FORMAT-naredba definiFe prvl ulaznl slog sa opisima IS

i Ef2. 5, I eledeGe ulazne alogove sa opisom tr'9. 4. Kraj prrog sloga je de-finiaan koeom crtom, a ostali ulazni slogovi su definisani izmedju otvore-ne zagrade pryog nivoe i zatvorene zagrade nultog nivoa. Broj ovih slogo-va zavisl od broJe promenljivih u listi READ naredbe. U navedenom prime-ru bi6e formlrana tri ovakva eloga.

4.8.5. Teket u FORMAT-naredbl

U doaadaBnJem izlaganju vldeli emo kako ge unose i lzdaju brojni po-daci. MedJutlm, vellkl broj brojnih podataka na izlazu 6ini nepregledntmitampant dokumeat, Zato je pogodno imati mogudnost tekstuelnog obja6nje-nJa Stampanlh rezultata. Da bl ge ovo omogu6ilo, u FORMAT-naredbi se

moZe navoditi tekst. Tekst je sastavljen od nlza elmbola: od slova, clfaraili specijalnih znakova. ovakav niz simboll zove se tekstuelna konstanta i-li literal. Broj simbola literela zov€ ae dullna literala.

Literal ge moZe definisatl na.dva nalina, kao

- niz simbola zapisanih izmedju apostrofa, ili- pomoCu poaebnog II opiea.

Page 29: Fortran Za Treci Razred Masinske Tehnicke Skole

50

Literal definisan izmedju apostrofa predstavlja niz simbola od kojih

je prvi i zadnji simbol apostrof, tj.' Iiteral' (4. 8. ?)

gde je

- simboi FoRTRAN-jezika,

literal - tekst sastavljen od glova, cifara ili specijalnih znakova'

Tako moZe biti zaPisan literal,VREDNOSi FUNKCIJE'

U okviru niza simbola, koji Eine literal u (4. S' ?), ne moZe ee nala-

ziti Jedan specljalni znak apostrof. Medjutim, ako se zeii naveEti apostrof,

u olwlru llterala, moreiu ee plsati dva apostrofa (il)'

Drugi oblik navodJenja teksta u FORMAT-naredbi vr5i se pomo6u o-

piea

nHllteral (4.8. 8)

gde je

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 Pleati1THVREDNOST FUNKCIJE

Kao Eto ee vldi, navodjenje teksta izmedju apoetrofa ne zahteva plsa-

nJe broja elmbola koji 6ine tekat, kao 6to Je to slulaj ea opieom (4' 8' 8)'

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-

ijffi; Holerlt je pronalaza6 uredjaja zh bulenJe kartlca, i po njego-vom imenu je ureto slovo H za opie teligta.

51

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

elogu.

Ako FORMAT-naredba gadrZi samo literale i opise praznih polja,

bez opisa brojnih podataka, tada naredba ulaza, odnosno.izlaza, kojoj se

pridruiuje ovakva FORMAT-naredba, ne sadrZi listu.

Primer

Sastavitiprogram koji izraEunava vrednost na oFnovu zadate cene ikoliEine. Na svakoj kartici nalaze se tri polja: ptwo polje sadrZi 5 kolona,

1 od 2. do 5. kolone buBi se Sifra robe, a prva kolona ostaje nebilSena. Dru-go polje eadrZi cenu robe, i opisuje se sa opisom F10.2. Tre6e polje sadr-Zi koliEinu robe i opieuje se sa FlO.2. Broj ovakvih kartlca moZe biti pro-izvoljan, a zadnja kartica u paketu, u polju za cenu, ima buSenu vrednost

nula (to moZe biti i prazna kartica). Za svaku karticu izratunati vrednost,

kao proizvod cene i kolidine, a na kraju obrade svih kartica Stampati sumu

avih pojedinaEnih vrednosti.

sI.4. 8. 2

Page 30: Fortran Za Treci Razred Masinske Tehnicke Skole

52

Na s1.4.8,2 data je Eema algorltma,

C - cena,

K - koliEina,

V - vrednost,

U - ukupna vrednoat.

FORTRAN-program ima 8lede61 lzgled:

gde su uvedene slede6e oznake:

HRITEI6'IO,fO FORilAfl I ISIFRAT rtXr rCEI{Ar r3Ir tKCLICIt{A'r{Ir TVR8DIOST'/l

UKUPN0'0REAOI5T3OI C€NArA(OLFORilAT{ lXt r5tt*t t2fLO.2tFLZ.2ln-(cENAl 4or5or{oVREO.CENA.AROLllRtIEl 6r 30l CENATAXOL rYREDUKUPNO.UKUPilOTVREIIGO Tn 20llRlIEl6r6Ol UKUPTIOFORfi Arl lgXr 18( lH- I /l9Xr rU!(UPNOt'Fl2'2/lSTOP ICNO

Za ula,zrrle podatke

AclS t2.oo io.ooDE36 t35.OO 12.50FAt2 15.50 4.?OaK50 t.75 300.00BB2l 200.oo 45.50

o.00

gde jedan Etarnpani red odgovara sadrzaJu Jedne karttce, Izlaznl rezultetl

6e blti u obliku

SIFRA CE'IIA KOL ICTT'IA VREOI{OST

2030

40

5060

ACls 12.00 36.00DE3{ l35.o0 l?.50FAl2 15.50 4.70aK50 r.75 3oO.OO8E2l 200.oo 45.rO

4t2.O0168t.50

12,85525.OO

9l 00.00

ur(uPllo I t8 l?. 35

4. 9. Elementarne funkciie

U mnogim matematldkim i tehnidldm zadaclma zahteva te izra€una-

vatrje elementarnih funkclja za zadate vrednosu argumenata'Ovaj problem

53

je reEavan u matematlci nekoliko stotina godlna unazed, i saetojao se u iz-nalatenju formula po kojlma se mogu izracunavatt tabuce za elementarne

funkctje. To ae najEeS6e vr6ilo razvfientem funkcije u stepene redove i.liprlmenom iteraclonih formula. Poelednjlh godina za lzradunavanje elemen-

tranlh funkclja llroko se kortste ortogonalni poltnomt, a posebno polinomi

Cebldeva.

RazvoJ elelitronaklh radunaldh maBina posebno je doveo do razvojaraznlh algoritama, koJlma ee mole lzraEuneti vrednoet elementarne funk-c$e sa zadatom tadno66u.

Neka je f(r) elemenatarna funkcija, Ciju vrednost treba odrediti za

zadatu vred[oat argumenta. Neka je g(x) aritmetidki lzraz po kojem se vr-6l prlblllno izradunavanje fttrkcije f(x), tako da Je

f(r) s g(x) (4. e. l)

Na raEunaru ee vr6l lzradunavanJe funkcije f(x) prlmenom aproksimacione

formule g(x). Apaolutna gre6ka prl ovon izraEunavanJu je

E=lf(x)-g(x)la relauvna gre6ka Je odredjena sa

e = | rt*L:St-ll

(4.9.2',t

(4. 9. 3)

Algoritrnl za izradunavanje elementarnih funkcija nalaze ae u memo-

riji ra6unara, i po pozivu se koriste za izradunavanje. Poziv algoritma za

izra6unavanje elementarne firnkciJe u FORTRAN-jeziku vrEi se ee

funkcija( * ) (4.9.4)gde je

funkcija - propleano lme eleme-ntarne funkclje,

V - arltmetiEld, Tzraz, diJa ae vrednost uzima kao argument

tunkclJe,

Funkclja zapieana u obliku (4,9.4) moZe se nala?itl kao argument u

arltmetlEkom lzrazu. Izra6unavanje funkcije predstavlja operaciju najvi-Eeg priorlteta u aritmetlCkom lzrazu. Proplsana lmena funkclja predstav-

ljaju uoblEajene matemattdke oznake ovih funkclja. Od toga ee odatupa aa-

mo u sludajevima kad to ne odgovara uvedenim konvencljama FORTRAN-

-Jezlke.

Page 31: Fortran Za Treci Razred Masinske Tehnicke Skole

il

Vremene izraCunavanja eletnentendh funkcija, navedena u daljem

tekstu, odnose se na radunar IBM-360/44 bez specijalnih regletara, kojl-

ma ge moZe povedati brzina rada raEunara.

4.9. l. Eksponencijalna funkcija

Eksponericijalna funkelja (ev ) piEe se u obliku

EXP( v ) (4. e.5)

gde lzracunata vrednost ergumenta +, mora blri realan broJ, a vrednoet

funkciJe b16e takodje realan broJ. Vrednost argumenta mora zadovoljavatl

uBlov

* ( 1?4,6?3 (4. s.6)

Vrednost argu.menta koJa ne zadovoljavd udov (4.9.6) dovodi do broj-

ne vrednostl funkclje koja ne moZe biti registrovana u reglstru memorije

(prelazi opseg iealnlh brojeva). Ako je

v <- 180, 218

onda se za vrednoet funkclje uzlma nula. Ako je

lvl<o,s?3.10-8

4, 9. 2. Logaritameka funkcija

Logaritamska funkcija se pl5e u obliku

ALOG(q)

ako se radl o prirodnom Iogaritmu (rnv ) ili

(4. 9. ?)

(4. e.8)

vrednost funkcije je l. Relativna greSka ovako lzradunate funkclje iznosi

E (0, 18?. 10-6 (4. e. e)

Srednje vreme lzradunavanja eksponecijalne funkcije iznosi oko 310 4sek.

ALOGIo( * )

(4. e. l0)

(4. 9. l 1)

ako ee radi o dekadnom logaritmu (log'y)' Izraeunate vrednosti argumenta

i funkcije eu reali'd brojevi. Kako naziv logaritamske funkcije, u uobidaje-

noj matematidkoj notaciji, podinje slovom L, a ovo slovo po ullutra5njoj

55

konvenciji FORTRAN-jezika ukazuje na celobrojne vrednosti, to je ispreduobidajene oznake funkcije, u FORTRAN_jeziku dodato slovo A.

Argument u logaritamskim funkcijama (4.9. l0) i (4.9. 11)mora ispu_njavati uslov:

v>0

Relativna greEka pri izradunavanju funkcije je

€ < 0, 3?2. l0-8Srednje vreme izradunavanja logaritamske funkcije

4.9.3. Kvadratni koren

(4. s. t2l

(4. e. 13)

iznosi 230 s.sek.

Izradunavanje kvadratnog korena (y'i)ta, piSe se sa

za zadatu vrednost argumen-

SQRT( v ) (4. s. 14)

gde su izradunate vrednosti argumenta i funkcije rearni brojevi. vrednbstargumenta mora ispunjavati uslov

v>0

Relativna gre5ka pri izradunavanju kvadratnog korena iznosi

(4. s. l5)

(4. s.16)€ <0,298.10-?

Srednje vreme izradunavanja kvadratnog korena iznosi oko 140 s.sek.Ranije smo videli da se kvadratni koren mogao izraeunati preko ope_

^acije stepenovanja, tj.

(*)**0.5 14.9.17)

Medjutim, ovde treba imati u vidu da se izradunavanje stepena (4.9.171naradunaru vrii kori5denjem logaritmovanja i antilogaritmovanja. prema to_me, oblik (4.9. l7) je isto Sto i

EXP (0.s * Ar,oc(e)) (4.9.18)

Kako se izrazorrr (4.9. lg) poziva logaritarnska funkcija, dije vremeizvrSavanja iznosi 230 psek, i eksponencijalna funkcija, dije vreme izvr_Sivanja iznosi 310 Esek, to 6e izradunavanje kvadratnog korena trajati

Page 32: Fortran Za Treci Razred Masinske Tehnicke Skole

56

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

ko funkcije (4.9. 14) 4 puta brZe nego preko operacije stepenovanja (4'9'l?'

4. 9. 4. APsolutna vrednost

Apsolutna vrednogt aritmetidkog Lzraza( I'r'I ) pi$e se sa

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

gde su izraEunate vrednosti argumenta i funkcije realni brojevi'

Ako je izradunata vrednost argumenta ceo broj, apsolutna vrednost

se pi6e u obliku- IABS (v ) (4' e' 20)

pri 6emu je i vrednost funkcije ceo broj. Za ovtt funkciju Ee ne postavljaju

ogranidenja na vrednosti argumenta'

Srednje vreme dobijanja apsolutne vredngsti broja iznosi oko 4 sek'

4. 9. 5. Trlgonornetrijske funkclje

Kod svih trigonometrijskih funkclja izrarunate vrednostl argumenta

i fuikcije su realnl brojevi. Argument trigonometrijske fu[kciJe mora biti

zadat u radijanima'

a) Trigonometrijska funkcija sini pi6e se u obliku

SIN( V )

gde mora biti isPunjen uslov

lvlca, z3s.1o'

Relativna gre5ka, pri izra6unavanju funkcije, je

c < 0, 372. t0-8

a srednje vreme izvrSavanja oko 200 psek'

b) Trigonometrtjska funkcija cosv se pi5e u obliku

cos(v )

gde mora biti ispunjen uslov (4' 9. 22). Relativna gre5ka prl

koslnusne funkcije je

e ( 0,298' l0-t

(4. s .2tl

(4. e.22)

(4. e.23)

(4.9.241

izradunavanju

(.r.9.25)

51

a srednje vreme izvr6avanja oko 200 pgek.

c) Trigonometrijska funkclja tgV piSe se u obliku

TAN(*) (4.9.26)

gde mora biti ispunJen uslov (4.9. 22), pri demu vrednost argumer$a ne

eme bltl

(4.9.28)

coTAN( { ) (4.9.29)

gde mora bltl lepunjen uelov (4.9.22), pri 6emu vrednoet argumenta ne

gme biti

**(r. . |)"gde je k ceo broj.

Relativna gre6ka pri izraCunavanju tangesa je

c{1, ?4.10-8

a sr€dnje vreme izvrEavanja oko 22O y.eek.

d) Trlgonometrljska funkcija ctgv pi6e se u obllku

*^r kn

gde je k ceo broj.

Relatlvna gre6ka prl tzra6unavanju kotangensa je

a1|.74. lo-8

a srednje vreme izvrBavanja oko 227 ueek.

4. 9. 6, Inverzne trigonometrljske fun*ciJe

ARSIN ( V )

gde mora bltl lepunjen uslw

lv lrtRelatlvna greSka prl lzra6unavanju funkciJe Je

{4.9.2?)

(4.9.30)

(4. e. 31)

(4. e.321

(4.9. 33)

(4.9.34)

Kod svih inverznlh trigonometrijskih funkcija izraEunate vrednoeti

argumenta I funkc{e eu realni broJevl.

a) lnverzna sinuana funkcija (arcgln v I se pl6e u obllku

e{0,3?2' l0-E

Page 33: Fortran Za Treci Razred Masinske Tehnicke Skole

5E

a srednje vreme izvr5avanja oko 310 &sek.

b) Inverzna kosinusna funkcija (alccos v ) pi6e se u oblilcr

ARCOS( v) (4. e, 3s)

gde mora blti lspunJen uslorr-(4.9.33). Relativna greEka je ista kao kod in-verzne sinusne funkcije (4.9.341, a srednje vreme izvr6avanja iznosi oko

325 psek.

c) Inverzna funkcija tangenea (arctg V ).p15e ee u obllku

ATAN (e) (4. e.36)

gde lzracunata vrednost argumenta moZe blti ma koJl realau broj. Relativ-ne gredka pri izracunavanJu funkc{e je

e(0, ?45.10-6 (4. 9. 37)

a srednje vreme izvrBavanJa oko 165 psek.

4.9. ?. Hiperbolldne funkc{e

Kod svih hiperboUtdh funkc[a izradunete vrednogti argumenta i fun-

kc{e su realnl brojevi.

a) Hlperbolldna slnuana funkctja (stnh V ) piEe ae u obllkra

srNH( e )

gde mora biti iepunJen ualov

lvl(r?4,6?3Relatlvna gre6ka pri lzraCunavardu funkcije je

(4. e. 38)

(4. e. 3e)

(4. 9. 40)e<0,149.10-?

a srednje vreme izvr6avanja oko 460 ssek.

b) Hiperboltdna kosinusna funkcija (coshv ) pi5e se u obliku

cosH( { ) (4.9.4r\

gde mora biti ispunjen uslov (4.9.39), a relativna gre5ka je ieta kao kod

hiperbolllne sinusne funkcije (4.9.40). Srednje vreme izvrSavanja iznosi

oko 485 p.sek.

I

I

l 59

c) Hiperbolidna tangensna funkcija (tgh V ) pi5e se u obliku

TANH( v ) (4.s.42)

gde izradunata vrednost argumenta moze biti ma koji realan broj. Rerativ-na gre5ka pri izradunavanju funkcije je

€ < o, ?45. 10-8

a srednje vreme izvrEavanja zavisi od vrednosti argumenta90 do 450 rsek.

Primer

(4. 9.43)

i kre6e se od

Na sedam kartica je zadato ? vrednosti za argument x, sa opi.somF8. 4. Izradunati vrednosti funkcija

y' = I -e-rsin2x+log(coszx).tgl,xy, = arcsin (1ft)+ tnlxl. arctgx

y, = y'Jr -tfril'+ sinhx - 2coshx

i Btampati u obliku tabele.

FORTRAN-program u ovom eludaju irna izgled:t{RItEt6,lo0t

100 F0R|{AI{ . I r 14X1 rX. r l4Xr' yl. rl5Xr.y2r I l5Xr . yr. t II=0l0 REAO( 5t200, x

200 F0RHAT(F8.4tvf = f .-Exl(__X, iSlN{ 2..X1 +ALOGtO(COS t X t +rZ } |TAN( x Iy2 = ARstil(x/loo.l+ALoctleS(xit*ArAil(xt _- .--..,..ry3 : SeRTtABS{.1._rANHtxf r fiiinnrxt_2.*cosH(xtltRtTEl6r:t001 xr Ylr Y2t Y3

_300 FoRr{ATt, . rF8.4ltl1ltii.ttI = I+lIFI I-Il lOr20rl0

20 sroPEND

IzLazni rezultati su Stampani u obliku tabelex Yl Y2

-75.t42t -o.5E284798 12 _0.7584949E-34.2885 -0.3989898E 15 _0.57991888-28.oo12 -0.i{87e51€ lz _o.stssiiie-2.t4to _0.erloe55€ ol _o. rol6irtE0.5604 0.3ell?scE 00 _o.zsiroile5.zoza 0..?z2s44sE or o.ziisilir17.3333 0.(72891rE 02 0.44;o7i7E

ol0l0t0lo00t0l

Y3

-0.7888761E 33-0. l16?8758 l6-0.2176315E r3-o.t42?1BtE 02-0.1035359E 0l-0. e08e070E 02-0.16854888 08

Page 34: Fortran Za Treci Razred Masinske Tehnicke Skole

{. 10. Niredbe promenljivog bezuslovnog prelaska

Uslovns naredba prelaeke daje moguCnost grananja programa u trlrazlidite grane, pri 6emu je evaka pd njih usrovljena vrednosdu aritmetid-koglztaza. Vrednost aritmetidkog izraza se ispituje da Ii je manja, jedna_ka ili ve6a od nule. pored ovakve naredbe uslovnog prelaska, postoji i na-redba po kojoj ee prelazak vr5i po brojnoj vrednosti promenljive. Ovu na-redbu 6emo zvati naredba promenljivog bezuslovnog prela'ka. opSti oblikove naredbe je

GO TO (Uete),t (4. 10. t)gde je

GO TO - slulbena red, i oznaEava nafedbu prelaeka,lieta - epieak obelezJa izvr5nrh naredbt u programu medju sobom

razdvojenlh zal"ezlmE,

i - irne celobolne promenljlvg.

Neka llsta u (4.10. l) sadrri m obelezja, eleva nadesno oznadenlhsa 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.b) Ako je brojna vrednoat promenlJtve I = 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 odgovarajuclprosttji grafldld prlkaz (sl. 4. 10. 2]..

u FoRTRAN-jeziku poetojt r elternatrvni obrrk naredbe promenljivogbezuslovnog prelaska, koJl se pi5e

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

GO TO - eluZbena red, I oznadava neredbu prelaaka,

i - lme celobrojne promenljive, a

Ueta - spleak obeleZJa izvrdnih naredbi u programu medju sobonr

razdvojenlh zarezlma.

61

Ako llsta u (4. 10.2) sadrZi m obelezja, sreva nadesno oznadenrh sarr,o2,...1'6 tada promenljiva i! mora imatl jednu od vrednosti zapiea_nih kao obeleija nr, nz 1...,n6, u trenutku izvrBavanja naredbe 14, ro,z).Izvr6avanje ove naredbe prouzrokuje prerazak na naredbu sa obererjem do_deljenim promenljivoj i. promenljivoj i moie se dodeliti obelezje u makojem dehi programa naredbom

ASSIGN n TO i (4. 10.3)gde je

ASSIGN - sluZbena red, i oznadava dodeljlvanje vrednosti obeleZjapromenljivoj,

- obeleZje izvrEne FORTRAN_naredbe, a- ime celobrojne promenljive.

sI.4. 10. 2

Dejatvo naredbe (4. f0. g) je elede6e: obelertrJe n( ltr, trr,...,,r.ldodeljuJe ae celobroJnoj promenljrvoj !. ovae je vazno imatr u vrdu razrikuizmedju obelezja i celog broja. vrednost obelerja ne more biti dodeljenapromenllvoJ! ako ge koristi aritmetidka naredba

t=n ({.10.4)

Razlog za ovo je interno predstavljanje informaclja u radunaru. ObeleZjekao lnformactja u ra.unaru nlje ceo broj nad kojrm se mogu rzvoditi arit-

n

i

IriirtNAREDBA

sI.4. 10. r

n/nr

Page 35: Fortran Za Treci Razred Masinske Tehnicke Skole

@

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-

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, ako je k = I

| ,*r-", )2+(x3-xs)2 ako je k = 2

yr = 1 4(x1-x2)(x2-r3)+xlxzxr ako je k = 3

t (r1+x2 +xr)s-8x1x2x! ako ie k = 4

(l)(2t

(3)

(4)

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-

denjem naredbe promenljivog bezuslovno g prelaski.

a) Prvo relenje: bez koriS6enja naredbe promenljivog bezuslovnog

prelaska.

Sema algoritma, u ovom sludaju, prikazana je na sl.4. l0' 3.

U algorltmu 8e dodeliuje, pre izratunavanja funkclje, simbol (*) kao

vrednost odgovarajude promenljive. Zatim 4e ovaj simbol biti zamenjen

vrednoEdu funkcije, u odgovaraju6oj promenljivoj y1 , Jr, y, ili y, , a u

zavi€nosti od toga po kojoj formuli 6e biti vrieno izradunavanje' Na ovaj

naEln u algoritamskom koraku lzlaza bi6e izdata brojna vrednost promen-

live k i jedne funkcije Yr, Yz, Y3 ili Yr' a ostale funkclje de biti izdate

kao almbol zvezdLce.

63

)x,G1.13,1

sI.4. 10. 3

Ovakav oblik izlaza u FORTRAN-jeziku ostvaren je dodeljivanjem

promeljivim yl, Y2, Y3 i Y4 brojne vrednosti ve6e nego Sto je to predvi-

djeno opisom odgovaraju6ih promenljivih u FORMAT-naredbi koja je pri-

druZena izLaznoj naredbi. Kako je promenljivim yl, y2, Y3 i Y4 pridru-

Zen opis F9.3 u FORMAT- naredbi sa obeleZjem 400, to znadi da rezultat

moZe imati najviSe 5 celih mesta. Ako se promenljivim dodeli brojna vred-

nost koja ima ve6i broj celih mesta, na predvidjenom polju za Stampanje

vrednosti promeljive bi6e Stampane zvezdice. Zato ie promenljivim Y 1,Y2,

Y3 i Y4 dodeljena brojna vrednost C = 108 , koja 6e pri izlazu dati simbole

zvezdice za one Promenljive kojima se za zadate vrednosti ulaza ne dode-

ljuje programom izra6unata vrednost po jednoj od formula (l), (2), (3) ifi

Page 36: Fortran Za Treci Razred Masinske Tehnicke Skole

(4). FORTRAN-program eastav$en po algorltmu na sl.4. 10. 3. lma el,ede-

Ci izgled:tRITEt5rlool

lO0 FORilATI 3Hl Kr gIr rYl t r lOXr I Y2d r l0Isry3. rlOXr . y4. I IREAD(5r2O0l N

200 FoRxaTl t2tlO lF{Nr 2Ot2Ot3O20 sToP30 READ(5r30OI Kr Xlr X2r 13

3OO FORfiATI l?tTXrtl tXrF?.41 IYl . .lE9Y2rYlY3=YIY4jYllFlr-ll 40rllr4o

40 tF(K-21 iOt22r5050 lFl(-31 6013316060 lFlt(-41 7Ot44t'1044 Y+ . lll+X2rx31..3-E.rxlrx2.I3.r2

GO TO 7033 \€ - {.t(Xl,-X2lrlX2-X3l.Il.XZrI3

G0 ro 7022 Y2 . (Xl-I2l.a2+(I3-Ill.r2

GO TO ?Oll yl r 2..x1r.2+3.rxz..2+4.rl3rt2?O LRITE(6r4OOl Kr Ylr Y2r Ylr Y4

4OO FO8flATl. t tl2t2\t1(3IrF9.3l INrN-lco to loEND

tU prograpu Je promen[lvoj Yl dodeljena brojna vrednoat , lE9, tj.

l0l (prva traredba lspod naredbe sa pbeleuerp 3091. 4 zetlm promenljlvlm

Y2, Y3, t Y{ dodelena je brojna vrednogt promen}jlva Yl. Ovo je moglo

bittzaplFanoiuobllku

Yl = .1Eg

Y2= .rEgY3= .lEOY4= .rE9

Medjutlm, zapls sproveden u programu krcdt Je I prula manJe 6anri

za gre6ke pri bu5enJu kartlca. O ovome treba voditl racuna prl pisanju

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 unose d opleom F?.4. MedJutlm, u polJu, na ksrtlcl, gde b'e

65

busi brojna vrednost argumenta declmalna ta6ka se mote nalaziti u bilo ko-joj koloni, r sve brojne vrednostr 6e biti korerrtno proditane. ovo je omogu-deno time 5to ukoliko poetoji neusaglaBenost izmedju broja decimalnih me_sta zadatih opisom I odredjenlh declmalnom tackom na kartlci, bi6e v8ra6ipolozaj decimalne taEke na kartict, a ne onaj zadat opisom. ovo je ilustro-vano i zadatlm ulaznim podaclma, gde se vldi da declmalna tadka nije u ie_toj koloni kartice:

6204I34

Izlaz'nl rezultati, za

K

4.2 -t.4 o.g3.e -5.O 4.4r 1.0 l.Z5 -3.6-0.4 1.05 -O.99I.35 0.62 -1.21.-6.20 0.48 L.256navedene ulazne podatke, Stampani eu u obliku tabele:

Y4Y3Y2YI

2 r:ttt*t't'r* +2.920 **,r*rr**,* ***t*rr**O attlat*lt* *,t!rt*:ra** *,r**trf++ tt***,.*:l*4 t+lat*ttr a*rt***nt ********* _lJ2.06OI l rt+B tl*t!t.r:.!i **r**t*** :l**at!3tl*3 *rtrrt:rrt {,+,t*,r*t,3:tr LO.705 *,r****t*,4 ,ltttf tll.+ tlr*t,t*t*t l*****r** _ 5r. 3gE

Prva kartica ulaznih podataka eadrii broj n, koji u ovom sluEaju i_ma vrednost 6. Druga kartica sadrii argumente za koje se vrednost funkci-je raduna po formuli (2). U pvroj koloni treCe kartice nalazi ee nula, 6toznadi da ne6e do6i do raEunanja ni po jednoj od formula (tl, e), (g) i (4).ostale kartlce sadrze argumente za koje ee ra.unaju vrednosti funkcijaredom po forrnulama (4), (l), (g) i (4).

b) Dnugo re6enje: sa kortBdenjem naredbe promenljivog bezuslovnogprelaska.

Sema algorltma, u ovom sluiaju, prikazana je na sl. 4.10.4. Algori_tam je isti. kao i na sI.4. 10. 3, samo Sto je ispitivanje vrednosti promen{i-ve k jednostavnije. FORTRAN-program zapisan po algoritmu na s1.4.11,4.ima slededi izgled:

Page 37: Fortran Za Treci Razred Masinske Tehnicke Skole

6

+4?0

400

t{RtIEt6rl00lIOO FORI{AT(3Hl XrgXr tYlr;tOXf .y2r rl0Irry3rrl0Xr tfq. f IR€AOt5r200l N200 FoRr{atl I2tlo lFlNl 20r20rtO20 sIoP llt0 REAOl5r300t Kr Xlr Xzr Xt

300 FORllAtl l2t3Xt 3l 3X,F7.4t IYl = +0.1E+0912 - O. l.€ +9Y3 . . lE09Y4 = .lE9GO IO (Llt22t3tt44rr N

GO TO 701.1 Yl = 2.rXl*t2+3.r12**2+4.rXt.tz

GO TO ?O22 Y2 - (Xl-x2trr2+(x]_Xlrr.2

co to ?033 Y3 . 4.1(Xt-X2trlX2-X3r+XlrX2rX3

GO rO 70Y4 r lXl+I2+x3trr3-B.rXlrxz*x3.rzIRITE(61400l l(r Ylr Y.2r Y3t y4FORIIATI t t;12tZXt413XrF9.3l tN . l{-lGO tO r0€l{o

Neka obja5njenja programa:

l) Brojna vrednost lOt prolnenljivim y1, y2, y3 i y4 dodeljena jearitmeti6kim naredbama (prve Eetiri naredbe iza naredbe sa obeleZjem300), u kojirna je konstanta na desnoj strani zapisana u razliditim oblici-ma. Ovo ilustruje ekvivalente oblike zapisa iste konstante.

2J Znaci blanko (medjuprostor) su bez znaiaja ispred i u okviru za_pisa naredbe.

3) Iza naredbe STOP moie stajati prtoizvoljan, mak$inum petocifre-ni broj. Ovo je ilustrovano naredbom STOP pa obeleZjem 2e, ipa koje sto-jt broj 1l (proizvoljno izabran).

Obe navedene varijante progr:rma za iste ulazne podatke daju iste iz-Iazne rezul.tate. Plema tome, ovi programi su medju sobom ekvivalentni,I tim Sto druga varijanta predstavlja kra6i, pa prema tome i bolji zapis

Programa.

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 otkriveneprl 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. 1) dopiean je deo ERR = n, a ogtali deo naredbe je ranijeobJa6njen. 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

razloga:\

67

sI.4. 10.4

Page 38: Fortran Za Treci Razred Masinske Tehnicke Skole

- buBenjem nevaledeg koda u kolonl kartlce, ilt- neregularnlpn pololajem buiotlna na kartlci.

4.tL.2. Kraj ulaznih podataka

Kraj ulaznlh podataka moZe ge kontrolleatl programakl De dva nedl-

na:

a) unoSenjem broja ulaznih podataka, pre podetka unoEenJa podataka

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

prebrojavanjem unetih podataka (vidi primer na kdju odeljka 4. l0).b) U paketu ulaznih kartica aadriaj zadnje kartlce moZe bitl karakte-

ristldan. Kraj ulaznih podataka u ovom glulaju raapoznaje Be identiflkaci-jom karaheristiEnog sadrZaJa zadnJe kartlce (vidi prlmer na kraju odeuka

4.8.5).

Pored ovih naclna raspoznavanja kraja ulaznih podetaka, ovo a€ nro-

Ze oetvariti i naredbom ulaza

READ(I,J,END=n) Usta (4. lr.2)

gde je END = eluZbeni niz simbola, a n obeleZje jedne lzvrEne FORTRAN'

-naredbe u programu, Naredba (4,11.2), po uno6enju gvih ulaznif podataki,

vrEi preno6enje upravljanja na FOBTRAN-naredbu sa obeletrjem n.

END i ERR mogu 6e po.Zeljt piaati u READ-naredbl. Moraju se pisa-

ti lza obeleZja FORMAT-haredbe j, a njlhov redoeled navodjenja je bez zna-

6aja. Tako se pored (4. 1 I. I ) i (4. f 1, 2) mogu plsati I obllci

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

READ(i, j,ERR=nr,END=n1 ) Lieta (4. 11.4)

Naredbe (4. f1.3) t (4. f1.4) su ekvivalentne.

4. 12. Deklarisanje vrste promenljive..-Unutradnja konvencija FORTRAN-jezika razdvaja promenljive po vr-

eti, na cilobrojne I realne, u zavisnosti od prwog slova imena promeljive.

Medjutim, nlje teEko pretpo6taviti da ime promenljive, koje odgovara pri-

69

rodi promenljive u problemu koji ee re6ava, moze btti u auprotnostl ss u-nutra6njom konvencijom o vrsti promenljive. Tako, MASA, kao ime pro-menljive, po unutra5njoj konvenclji jeete celobrojna promenljiva,a po pri_rodi problema, predstavlja fizidku veridinu koja po praviru nrJe ceo broj.

Da bi Je omoguEilo imenovanje promenljivih u auprotnosti 6a unu_tra6njom konvencijom, uvode se opisne naredbe koJima se moze deklarisa_ti vrsta promenljive po Zelji progratnera, Deklaracija vrete promenljiveopisnim naredbama, moZe biti: eksplicitna i implicitna. I jerrna i druga de_klaracija je starija od unutratrnje konvencije FORTRAN_jezika.

Opisne naredbe za deklaraciju vr6te promenljive pi6u se na podetkuPrograma.

Ekspllcitna deklaracija

Ehsplicitna deklaracija vrste promenljive omoguduJe deklarisanje iz_vesnlh imena promenljlvih kao ceLobrojnih, odnosno realnih promenljivih.Op$ti oblik ove opisne naredbe je

vrsta Usta (4.12, tlgde je

vrsta - eluZbena red INIEGER ili REAL,liata - spieak imena promenljivih, medju sobom razdvojenih zarezi_

ma, koje se deklari5u po vrsti.Tako oplsne naredbe

INTEGER A,GODINA, 812

REAL JOT, MASA,16

dgktrritu, u programu na dijem se podetku nalaze, prornenljive A, CODI_NA i Bf 2 kao celobrojne, a JOT, MASA i 16 kao realne pronenljive.

)4. 12. l,/Implicitna deklaracija

'--^-f

Eksplicitna deklaracija.eluZi za deflnieanje vrate promenljive po

konkretnom imenu promenljive. pored ovakve deklaraclje, Eoze se vrstapromenljlve deklarlsatl po poEetnom slovu imena promen{lve. Ovakva de_klaracija se zove lmpllcltna deklaraciJa vrste promenljlve t zadaje se opi-snom laredbom:

Page 39: Fortran Za Treci Razred Masinske Tehnicke Skole

70

IMPLJCIT USIA (4.12.21

gde je

IMPLICIT - slulbene red, t ukazuje na implicitnu dekkiraclju vrstepromenljlve,

lieta - spleak saetavljen od elernenata medJu eobom razdvoJe-

nlh zarezima.

Elemenat liste u naredbi (4.12.2) je obllka

vrsta (lletal ) (4. 12.3)

gde je

vrata - slulbena re6 INTEGER ili REAL,

listal - episak velikih slova engleske azbuke medJu sobom razdvoje-

nih zarezlma.

Sve promenljive 6ija imena podinju elovima navedenlm u llstil , prl-padaju po vretl celobrojntm ili realnim promenljivim saglaeno sluEbenoj

re6i (INTEGER iU REAL), koja stoji na meato re6i vrstq, ispred odgova-

rajude llete.Ako slova engleske azbuke u (4.12.3) alede u azbudnom redoeledu,

- moZe ae umesto navodjenja svih slova, navesti aamo Prvo i zadnje. elovo

razdvojeno povlakom, tako da elemenat Uste moZe imati obUk

it: az

gde su a1 i az vellka elova engleske azbuke.

Primer

(4.12.4)

Opisna naredba

IMPLICIT REAL(I, L), NTEGER(A-F, Q)

deklari5e, u programu na 6ijem se poEetku nalazi, promenljive dije ime

podinje slovom I i L kao realne promenljive, a promenljive, dije ime

poElnje slovom A, B,'C, D, E, F iQ kao celobrojne promenljive.

?l

4.13. Tekstuelna obja5njenja u programu

4, 13. 1. Privremeni prekid rada i poruke operatoru

Naredba STOP prekida rad po programu bez mogu6nosti nastavljanja

rada po istom programu. Medjutim, ako postoji potreba da se izvr5i izve-

sna manipulacija u toku rada programa, kao Sto je promena ulaznih kartica,

papira na Stampaeu i sl. moie se izvr5iti privremen prekid rada po progra-

mu, Ovo obezbedjuje izvr6na naredba

PAUSE (4.13. l)gde eluZbena red PAUSE ima znaEenje privremenog prekida rada po pro-

gratnu. Naetavak rada po programu vr5i operator odgovarajudom manipu-

lacijom na komandnom pultu radunara. U nastavku rada, po programu, iz-vr3avanje programa podinje naredbom koja sledi iza naredbe PAUSE ko-jom je izvr5en privremeni prekid rada po programu.

Ako postoji viSe naredbi za privremeni prekid rada po programu, o-

ne 6e mogu ozna6iti brojevima. Tako se moZe pisati

PAUSE n (4. 13 , 2l

gde je n neoznaden ceo broj koji ukazuje na naredbu kojom je izvr5en pri-vremeni prekid rada po programu.

Ako se Zeli izdati saop5tenje kojim se obja6njava razlog privreme -nog prekida rada po programu, moZe se pisati

PAUSE Uteral (4.13.3)

gde je literal tekot kojt ee biti Stampan kao poruka operatoru ili programe-

ru.

Tako naredba

PAUSE ,PROMENITI PAPIR NA SIEIIPAEUI

vr6i privremen prekid rada po programu, i Etampa tekst koji ukazuje ope-

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.

Page 40: Fortran Za Treci Razred Masinske Tehnicke Skole

72

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 ulaznlmkarticama, 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

zavrte parova. zadatih dlmenzija r i a odreditr koordinate teziEtapovrEine na e1.4. 14. l. Velldine g i : su zadate sa dva gela i dva decl _

malna mesta. Rezultate flqmpail u obllku tebele:

IZRAEUNAVANJE TEZISTA

sI.4. 14. r

Koordinate teZi{ta na eI.4. 14. l, mogu se izradunatl pomoGu formula

X=- (4. 14. I )

(4. 14.2)4r2 -3a2

Y = siF7iiSema algorltma prikazana Je na s1. 4. 14.2

XYAR

er.ffi.

?3

sl.4. 14. 2

Program eastavlen po dgorltmu na el.4. 14.2 lma aledeGi izgled

C TEII3TE RAvNE FIGURElRlfEl6rl0l

l0 FoRtttt r tr ll3rr I lzRAcuilAvAr{JE rEilsrar/lr0r r7I r I Rt ;91 1 .A. r 9xr I I.,9xr .Yr / IR€AOl5r20rEtlO.{Ol R' AFoRfiAT t 2F5.2 tX r -AtR/l3.l4rR+2.rAtY s (4.*Rlr2-t.a[.rz, I lt.*3.14*R+6.*AlrRITEl6r30l Rr Ar X, Y

30 FoRllATlr rr4Fl0.2tGO TO l5

40 rRtTE{6r50150 FOR'IATI IOI I'KRAJ PROGRAIIAI I

sroPENO

Za zedate ulazne podatke, lzlazrrd rezultatt se dobijaju u obliku tabele:

IZR CUilAVANJE TEiISTA

AI Y

-2.30I .956.65

I520

R

30.o030.00{0.o0

(RAJ PROGRA'II

40.o030.0030.OO

-6.89-5.84-6-47

Page 41: Fortran Za Treci Razred Masinske Tehnicke Skole

?571

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

(4. r4.3)

I gtandardno odetupanje

6= (4. 14.41

kao I odstupanje pojedinih merenja od arednje vrednoeti.

lzLezne r"ezultate Stampatl u obliktr tabele:

X - NADX

SREDNJA VBEDNOST = i

STANDARDNO ODSTUPANJE = o

Algoritam je prikazan na sI.4. 14.3. Kao Eto ee vidi ea slike, atgorltam

ee aastoji iz dva dela. U pnrom delu ge vr6t uno6enJe ulaznih podataka u

cilju izra6unavanja srednje vr€dnoetl, a u drugom delu ae vrbl ponovno u-

no6enje ulaznlh podataka u cllju lzradunevanja odstuPenJa Poiedlnih mere-

nJa od erednje vrednostl I lzradunavanja etandardnog odstupanja'

- 1$" =i &*,

(i I o'-'))i

xN

I2

cC

c

sI.4. 14. 3

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

PROGRAIT ZA IIRACUNAVANJEiniin.rt vREonosrt I sTANDARDNoc oosruPANJA

REAL NAOX

^l=ONADX = 0.ll0 REAOl5rl0rEND=201 xlo FORqAT(FlO.0l

TADT = NADX+XN=N+lGO TO 30

20 PAUSE IPOSTAVITI PONOVO ULAZN€HRlrEl6r40l

h+1, n

tzL..n,x,x,r

PODAT'(E NA CITACI

Page 42: Fortran Za Treci Razred Masinske Tehnicke Skole

7877

40 FORXAT {/ I I I I tx t.N. r l2X r I X I r I 5xr . I_tI ADx. LIIADI = NADX./NN=0SICT|A - 0.

70 R€ADI5rl0rEt{D'50} tfl r t{+lIR : X-ltAOXSIGIIA . SIGilA+XRtXRTRITE(6r601 Nr Xr rR

60 FORIIATI r ir J3r5XrEl4. 7,5X,Et{. 7'co To 70

50 SIGllA r SQRTIStcHA/NtTRIIE(6,80I NADT,SIGTIA

80 FORt{Af(/. SREDNJA VRCDI{OST-.,it4.ttl*. STANDARDNO oosTupAr.t.re.i reri. zt

STOPENO

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

Algoritam za izradunavanje korena Jednadine (4.14.5) prlkazan jena s1.4. 14.4, gde je uzeto da je e = l0-r

sr- 4.14.4.

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

C PRT'IEi TTERACIONOG POSTUPKAccC TILAZ ZIGIAYTJA TABELEc

tR trE ( 6r'10otIOO FOR'IATIIIIZR,A'UilAVANJE KORENA JEONACIXE'.f Sll{lX, . AlXr ll /l6Xr rArrl2XrrXr/lcC ZADATA GRANICA APSOIUTII€ ERES(E tEPS'c

CP3'l.E-{

3 0.21r6500E 0l -o.538t3t8E Ol{ 0.21820008 035 0.2210000E 036 0.22{}500E 037 o.22652008 Ot

SREDAIJA VREDNoSI= O.22lO3L3E 03

STANDARD{O TIDSTUPATT|JE= O.3472305t Ol

4. 14. 3. IzraCunavanje korena transcendentne jednadlne

Odredlti naJmanJl pozltivan koren tranecendentne jednaClne

"irr'=* (4.r4.s)x

za zadate vrednoett parametra A 1z lntervarq [0, t; t,0j. Zt tzra6unava-nJe korena prlmenitt lteratlvan poatupak

AXtrr =

-

aU Xl

gde je xo = tr/2. Iterativan poetupak prektnud kada bode lepunjen ualov

NX

I 0.2190000E 032 0.2225000E 03

x-tAox

-0.20313{2E Ol.0.I468658e 0l

-0.2831345€ Ol-0.31 341 t'E-O r0.33186{eE or0.5488647E Ol

gde je e zedeta ta6noat.lx'., - xrl<e (4. t4.71

Page 43: Fortran Za Treci Razred Masinske Tehnicke Skole

7E

cC UIAZ PARAI4ETARA 'A'cl0 REAOl5r200rEND-701 A2OO FORfiAT(F5.2IcC IESTIRANJE PARAXETRA 'A/c

tF(a-.tl Lot20t2020 IFIA-l.l 3Or30rlOcC POCEINA VREDNOSI KORENA IX'c30 X-3.141592r. icC IT€RAClor'tI CIKLUSc{0 II . A/SIN|X!

IFlAESlXr-Xl-ePSl 60r5o,tO50 X.XX

G0 T0 +0cC TZLAZ PAN,AilEIRA 'A' I I(ORE{A IX'c60 tRITEl6r300l Ar I300 FoRIAIl6Xr2lEX,F5.2ll

GO IO l0cC ZAVRSEIAK PROGRAXAc70 ttIlE I 6, roo I4OO FORI'ATI/' XRAJ PROGRA'IA"

stoPEr{0

Za zedele vrednoati parerDetra A, lzlazni rezultatl re Etampaju u ob[kutebele:

TZR^CUilAVANJE KOREI{A JEDNAEIil€ STNIX) = ^./T

0. lo o.a2o.tz o.tt0.6! 0.8tt.00 l.ltrIAJ PROGRA'II

U programu je promen[lva xl , iz algorltmr ne s1.4.14.4, ozna6e-

na se xx.

5. PNOMENUIVE SA INDEKSIMA . NIZOVI

5,l. Definlcija niza

U mnogim oblastima primene matematike, dolazi do potrebe izvodje-nJa operaclja nad grupom brojnih podataka. Da se ne bi pojedinaCno imeno-

vall brotni podacl, ovakva grupa dobija zajednidko ime. Tako se uvodi po-

Jam vektora, determinarte i matrice. FORTRAN-jezik pruZa mogudnosti

lakog zapiea grupe brojnlh podataka. Ovakva grupa brojnih podataka regis-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-

taka, koja se tell registrovati, eadrZi m elemenata (brojeva). Ako je prvieleBenet grupe regl8trorran u registru ea adresom r, tada Ce za registro-vanJe cele grupe bitt upotrebljenl redom registri

r, r+1, r+2, .,. , r}m-l ' (5. l. 1)

Sadrlajl regiatara (5.1. l) Jeeu brojni podaci grupe, Sto znali da se

svake grupe broJnih podataka prlkazuJe u memoriJi u obliku jednog nlza bro-

Jeva, bez obzira na raapored broJeva u grupi.

ViSe podataka aa zaJednldldm imenom, u FORTRAN-Jeziku zove se

niz. Prematome, veldorl, deternlnente I matrice u FORTRAN-jeziku |i-6u ae kao nlzovl.

Tako, kede re elem€rtl mstrice

Page 44: Fortran Za Treci Razred Masinske Tehnicke Skole

80

(5. r. 2)

registruju u memoriji raEunara, tada se formira niz u obliku

att,aut,a31,a11,aer,alz,att,art,ag3,t14,a:t,alt (5.1.3)

Ako je prvi elemenat art reglstrovan u registru 6ija je adresa 300,onda 6e za regiatrovanje matrice A, biti angazovani registri

300, .301, 302, ..., }tt

diji Ce sadrtraji biti redom elementi niza (5. 1.3).

(s. r.4)

5.1.1. Irne niza i indeksi

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-he i za ime niza.

Da bi emo oznacili pojedine el€mente niza uvode se lndeksi. vrednostindeksa je ceo broj kojim se jednoznadno odredjuje jedan elemenst niza.Broj indeksa niza zove se dimenzija niza. Niz moze bitl jednodimenziona-lan, dvodimenzionalan itd. do rnaksimum sedmodimenzioualan. Tako da jeopsti oblik promenljive sa indeksima

ime (lista) (5. l. 5)

gde je

ime - ime niza koje se definiEe, kao i ime promenljive,lieta - epieak indeksa medju sobom razdvojenih zarezircrra.

Broj indeksa mole biti najmanje jedan, a najvlSe sedam.

Indeke moZe biti aritmetiCki izraz, Eija ee brojna vrednost izracuna-va, a zatim za odredjivanje elementa niza prevodi u celobrojnu konstantu.

Vrednost ovako dobijenog celog broja mora biti veda od nule i manja ili jed-naka najvedoJ predvidjenoj vrednostt indeksa. NaJvece predvidjene vredno-sti indekea nlza moraju biti zadate na po6etku programa za svaki niz koji

^ f':, :::;, tii]Ltr, asz 3sr a

81

se pojavljuje u Programu. Ovo se zadaje opisnom netedbom

DIMENSION lista (5. r. 6)

gde je

DlMENsloN.sluZbenareE,iodredjujeopisnunaredbuzadefiniga-nje maksimalnih vrednosti indeksa,

li6te - sPissk sastavljen od elemenata, medju gobom razdvo-jenih zarezima.

Elemenat liete (5' 1.6) piSe se u oblilm

ime (lista) (5. 1. ?)

gde je

lme - ime nize,

llata - episak celih neoznadenih brojeva, koji predstavljaju najvedemogu6e vrednosti indeksa, medJu eobom razdvojenih zsrezi-ma.

Tako se mole Pisati

DTMENSION A(r0, r0), vEK(50)

Eto znatt da 6e u Bemoriii raEunara biti rezervisano 10o regietare ze e-

lemente mstrlce A i 50 registara za komponerte vektora VEK'

5. 1- 2. Vrsta niza

Povrstinizovisedelenacelobrojneirealne.Akosuevielementiniza cell broJevi, oada je niz celobroJan, a ako su elerrerdi nlza realni bro-

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,

J,K,L,M ili N, onda Je niz celobrojan, e u auprotnom niz je realan'

Ako ge Zeli nizu dodeliti ime koje je u suprotnosti 8a unlrtragnjom

kornrenclom FORTRAN-jezika, moze 8e korlstittr ekeplicltna tlt lmplicitna

deklaraiijavrate niza. ,Ekeplicitina,deklaracija vrgte niza vr6i se.oplenim

neredbama REAL ifi INTEGER, objafnjenim u odeljku 4'tz't; Ime niza se

navodi u jednoj od ove dve naredbe u zavignosti od toga koje je vr6'te niz'

Page 45: Fortran Za Treci Razred Masinske Tehnicke Skole

I

82

Ako se deklari.e realan niz, navodi se ime niza kao elemenat liste naredbeREAL, ili ako se deklari.e cerobrojni niz, navodi se ime niza kao eleme-nat liste naredbe INTE.ER. opisnim naredbama REAL i TNTEGER poreddeklaracije vrste niza mogu se zadati i najvece mogu.e vrednosti indeksaodgovarajuceg niza. Tako u ovom sr.ucaju elemenat u listi ovih naredbi mo-te imati oblik (5.1.?). Ato eu makeimalne vrednosti indekea definisane unaredbi REAL ili INTEGER onda ovo ne trebe posebno pieati u naredbi DI-MENSION. Medjutim, za svaki niz koji se koristi u programu moraju se de_finieati makeirnalne vrednoati rndekea, odakle sredi da ee svako ime nizamora pojaviti ili u naredbi REAL ili INIEGEB ili DIMENSION. Tako se mo-Ze plsati

(5. l. 8)

(5.1.s)

Naredba BEAL deklarige matrice M i J kao realne nizove, a naredba INTE-GER deklariSe matricu A i vektor T kao celobrojne nizove.

Implicitna deklaracija vrste niza vrsi se na ieti nadin kao i implicit-na deklaraclja vrate promenljive (vidi odeljak 4. lZ.Zl. To ee postiZe opis_nom naredbom IMPLICIT, kojom se vrsta niza moZe deklarisati_po poaet_nom slovu u imenu niza. Tako

IMPLICIT REAL (J, M, INTEGER (A, T)

f,EAL M(5,121, J(2o,20)TNTECER A(5,5), T(10)

(5.1.10)

deklariSe sve promenljive i nizove dija imena poEinju slovom J ili M kaorealne promenljive, odnoeno nizove,.i eve promenljive i nizove 6ija ime_na po6inju slovom A ifi T kao celobrojne promenljive, odnosno nizove.

?reba uoEiti razliku lzmedju deklaracije (S. l. l0) i (S. 1. 8) odnosno(5' l'9)' Deklaracija (s. l.ro) deklari.e eve promenrjive i nizove cija ime-na po€inju alovon J ili M odnosno A ili T, dok deklaracija (b. l. B) i (S. 1.9)deklarise samo nizove 6ija eu imena M i J, odnosno A. i T.

Eksplicitna deklaraciJa vrate promenrjive i niza irna najvi6i prioritet,a zatin inplicitna deklaraciJa vrete i na kraju unutrasnja konvencija FoR-TRAN-jezika.

83

5. 2. Jednodimenzionalni nizovi

Elemenat jednodimenzionalnog

ime (i) (5.2. r)

gde je

ime - ime niza,

i - indeks niza.

Maksimalna vrednost indeksa niza moZe biti zadata u naredbi DIMEN-SION ili REAL ili INTEGER. Niz, u ovi.m naredbama, navodi se kao ele-menat liste u obliku

ime (i*,) (5.2.21

gde je i-.,ceo neozna6en broj koji odredjuje maksimalnu vrednost indeksa,

odnosno broj elemenata niza. Tako naredba

DTMENSTON A(20), VEK (s0) (5.2.3)

defini5e 20 elemenata niza A:

A(1), A(2), A(3), . . ., A(20)

odnosno 50 elemenata niza VEK:

vEK(l), vEK(z), .. ., vEK(50).

Elemenat niza zove se promenljiva sa indeksom. Svaki elemenat ni-ze regictruje se u jednom memorijskom registru. Sve Sto je rebeno da va-

Zi za obianu promenljivu vali i za promenljivu sa indeksom.

5.2. 1. Jednodimenzionalni nizovi u listi ulazno-izlaznih naredbi

Nizovi se pojavljuju kao elementi liste ulazne naredbe, kada se vrsidodelJivanje brojne vrednosti elementima niza sa ulaza. Ako se vr3i izda-

vanje brojnih vrednosti pojedinih elemenata niza tada se nizovi pojavljuju

niza ima opSti oblik

Page 46: Fortran Za Treci Razred Masinske Tehnicke Skole

84

u liati izlazne lraredbe' Elemer$i jednog niza mogu se pojaviti na v15e na6i-na u liati.ulezne, odnoano lzlazne naredbe.

a) Ako elementi nlza ne elede jedan za drugim po odredjenom zakonu,tada ae mogu navoditi u ligti na isti narin kao imena pt'omenljivih. Tako eemoZe pieati

READ (5,10) A(4), A{2), A(s), A{r5)

Sto znadi da Ce elementima A(4), A(2), A(B) i A(1S) niza A biti dodeUeDebrojne vrednoati sa uleza.

b) Ako elementi niza koji 8e navode u listi slede u.redosledu, poEevod elementa m, do zekljulno sa eleo.entorn Erz, tada ae moze plEati ele-meDt liste, u ulaznoj, odnoano izlaznoj naredbi u obliku

(ime(i), i = m1,m2) (5. 2. !)gde je

ime - ime niza,

i - ime eelobrojne promenljive,r[1, m3 - celi neozaadeni brojevi ili celobrojne promenljive.

zapie (5'2'4) ima isti efekat kao da su erementi niza u listi, navde-nl u redosledu

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

Ako se evi elementi niza tele navesti u listl,evodi na

(ime(i),i = l,iq) (s.2.6)

umesto oblika (s.2.61 moi,e se pisati i samo ime niza u risti, tj.

ime g.z.7l

Prema tome, ako u listi ulazne, odnosno izlazne naredbe etoji samoime niza, to ime isti efekat kao da su navedeni elementi niza podev5i od pr-vog do posrednjeg. Informacije o tome koliko niz ima elemenata sadrza'a

(5.2.5)

onda se oblik ( S, 2 . 4)

85

j

je u opisnin naredbama DIMENSTON tU REAL lli INTEGER'

c) iko elementt niza koji ae navode u listi ne slede jedar iza drugog,

moze 3e u listi Pis8ti oblik

(ime(i), i = -t, mz, mr) (5. 2.8)

gde sve oznake imaju isto znadenje kao i u (5. 2-4), a uvedena v€Udina m!,

moZe biti ceo neoznaten broj ili celobrojna promenliiva. Zapis (5' 2'8)

ima isti efekat kao da su elementi niza nabrojani u fedosledu:

ime(m), ime(mr+mr), ime(mi +2m!), ..., ime(mr+kmJ (5'2'9)

gde Je

(5.2. 10)

gde erednja zagrada oznadava celobroJni deo koli[nika

Prema tome, oblik (5' 2.8) eadrli k+l elemenst niza, koji eu Davede-

ni u (5.2.9).

5,2.2. Elemerti niza u eritmetickoj naredbi

Elemedi niza mogu se na6i na levoj ili na deenoj strani znaka Jedna-

koeti u aritmetickoj naredbi. Pojava elementa niza u aritmetidkoJ naredbi

ima isto znadenJe kao i pojava obidne promenljive. Ako 6e elemenat niza

pojavljuje na desnoj strani tada predstavlia argumenat aritmetickog izta",

a ako se pojavuuje na levoj strani onda je to elemenat niza kojem ae dode-

ljuje brojna vrednoat izracunata aritmetickom naredbom'

Primer

Na kartici je zadato 10 brojevri u formatu F8.3. Sastaviti program,

koji 6e uneti brojeve se kartice u memoriju radunara, itampati nJihove

broJne vrednosti I lzra€unati i Etampati njihw zbir.

-=l=rl

\t

Page 47: Fortran Za Treci Razred Masinske Tehnicke Skole

86

Ovaj zadatak Cemo re5iti na dva na6ina: bez kori5denja aizova i sakori5denjem nizova u .programu.

a) Prvo re5enje: bez korilldenJe nizove u programu

READ ( i, lO I _Xl r X ? r X3 t 14 t X5 t X6 t Xlr Xrtr 19r XIOl0 FoRfllTltoFS.3ty.Il+x2rl3+x4+x 5+x6+x7+x8+x9+xI ollRlTE( 61 201 -

Xl r X2r X3r I4r X5 r X5, 17, lgr Xe I X ; 6, vZo FoRfiaT(r, rlOF12.31t; vJ;,ig.ttS Toe€l{D

b) Drugo re6enje: se koriEdenJem nizova u programu

DI^tEltsloN xt lo IREID(irl0t Xlo FoRltATaloFS.3'y-O.lrl

l3 Yry+I(IllF(t-l0l ltrl2rlt.ll I.Irlco ro 13l2 tRtTEl6r20t x,Y

20 FOR'{ATl I rrlOFl2. rll. y..rF9.3tstoPEIID

Prvo resenJe zahteva uvodjenje promenljivih (X1,X2,, , ., XIO) kojima8e dodeljuju brojne vrednosti zadete na kartici. Iete promenljive se mora-ju naveati u aiitmettEkoj naredbi da biemo izradunali njihovu sumu. Medju_tim, u drugom reitenju, gde su kori.Cenl nlzovi uvodi ae Jedno ime niza (X) ,a promenom indekga postite se isti efekat kao i u prvom resenju. prvo re_senje je moglo biti primenjeno u slu.aju 10 brojeva, medjutim, da se radiloo vedem broju brojnih podataka, napr. 1000, ovo bi bilo nemogude zapisatiuvodjenjem 1000 imena promenljivih, dok se drugo regenje bitno ne menjapovecanjem broja brojnih poclataka. Tako, ako bi se radilo o 1000 brojevaniz.X bi bio definisan u DIMENSION-neredbi kao X(1000) i predvidieno su-miranje bi se moglo izvrsiti zamenom broja l0 sa lO00 u naredbi Il...

t\

8?

5. 3. Ciklidne algoritamske strukture

5.3. l. Naredba za opis Programskog ciklusa

ciklidne algoritamske struKure vrlo se cesto javljaju pri sastavlja-

nju algoritama za regavanje razliditih zadataka' Kao sto je obja5njeno u o-

deljku 1. 4., izlazni kriterijum iz ovakvih ciklusa moZe biti razlidite pri-

rode. Najde5de, su ovi kriterijumi brojadkog karaktera' tako da se pomo-

Cu njih kontroli5e broj ponavljanja ciklusa. Kada se ciklus izvr5i zadati

broj puta, vr5i se izlaz iz ciklusa. Da bi se omogu6ilo lako pisanje rrvalcvih

cikluea u FORTRAN-jeziku postoji posebna naredba za njihovo definisanje'

to je naredba oblika

DO n i=m, ,m2,ra3 (5.3.1)

gde je

DO - sluZbena red FORTRAN-jezika'

n - obeleZje jedne izvr5ne FORTRAN-naredbe' koja se naiazi iza' naredbe (5.3. 1),

i - ime celobrojne Promenljive,

rn1 I m2 mr- celi neoznadeni brojevi ili irnena celobrojnill promenljivih'

Naredba (5.3.1) ima sledede zna6enje: naredbe koje se nalaze ispod

naredbe (5.3.1) zakljutno sa naredbom 6ije je obeleZje n' 6ine programski

ciklus, koji 6e se izvrSiti k+1, puta gde je

(5.3.2)

Promenljivaf pri prvom izvrsavanju ciklusa ima vlecnost ml ' a pri

svakom slededem izvrSavanju prethodna vrednost promenljive 1 poveCava

6e za m3 , tako da promenljiva i uzima redom vrednosti

i = m' mr +m3 , mr +2m, , ..., mr +km3 (5.3.3)

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)

- = Fs'-al

Page 48: Fortran Za Treci Razred Masinske Tehnicke Skole

88

si. 5.3. I sl. 5.3.2

Sema na sl. S.3. t sad,rZi detalje koji ee uvek ponavljaju kod ove vr_ste programskih cikrusa, kao sto je postavljanje podetne vrednosti indeksaispitivanje izraznog kriterijuma i pove.anje indeksa za navedeni prira.taj.Da bi se izbeglo ovo ponavljanje uvedena je ekvivalentna gema na 61. 5.3.2.Iz Seme na sl. S.3.1. vidi ee da Ce se algorltameki koraci, koii Eine cit<-lus, izvrsiti najmanje jedanput, bez obzira na odnos izmedju velicina mrimr.

. Ako je m, =1 ne mora se navoditi u naredbi (S,3.1) , pri demu sepise ni zarez ispred m3 r pa se oblik (S.g.l) svodi na

DOni=mt,mr(5. 3. 4)

gde je znadenje pojedinih simbola isto kao i u naredbi (5.g. l) s tim 5to jek uvek ceo broj i iznosi

k=mr -m, (5.3.5)

izlaznog kriteriJuma u ciklusu napa Ce algoritameki korak za ispitivanjesl. 5.3.1 biti

L-mr*kntr,

L*ms + L

I =_-, (;. 3. 6)

-€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 roPAUSE

STOP

IF (po vrednosti aritmetidkog lztazal

DO

Primer

Ranlje navedeni primer, nqtrraju odeljka 5.2.2., u kojem ae vrgisabiranJe 10 broJeva, kao eleme-nata niza X, mote 6e reSlti primenom na-

redbe ciktu6a. ReSenje uFORTRAN-jeziku ima elededi izgled:

Olr.tENStOr{ Il lOlREAO|5rl0l I

l0 FoRfiAtlloft.3tyr0.OO ll l.lrl0

ll YrVrIl I ITRITE(6,20I Y

20 FORT,|AI(r f:rlF9ollSTOPENO

U orrom sluEaju programsld ciklus BadrZi jednu naredbu

Y=Y+X(I)

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

je pre ulaska u ciklua promenljivoj Y dodeljena vrednogt nula, a svaki pro-

lazak kroz ciklu8 povedava pr€thodnu vrednoat promenljive Y za odgovara-

Judu vrednoat elomenta nize X, to de po izlaeku iz clldusa vrednoat Promen-

lJtve Y bltl euma zadatih 10 elemenata nlze X.

Page 49: Fortran Za Treci Razred Masinske Tehnicke Skole

90

5.3.2. Naredba bez dejstva

U FORTRAN-jezikil postoji mogu6noetOva naredba se pile u obliku

zaplsa naredbe bez dejstva.

CONTINUE (s. 3.8)

gde Je

CONTINUE - eluibena reE i oznadava naredbu bez dejstva.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, tadaie 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 izvr3avanjenaredbe (5.3.8) predstavlja prelazak na naredbu koja sledi iza ove naredbe.

Naredba (5.8.8) koristi se u programiranJu, naJ€eSCe u slededa dvasluCaJa:

f) Ako bi zadnja naredba ciklusa trebalo da bude neka od nedozvolje_nih naredbi, tada se kao zadnja naredba moze koristiti naredba (5.3. g).

2) Ako se Zeli izbaciti iz programa naredba koja ima obeleZje, tacla,da se ne bi menjala obelezja, moZe se na mesto izbadene naredbe ubacitinaredba (5. 3.8) sa istim obel< Ijem.

Primer!

Zadeta su dva niza brojeva x, i y,

z, ='\'Jr

pri Cemu ako je y* = 0, uzetida je z* = 0, k€ 1r,r,...,SOf . Elementinizova xi i y, su brojevi sa maksimum 3 cela i 3 decimalrra mesta. Nekase na jednoj kartici nalazi l0 ovakvih brojeva. prema tome, ulazni podaci

i = 1,2,...,50

tzL^z: z

sI. 5.3.3.

nalaze se na l0 kartica i to na prvih 5 nalaze 6e elementi niza x' a na dru-

gih 5 elementi nlza y. Blok-gema algoritma prikazana je na sl' 5 ' 3 ' 3 '

Program sastavljen po algoritmu na sI' 5' 3' 3' ima slededi izgled:

olrtEr{sIoN x( 501'Yl5Ol rZ(5OlREADl5r50l XrY

5o FORr{ar(10F8.31DO 30 I=l'50lF(YlIll l0'20rlO

to Zllt=x(lllY(I!30 CONTINUE

tlR I TE t 61 60 I ( Zl I I r I =l ' 501

FORHAT( r r17Xr. 1". // lr r rgl4.7l I

STOPZ(Il'0.GO rO l0END

. U ovom primeru naredba sa obeleZjem 10 sadrZi operaciju deljenja'

Ova operacija se nalazi u ciklusu, jer je treba izvrSiti 50 puta da bi smo

formirali niz Z. Medjutim, u operaciji deljenja delilac ne sme biti jednak

nuli. Zato se pre dolaska na operaciju deljenja vrSi ispitivanje vrednosti

delioca(elemenatnizaY),iakojenjegovavrednostrazliditaodnuledola-

60

20

Page 50: Fortran Za Treci Razred Masinske Tehnicke Skole

n

zi ae na lardbu 10, a zadm ne nercdbu CONUNUE koja je zadnja ruiredbacikluea. Ako je vrednost tndekss I (i0 vrll se ponavljanje cikluea, a ako JeI . 50 vrdi ee izlazak iz cikluea, tJ. prelazak na naredbu koja sledi iza na-rcdbG CONTINUE. Ako je vrednost delioca (elemenat niza y) jednaka nuli,vrl rt prelazek na naredbu sa obeleljem 20, kojom se postavue nula kaovt.cdnost odgovarajuceg elementa niza z, posle ovoga vr.i se prelazak naza'lnJu naredbu u ciklusu, cime 8e obezbedjuje normalno izvr'avanje cikluse,

5.3. 3. Odnos dva i vi5e ciklusa

VeC smo videli u prethodnon primeru da naredbe koje Cine ciklus nemoraju biti zapisane izmedju DO naredbe i zadnie naredbe ciklusa, prematome' nekom naredbom usrovnog ili bezuslovnog preraska moZe se privreme-no izadi iz ciklusa I ponovo vratiti u ciklus. ovaj povratak u cikru' more bi-ti na Ea koju naredbu u okviru ciklusa, uklju6uju6i i zadnju naredbu ciklusa.llfedjutim, treba voditi raluna da ee vrednost promenljive koja predetavljaindeks cikluse tre ame menjatl naredbama u okviru ciklusa.

Posebno je vaZno pravilno koristiti cikluse kada ih lma vedi broj uprogramu. Ovde 6emo razlikovati tri mogu.a slu.aja u odnosu i"mea;,. avai vi3e ciklusa:

l) Linijska kompozicija programskih ciklusa.Za dva ili vi5e ciklusa koji slede jedan iza drugog u programu, kaieee da dlne linijeku kompoziciju ciklusa. U ovom eludaju odnos ciklusa jeslededi

i

f-P n, i1=6!rr,^!1,-['t

"'f iI nr_,

Tf_E n2 i,=m(21,_f),-!r,t?s,I i

tli: I n2-+

i f_D9 ne i"=61n, -lD,,rrlrt:t Icpl ittl--np I

:

98

Za orrakrru kompozictju od p programsldh clklusa.C 1, C2,.. ., Co va.

trl eledede:

- broj ciklusa p u ovakvoj kompoziciJi je neogranlEen,

- obeleZja D1 , n2 r .. ., Dp su mdju sobon razLicta,

- dva tU vlBe indekea iz skupa lt, , t, , ... , ie | -*u imati igta i-mena.

2) Konc ertridna kompoziclja progro m e kih cikluea.

Za dva llt vl6e ciklusa, koji se nelaze Jedan u okvfuu drugoga, kale

ee da obrazuJu koncentridnu kompoziclju progra-skih clklusa. U ovom slu.

6aju odnos ciklusa je slede6l:

rr1 ir=mlll, tntt, -gt

n2 Lz=mfi,-!x, -f)

np ip=-P,-tn,mln

Za ovahru kompoziciJu od p programskih ciklusa C1 , C2 , . .., Cn

vaZl sledede:

- neki od ciklusa mogu lmati zajedniCla'r zadnju naredbu, a to znali

da neka od obelelja iz elorpa [n1,n2,...,np | -o* biti jednaka,

Page 51: Fortran Za Treci Razred Masinske Tehnicke Skole

04

- lrdekst 11, !2 ,. . ., lp moraju imail razllelta lmena.U koncentrldnoj kompoziciji prograurstdh cilJ.u6a mogu biti jednaka

obelezJa zadnjth naredbl ctkluaa, Bamo ako ne doyde do eeCenJa pojedtnihcikluea. Ako eu eva obelerja medju 80bom Jednaka, tada koncertridna kom_poziciJa dobija elede6i lzgled:

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

n ir=ra{2), -!r}, -tzt

n ip=mlDl, r'!1 mln

I

I

Ako gu lzleznlkriteriJuml clkluea Cr, C2,..., Cp, koJi grade kon_centricnu kompoziciju takvi da ulazak u ciklus c1, znaEi prorazik kroz cik-lus q* puta, tada ulazak u koncertricnu kompoziciJu crklusa defini5e slede_6i broj prolazaka kroz poJedine clkluse:

- kroz ciklue C, prolazi Be qr puta,

- 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.ovakav broJ prolazaka kroz ciklus sledi iz cinjenice 6to se za svaki

prolazak kroz ciklue Cr_, cillus C1 izvrdi 9r, Futa.

3) Nedozvolena kompozicija programskih cikluga.

Dva ill vlEe cikluea medru sobonr ae ne smeju sedi. Tako za dva ci-kluea C1 t C, niJe dozvolJen alededl odnos:

96

i,:-ltr, -tl *fl

rr=-1'),-f;t, -!"

5. 4. Dvodlmenzionalni nizovi

Elemenat dvodimenzionalnog niza ima opSti oblik

ime(i1 ,5) (5.4.1)

gde je

ime - ime niza,

ir , i2 - indeksi niza.

Maksimalna vrednost indeksa niza moZe biti zadata u naredbi DIMEN-

SION ili REAL ili INTEGER. Dvodimenzionalni niz u ovim naredbama navo-

di se kao elemenat li6te u obliku

ime(ir-., , ir-*) (5- 4.21

gde su ir-o i ir-., celi neoznadeni brojevi koji odredjuju maksimalne vred-

nosti indeksa.

Tako, naredba

DIMENSION A(10, 1o), B(20, 8)

deftniSe 100 elemenata mstrice A:

A(r,r), A(1,2), ..., A(1,10)

A(2,1), A(2,21, ..., A(2-10)

ti*----------iA (rb, r), A (i0,2), ...,A(lri,10)

lll

n2

Page 52: Fortran Za Treci Razred Masinske Tehnicke Skole

96

160 elemenata matrice B:

B(1,1), B(1,2), ..., B(1,s)B (21 1), B (421, . . ., B (2, 8)t:

B (2b,1), B (2b, s), .. ., B (2d,8)

5.4. t. Dvodimenzionalni nizovi u ligti ulezno-izlaznib naredbl

Kao I elemertl jednodimenzlonalnih nizova (vldi b.2.1), teko I ele_mentl dvodhaenzionalnih nrzova mogu ae pojaviti u listi ulazno-rzlazne oa-redbe na vi6e naEina:

a) Ako ae poJedfnadnt elementi nizova pojavljuju u llsti tada ee vr6lnavodJenje odgweraJu6ih elemeaeta. Tako ee moZe pleati

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

5to znacl da treba lzdati brojne vrednoeti odgovarajucih elemenata matrr-caA, BlC.

b) Ako elemertl matrice kojl ee navode u llsti slede jedan za druglm,tada se elemenat Uete moie pisati u obliku

((ime(i'iz), ir =-(ir, mft ), ir=-l'), *1', ) (5.4.3)

gde je

ime - ime niza,

it , ir - imena celobrojnih promenljivih,

-!tl - .uU neoznadeni brojevi ili imena celobrojnih promen{ivih,i' j = r'e'

Zapie (5.4.3) ima isti efekat kao da su elementi matrice navedenl uslededem redogledu:

i-e(m{t}, -tit ), ime(mlt) +r,*(r'}),...,ime(m!t), -1,, ),ime(mjr), -1" *r), ime(mf), +r, -j') + 1),...,ime(m!'),mltr +11,

ime(m(,t} , -1" ), ime(m!" + l,-lrl ),..., ime lrrrl'l , -jrr)

lik

n

Ako se u listi navode evi elementl dvodimenzionalnog niza, tada Ee

oblik (5.4. 3) svodi na

((ime(ir,iz), ir = 1, i1-.1)p i, = 1, i1-..) (5.4.4)

Umesto oblika (5.4.4) moZe qe u listi navesti samo ime niza, tj' olr-

lme (5.4.5)

Ovde je vaZro uoditi da obtik (5.4.41' odnosno (5.{' 5) obezbedjuje po-

javljivanje elemenata niza u listl u redosledu kolona po kolona mairice'

Medjutim, ako se Zeli redosled vr6ta Po vrsta matrice tada (5'4'4) treb^'

zapisatl u obliku

((lme(i, , ir), iz = 1, i2.o), ir = 1, ir-.,) (5. 4.6)

Medjutim, zapis (5.4.6) ne moZe 6e zameniti zapisom (5'4'6)' ier(5.4. 5) podrazumeva redosled (5.4.4). VaZi op6te pravilo Ca se u zapisima

(5.4.4), odnosno (5.4.6) brZe menja indeks prvi sleva, a sporije indeks ko-

Jieledi.Tako,u(5.4.4)brZesemehjaindbksil,aspo):ijeindeksi2'tj'zair=1, indeksl, uzimasvevrednostlir = 1,2,"', Lr^u' azatimdo-

Iazi do promene indeksa i2, ti. iz=2, Pri 6emu opet indeks i, uzima sve

mogude vrednosti. Kod zapisa (5.4.6) indeks\i2 se brZe menja' a indeks it

6porije.

c) Ako elementi niza, koji se navode u listi' ne slede jedan za drugim'

moze 6e u li6tl p188ti oblik

((ime(i'ir), i, =*lt)., -lt) , m[f) ),i, = -1" ,-1" ,."!') ) {s'e'z)

gde su eve oznake iste kao u (5.4.3), a dopisane velidine -lt) i -!') -ogublti celi neoznaceni brojevi ili celobroine promenljive. Zapis (5.4. ?) ima

istiefekatkaodasuelementimatricenavedeniuustiu6lede6emredosle-du:

ime(mf),rJ," t, ime(mf) **1",-14 ),...,ime(m!) *krrn:t',t"1")'

ime(m!r),m(,2) +-l2l 1, ime(-f) *-lt),-!') +,,,!') ), "',ime(m!l) +

**r,,.$' ,-l') +-!'l ),...,ime(m!t' ,*1" +tr-fl 1,ime(ml') *-(i) ,

m!') trrm!'' ),,,,,Ime(mlt)+lr1mt' ,*l'' *hxml" )

Page 53: Fortran Za Treci Razred Masinske Tehnicke Skole

98

gde eu

f ,r, ,tl Ik'|=1fu+l

f ,r, ,:,.|k' =l.*;r'-J

celobrojni delovi odgovarajudih kolidnika.Tako, zapie

(5.4.8)

(5.4.e)

=A+B

gde su A i B matrice 5x10. Elementi jedne

vrste matrlce A, odnosno B, bu5eni su na

jednoj kartici sa opisom F8.3, Na izlazuStampati 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.

Medjutim, za svakl prolazak kroz spolja5n,ji

((A (r,o, t = 2,6,2), J = 4.s,3)

proizvodl sledeCi redoeled elemenata niza A u listi:

A (2,4), A (4,4), A (6,4), A (2,'rl, A (4,'tl, A (6, ?)

Primer

Sastaviti program za izradunavanJe zbira matrlca

c

sl. 5.4. I

99

Dll'lENsloN A(5, lol rtJ( 5r l0 I rc(5, lolqEADl5' l0! I lA( I,J ),J=1, lO), l=l 15t, ( (ts(LJl rJ=I, lO), l=l r5llo FoRMAT{ 10F8.3)0O ll I-t,5O0 ll J=lrt0

ll cu,J)=A( I rJl+Bll,Jlr{RIIE(6r20l ( (c( t rJl rJ=lrtolr I=lr5)

20 FrlRfiAT(. MATRICA C,// (. r,l0Fll.3llS ItIPEr.rt)

ciklus unutrasnji ciklus se izvrsi l0 puta, tako da naredba l1 (ova naredbaje zadnjg i zajednidka naredba za oba ciklusa) izvrSi se pri jednom izvrSe_nju programa 50 puta.

5.4.2. Fegistrov?nje dyodimenzionalnog niza u memoriji radunarai veza sa jednpdimenzionalnirn nizom

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

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_ju sledede vrednosti i = 1,2,...,n; j = 1,2,...,m. Uvedimo oznaku a,..,/ku kojoj a,,, predstavlja elemenat niza a(i,j), a k relativnu adresu registrau kome se registruje elemenat niza a(i,j). R.elativna adresa registra defini-5e registar u kome se nalazi prvi elemenat niza sa l, a ostale registre re-

Tabela 5.4.1

Page 54: Fortran Za Treci Razred Masinske Tehnicke Skole

100

dom 2, 3 , 4, , , ., n. m, gde je n. m relativna adresa zadnjeg elementa nizaa(r^, m). U tabeli 5. 4. I prikazan je raspored elemenata niza a(i, j) sa odgo_

.iva:'aju6im retativnim dhresama,

Iz tabele 5.4.1 sledi da se relativna adresa k, elementa sa indeksi_ma i, j izraEunava po formuli

k=i+n(i-l) (s.4. 10)

Prema tome, dvodimenzionalni niz a(i, j) Ciji indeksi uzimaju vredno_sti i = 1, 2, ...,ni j = 1,2,.. ,, m, moZe se posmatrati u memorijt radunarakao jednodimenzionalni niz a(k) diji indeks uzima vrednostl k = 1,2, . . .,n.:n. Veza izmedju indeksa dvodimenzionalnog niza a(i, g) i jednodimenzio_

nalnog niza a(k) data je relacijom (5.4. 10).

Primer

Nadin registrovanja dvodimenzionalnih nizova i njihovu vezu sa jedno_

dimenzionalnim nizovima prosledicemo na primeru sabiranja dvodimenzio-nalnih matrica. Ovde Cemo razlikovati dva sludaja:

1) Dimenzije matrica u programu su iste sa dimenzijama matrica de_

finisanim opisnom naredbom DIMENSION.

a) Re5enje zadatka preko dvodimenzionalnih nizova.Na ovaj naEin reSeno je sabiranje dvodimenzionalnih matrica u pri_

Tabela 5.4,2

N. I 2 3 L 5 6 ,] I I f,)

Io l.l

I

o t,26

o 1.31l

o t,416

o l,s21

o 1,626

o 1,73t

ol,g36

o t,9t1

o t,tot6

2o 2,1

?

aza7

o z.it2

a z,tl7

o z.s22

o 2,627

o..'32

o3!-tt

oe o

L2

o 2.toL'T

3orr

3

o 9,2I

o 3,113

o g.t!q

o 1,523

o 3,6

28

Orr

33

o 3,838

o 3,943

a 3,tot8

Lo {,1

Iot,,2

Io(,3

t4

a L,r.tll

n !!_2L

9 4,6_29

a r,,?

34

o 4,839

9 4,eI,L

o4,lo19

5g:,L

51!-2_

l09 s,r

t5

o5,4n 9!l

)<os,6

30

Oct

35

o5,8LO

1i,s-L5

o5,ios.1l

101

meru na kraju odeljka 5.4.1. u ovom slu[aju tabela 5.4.1 za registrovanjeelemenata matrice A ima obliktabele 5.4.2. Na isti na6in se reg:struju :l

elementimatricaBiC.Kako je u navedenom primeru pretpo'tavljeno da se elementi matrice

A unose vrsta po vrsta, to znadi da 6e elementi prve vrste biti regi.slrovaniu registrima dije su relativne adrese 1, 6,.11, !6, ZL, 26, 5I,36, 4l i 46.

Zatim se unose elementi druge vrste i registruju u registrima z, 1, Lz, ird.U istom programu sabiranje matrica je izvr6eno preko dva programska ci._

klusa, tako da se sabiraju vrsta po vrsta matrica A i B'i formira se matri-ca C.

b) Re5enje zadatka preko jednodimenzionalnih nizova.. Isti zadatak ae inoze re6iti ako se koriste jednodimenzionalni nizovi.U ovom slu6aju prograrq na FORTRAN-jeziku ima elede6i izgled:

DIilENSION A( 50),81 50t,C (50)READ( 5r IOI A,BFORr.,rAI( 10F8.3tD0 ll l=t,50C(ll=AlIl+8lltr{RITE(5r20t C

FORilATIT HATRICA C' lllt .rloFt1.3t,S TOPEND

Tabela 5.4.3 prikazuje registrovanje elemenata matrice A, kada su

uneti kao jednodimenzionalan niz, a pri tome su na karticarna bili raspore-djeni vrsta po vrsta.

to

ll

20

Tabela 5.4.3

t.it\ 1 2 3 L 5 6 7 r0I8

I

2

9r,tt

ot, 66

"l,l-fi02 ,6

6o3, t

2l

og,?:27

o3,626

oa ,l- -11-9l.,a-_12--..ol.3

i?.q_.L

-34oa,--s--

35

ol,e los,r los,o-36 ! lt l-ts---'---'----'- I,--'ol.z los.z los,z37 I tz i-17-

- - 'J'-" - - i-- --. -

n-e !os,r i9s,ats-:41 j.__ol-_

a,n i1r-.-l- 19s.."-3e ,, tt i 4e__

1-ro_ i9s,5 ,os,tL40tt1lso

ol 12

2

ot.?,7

42,2t?

42,7fl

03,2z2

3

:5

q r,3_,3.ol , t

I

or, g

I02.:

!3

02,L,IL

oz.8

_19 -02 .9

l9

03. g

23,

03, 42T

ol- 8

.28 _

03 .9E

ol,to1n

9r,g9

\s5

ot, ot0

42, s15

oz-r-a-

fr03,s

)q,

Page 55: Fortran Za Treci Razred Masinske Tehnicke Skole

Ii['

I

i

I

L.tz

Poredjenjem tabela 5.4.2 i 5.4.3 vldl se da su to dva sasvlm razlidi_ta nadina registrovanja elemenata matrice A, a isto 6e biti i za matricu B.p tabeli 5.4.3 elementi prve vrste matrice nalaze se u registrima dije su

relativne adrese 1,2,3,4,5,6, ?,8,9, 10, a zatim slede elementi druge vr_ete itd. Izradunavanje rezultujude matrice C vr5i se preko Jednog program_

skog ciklusa, koji se izvrSava 50 puta.

c) ReSenje zadatka pod a) i b) je sprovedeno pod pretpostavkom.da su

ulazni podaci bili u redosledu vrsta po vrsta matrica A i B. Medjutim, ako

pretpLetavimo da se na jednoj kartici nalaze elementi jedne kolone.matriceA, odnosno B, tada 6e za registrovanje, matrice A biti potrebno l0 kartica,a na svakoj 6e se nalaziti po jedne kolona matrice. Isto Ce biti i za matricuB.

Program za sabiranJe matrlca moZe ae napisatl u sledede'n obllku:

DII{ENStON At 50l rBt 50r,C I 50tREAOtSrl0l A,8

IO FORilAII5F8.3IDO ll I.tr50

ll Cll)=a(Il+8lItr{RlTEl6r20l

20 FoRIIAT( | ltaTRlcA crllDO 12 Jrlr5

l2 l{RlTEl612l, lCl I I r I=Jr5Or5l2l FoRfiATl. rrloFll.3)

STOPENO

Elementl matrica A i B unose se sa kartica kao elementl Jednodimen-zionalnih nizova. Izra6unavanje matrice C takodje je izvr5eno preko sabi-ranja elemenata Jednodimenzionalnih nizova. Nacin registrovanja elemena-

ta. jednodimenzionalnog niza A identl€an je kao i u slu6aju dvodimenzional-nog nizi i prikazan Je u tabeli 5,4.2. Medjutim, kako rezultuju6u matricuC lelimo da Stampamo u obliku vrsta po vrsta, to se u listi izlazne nared-be matrica C piSe kao jednodimenzionalni niz, 6iji se svaki peti elemenat

Stampa u Jednom redu, pri Cemu je prvi elemenat odredjen indeksom (J)

koji ee menja u DO ciklusu.

2) Dimenzije matrica u progranu su manje od dimenzija matrica de-

finisanih opisnom naredbom DIMENSION. U ovom sluCaju opisnom nared-

bom defini5u se najvede mogude dimenzije matrica, a dlmetlzije matrica

103

za koje se izvrbava program zadaju se preko ulaznih podatakal

a) Re5enje zadatka preko dvodimenzionalnih nizova. Neka su matriceA I B tipan x m, gde je n<5, m< 10. Ulazni podaci neka su rasporedjeni

u redosledu vrsta po vrsta, a na svakoj kartici se nalazi l0 elemenata jed-ne ili vi5e vrsta. FORTRAN-program u ovom sludaju ima slededi izgled:

Dlr{ENSION A(5, l0) rBl5,l0},c(5, l0}READl Sr l0' NrMr ( (Al LJl rJ:1,Ht I I=11N) r I IBl t rJl rJ=Ir il1, l=IrNl

lo FoRHATI 2t2t tLOF8.1t'D0 ll I-lrNDO ll J=lrt'l

ll Cl trJl=A( I'Jl+B( I'Jlt{RITE(6r20'

20 FORilATII H.ATRICA CIlID0 l2 I=lrN

l2 |TRITE(6'30l (C( IrJlrJ=lrlt)30 F0RHATI. rrloFll.3l

S TOPEND

Prema tome, pre unosenja elemenata matrica A i B, unosi se brojvrsta n i broj kolona m matrica A i B, i ovi brojevi dodeljuju se promen-

ljivim N i M. Nadin registrovanja matrice A, u sludaju matrice 3x4, pri-kazan je u tabeli 5.4.4. Kao Sto se vidi iz tabele, matrica A je registrova-na u 12 registara 6ije su relativne adrese 7,2,3,6,7,8,11,12,13,16,1? i18, a svih ostalih 38 registara je slobodno. VaZno je uoditi da sumiranjeovako registrovanih matrica ne moze da se izvrsi preko jednodimenzional-

nog niza koji ima 12 elemenata, jer adrese elemenata matrica A i B ne

slede jedna za drugom.

b) ReSenje zadatka preko jednodimenzionalnih nizova.

Neka su matrice A i B tipa n x m, i njihovi elementi rasporedjeni na

karticama vrsta po vrsta, a na svakoj kartici da se nalazi 10 elemenata

jedne ili viSe vrsta. Tada program na FORTRAN-jeziku moZe biti zapisan

u obliku:oil.tENsloN at 501,8 ( 50t,c( 501REAo( 5, l0) N,r{

IO FORIlAT( 2I2 'K=N*l.t

REAOl Sr40l lAl t l'1=1rKl r(8(l lrl=lrxl4O FORMAT ( TOF8.3

'D0 ll I=t'Krr Cl I l.A( I t+B( I I

*RlrE(6r20)

Page 56: Fortran Za Treci Razred Masinske Tehnicke Skole

104

20 FORf.TAT{. r{ATR,ICA C'llD0 12 J=lrK,ML= I +H- I

l2 !,lRITEt6r30l (C(Jl rJ=l rLl30 FORI{AT( r'rlOFll.1}

S IOPENO

Neka su matrice A i B tipa 3 x 4. Gornji program 6e izvrSiti regis-

trovanje elemenata matrice A u rasporedu prikazanom u tabeli 5.4.5.

Tabela 5.4.4

Prema tome, elemerti matric€ A sada su rasporedjeni u registrima

dije adrese slede jedna za drugom. I sabiranje matrica moze se izvrSiti a-

ko se primenjuje jedan programski ciklus koji se izvr5ava n x m puta.

\jt\ I 2 3 L 5 6

,18 I t0

Ior,l

I

ol ,z6

ol ,g'n

or,t i't6 i ?r 26 3l

__i__l__$41166

202.1

2

oz,21

02. g

12

o^,l7 -n

:il

n'v a 1l-3

o3,'t1

og. 2I

or.3B

o3.l18 23 28 33 38 ' 43 r,a

Lt, 9 1L 't!l 2L Js-

5 q t0 l5 ?0 25 30 35 -{,0-It_4sl s0

Tabela 5.4. 5

\jt\ 2 3 L 5 6 7 I I 0

I01, I

I

02, z6

9i,-1-1l l6 u ,6 31 36 4 46

2ar,

z

2

oz,37

o3, lt2 I'l n n n -n t2 _t7 -_

IL-zE-

Jol,3

3

o2,t,8 13 ls n 28 33 38 Lf

Lor , {

Io3r I

9 IL f) ?t, 29 31 39 t,1

5o2,

1

5

43,2p 6 n 25 30 35 to -at- 50

105

c) Ako se elementi matrica A i B registruju kolona po kolona na kar-ticama, i to tako da se na kartici nalazi 10 brojeva tada Ce program imatislededi izgled:

DfilENSl0N A(501'ts( 501 rC(5OlREAo( 5, lo I N, H

l0 FoRxArl 2l2lK3N* l,l

READ(5'40) lAl I )1I=l1Klr(B(I I'I=1'()40 FORr,lATl l0F8.3l

D0 ll I-lrKll C(tt=A(Il+B(I)

brRIrE(6r20'20 FORr{Arlr ilATRICA Crll

L =l't- IDO l2 I=trN

tZ l{RITE(6rlOt (C111 r.1=l 1K1L},0 FORt'lAT('' tlOFll.3l

5 TOPEND

U ovom siuEaju elementi matrice A, tipa 3 x 4 bide registrovani na

na6in prikazan u tabeli 5.4.6.

Tabela 5.4.6

Kao Sto se vidi, tabele 5.4. 5 i 5.4.6 razlikuju se Po tome 5to u ta-

beli 5.4.5 elementi slede po vrstama, a u tabeli 5.4.6 po kolonama. Kako

rezultujudu matricu treba Stampati po vrstama, to se naredbe izlaza t od'

govaraju6im programima razlikuju.

Navedeni primeri ilustruju razlidite nadine registrovanja dvodimen-

zionalnih nizova u memoriji radunara. VaZno je uoditi da uno5enje eleme-

l_-- !

--

I

-

I

-

I *-lt I ts i2L l2e 131 13e',14_L!9_

Page 57: Fortran Za Treci Razred Masinske Tehnicke Skole

106

nata dvdimenzioD€ tnatrice kolona po kolona, i unosenje iste matrice kao

Jednodlmenzionog niza ima isti paspored registrovanja elemenata u memo-

riji, ako je tip matrlce jednak maksimalnim vrednostima indeksa u pro-gramu. U evim drtglm sludajevima ovo registrovanje je razlidito, Medju-

tim, obrada nad elementima matrica, predstavlja bolje programsko rege-

nje, ako ae matrlca tretira kao jednodimenzionalni niz. Tako u slueaju sa-

biranja matrica videli smo da tretiranje matrice kao dvodimenzlonalnog ni-za zahteva dva programaka ciklusa, a u sluCaju jednodimenzionalnog niza

zahteva Jedan programski ciklus.

5. 5. Vlgedlmenzionalni nlzovi

Elemenat viEedimenzionog niza ima opSti oblik

ime(lista) (5. 5. r)

ode je

lista - epleak, od najvl5e ?, indeksa niza medju aobom razdvojenihzareilma.

Prema tome, vlEedimenzioni n|z moZe imati najviSe ? irdeksa. Sve

3to je reCeno za dvdlmenzlor(alne nlzane vaZL I za viEedlmenzionalne nizo-

ve. Maksimalne vrednosti indekaa navode 6e u listi naredbe DIMENSION,

pri 6emu elemenat liste ima obfik (5. 1. ?). Vrsta niza moZe bitl definisana

jednom od oplenlh naredbi za deklarisanje vrate.

Vi6edlmenzionalni niz u listi ulazno-izlaznlh naredbi navodi se ,r ob-

Iilnr:

(...(ime(i,,12,...,\), ir =mltr,-ltr, .f' t,ir=ml2) , ^!:t , 'ot" ),..., i*=-lut, *'f , -!* ) (5.5.2)

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

(...(ime(i, ,12,...,i*) i, =6(1) , -lt'),iz=m(,2) , -!'' ),,.., i*=m(,H, mfr) (5.5.3)

10?

Ako se indeksi u (5.5.3) menjaju od 1 do maksimalne vrednosti, tj'

i,^"J, . . . , iu =1, i*-.') (5. 5' 4)

tada se mogu izostaviti, i oblik (5. 5.4) svodi se samo na ime niza

lme (s.5.5)

Kaoikoddvodimenzionalnihnizova,takoikodviSedimenzionalnihnizova najbrZe se menia prvi indeks sleva, a zatim sleva na desno sporije

se menjaju, tako da krajnji desni indeks se menja najsporije'

Tako, elemenat liste u obliku

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

ima isti efekat kao da su navedene indeksne promenljive u sledecem redo-

s Iedu:

A(2,1,4), A(4, 1,4) , A(6,1,4), A (2,2,4\, A(4'2,4\' A(6,2,41 ,

A{2,1,e), A(4, 1,e), A(6,1,e), A (2,2,s\, A(4,2,e), A(6'2,e)

Visedimenzionalni niz sa k indeksa il , i2, . . ., ir, moZe se posmatra-

ti kao jcdnodimenzionalni niz sa indeksom j. Veza izmedju indeksa viSedi-

menzionalnog i jednodimenzionalnog niza data je relacijom

j - i, +{iz -1)irF..+(i3 -l)i,-.,. ir-.,* . . .

. ..+(ir -1)ir-*. iz^^,... i1r-r) -."(s.5.6)

Relacija (5. 5.6) za zad,ate vrednosti indeksa visedimenzional'nog niza

odredjuje indeks odgovarajudeg jednodimenzionalnog niza, odnosno relativ -

nu adresu elementa vi5edimenzionalnog niza.

Primer

Najednojkartici,'tkolonama4,25's2i4Sbu5enisujednocifrenibro-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-

Page 58: Fortran Za Treci Razred Masinske Tehnicke Skole

108

ke od mogudih kombinacija i, j, k, l. Na izlazu Stampati kombinacije i, j,k, I koje se pojavljuju u zadatom paketu kartica, kao i njihov broj pojaviji_vanj a.

DIt{ENSI0N tt( 5r 5r 5r 5 )

D0 t0 I=l'5D0 l0 J=1,500 l0 K=I,5D0 lO L=lr5

l0 H(I1J1K1L)=O40 READlSr20rENp=39,, I rJrKlL20 FORHAT{3Xr I lr20Xr I 1,6X, i l, t5x, I t }ll{ t rJrKrLl =H( I, JrKrL l+l

Go ro 403O ltRlTE(6r90)90 FORl{aT(r rr4Xr.I r14X1.J. r4XrrKr14x1.Lr r4Xrr4' 11DO 50 I!lr5

0O 50 J=lr5D0 50 K=tr500 5O L=lr5lF(|1( IrJrKrLl ) 60r50r60

60 HRITE(6r80, IrJrKrLrH(IrJrKrLl50 CONTINUE80 FoRilAT(, ,r5i5,

STOPEND

Naredba 6a obelezjem 10, koja se izvrsava 62i puta, vr5i postavlja_nje nule, kao brojne vrednosti svih €lemenata detvorodimenzionalnog nizaM' To postavljanje vr.i s€ na taj na.in .to se redom menjaju indeksi nizaM. U obradi svaka kombinacija I, J, KwL definise jedan elemenat matriceM, i pojava ove konibinacije povedava vrednost odgovarajudeg elementa ma-trice M za jedinicu. Na ovaj nadin izvr5eno je prebrojavanje svih kombina_cija na ulaznim karticama.

Stampanje je programirano tako da se u jednom redu stampa kombi-nacija i broj pojavljivanja. Kombinacije koje se ne pojavljuju, ne6e bitiStampane. Za jedan primer ulaznih kartica i.zlazna tabela ima slededi iz-gled: {) IJKLil

I

)444

I23

25It

l

5

5II

3

3

5

t(D

5.6. Redgslel elemg.nata dva niza ili vi5e nizova u listi ulapno_-rzraznln naredbr

Ako se elementi nizova navode kao indeksne promenljive sa konkret-nim vrednostima indekea, njihov redosled moze biti proizvoljan, ali u.a-glasen sa ulaznim podacima, odnosno sa obrikom Stampanja na izlazu. Me-djutim, ako elementi jednog niza slede u odredjenom redosledu; onda seoni mogu skraceno pisati na naEin kako je to objasnjeno u prethodnim odelj-cima (vidi 5.2. I i 5.4. r).

eesto postoji potreba da elementi dva niza ili vi5e nizova slede naiz-menieno jedan iza drugog. u ovom sludaju element liste moze imati slede-Ci oblik:

(ime, (i), ime2 (i), i = m' , mz , m3 ) (5.6. r)

gde elementi niza imer' i ime, slede naizmeniIno jedan iza drugog. Zapis(5.6. f) proizvodi slededi redosled elemenata,

ime, (mf , imer(m,), imer(m, +m.), ime, (m, +mr),

, ime, (m, +krn.), imer(mr + kms)

gde je k odredjeno sa (5.2. 10).,

Oblik (5.6. l) koji defini5e y'wa jednodimenzionalna niza u naizmenid_nom redosledu elemenata, moze se prosiriti na veci broj jednodimenzional-nih nizova.

Takodje, umesto jednodimenzionalnih nizova mogu se u naizmeni6nomredosledu elemenata pisati visedimenzionalni nizovi.

Primer

Koordinate ta6aka Ai , i = 1, 2, 3,4 sa sl. S. 6. l, zadate su na jednoj

kartici u slededem redosledu xr, yr , x2, y2, x3, y3 , x. , y,i i to tako da

svaka koordinata zauzirna l0 kolona, od kojih su tri namenjene za decimalnamesta. Iza ove kartice nalaze se dve kartice i to tako da se na prvoj nalazi8 vrednosti, a na drugoj tri vrednosti za argumenat x, pri eemu argumenatmoze 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.

Page 59: Fortran Za Treci Razred Masinske Tehnicke Skole

ll0

sl. 5.6. 1

Blok Sema algoritma prikazana je

nizovi 6iji su elementi apscise, odnosno

na sl. 5.6.2. Sa X I Y oznaderri

koordinate taEaka A1(x, , yr ). U

vL.tx,y,Q

f=v,*ffie; .E+H*(qixt

sl. 5.6.2

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 rCIO FORHAT( BFIO.3 I

DO ll l.lrlltF(Q(ll-X(2) I l2rl2rl3

13 IFlalll-x(31 I 14rlarl5l5 F(I t=Yl3t+lYl4l-Yl3t l/(x{'?t-xl3l lt(0ll t-xl3l }

1T CONTINUElRlTEl6r16l lQ( I )rFl I lr I=l rll I

t6 FORHAT(r rr5Xrrlrll?Xr'\t lll' .'FlO'ltE20'7')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 l1END

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:

x

- lo.oooloo.o00

12. ou 060.000

222.OOO1 .000

13.0(tO-4,00010.00020.ooo50.000

0.5199998E 02-o.350c000E 02

o.e700000E o20.2500000e 02

-0.2r80000E 030.?83e9e8E 020.95500008 02o.66_r99e8E 02o.999999?E 020.8500000E 020.4000000€ 02

Page 60: Fortran Za Treci Razred Masinske Tehnicke Skole

/,/ // 7-

PROGRAH

:

' lJ'u ilot ;)t.t:r =)' -lJo

:

:

sl.6. l. I sl.6.1.2

,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

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-

bi izdvoji u potprogram (sl.6. f. 2),

tada ee u programu na mestima gde

se nalazio niz P vr6i prelazak iztp"og..-" u potprogram. Po izvrEe-

nom potprogramu vr6i se povratak

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

naredbt koje Cine potprograrr. y'e-

ma tome, kciriSdenje potprograma u Programiranju ima slededa svojstva:

- pruia mogudnost kradeg zapisa programa, a samim tlm smanjuje

Page 61: Fortran Za Treci Razred Masinske Tehnicke Skole

tt4

mogucnost greske u pripreml programa,

- smanjuje aDgazovanje memorlskog prostora,- omogucuje lakse testiranje programa, jer se potprogrami kao po-

sebne programske celine mogu odvojeno testirati, i- isti potprogram moZe se koristiti u raznlm programima,Ovde treba hapomenuti da koribdenje potprograma uopgte ne utide na

brZe izvr5avanje programa od strane ra[unara. Jer, I ako je umesto m. nnaredbi zapisano samo n naredbt, kada se lzvrsava program, izvrsice sem, n naredbi.

Iz svega Sto je do sada redeno o potprogramima sledi da se za kori5_cenJe potprogiama u programlranju moraju poznavati slede6i elementi:

- na6ln zaplea potprograrne, tako da on 6ini posebrm programsku ce_liriu,

- nadin prelaska iz programa u potprogram, i- nadin povratk3 iz potprograma u program.

Izradunavanje elementarnih funkcija (odeljak 4. g) vr6i se pomodu pot_programa. Za izradunavanje elementarne funkciJe, kao 6to je trigonome_trijska funkcija sinus, potrebno Je oko r00 naredbr na maiinskom jeziku,Svaka naredba angaZuje 3edan memorijsld registar, Ako se izradunavanjesinushi funkcije vrsi na r0 mesta u programu, i ako se ovo izraEunavanjene 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_vanje bilo bi angaZovano 10.100=f0O0 registara u nemoriji. Medjutim, a_

ko se lzradunavanje vrsi preko potprograma, bice angazovano samo r00 re-gista/ra u memoriji radunara,

IJ KoriSdenje potprograma pruZa mogu6nost da se jedanput izradjen

potprogram moZe datl na koriSdenje Sirokom lrrugu programera, koji gamogu lako koristiti u r'azliritim programima.'lNa ova5 nacrn formira sebiblioteka potprograma u ratunskim centrima, u kojoj se nalaze kao goto-vi potprogrami mnogi postupci iz numeridke matematike, statistike i dru-gih oblasti primene radunara.

. U FORTRAN-jeziku postoje tri vrste potprograma

- funkcijska naredba,

- funkcijski potprogram i- opsti potprogram.

11s

6. 2. F\rnkcijska naredba

Funkcijska naredba omoguduje izdvajanje jednog aritmetitkog izrazakao potprograma. Opd_ti oblik pisanja funkcijske naredbe je

ime(lista) =e (6.2.1)

gde je

ime - naziv funkcijske naredbe i defini5e se na isti nadin kao i imepromenljive,

iista - spisak fiktivnih argumenta medju sobom razdvojenih zarezima.Fiktivni argumenti mogu biti sarno imena p.o..,u.rt1iuiir. -- -'

l' - aritmetidki izraz, u kojem se kao argumenti mogu javiti: fik_tivni argumentt,. tT".": promenljivih L p."g";I, f;;;;",d ruga imena funkc ijskih naredbi I fu nkc ijskil potp.ogr".rr"

-1lr1 _di 6. 3).

Funkcijska naredba (6.2.1) poziva se na taj nadin Bto se kao arg-ume_nat aritmetiekog izraza u programu navodi ime funkcijske naredbe sa stvar_nim argumentima izmedju zagrada, tj.

ime (Iista)

gde je

ime - naziv funkcijske naredbe,

lista - spisak stvarnih argumenata,zima.

(6.2.2\

medju sotront razvojenih zare_

Kada se izvrsava program, svaki argument aritmeti[k og izraza uprogramu, oblika (6.2.2) izracunava se tako sto se u funkcijskoj naredbiodgovarajudeg irnena (6.2.1) fiktivni argumenti redom zamenjuju stvarnimargumertima. za ovako definisane vrednosti fiktivnih argumenata izraduna_va ae vrednoat aritmetidkog izraza I i tako dobijena brojna vrednost dode-ljuje ee imenu funkcijske naredbe.

Prema tome, funkcijska naredba predstavlja potprogram, sa proiz_voljnim brojem ulaznih velidina. Izvestan broj ulaznih velitina se navodeu listi (6.2. 1) kao argumerti potprograma, a ostale ulazne velieine pred_stavljaju promenljive koje su definisane u programu, kojem je pridruZenafunkcijska naredba, a figuri5u kao argumenti u aritmetidkom izrazu 9

Page 62: Fortran Za Treci Razred Masinske Tehnicke Skole

t

ll6

(6. 2. l. ).:I1rnke'ijska naredba mora imati naimanje jedan fiktivni argumer$'

lztazni rezultat potprograma je jedan broi koji se dodeljuje imenu funkcijske

naredbe.

Na mestima stvarnih argumenata u (6.2.2) mogu se pisati aritmetidki

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

stvarni argumenti u (6. 2. 2) zamenjuju filctivne argumerte u (6. 2 . l) redom

sleva nadesno, Slaganje argumenata po vrsti podrazumeva da ako je fiktivni

argumert celobrojna, odnosno realna Promenljiva, onda odgovarajuca veli-

6ina mora biti na mestu stvarnog argumerta.

Vrsta funkcijske naredbe deklariSe se na isti na6in kao i vrsta pro-

menljive

- unutragnjom konvencijom po poeetnom slovu imena funkcijske nared-

be,

- eksplicitnom deklaracijom pomodu opisne naredbe REAL ili INTEGER

iIi- iglplicithom deklaracijom pomodu opisne naredbe IMPLICIT'

Funkcijske naredbe se navode na podetku

programske jedinice pre prve izvrSne naredbe

programa.

GrafiEki potprogram se prikazuje pomodu:

- kruZnog simbola, u koji se upisuje broj

potprograma (PPn, n = 1,2,...), i oznadava po-

6etak potprograma (sl. 6.2.11 ,

- 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-

gati sa stvarnim argumentima. Ime programa

tnoze se izostaviti i u tom slueaju algoritam pot-

programa se razlikuje od ostalih potprograma oz-*.6.21

NAREDBEPOTPROCRAHA

nakom u kruZnom simbolu na poletku potPrograma.

sl.6.2.2 sl. 6.2.3 sl. 6.2.4

11?

- povratak iz potprograma u program oznaEave se lrr.utnim gimbolomu koji se upisuje skradenica PUP (Povratak U Program).

Pr.imer

Za zadate vrednosti x1 , yl

, = *lbj+ F (x3, ys )

i = 1,2;3 izraEunati

l.

gde je

I

F(x, Y) = 3xz + 8Y + etr+EY

Algoritam za oyo izradunavar\i€ prikazan je na sl. 6.2.2. A ovom aI-goritmu koristi se potprogram PPl (sl. 6.2.31 za izraEunavanje funkcije

F (x,y) = r, (x,l) * gF1(r'Y1

gde je

F, (x,Y) = 3x2 + 8Y

a vrednost funkcije 4(x,y) izradunava se pomodu potprograma PP2 (sl.

6.2.4) koji se poziva u potprogramu PPl.

: xtx,i-1,2,s

F,(x,v)-5azvgY

Page 63: Fortran Za Treci Razred Masinske Tehnicke Skole

118

Program na FOnTBAN-jezlku aartrv{en po algorltmima na sl.6.2.2, 81.6.2.3 i sl. 6.2.4 ima slededl lzgled; .'

DtltrNstoN xtJtrYt3t '\. /Fl(XrYl.3.tlI*X+8.rYFlxrYl=Fl(irY l+EXPtFllXrYt'REAoI 5rz0l tx( l r ry(t I rI_lr3t

?0 FORIiAT(6f5.2'Z.F( X( I I r Y( I I I tFtxl2t,y( Z I txF I xt3l,y t3 t IxRtTEl5rS0' Z

80 FOR||ATl ' t t'Zs' rE14.7lSTOPEND

U ovom programu Je predvidJeno da se ulazni podaci nalaze na Jed-noJ kartlci u redoeledu x1 r X1 r x2, !2 , xs, yil a evald od njih ee opisuJe

sa Ft.2.Za ulazne podatke

x, o 1,00

Yr -0xr = -o' 14

Y2 = -1,05xr = 0,35

xs = -o' ?5

rezultat se dobija u obliku

Z. o"L55191i2 02

6. 3. Funkcijski potprogram

Funkcijska naredba se moZe kofistiti kao potprogram, ako se radi o

Jednom aritrnetiEkom izrazu. Medjutim, vrlo desto potprogram sadrZi ve6ibroJ naredbi I to ne eemo aritmetlCkih. Ovakav potprogram zove ae funk-

cijski potprogram. Op5ti@ stedeCi

FUNCTION ime (llsta)

:END

gde je

FUNCTION - sluZbena red, koja oznadava poCetak iime - naziv potprograma koji se defini5e na

promenljive,

lista

119

tip potprograma,

isti nadin kao ime

- spisak fiktivnih argumenata potprograma, medju sobomrazdvojenih zarezima,

END - eluZbena re6, koja oznaCava fizidki kraj potprograna.Fil:tivni argumenti mogu biti imena promenrjivih, imena nizova iri

fildivna imena drugih funkcijskih ili op5tih potprograma. Kako se filiitivnaimena drugih potprograma mogu koristiti kao fiktivni argumedi u Iisti(6:3.f) bide obja5njenou odeljku 6.?.

Funkcijski potprogram se pi5e kao posebna programska celina. SluZ_bena reE FUIrcTION oznadava poEetak ovog potprograma, a sluZbena redEND kraj potprograma, i pi6e se uvek kao zadnja naredba potprograma. Iz_medju prve i zadnje naredbe potprograma moze se nalazitl proizvoljan brojFORTRAN-naredbi, osim

- druge FUNCTION - naredbe,

- druge END - naredbe, ili- SUBROUTINE - naredbe.

Vreta fiktivnih argumenata odredjena je unutrasnjom konvencijomFOTRAN-jezika ili opisnim naredbama za eksplicitnu, odno'no implicitnudeklaraciju vr6te, koje se piSu iza prve naredbe potprograma.

Prelazak iz programa u ovaj potprogram vr5i se na isti nadin kao ikod funkcijske naredbe, navodjenjem imena po.tprograma, kao argumentaaritmetidkog izraza u obliku

ime(lista) (6. 3. 2)

gde je lista spisak stvarnih argumenata, medju sobom razdvojenih 'zarezima,kojima se zamenjuju redom fiktivni argumenti potprograma. Na mestimastvarnih argumenata mogu do6i i aritmetidki izrazi fii imena funkcijskihili opstih potprograma. Stvarni i fiktivni argumenti moraju se Blagati po

broju, redu i vrsti. Funkcijski potprogram mora lmati najmanje jedan ar_gument. Izlazni rezultat funkcijskog potprograma je jedan broj koji 6e do_

deljuje imenu potprograma. Prema tome, medju FORTRAN-naredbama ko-

(6.3.1)

Page 64: Fortran Za Treci Razred Masinske Tehnicke Skole

I

120

je dine potprogram mora se nalazlti najmaujF jedna aritmetiCka 4aredba,

na dijoj levoj strani od znaka jedriakosti stoji ime.potprograma, a kojom ee

dodeljuje iilazoi rezultat potprograma njegovom imenu. I!

Povratak iz potprograma u program vr5i se posebnom FORTRAN-na-

redbom

RETURN (6. 3. 3)

koja se mora pojaviti najmanje jedanput izmedju prve i zadnje naredbe pot-

programa. Ako se u potprogramu koriste programski ciklusi onda naredba

(6.3.3) ne sme biti zadnja naredba ciklusa, na slidan nadin kao 5to naredba

STOP ne sme biti zadnja naredba ciklusa u programu.

U FORTRAN-jezlku postoji veliki broj funkcijskih potprograma, koji

se u programu pozivaju propisanim imenom. Ovo su potprogrami opdteg

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-

grama. U tabeli su uvedene sledede oznake

x, xr, x2,.,. -artimetidkiizrazi,R - realna veliEina, koja se registruje u obliku pokret-

nog zareza,

C - celobrojna velidina, koja se registruje u obliku celogbroja,

M - maksimalna vrednost celog broja (M=2 147 483 6411 ,

P - maksimalna vrednost broja registrovanog u oblikupokretnog zareza (P s ?,2. 10?3 ),

["] - celobrojni deo broja y.L"JNavedena relativna gie5ka funkcije je najveda EtatistiEki dobijena re-

lativna grSka za razne vrednosti argumenta iz dozvoljenog intervala.

Funkcijski potprogrami navedeni u tabeli 6.3. 1, pojavljuju se jedan-

put u programu posle prevodjenja sa FORTRAN-jezika na ma5inski jezik.

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

t2l

Tabela 6.3. Ibu rlEr. ot1.

qrurhr.

4l!, I nlta,att I a,rt.ta_t' tlEltdu ls-Ett.E(rl b(rt I I r,rl.rl-r E@ lqslbwloht lq{d .T I l,0t.rO_' M l*t6

F(l) a I T a"a.tltlr(tl tblrl I rr<l,tl3.to' t l. tt.ta

tllptsrtt.illrt I rl<4,:tt.to'b tdLrb, * l. tt. lO{

tM ar, rt [t rl<a,tr5.lO-rr, lt !/artld. r.r. -. -

I l,3l.rc-t

rulrt .t{ (rl I rr.l,2tl. l0rr, rt I a.3a. r!-'

rnlll aoabllt I rt$ I t.:a. ro_'M.- Brtc.rrrd. tdsl,.Icl rr{l I l,al.rc-'

{l:l .Ett(rt rtat I ,.rr.to'rffilrt,rll 6rt l.!/r:, ri .rY.t a ,.7r.tc-'

ruld .Dlr) I .r < lta.atl I !,to.ro{slrt I ar <!?a,atl t o.tat.to_'ua:l 6lrt I a l. u. to-twlrt,rl....l E(t,rr,..., c .r1.1.2a....<i I

er.rr*ucrr2....t rlr 'ttt,...<t I

MFt.a:,...' c rrl,tr2t....<r C

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

Nu(4t.rr,..., Sarl'.1...., C rtr.r.:r,...<r I

[.r lrl.rl,..., rrr'rrlr,.!r<t I

qFhr.t,..., c rtt , utt ,... (r

I .tr,11,... <t c

6IeFac I s,zc. ro'7 &tr. r&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

rulrt I lc<,ul.rot' t.tt'll-'

Page 65: Fortran Za Treci Razred Masinske Tehnicke Skole

L22

6d

G1I

@dt

dc)pdF

t

srloo

trd,{.o Ndo0t,kOtrtNN'

'lnbioookcn.o aJc ooO Urk C6O.$ a,dF{ o aOOOLto .oo )aol{ a-l!.Xra.{

tJ.catl,aIcLd.oottlA4

xooon,

F{

o8tta

tt,a

L6L6et,tal+{NoA

rt,a-lt,oeI!t,nc,{ntdI

a,Ioc

dogtocattAoIoI

Iia7EuttOfirtoko.ona.taa,>{adorredAEx:

an(,

.ractL

Irae,k-tt at

on&t

I I I I I I t

aa,aft & (, (, e u & U & U & (, &

r,co3ttl!

oco{,crtLtno v,

x

:tY?

tuNLA

x

A

v

x

x

Etl,

dx

x

A

vN1

x

EIl

xIBx

ovc|x

uIx

:Y,ta

ATx

Ix

Aux

It4,6r.

(, a o a o tr (, & o fr q &

FcaIAaI,ao.aa

d(,-,1.,rtEo.l,g

D

IN*

urc,{o;x

dxEUl

I

,a

a{x

xq

EI

x

l\x

xcgIx

l\xIEx

Nx

-l or

:l:I

x x x E': li:tcaI.a,to3t5

xC.13h

Ixl-a&.H

c{x

xz(,HoH

Nx

rzoHa^

dx

xtHoH

N,a

x2Ho

x

xooI

x

xooI

xtofi

ra

aio4

,lf<z

x

EH

-_\

123

puta su zapisani. Dakle, na svakom meatu gde ae nalazi Diihovo ime, u ma-

Sinskomprogramu,bi6epostavljenizvestanbrojmaFinaldhnaredbikojerealizuju odgovarajudu funkciju. Ove funkcije su prikazane u tabeli 6' 3' 2'

Primer

Sastaviti program koji izralunava vrednost funkcije

0(x,Y) = U(x-Y) - 4,3 u (2x-1,5Y)

gde Je

(6. 3. 4)

u(t) =(6. 3. s)

za proizvoljan broj parova (x, y). Svaki par brojeva (x, y) nalazi 6e na po

jednoj kar{ici, i registruje ee opisom polja F10.4'

Algorltam je Prikazan na sl. 6.3.1, gde ie pretpostavljeno da se iz-

ra€unavanje funkcije (6. 3.5) vrSi pomodu funkcijskog potprograma (sl' 6' 3' 2) '

lo za t < o

.l o,u ze t = o

Lt,t z4 t > o

t

ilII

I,.\

j3ji

sI.6.3.1 sr. 6.3.2

Page 66: Fortran Za Treci Razred Masinske Tehnicke Skole

o

124

FORTRAN-program sastavljen po algoritmu na sI. 6.3.1 ima slede.

Ci izgled:

hRITE(6rl0ll0 F0RHATI' rr5Xrrxrr)4Xr'Yrr9XrtTEIA' lll4 READ( 5r 12, EN0:20 I xrYl2 FOR},|ATl2FlO.4t

TETAiUFUUI X-Y I-+. 3*UFUN( 2. rX-I " 5fy'

IIRITEI6Tl3I X,Y,TETAl3 FORHATI | 'rFl0.4r5XrFl0.4r5XrF4. l l

G0 TO l420 sT0P

END

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

rama

FUNCTION UFUN(T'IF(T) l0rtlr1Z

lO UFUN=0RETURN

ll UFUN.o.5RETURT'I

l2 UFUN-1.0RETURNEI{D

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

obliku tabele

125

vrsta FUNCTION ime(lista) (6. 3.6)

iI!

END

gde namesto redi vrsta moZe doCi sluZbena reE INTEGER ifi REAL u zavis-no6ti od toge koja se vrsta brojnog podatka dodeljuje imenu promenljive kao

rezultat potprograma. Sve ostale re6i u gore navedenoj konetrukciJi imaju

ranije opisano znadenje (vidi 6.3. 1).

6.4. OpSti potprogram

Funkctjska naredba i funkcijski potprogram kao izlaznu velidinu daju

jednu vrednost koja ee dodeljuje imenu odgovarajuceg potprograma. Medju-

tim, vrlo 6esto se zahteva da potprogram moZe dati vi6e vrednosti na iz-lazu. To je omoguCeno opStim potprogramom, koji se pi5e kao posebne pro-

gramska cellna oblika

SUBROUTINE ime(lista) (6.4. 1)

;II

END

gde je

SUBROUTINE - eluZbena reC i oznaEava podetak i tip potprograma,

ime - naziv potprograma i definiSe se na isti naein kao imepromenljive,

- spisak fi}*ivnih argumenata, mediu sobom razdvojenihzatezima,

- sluZbena red, koja oznadava fizi6ki kraj potprograma.

Fiktivni argumenti opgteg potprograma mogu biti imena promenljivih,

imena nizova, fiktivna imena drugih funkcijskih lli opStih potprograma (vi-

di odeljak 6.?).

Izmedju prve naredbe potprograma (SUBROUTINE) i zadnje naredbe

(END) moZe se nalaziti prozvoljan broj FORTRAN-naredbi, osim:

- naredbe FUNCTION,

x

I 5" 07500.0033

- I 50. O000-12.5500

0"o5Or OOO0

Y TETA

- 1o.0000480.0000

30" 5000-20.0000

0o070.0000

- 3.30.J0.c'

-3.3-1.6

o. ('Iista

END6.3. l. Eksplicitna deklaracija vrste funkcijskog potprogram4

Vrsta funkcijskog potprograma moZe se deklarisati unutra6njom kon-

vencijom FORTRAN-jezika ili implicitnom deklaracijom po prvom slovu

imena potprograma. Pored ovih mogudnosti, funkcijski potprogram moZe

se po vrsti deklarisati eksplicltno na slededi nadin

Page 67: Fortran Za Treci Razred Masinske Tehnicke Skole

t

t28

- druge END-naredbe, lll- druge SUBROUTINE-naredbe.

Vrsta fiktivnih argumenata odredjena je unutraSnjom korvencijom

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

SURROUTINE ime

II

I

END

Prelazak iz programa u oP5ti

CALL ime (lista)

(6. 4. 2)

potprogram vrli se pos'ebnom nared-

bom

(6. .l . 3)

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-

ljuju vrednosti u potprogramu i predstavljaju izlazne velidine potprogranr:r'

L27

PrimerSastaviti potprogram za reiavanje kvadratne jednadine

Ax2+Bx+c=o (6. 4. 4)

jeAlgoritam

prikazan na sl.potprograma

6.4'. 1.

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

lDl <o,1 ' 10

n"(xn)= Re(x.)

6.4.r

Page 68: Fortran Za Treci Razred Masinske Tehnicke Skole

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 IREAL IHXI' II1X2lF{Al 20r21.r20

20 DISKR=8**2-40*A+cREXI=-Bl I 2.*A )

I ilXl= SQRT ( ABS ( D I SKR I ) / ( 2. *A I

IF(ABSIDISKR l-l"oE-61 ll'll'2222 lFl DISKR t l0r rlr l210 lF(61 l3rl4rl3l3 I=3l5 IHx2=-Iltxll6 REx2=RExl

RETURNla I=a

GO T0 15I I I =2

co To 16l2 I -l

REX2=REXI-Ir,!XlREXl=REXlrIl'lXlRETURN

2l I.5R E TURNEND

rT ovom potprogramu vr5i se ispitivanje uslova

lol <t.o.to-6

da bi se izbegao uticaj greske koia se javlja pri prevodjenju koeficijenata

jednadine u interni kod radunara (binarno kodirani heksadekadni brojni sis-

tem), kao i uticaj greSke usled radunanja sa pribliZnim,brojevima.

Primeniti opsti potprogram za reSavanje kvadratne jedna6ine (KVJED)

na reSavanje prolzvoljnog broja kvadratnih jednadina, pri eemu su koefici-

jenti svake kvadratne jednadine zadati na jednoj kartici sa opisom F6.2.

Algoritam za ovo izradunavanje prikazan je na si. 6.4.2, gde je

pretpostavljeno da je op5t-i oblik kvadratne jednaEine

Pyt+Qy+R=0 (6. 4. 5)

a promenljiva I svoj.om vredno5Cu odredjuje karak:ter re5enia, kako je to

opisano u opgtem potprogramu na sl. 6.4. f. FORTRAN-program sastav-

t29

sI.6.4.2

ljen po algoritmu na 61. 6.4.2. ima slededi izgled

REAL Il{Yl r lHY2HRITE( 6, IO

'lO FORIIAT( | I r 3Xr rAr 17X1 tBtr7Xr'f t rlOIr'Xl I r l4Xr tX2r rBXr.tltlt rr24xrrREALAI{ . tilAclN REALAT{ lfiAcll{r/lREADl5r llrEND-lil Pr'QrRFoRtlAT(3F6.21 ,.CALL KVJE0I PrQrRrREYlr IllYl rREY2r ll{Y2r I IGO TO (16r 16r l5rl5rlTlrlIIRITE I 61 2O I P rQ rR rREYI r t l'lYl r REYZ r I l{Y2 r IFORIIAT(' t t7 lF6o2tZXl rl llco ro 13IRITEI 6t30, PrQrRrREYI rREY2r IFORilATI t' t7(F6.2tZXlrF6.2rlOXrF6.2rl0Xrll IGO T0 13

l? URtTEl6r+Ot PrQ'Rrl40 FORhATI'' t3lF6.2t2)(lr32XrIl t

G0 ro 13l4 sToP

END

Za ulazne podatke, za re6avanje 4 kvadratne jednaEine, po gornjem

programu, dobiJaju 6e rezultati u obliku tabele:

t3ll

l520

l630

ULAZ: qQ./R

rED(ea,R Re(xli.(x),Pe(v.),I- (Y.), x )

Page 69: Fortran Za Treci Razred Masinske Tehnicke Skole

r30

c

-+8.00lo4l

2+.0041c00o.o

xl t2REALAN ITIAGIN REALAN IilAGIN

lr0O -61001.00 -2r406000 0.01.00 -10r000.0 -10.00

12.o0lo 200.0 2.005.00 {o00

-4.001.200.05o 00

-2.00-4c 00

I2435

6.4. l. Promenljivi izlaz iz potprograma

lzlaz tz funkcljskog I oplfteg potprograma vrgi se preko naredbe RE-TURN' u slucaju funkciJskog potprograma naredba RETURN vrsi povratakiz pqtprograma u program, i to u onaj aritmetiCki lzraz programa, u kojemse kao argumert pojavilo ime funkcijskog potprograma,po kojem se doSlo izprograma u potprogram. U sluEaJu opsteg potprograma naredba RETURNvr$i povratak iz potprograma u program i lo na naredbu koja neposrednosledi iza naredbe CALL kojom Je izvrden preLaz iz programa u potprogram.

Pored ovakvog povratka lz op3teg potprogranra u progratn, moZe sevrgiti i povratak na naredbu sa odredjenim obeleZjem u programu. [, ovomsluEaju naredba povratka ima oblik

RETURN i (c.4.6)

gde je 1 ceo neoznaEen broj ve6l od nule ili ime celobrojne plornenljive,Brojna v.ed'ostjukazuJe na obelezje naredbe, zadato medju atvarnirn ar-gumentima potprograma, ObeleZja naradbi u programu na.koja se moie do-di iz potpr.g'ama navode se kao stvarni argumenti pdprograma u obriku

& n (6.1. ?)

gde je

& - simbol koji ukazuje da je argument obetezje naredbe, a

n - obeleZje Jedne izvr5ne FORTRAN naredbe u programu.

Kako se fiktivni i stvarni argumenti moraju slagati po broju, redu ivrsti, to se na odgovarajudem mestu, u nizu fiktivnih argumenata pise,+.Tako, naredba (6.4.6) vrll prclaz iz potprograma u program na naredbu

i

131

CiJe je obelel,je n1 , gde je ! redni broJ obeleZJa u listi stvarnih argumena-ta potprograma.

U ranijem primeru, za resavanje kvadratne jednadine, u programuae vrgi prelaz na razlidite naredbe Etampanja u zavisnosti od velidine I,kojoj se dodeljuje brojna vrednost u potprogramu (KVJED). Ako se koristinaredba (6.4.6), moZe se isti program napisati u obliku

REAL lilYlrlltY2HRIIE(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

l3 READ(5rllrEt{D.l4l prQrRl 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 ILRITEI6r20 I PrQrRrREYIr ItlYlrREY2r IllY2r IFORI{ATl' t tl lF6.2t2I I rtl IGO TO t3I{RITE(6, 30 t P,Q,R,REYI, REY2, IFORl.lATl. . t3lF6"2t2X lrF6.2r lOXrF6.Zrl.0XrI llGO TO t3t{RlTEl6r40 I PrQrRrIFORIIATI | . tJlf6.2t2Xlr32XrJl IG0 ro 13

l+ sToPEND

Op5ti potprograln u ovom sludaju ima slededi izgled:

suBRouIINE KVJED( Ar IrCr REXIr IilXl,REX2, IilX2, t,1, +,IIREAL IIIXI,JHX2tF(Al 20r2lr20

20 DlSKR.Brr2-+o*A*CREXI'-8/(2.rAt

l52J

l630

l740

22l0l3t5

l6

Itll

l2

2L

I |lxl.SQRTlAbS I DISKR ,11 12.+AtIFt AESt DtsKR t-1"0E-6t 11, 11, 22IF(DISxR' l0rll,t2IFlEl l3rl4113lr3I }lI2r- I ilxlJ.2REx2.R EX IRETURN Jt-+Go To It1.2J.lGO TO 16I.lREx2.RE X l- I |'tX IREXl.REIlrtitxlRETURN Ilr5RETURN 3€r{0

Page 70: Fortran Za Treci Razred Masinske Tehnicke Skole

132

6. S. Nacit![ preno5enJe argumenate lz progreEa u potprqgreme

Funkcijski i op6ti potprogram predstavljaju posebne programske ce-line. Ovakvi potprogrami kada ee jedanput napiEu mogu se po po,,trebl korie_titi u razliditim progrqmima, Sve promenljive i obeleZja koja ee Jav{aju upotprogramu nezavlsni su od onih u programu. Tako se ista obeletje I i.me_na promerJjivih mogu pojaviti u Flcrtprogramu i programu. Medjutim, zaista inena promenljivih, u programu i potprogramu, angaZuju se razllll_ti registri u mehoriji. U opStem potprogramu za redavanje kvadratne Jed_nadine, pronenljivrm A, B i c dodeljuju se brojne vrednosti stvarnrh argu-menate P, Q, R (vidi primer na kraju odeljka 6.4). promenljiva I Jav{a eekao stvarni argumerd i kao fiktirfni argument potprograme. Medjuttm, broj-na vrednost p.omenljive I u progremu bi6e u jednom, a broJna vrednost pro-menljive u potprogramu bide u drugom memorijskom reg.istru. Ovakav ne_din prenoEenja vrednosti argumenata zove ae dir:ektan prenos argumenetaiz programa u potprogram.

Prema tome, u slucaju direktnog prenosa argumenata iz programa upotprogram, vrednosti argumeneta ae prenoEe iz registara memoriJe -u ko_jiqna se nalaze atvarni argumenti - u registre memorije angaiovane za fik-tivne argumente potprograma.

Pored ovog nadina prenogenja argumenata iz programa u potprograa,moie se koristiti indirektan prenoa argumenata. u ovom slucaju, kao fik-tivni argument pojavljuje ge adreea registra u kcjem se nalazi stvarni er-gument programa. Na ovaj na6in ee vrednost argumenta uzima iz registramemorije u kojem se nalazi stvarni argumert. Da bi se ukazalo na to dana mesto fildivnog argumerta dolazi adresa, a ne vrednost stvarnog argu_menta, filctivni argumert se pi5e izmedju kosih crta, tj.

/a/

gde je a ime fiktivnog argumente.

Tako ako bismo u opBtem potprogramu6ine,.u prvoj naredbi, fiktivne argumente A,crta, tj. potprogram u obliku

(6. 5. r)

za regavanje kvadratne jedna-

B i C napisali izmedju kosih

I

2J

22toItr5

l6

l{ll

l2

2L

133

SUBROUI I ilE r.V JED I t Al, l8l t f C t t RE'.l t ltitxl, RE XZ, I ilXZ, I r. r*, I tRElt tHxlrlllxzlFl^t 20t2lr20DlsxRr 8r12-{. *a*cREII.-.8/(2..A1I llxl.SQRT ( ABS I OtS(R I I I I 2. tA.llFlABSt DISKRt-l.OE-6t llr tlr22lFlOtSKRl lOrllrl2;Ft8t l3?l4rl3l13I tlx2r- I ilx IJ.2REI2.REx lRETURN JI'tGO TO r5l-2J.lGO TO 16l.lREX2-REXI- lrXlRETI'RETIiIHxIRETURN I1.5RETURN 3EilD

tada ee brojne vrednosti stvarnih argumenata p, Q i R ne6e dodeliti fildiv-nim argumentima A, B i c, ve6 6e se u potprogramu namesto fiktivnih ar_gumenata /N' /B/ 7/c/ Euvari adrese registara u kojima se nalaze brojnevrednosti promenljivih p, e i R. Na ovaj naEin brojne vrednosti argumena_ta P, Q, R koriste ae u potprogramu, indirektno iz registara memorije ukojima se one duvaju u programu, a preko odgovarajudih adresa ovih regi_atare.

6.6. Promenliivi ulazi ,, -a^-^--^-^

U funkcijski i opiti potprogram dolazi se lz programa, na prvu izvr,6nu naredbu koja eledi iza naredbe FUN.TI.N ili

''BROUTIONE_ pored

ovakvog prelaza na potprogram, kod ovih potprograma moze se koristitii promenljivi ulaz u porprogram. pod pojmom t'ulaz u potprogram[ podra_zumeva ae meato u programeko.ur algoritmu na koje se vr6i prelazak, ka_da ee prelazi iz prograrna na potprogram. promenljivi ulazi u potprogramoznadavaju ee naredbom

Page 71: Fortran Za Treci Razred Masinske Tehnicke Skole

r8{

ENTRY tme, (llata) (6.8. l)

gde Je

ENTRY - sluibena reE koja ozna{ava mesto ulaska u potprogram,ime, - naziv i-tog ulaza u potprogram, koji 6e definiEe na isti na-

Ein kao i ime potprograma,

Iista - spisak fiKivnih argumenata i-tog ulaza upotprogram, me-dju sobom razdvoJenlh zerezima. Ovi flltivnt ergumerti sedefiniSu na isti naCin kao i fiktivni ergumerdi pdprograma,ali mogu biti razlidlti po broju, redu I vrsti od fitrflvnih ar-gumenata potprograma.

Na ovaj na6in motre biti definisan veCi broj mesta u potprogramu, od

koJih moZe podeti izvr5avanje potprograma, pored normalnog pr.elaza izprograma na potprogram od prve lzvrEne naredbe {za naredbe FUNCTION,

odnosno SUBROUTINE. Na ma koje me6to potprogrema, oznaceno kao mo-gudi ulaz naredbom (6,6. 1), moze se dodl u sluCaJu funkcijskog potprogra-Ere, navodjenjem argumenta aritmetickog izraza u obllku

ime, (lista) (6. 6. 2)

gde je

- naziv i-tog ulaska u potprogram

- spisak stvarnih argumenata i-tog ulaza, medju sobom raz-dvojenih zarezlma. Ovl stvarni argumerti 6e definisu nalstl nadin kao i stvarni argumenti potprograma, samo Stose po broju, redu i vrstl moraju slagatl ea fiktivnim argu-

, ,mentima i-tog ulaza u potprogram.

U sludaju op5teg potprograma, prelaz na ulaz, definisan naredbom(6.6.1), vr$i se naredbom

CALL ime, (lista) (6.6.3)

gde je

CALL - sluZbena reE koja oznadava pozivanje opiteg potprograma,

ime, - naziv i-tog ulaska u potprogram,

lleta - spieak stvarnih argumeneta l-tog ulaze u potprogram, me-dJu sobom razdvojenlh zarezima. Ovi etvarni ergumenti8e definigu na istl necln kao i etvarni ergumerili potprogra-ma, samo lfto se po broju, redu i vrsti moraju sla$ati safiktivnim argumertima l-tog uleza u potprogiam

ime,

lista

t

135

Naredbe (6.6. l) ne utiCu na redosled lzvrSavanja naredbi patpragraan1

ma. Ove naredbe se ne smeju nalaziti u okviru prc'gramskih ciklusa del;ni-

sanih naredbama DO.

Primena naredbe (6.6. l), za definisanje viSe ulaza u potprogram' u

programiranju je korisna kada se Zele na razli[itim mestima programa

definisati razliditi argumenti, koji se ne slaZu po broju' vrsti i redu sa

argumentima definisanim u prvoj naredbi potprograr4a (FUNCTION' odnos-

no SUBROUTINE). Pored toga, ova naredba je korisna i kada se na razli-

ditimmestimaprogramadefiniSurazliditeizlaznevelidinepotprograrna.

Primer

Velidine A i B odredjuiu D(karlove koordinate na slede6i nadin

x-- tf$T6'zy= tr+B

(6. 6. 4)

(6. 0. i,)

Saetaviti Program koji Ce izradunavati Dekartove i polarne koordirrltc tada-

ka, na osnovu zadatih vrednosti A i B' Na sI' 6'6' i prikazan it algr;pi13'

za reSavanje ovog zadatka.

Izradunavanje polarnih koor<]inata vrSi se preko potprograma, diji

je algoritam prikazan na sl. 6'6'2' Kao Sto se vidi' postoie tri mogu6a tt-

laza u ovaj potprogram PP1, PP2 i PP3' Ulaz PP1 obezbediuje izradunava-

nje

R = \fizTjz

lJlazPP2 obezbedjuje izraeunavanje ugla u radijanirna

XQ.= arctg 1.

(6. o. nt

i R po formuli (6.6.6), a ulaz PP3 obezbedjuje izradunavanje ugla u stepe-

nima na osnovu zadatog ugla Q" u radijanima'

180Q" = um't' q"

(6.6. ?)

(6. 6. 8)

Page 72: Fortran Za Treci Razred Masinske Tehnicke Skole

136

(a., s,x )

(x,v,n,e^;

(x v,ng.)

sI.6.6-2

t

13?.

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

HRIrEl6rtOtr0 FoRtfATl. tr3xrrxrrSxr.y.rgxrrSrll0xr

trIETAr/. . t.26lf-t.RADIJANA STEPENI./l50 READ(5r20rENDr4Ol ArB20 FORiArl2F6.2t

y-A.gCALL KORR(A,8,XICALL KORRTIX,Y,R, RADI JICALL KORTSISTEPEN

'XETTE(6, 30 I XTYTRTRADIJ,STEPEN30 FORIIATI | . t3lF7.2t2XlrF6.3t2Xtfl.Zl

GO TO 50{0 sToP

END

a potprogrem, prema algoritmu na sl. 6.6.2, bi6e

SUEROUTI}I€ KORRTI X, Y,RI TETA tTETA.ATII{l Y./X IEN'RY KORRtX,Y,RIR.SQRTI X.XiY.Y tRETUR,NEI{TRY KORTSITETASITETAS-TEIA*I 40. /3. I +l 59RETURI{EIID

Potprogram nosl ime KORRT i ima 4 fiktivna argumenta, od kojih su X iY ulazne vrlldine, a R i TETA izlazrc;e veliEine. pored toga, potprogramsadrZi dva ulazna mesta, pri cemu ulazno mesto aa imenom KoRR ima trifiktivna argumenta, od kojih 6u prva dva ulazne velidine, a dnrgi izlaznaveliEina potprograma. poredjenjem normalnog ulaza u potprogram, prekoioena.KORRT sa ulaznim meatom KORR vidimo da ee u prvom radunajuobe polarne koordinate g t R, a u drugom eamo koordinata R. ulazno me-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 dobilabroJnu 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 kadase na potprogratn dodje prsko ul8z. KORTS.

Page 73: Fortran Za Treci Razred Masinske Tehnicke Skole

r38

izlazni rezultati se dobijaju u obliku tabele

Za ulazne podatke

A

13,20

6, l84,37

ll,8?

XY

I 5. l8 ,.7t)9.72 !3.697.48 - l. 70

12. +O 8.2f

B

-?,50

?, 50

-6,0?

-3,60

R TETARAOIJANA STEPENI

16.22 0n359 20.5016. ?8 0.953 5a.617.67 -O.22? -l2o8l

ll.gt 0.588 33r59

6 . ?. I?",,1: pdprog."-. koj nti d"ugihpotprograma

VeC je reteno da se kao fiktivni, odnosno odgovarajudi Etvarni, ar_gument funkcijskog i opsteg potprograma mote pojeviti ime drugog potpro_grama. Medjutim, ako u programu 6toji naredba

-c4LL FUNtnATrArDt (6. ?. l)

gde ie MAT ime potprogrr. ar A i D imena promenljivih, tada program zeprevodjenje ea FORTRAN-jezlka na maginski jezik ne ra8polare informa_cijom o tome da li je MAT ime potprograma ili lme promenljtve. prematome, ava imena potprograma koja se javljaju keo stvarni argurnenti u dru_gim potprogramima moraju biti deklarieana kao takva u programu. Ovo aevr6i poeebnom naredbom

EXTERNAL lieta (6.?.2)

gde je

EXTERNAL - sluZbena reC u FORTRAN_Jeziku,lista - spisak ime.ne potprograma, medju sobom razdvojeni

zarezirna, koja se javljaju kao irgumenti u potprogra-mima, I

'!

4j139

Naredba (6.?.2) pi5e se u programu pre prve lzvrEne naredbe pro-grama.

Primer

Sastaviti potprogram za numeridko izracunavanje odredjenog integra-la po Simpsonovom obrascu

b

v = i rt'l a' = | [rt*"t +4f (xr) +2f(x2)+. ..+4f(xo-t)+f("J] (6. ?. 3)

gde je

(6.?.4)

a n broj podintervala na koji se deli interval integracije [", U-]. U (6. ?. 3)

vrednost apscise x, odredjena je relacijom

. b-ah:-n

xr =a+ih,

odakle sledi da je

f(x.) = f(a)

f(x") = 1161

i=0,1,...,n (6. ?.5)

'\'

(6. ?. 6)

Ulazne velidine za potprogram jesu ime potprograma za izradunava-nje vrednosti funkcije (x,), granice integracije a i b, kao i broj podinter-vala n. lzlazna veliCina potprograma je vrednost integrala y i broj k kojiu potprogramu dobija sledede vrednosti

f O - "Lo

je koreltno izraeunata vrednost integrala,k= l

I I - ako je ulazna velicina n < 2, i tada se vrednost integrala\ ne izradunava.

Algoritam saetavljen po gornjim zahtevima prikazan je na sl.6. ?. I,Kako se Simpsonov obrazac (6. ?,3) primenjuje za paran broj podintervala

to se ne poCetku algoritma, na osnovu zadatog broja n izradunava broj

Page 74: Fortran Za Treci Razred Masinske Tehnicke Skole

140

J,o,b,n v k

x+h?x

sr. 6. ?.1

-=,.[;] (6. ?. ?)

gde srednja zagrada oznadava celobrojni deo kolidnika. promenljiva j, uokviru algoritamskog cikluea C, defini5e da li se vrSj. izraaunavanje sumeordinata funkcije (x), koja se kasnije mnoti sa 4 (suma sr). OpSti potpro_

gram na FORTRAN-jeziku aaetav{en prema algoritmuslededi lzgledt

SUBROUI TNE SlilPSf l FUltrArBrNryrKtllr2.lll/21lFti-2t torltrll

l0 K-lRETURN

ll K.OH- ( 0-A l/xSlrOoS2=0.X.A+Xlrl =il- lJ.1DO 12 l.lrillGO TO lt3rl{lrJ

13 Slr5lrFUN(XlJ.2

l2 XrX+HYtlHlTo I r{ FUNI A t +FUN ( I I +4" *Slr2. rS2 IRETURN

l4 s2rszrFuN(XlJ.lGO TO l2END

l.l1

na el. 6. ?.1 lma

(6. ?.8)

(6.?.e)

Primeniti izloZen potprogram na izradunavanje integrala

Ifaxl-

J1+xzo

Prematome, funkcija f(x), u ovom s).u6aju, ima oblik

1

r(x) = If;r-U ovom slu6aju treba aastaviti program Ciji 6e zadatak biti da pozo-

ve pqtprogrrh SIMPSN i da Ftaapa vrednoet izraCunatog integrala. Medju-tim, potprogram SIMPSN eadrZi fiktivan argumerd fUU, t o5i predstavl.jaime fun&cije, pa prena tomg i medJu stvarnim argumentima mora ae po-javiti ime potprograma po kojem ae vr6i izradunavanje vrednoati funkcije(6.?.9). Program u ovotn sludaJu ima slededi izgled

Page 75: Fortran Za Treci Razred Masinske Tehnicke Skole

t42

EXTERNAL F679READI 5r 1(.1 ArgrN

l0 FoRr{ATl2F6.2rl2lcALL SIl.tpsNlF6TgrArBrNrvRED, I tIF(tt tlrl2rll

ll t{RITE(6r20t20 FORI'iATtr VREONoST ITTEGRALA NlJf TZRACUNATA JER.*. JE N }IANJE OD 2I}

STOPl2 HRITEt6130t vREo3O FOR}IATII VREONOST TNTEGRALA JEITEI5.?I

STOPENO

Naredba EXT ERNAL ukazuje programu za prevdjenje sa FORTRAN--Jezika na maitinskr jezik da ime F6?9 u naredbi cALL nije ime promenlji-ve, ved ime potprograma. pri prelasku iz programa u potprogram SIMPSN,flktlvno ime potprograma FUN zamenjuje se stvarnim imenom F6?9. To Jeime funkciJskog potprograma koJi se mora naplsatl odvojeno za svaku funk-ciju liji se irdegral izraEunava, Tako za funkciju datu sa (6. ?,9) ovaj pot_program ima sledeCi izgled:

FUNCT!ON F679IXIFo79=lolll.+xrx,R€TURNEND

Ovaj funkciJski potprogram poziva se u op5tem potprogramu SIMPSN,

Jer Je prelazom iz programa na potprogram SIMpSN fi}iivno ime potprogra_ma FUN zamenjeno atvarnim irnenom F6?9. Vrednost irtegrala (6.?.S)Stampana je u obliku

VREDNOST INTEGRALA JE 0"78539808 OO

u programu Je uzetoda je A = o; B = 1,0 i N = 20.

6.8, Nizovi kao afgumenti potpr.ograma

Niz u pdprogramlr mole blii argument pdprograma lli ne. Ako niznir€ argument potprograma, tada 8e rrrakglnralne vrednoati njegovih in-deksa moraJu definlsati u naredbi DIMENSION, kao i kod svih druglh pro-gratna. Za ovako definisan niz rezervi6e ae potreban prostor u memor{i,t'oval prostor se koristi aarno u okvlru odgovarstudeg pdprograme.

143

Medjutim, .ako

je niz argumert potprograma, tada se ime niza morapojaviti takodje u naredbi DIMENSION u potprogramu, ali se ne moraju na_voditi maksirnalne vrednosti indeksa, jer je za ovakav niz prostor u memo_riji rezervisan u okviru programa, a ne potprograma. prema tome, imeniza u naredbi DIMENSION, kada je niz argument potprograma, sluZi samozato da ukaZe da je odgovarajuci argument ni.z, a ne zato da rezervige me-morijski prostor' zato se za ovakve nizove u DIMENsIoN-naredbi najde.cenavodi samo ime i poaetne vrednosti indeksa. Tako, ako se napiie

I rutclIoN. pptArNtDIhENSIOfu A(lt,ct20t

to znari da potprogram pp ima za pr-vi fiktivni argument jednodimenzional_ni niz A, dija Ce maksimalna vrednost indeksa biti zadata u programu, akonkretan broj elemenata niza A, koji se koristi u potprogramu, zadat jefiktivnim argumentom N. Naredba DIMENSION defini5e u ovom sludaju daje argument A jednodimenzionalni niz, a niz C posto nije argument potpro-grama bice definisan u potprogramu i za njega bi6e rezervisano 20 memo_rijskih registara.

Prema tome, elemenat liste DIMENSION_naredbe u potprogramu, ka_da niz nije argument potprograma ima oblik

ime(i-^,) (6. 8. r)

gde je

ime - naziv niza, a

i-u. - maksimalna vrednost indeksa niza.Medjutim, ako je niz argument potprograma, tada se moZe pisati ob-

lik (6.8. l), ali Ce on imati isti erekat kao i

ime(t)

Posto broj elemenata niza moze biti promenljiv kadapotprograrna, to se dozvoljava i oblik

(6. 8.2)

ie niz argumerd

(6.8.3)

gde je

ime

ime(n)

naziv niza, a

Page 76: Fortran Za Treci Razred Masinske Tehnicke Skole

L44

n - ime celobrojne proritenlJive, Eijom brojnom vrednog6u sedefinise broj elemenata niza u potprogramu.

()blik (6.8.3) je dozvoljen samo u potprogramima i to za nizove kojise javljaju kao argumenti potprograma. Za jednodimenzione nizove, kojisu argumenti potprograma, oblici (6.S. 1), (6. 8. 2) i (6, 8. 3) imaju isto zna_6enje.

Medjutim, kada je u pitanju vi$edimenzioni niz, tada je op5ti oblik(6.8,3) sledeCi

ime ( Iista) (6. 8. 4)

gde je

ime

I ista- nazl mza, a- spisak, od najviSe ?, imena celobrojnih protnenljivih,me-

dju sobom razdvojenih zarezima. Brojne vredngsti ovilfpromenljivih defini5u maksimalne vrednosti indeksa u pot_programu,

Oblik (6.8.4) omoguduje razliditi raapored elemenata vi5edimenzio_nalnog niza. U memoriji radunara vi5edimenzionalni niz se regictruje ko_lona po kolona. Tako Ce elemenat ime (2,2) biti 4. elemenat u nizu, akoje u pitanju niz in^e (2,3)

ime( 1. 1)

ime(2, 1)

ime(l,l)ime(2, 1)

ime(3, 1)

ime(1,2)

|..ar-rilirne( I , 3)

ime(2,3)

odnosno peti elemenat ako je u pitanju niz ime (3,4):

ime(1,3)

ime(2,3)

ime(3.3)

ime( l, 4)

ime(2,4)

ime(3,4)

Slede6i primer ilustruje, razlidite rasporede elemenata dvodimen_zionalnog niza u potprogramu za isti dati dvodimenzionalni niz u programu.

Primer

'ime(1,2)

ime(3,2)

Sastavitl program koji formira dvodimenzionalni niz

145

11 t2 13 14

2t 22 23 24

31 32 33 34

(6.8.5)

i potprogram koji Stampa elemente dvodimenzionalnog niza (6. 8. 5) ze raz!

li6ite oblike DIMENSION-naredbe u Potprogramu.

Neka je ime dvodimenzionalnog niza (6.8.5) NIZ, tada 6e program i-

mati sledeci izgled

OItlENSION NIZ( 3ral0O l0 l=1r3D0 l0 J-lr4

1G NtZ(IrJlrlO*I+JhRITE(6120l

2L FOR}|ATl I f r3Xr'Nrt3Xt rltl'llOIrt TNIZOVI U POTPROGRAI{U'lID0 3O I'1r3DO 3O J=lr4

3',t CALL VARNI2{NIZrl rJ IS TUPEND

gde je VARMZ ime op5teg potProgrema, Eiji su argumerti: ime dvodimen-

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-

ljive, tada potprogram ima slededi izgled

sU8R(IUTINE VARNIZ ( Arilr I{ IDlltENSlot{ Atr{rr{tt{RITEI 6r l0 I l{rl{r (A( I r J I t J=ltlllFORI,|AT( . .,2I4r3Xr4l 5llF(N-ll 2Or39t2ODO {O I=2rNllRlTE( 6r 501 lA( I rJl r.Jtl rl'llFoRHAT(r .rllXr4ISlRETURIIIEND

Dvodimenzionalni niz (6.8.5) u memoriji, registrovan je kolone po

kolona. Prvi indeks niza u naredbi DIMENSION definiSe broj vrsta dvodi-

menzionalnog niza, odnosno broi elemenata kolone. Prema tome, u Potpro-

gramu 6e biti koriSdeni elementi niza (6.8.5), tako da svaka kolona sadr-

Zi N elemenata niza u programu. Rezultati gornieg potprograma Etampani

su u sledecem rasPoredu

lir

2t10503Cr

Page 77: Fortran Za Treci Razred Masinske Tehnicke Skole

lt8

t{

t2III

lllrlltlII2lll2lII2ttl2lll2l3lll2l3lll2l3rll2L3l

NIZOVI U POTPROCRAIIU

2l2t 3t2l 3I 12

2

3

4

2

2

2

3

3ll2Itl 2212 32lr 22 13Iz !2 23

Kao Eto se vldi tz prikazanlh rezultata, dvodimenzlonalni niz sa di-EenzlJrma A(2, 2) u potprogramu korietlde sledede elemente niza (6 . 8. S)

l2h.zbzt2 1322 2.332 33t2 13 l+22 23 1.432

'? t+

11 31

2t L2

ll t2

2t 22

lz programa

Jer svaka kolona dvodimenzionalrlog niza u potprogt'mu sadrti dva elemen_ta, iz nlza elemenata (6. S. S) u programu poreaia(ih kolona po kolona.

Medjutim, ako ge u naredbi DIMENSION potprograma, niz zapise uotitlku A(1, l), tj. potprogram u obliku

suERourtilE VARNI ZIArN,il'otr{€NstoN AtlrltlJRllEl6r lOl trllr lAl lrJ t rJ=lrttl0 foR,flAtl | .;214111,r4151lFln-lt 20r30r20

20 OO {O I.Z|N

t17

40 lrRlTEl6150l (Al lrJlrJrlrHl50 FoRrAllr rrllXr4l5l3O RETURN

ENg

tada Ce nizovi u potprogramu imati slede6i izgledN

IIII2

222'2+3l

H

I2ttI

I{I ZOVI U POTPROGRAIIU

lllltllll12lll2ltl2tlt2Lll2l3lri2l3lll2l3lll2t3l

?t3l21 3l3l t221 3t 123l t2 22

2l2t 3l21 31 t2

122232

.L3ll22L 3t31 L212 222t 3l3l L2L2 22

U ovom slulaju evaka kolona dvodimenzionalnog niza u programu po-Elnje narednim elementom niza (6. g. 5), kada se ovaj shvati kao jednodi-menzionalni nlz porcdjan u redosledu kolona po kolona. Zato rriz A(2,2) upotprogramu lma obllk

jer prva kolona podinJe elemertom 11, a druga gledeCim elemertom, postoprvl tndeka u naredbi DIMENSION niza A ima vrednost 1.

Ako se u potprogramu, u naredbi DIMENSION, niz A zapise tako dapnri lndeks ima,iatu vrednost kao i u programu, tako da potprogram imao&lilk

1l 21

21 3l

Page 78: Fortran Za Treci Razred Masinske Tehnicke Skole

ll

liI

lilll

I

ii

148

SUEROUTIIJE VARNT Z ( Arrtr it tDIIIENSION A(3IIIllRIT€l6r l0t Nrttr lA{lrJI 1J-l I!{tl0 F0RB r(r rr2t4r3Xr{l5lrtil-l) 2Ot3Ot2O

2O DO +0 I-2rN40 llRITEl6r50t (fltrJtrJ.lrt{l50 FoRttATl. rrllxrtt5l30 RETURN

ENIi

tada Ce nizovi u potprogramu imati slededi redosled

I{IZOVI U POTPROGRA}IU

11lt L2ll 12 13lt l2 13 l+ll2Lll L22t 22tl t2 132t 22 23lt L2 13 1+2L 22 23 24ll2ttlll t22L 2231 32ll L2 13zt 22 2331. 32 331l t2 13 142L 2; 23 2431 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

rll2l3l4zt2?2t243l

L49

SUER0UTINE VARNI Z (A rN, fl IDIHENSION A( I INll.Ntlll{RITEI 6r IOI llrllr lAl I l r-}rlrNt{l

I0 FORIIAT(' tt214r3XrL2I3lRETURNENO

U ovom EluEaju niz (6.8,5) u programu biGe u potprogramu uzet kao

jednodimenzionalni niz i to u redosledu kolona po kolona niza (6.8. 5). Tako

da 6e za razne vrednosti N i M biti definisani elede6i Jednodimenzionalni ni-

zovi u potProgramu

2222Iv33

A

I23+t234I23+

NIZOVT U POTPROGRAI{U

llrl 2lll 2t 3tIl 2t 3l r2I I 21lI 21 3l r2LL 2L 3t t2 22tL 2L 3t L2 22ll 2l 3lLL 21 3T L2 22tL 2L 3t t2 22Ll 2t lr tz 22

3232

t23232

L3 23

13 22 3it3 2-7 t1 t+ 2+ 3+

U potprogramima koji 6e odnose na matriEni ra6un, i nalaze se u bi-blioteci gotovih pqtprograma radunsklh centara, najdesCe 5e matrice treti-raju kao jednodimenzionalni nizovi, U ovom sluaaju je vazno uoeiti da Ce

redosled elemenata matrica u potprogramu biti kolona po kolona matrice,

kao jednodimenziorialni niz.

Page 79: Fortran Za Treci Razred Masinske Tehnicke Skole

<^U.

(.( "

to

$

?, AI.GORITMI SA I.OGIEKIM KONSTAIfTAMAI PROMENLJTVIM

7. 1. Operaclje poredjenja

29 ?.1. l. DeXniclje operaclja poredjenja

U mnoglm problemima tok algorltma zavlsl od odnosa nekih brojnihvelldina. 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 brojnihvellElna. 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

Page 80: Fortran Za Treci Razred Masinske Tehnicke Skole

152

Navedene oznake operaclja poredjenja u tabeU ?,1.1,, treba ehvatitikao jedan nedeljivi si.mbol FORTRAN-jezika. Operacija pbredjenja (?.1.1)uvek izraZava jednu tvrdnju koja moZe biti istinita ili laina.

Ako je tvrdnja -iskaz izra|en sa (?. 1. 1) istinit, ozna6i6emo ga, kakoje to uobidajeno u algebri Logike, sa 1, a ako je laZan sa 0.

Tako se moZe, u FORTRAN-jeziku, pisati operacija poredjenja

J, GT.56to u matematidkoj notaciji predstevlja relaciju

(7. r.2)

(7. 1.3)j>s

U $atematici je uobiEajeno da se funkcija (?.1. l) zove predikat, pa6emo ovaj termin koristiti u daljem izlaganju. Kara}cteri.stika funkcije(?.1.1), odnosno predikata, jeate da argumenti funkcije uzimaju vrednos_ti iz potencijalno beskonaEnog ekupa veudina, a sama funkcija uzima vred-nosti iz etcupa lO, ff . tafto, argument j predikata (?. l,3) uzima vredno_sti iz skr:,pa celih brojeva, a vrednost poredjenja j)b moZe biti istinita llilazna, a to znadi da uzima jednu od vrednosti, u'rovno oznadenih sa l ili 0.

j o ?. 1.2. Naredba prelaza po vrednosti poredjenja

Grananje u programima po vrednosti operacije poredjenja, moZe seizvrEiti pomodu naredbe

IF(p)naredba (?. 1. 4)gde ie

IF - sluZbena red,

p - predikat (definisan sa ?.1. l, ),naredba - jedna izvrSna FORTRAN-naredba, osim druge naredbe IF

po vrednosti poredjenja, ili DO_naredbe.

Naredba (7. 1.4) izvrSava se razlidito u zavisnosti od vrednosti pre_dikata p:

l) Ako je vrednost predikata p = l, tada se izvrEava naredba zapisa-na desno od zatvorene zagrade u (?.1.4), a zatim mogu nastati dva slu6aja:

16:t

a) Ako naredba u (?.1.4) nije uelovan llt bezuslorna naredba prelas-

ka, tada 8e izvrgava naredba koja eledl iza naredbd (7'L'41'

b) Ako je naredba u (?. f.a) ualovna ili bezuelovna naredba prelaza'

tada se lzvr5ava naredba ukazana ovom naredbom prelaza'

2) Ako ie vrednost Prediketa p = O, tada se ne izvr6ava naredba za-

piaana deeno od zatvorene zagrade u 1?' f'4), ve6 odraah prelezi na nared-

bu koja sledi iza naredbe (?. f.4)'

Tako, naredba

lFlJ.GT.5l A'BrC

ima sledede dejatvo:

(?.1.5)

- ako je J ve6e od 5, lzvrFi6e se naredba A=B+C' a zatim naredba

koja sledi lza naredbe (?.1.5),

- ako je J manje ili jednako 5, preskodlde ae neredba A=B+C i izvr-

6iti naredba koja sledi iza' (1. 1.5).

Medjutim, u sluEaJu nar€dbe

rF(J.Gr.5' G0 T0 100(?. 1.6)

ako je J veCe od 5, izvr6i6e 8e naredba bezualovnog Preleska na naredbu

sa obeleZjem 100, a ako je J manje ill jednako 5, pre6i 6e se na naredbu

koja eledi iza naredbe (?' 1' 6).

Prlmer

Zadal je niz brojeva xr, l=1, 2, "' Svaki od brojevd xr nalazi se ne

po Jednoj kartici u polju od l. do l0' kolone ea opieom F l0' 5' Odrediti ko-

liko Je od zadatih brojeva xt ve6e od 25,8'

Algoritam za re5evanje ovog zadatka je prikazan na sI' ?' l' l'

Program saetavljen po algoritmu na 8l' ?' 1' f ima slededi izgled:

N.030 REAO(5rlO0rCND.20l X

loo FoRtATlFlo.5tIFlIrGTo25.El ll-N+lGO tO 30

20 lRlTEl6r40l rtC FORKATIT 11rrtf4l

STOPEt{D

Page 81: Fortran Za Treci Razred Masinske Tehnicke Skole

tt{

. TRUE.

. FALSE.

LOGICAL listagde je

LOGICAL - sluZbena re6, a

sl. ?. l. I

. ?.2. Logi6ke operactje

32 7.2. l. Losidke konstenfF i nF^h6-ri{,,^

U dvoznadnoj algebri logike (Bulovoj algebri) postoje dve konstante,NaJde66e se ove konstante oznadavaju ciframa 0 I 1, pri demu 0 predstav-{a vrednoet laZnog iskaza, a I vrednoet istinltog iekaza. U FORTRAN-Je_zlku za logiEke kongtante koriste se simboli

za ietlnitoet, I

za laZnost iakaza.

Logidka konstanta se registruje u jednom memorijskom registru.Imena logidkih promenljivih konstruisu se na istl na6ln kao i irnen.

brojnih promenljlvlh. Da se jedno ime promenljive u programu odnosi nalogtcku promenljivu, ukazuje se opisnlm naredbama za deklaraciju vrstepromenljive. Ova deklaracija se moie izvr5iti ekspllcitno naredbom

(7.2. rl

(7.2.21

(7.2.31

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

gde je

IMPLICIT - sluZbena red, a

(7 .2. 4l

lieta - spisek elemenata medju sobom odvojenih zarezima.

Element llste u slu6aju lmplicitne deklaracije logidkih promenljivlh

lma lzgled

LOGICAL (lletar)

gde je

LOGICAL - eluZbena red, a

(?.2.5)

listal- spisak velikih slova engleske azbuke, medju sobom raz-

dvojena zarezima.

Impllcitnom deklaracijom kao logi6ke promenljive deklariEu se eve

promenljive u jednom programu, dija imena podinju jednim od navedenih

glova u implicitnoj deklaraciji (7.2.4l,, gde je elemenat liste obltka 0.2'5).

Ako v16e uzastopnih elova engleske azbuke predstavljaju podetna slo-

va lmena logiCkih promenljivih, tada ee elemenat llste u (?.2.4) moZe pi-

eatl u obliku

TOGICAL (x1-x2,x3-xa) (7.2.6l

DekleractJa (7.2.6) deklarlEe eve promenljive tija lmena po6inju od

vellkog elova xr do vellkog slova x2 engleeke azbuke, odnosno od x3 do

x., kao loglEke promenljive u programu.

Ta&o oplana naredba

LOGICAL AFITLTBIJLL 9.2.71

deklarlSe promenljlve ABf, L I BULL u Progrs.mu kao logiEke promenlji-

ve.

Page 82: Fortran Za Treci Razred Masinske Tehnicke Skole

156

Opisna naredba

IHPLTCII L06ICALIA-D,L I (7 . 2.8)deklariSe sve promenljive Cija imena poCinju slovima A, B, C, D i L kao lo_gidke promenljive.

ViSe logidkih promenrjivih sa zajednidkim imenom obrazuju niz. Isve sto je receno za nizove u s1udal'u brojnih veuEina vazi i za nizove aalogidkim velidinama.

?. 2. 2. Definicije logidkih operacija

Logidke operacije definiEu se nad argumentima koji mogu uzimativrednosti iz skupa od dva erementa fo, rj . Rezultati.logickih operacija u-zimaju takodje vrednosti iz istog skupa elemenat" lo, rl . u algebri logikeskup funkcija preko kojih se moze izraziti proizvoljna funkcija algebre ro-gike zove se pun sistem funkcija. pun sistem funkcija grade razlidite funk-cije algebre logike. u FoRTRAN-jeziku su izabrane tri funkcije koje 6inepun eistem funkcija, to su:

- negacija ili ne funkcija,

- konjukcija ili i funkcija, i- disjunkcija ili iU fuakcija.

Pomodu ove tri funkcije moZe se izraziti proizvoljna funkcija algeb_re logike. Sa druge strane, primena ovih funkcija na_jbliZa je Eirem krugu.ljudi, jer argumente povezuje na na6in koji je vrlo blizak uobidajenom na_dinu razmi6ljanja.

Funkcija negacije z je takva sloZena funkcija koja je istinita ako ar_gument x nije i6tinit, odnosno laZna ako je argument x istinit. Ova fun-kclja se dobija primenom operacije negacije nad jednim argumentom

z = A e.2.g)gde povlaka iznad x oznadAva operaciju negacije, i 6ita se "ne x,,. U ta_beli 7.2. 1 data je definicija funkcije negacije.

x z=x0 I

o

Tabela ?.2- I

15?

Funkclja konjukcije z je takva eloZena funkcija algebre loglke, koja

je isttnita samo eko au oba argumenta t I y, od kojth je oaatavljena, ie-tinlU. U evl- dr.ugim eluEajevima ta funkclja je laZna. Ova frinkclja se pl-Be

z = x^':' (?.2. 10)

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.

Tabela 7.2.2.

x v z=xhy

0 0 00 I o

I {, (,

I I

Funkclja dlsjunkcije z Je takva sloZena funkcija algebre loglte, ko-

Ja je laZna aamo ako su oba argumenta x i y, od kojih Je saatavljena,la-

Zna. U evtm dnrgim eludajevima ta funkcija je tstlnitE. Ova funkclja ae pl-

lez=rYy (7.2.1r)

gde almbol V oznadava opbraciju dlejunkclje, i 6ita ge t'r ili yt'. U tabell

?. 2. 3 data Je tabela letinltoeti za funkcifu (7.2. lLl.

Tabela ?.2.3.

x v z = rVy

o 0 oo II 0

1 I

Deflnlsane trl 1og16ke operacije: Degacija, konjukclja i diejunkclja

predatavljaju logidke operaclje u FORTRAN-jeziku. U tabeli 7.2.4 pfika-

zanl su simboll ovlh operaclja u FORTRANU.

Page 83: Fortran Za Treci Razred Masinske Tehnicke Skole

15E

-3t ?.2.3. tpgtctd tzrez

fddEkl izraz Je aaetav{en od logickth konstalru. foddkfh promen{l_vlh sa lndeksom ilI bez njega, r predikata'edju aobom povezanih logirr.rnoperac$ama. vrednost logtEkog tzraza odredjuJe ee rzvrSavanjem logld-&{h operac{a gleva nadeano, prr rem-u vazi alede6r prrorrtet: naJpre ee rz-ra6unava vrednoat predlkata. a zatlm redom logi6klh operablJa negactJe,tonjulctle i na kraJu dreJunkclje. Ako se zeli drugacrjt redoaled u prlortte-tloa operac{a, to ae moZe poett6l uvodjenjem zagrsda. Deo logtEkog lzra_ze replsan rzmedfu otvorene r zatvorene male zagradb rma naJvt6l prrorttet.

Dve logiEke opereraclJe u loglGkom lzrazu mogu bltl Jedna do druge,eqho a.ko Je druga od nJth operac{a negaclJe.

Prlmer loglIkog lzraza u F0RTRANU

B. AND. C. L.3.6 (7,2, t2)Ovde Je prvl argumentj operac{e log{Eka promen{lva B, a drugl predltatC. LT.3.6. Promenljivd C Jeste broJna promen{iva, t ako Je C < g,6, i Blatlnlto, logi€ld lzraz (.7.2.L2, Je tstinlt; u gvim dnrgtm elu.aJevima onJe lalan.

3€ t.r. n.

7.2.4. l. Dodeulvanje vrednoatt ea ulaza

Inena logi.rdh promenljrvih, pojedtni elementi logt.kth nizova ili tro-glcH nizovt navode se u lietl ulazne naredbe po retrm pravflrma kao i ueluEaju broJnth velrErna. Medjutim, u odgovaraJucoj FoRMAT-naredbi opi-suJe ee po{e u ulaznom slogu koje sadrZi loglEku konatantu, sa

gde Je

n

L

w

nLw (7 . 2. r3l

- ceo neoznaden broj kojt ukazuJe koliko puta ae prlmenjuje oplc L,- efr*6f FORTRAN-jezlka kojlm se ukazuJe da odgovarajude polje

u ulaznora elogu aadrli fodGku konstantu.

- 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 lltaEalirrttca.

159

Polje na karticl, koje sadrZi logidku konstantu moZb imati jednu ko-lonu iU vl5e njih. Medjutim, sa glediSta reg"istrovanja logidke konstante od

znaCaja je samo prva kolona. U prvoj koloni polja rno." ju nalaziti bu6en

kod elova T, za konetantu.TRUE., odnosno kod slova F za konstantu .FAL-sE. .

Ako su promenljive A i B deklarisane u programu kao logiike pro-menljive, tada naredbe

REA0l5rl0t ArBl0 FORiArt2LSt

dodeljuju vrednoeti promenljivim A i B sa jedne kartice, pri demu u kolo-nama 1. i 6. mora biti bu5en kod slova T ili F u zavisnosti od toga kojakonkretna vrednost se Zeli dodeliti promenljvim A i B. sadrzaj ostarih ko-lona, od 2. do 4. prvog polja i od ?. do 10. drugog polja, na kartici je bezznaCaja.

: '. 7.2.4,2- Logldka naredba

lrt ze_.se. dode]ili Lqgtqtoj pro_

- menljivoj, pglgglr {eredbe

l: e (7.2.14)gde je

a - ime logi(ke pr:":_"!lf:_*:3.._in_deksom,iti bez njegar

= - simbol FORTRAN-jezika,--+9 - loglCki izraz.

Tako se moie oisati

-

(7.2.1s)ive, Izradunavanje logidko g izraza

sti vr5i se sl.eva nadesno. Kako je X. O-Tti yre izraEunati vrednosl

Page 84: Fortran Za Treci Razred Masinske Tehnicke Skole

180

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 navodiee 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 erobolpolja 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.

Tako naredba izalza

lrRIfE(6r20t ArB20 foRrtATl. .r2L5l

formira dva polja od po 5 sinbola. prva Cetiri etmbola svakog polja bi6eznaci blanko, a u zadnjim pozicijems polja bi6e alovo T, odnoeno F u zavi_snosti od vrednosti logidkih promenljivlh A i B.

Odrediti vrednost logidklh tunkcija

Fr=xrnxzVxsFz=xrVxzVfrF!=xrAXznXs

gde su x2 i x3 togidke promenljive, a x1 predikat

/ Prlmer .-il--lr''

(?. 2. r6)

(7.2. r7)

(?. 2. r8)

(7.2. t9)

tj.x, = (a >b)

(o *" je a1b*' =l

l.r ato je a>u

Velidine koje ulaze u algoritam jesu brojevi a i b, i logidke kone-koje predstavljaju vrednoeti argumenata x2 i x3 .

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

tante

r6l

Fr - Xrz\livxsFs-\vxrvx3

Program na FORTRAN-jeziku zapisan po algorltmu na al. ?, 2, l. ima

slededi lzgled

IHPLICIT LOGICALIX,FIDlHeNSlOr{ X(3lrF(31yRI IE ( 6t2001

20o FoRiATl. ,r3xr'ArrTXr rB,tSlti rxl XZ Xt Fl F2 Frt ll

600 READ(5r3O0rElilD:5O0t ArDrXl2lrX(31300 FoRHAT(2F6.2.2Lt1

xlllrA.6E.8F( I l=Xl I lcAND.x(Zl. OR.Xl3lF( 2l=oNOT.X( I l.OR.Xl 2 l.OR..NOf. I(31F{ 3 l=xl I l.ANtr..t{OT. X( 2 l.At{D..NOT. x(3 IHRI TE( 6r+001 ArBr lX( I I I !*1 r3l r lFlI I r l-l r3 I

40O FORilATl.' tF6.2t2XtF6.216L5lGO T0 600

500 sroPEND

Za zadate veliilne a, b, x2 i x, rezultati se dobijaju u obliku ta-:

bele

Page 85: Fortran Za Treci Razred Masinske Tehnicke Skole

t@

FIx3xl x2

FFTFTF.

F2

TTTT

TT

F3

F

FF

TFF

100 50 13. l2 F+0. lo 60.00 F1.50 22,00 F{o 80 -1o00 T

-12.00 -12c00 T-12100 0.0 F

FFTTFFFFTTFf

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), samo6to 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 seodnoet na predlkat p sada se odnosi na loglCld, Iziaz j. Zapravo naredba(7.1-4't j€ poseban sludaj naredbe (?.2.r7.. kada je logldki izra?sastavljenod jednog predlkata.

Tako ee _moZe plgati

IF.(A. AND. B. OR. C. cT. 28. 5) c,o To l0o

U*9ySlq*cluCeju pqgme4_.jive A i B moraju bitl dektarisane kao lcgilke pro_men{lve, a promenljiva C mora blti brojna promenljiva. I,,radunavanje z

vrednostl logiEkog izraza u gornjoj naredbr odvija se srede6im redosledom:

sa pr.a) Odredjuje ee vrednoet konjukcije A. AND. B koju 6emo oznaCtti

Ib) Odredjuje se vrednost predlkata C.GT.28.,5 koju Cemo oznadi_

tl ea p..

. c) Na kraju se odredJuje vrednost logidkog iztaza pr.OR. p, koju6emo oznaCiti ea p.

Dejstvo gornje naredbe je aledede: ako Je vrednost logidkog lzraza pistinita prelazl se na naredbu C,O TO 100, u auprotnom na naredbu kojaeledi iza opleane lF naredbe.

163

Primer

Zadat je niz brojeva x1 , i=1,2,... . Sv'kl od brojeva xt natazi se

na po jednoj kartici u polju od 1. do 10. kolone kartice sa opisom FlO' 5'

Odrediti koliko od zadatih brojeva xi leZi u intervalu [-20; -10] iu [5, 1;

8,51 .

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

sI. ?. 2. 2

Program eastavljen po algoritmu na el. ?' 2.2, irna slede6i izgled

N.t3C READl5rlO0rEND=20t x

lco FoRttAT(Fl0.5lI F I'I. GE. -20. ANo. x. L E. - 10. I'R.

.X.G€o5o t.ANO.X.LE.8.5l NEN+lGO TO 30

20 l.RtTC(614Ol N

t0 FORI{ATlr N.'rl8lstoPEND

-20<x<-1O

5<x<8n+19fl

Page 86: Fortran Za Treci Razred Masinske Tehnicke Skole

8, ALGORITMI SA REALNIM KONSTANTAMA IPROMENLJIVIM 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 jedovoljna. 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 meSovitihkonetanti dva ili vi$e puta ve6i od obidne taEnosti. Kod radunara IBI\{-'360144 registrwanje brojeva u dvostrukoj tadnosti obuhvata 16 vazedihdekadnih cifara broja.

Me5ovita konstanta dvostruke taCnosti pi5e se u jednom od slededadva oblika, kao

0 al Niz dekadnih cifara, pri Cemu se celobrojni i razlomljeni deo raz_dvajaju decimalnom taekom. Ispred ovakvog niza moZe stajati znak + zapozitivne 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_

Page 87: Fortran Za Treci Razred Masinske Tehnicke Skole

166

pisane konstante jednaka je prolzvodu brojeva ispred elova D i stepena bro-ja lO, sa celobrojnim eksponentom navedenim iza elova D.

IVlesoviti broj dvostruke taenoetl.registruje se u memoriji u oblikupokretnog zareza, tako da se eksponent I deo mantiee ve6e teZine registru-je u jednom registru, kao u sludaju obidne tadnosti, a deo manje teZine

mantiee u susednom memorijskom registru (s1.8. l. l). Ovako registrovan

IZNAK XH

broj x ima brojnu vrednost

sl.8. 1. I

^. - \/-_( t:z aa-r 1 '.1..

x = xM.16xB (8.1.1)gde za x, vaZi relacija (4, 1.3), a. za. x6 vaZi relacija e.1,4), s tim Sto

se u ovom sludaju u mantisi naLazi L4 binarno kodiranih heksadekadnil ci-fara, Sto odgovara pribliZno 16 dekadnih cifara.

Primeri

a) Dozvoljeni oblici meSovitih konstanti dvostruke ta€nosti

384. I 5?I)4-14.t)D-2

15684.3?90?

b) Nedozvoljeni oblici meSovitih konstanti dvostruke tadnosti

t2.004-5.07D150

8.2. Definicija realne promenljive dvostruke tadnosti t

Ime realne promenljive dvostruke tadnosti definiSe se na isti naain

lcao i ime realne promenljive obidne tadnosti. IMedjutim, da bi se imcna

ovih promenljivih razliltovala u programu, sva imena promenljivih dvo-

struke tadnosti Inoraju biti eksplicitno <.leklarisana jeclnont opisnom nared-

lrorn. Ova opisna naredba se piie

i

51 9---24.23----- 1051 50- ---10

t67

DOUBLE PRECISION IiStA II (S. 2. 1)

cde jt' DOUBTR PRECISION

zlieta -

registra.

eluZbena red, koja oznadava opisnu naredbu

za deklarisanje realnih promenljivih dvos -

truke tadnosti,

spisak imena promenljivih i nizova medju so-

bom razdvojenih zarezima, koji se u Prcgr.r-mu deklariSi.r kao promenljive i nizovi dvos -

truke tadnosti-

lzAko se ime niza deklariSe kto niz diji 6u elementi dvostruke tran'ls-

'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

(5.2.1), ne navodi se i u listi DIMENSION-naredbe. lt*ko ".

moze piiati

!.bOUBLE PRECISIC}N KITEI,IT C( 20 I

Eto znadi da 6e u programu promenljive K i TEM, kao i niz C koji ima 20

elemeneta, biti dvostruke tadnosti. Za svaku promenljivu, sa indeksom ili

bez indeksa dvostruke taEnosti, u memoriji radunara bide angaZovana dva

Treba uoditi da opisnom naredbom (8.2. 1) eksPlir:',ino se deklaridu

lmena promenljivih navedena u listi kao realne promenljive dvostruke tad-

nostl, Tako u gornjem prlmeru promenljiva K, koja je po unutraSnjoj kon-

venciji celoborjna, deklariEe se kao realna i to dvostruke tadnosti.

Opisnom naredbom (8.2. 1) deklaridu 6e i imena funkcijskih naredbi

i potprograma ako ee ZeU rezultat potprograma u dvostrukoj tadnosti.

Opisna naredba (8.2. f) se piEe na po6etku programa, pre prve izvr-

6ne naredbe p"og".-") h.edosled pisanja opisnih naredbi na podetku progra-

ma je slede6i:

' ' 1. Naredbe za ekspUcitnu deklaraciju vrste promenljivih (REAL, IN-

TEGER, DOUBLE PRECISION, LOGICAL),

, 2. Naredba za implicitnu deklaraciju vrste promenljive (IMPLICIT),

, 3. Naredba za navodjenje imena potPrograma kojl se javljaju kao ar-

gumenti drugih potprograma (EXTERNAL),

Page 88: Fortran Za Treci Razred Masinske Tehnicke Skole

168

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

i 5. F\rnkcijske naredbe, i6. Oetale.naredbe programa.

t. r.dvostruke tadnosti

8.3. 1. AritmetiEka naredba

Na lsti nadin na koji se obidnim promenJ.jivim dodeljuje brojna vred_nost aritmetidkom naredbom, moZe se i promenljlvoj dvostruke tadnostidodeliti brojna vrednost. U ovom sluEaju aritmetidka naredba irna oblik.

gde jea=V

a - inie promenljive dvostruke tadnosti,

V - aritmetiEki izraz.

(8.3.1)

,Jo,rJ.it i - .. ,' ,'.,1,

Ranije smo videli da ako je jedan od argumenata neke aritmetidke o-peracije u aritmetidkom izrazu y, u obliku pokretnog zereza, a drugi celo_brojni, tada 6e medjurezultat ove operacije biti u pokretnom zarezu.. Me_

djutim, eada argumenti aritmetidkogizraza V mogu bitl vehdine u pokret-nom zarezu obidne i dvostruke ta6nosti i celobrojne velidine. U ovakvimaritmetidkim izrazirna medjurezultati se javljaju u obliku dvoetruke tadno-sti, ako je barem jedan argument dvostruke tadnosti, Medjutib, ako arit_meti6ki izraz g ne sadrZi argumente dvostruke tadnostl, tada 6e izraEuna_ta vrednoet aritmetidkog izraza biti prevedena u oblik dvostruke tadnoeti idodeljena promenljivoj a u (8.3. 1).

8.3. 2. Naredba ulaza

Kada se promenljivoj dvoetruke tadnosti dodeljuje brojna vrednostsa ulaza, tada se u ulaznom slogu mora opisati polje koje sadrZi konsten_tu dvoetruke ta6nosti, Ovaj opis polja pi6e ee u obliku

nDk.d (8. 3. 2)

gde Je

4nI'D

'k

169

- neoznalen ceo broj, koji ukazuje na broj ponayljanja oplaa D,

- slnbol FORTRAN-jezlka, koji ukazuje da pofJe eadrZi konstan-

tu dvoatruke tadnostl,

- neoznaden ceo broj, kojf ukazuje na broJ koloua polja na karticikoje eadrZi konetantu dvostruke ta6nosti,

' d - neoznalen ceo broj, koji ukazuje na broj decimalnrh megta kon-

stante dvo8truke taonosti.

Opis (8.3.2) navodi Ee na odgovarajudem rnegtu FORMAT-naredbe.

Konstanta dvoetruke taEnogti, sa odgovaraju6eg polja kartice, dodeljuje se

odgovaraju6oj promenljlvoj dvostruke tadnogti u Usti traredbe.laza. Ovak-

va konstanta registruje se u dva memorijeka registra, kako je to prikazeno

(8.3.2) moZe ee korietlti 1 opls

nFk.d (8. 3.3)

gde Je ziradenje sinbola ieto kao i u sludaju opisa konstar*e obiEne taEno-

eti. Obllk (8.3.2) i (8.3.3) ne razlikuju se bitno kada se radi o ner:edbi u-leza. U oba slu€aja konstenta se ulaza dodeljuje se pronenljivoi u Usti iregtstruje se na leti nadln u memor{i raEunara. Obllk (8.3,2) je pogoderr

za zapla vrlo 'nrlih i velikih brojnih vrednoeti, dok je u evlm drugim slu-

6ajevlma pogodnije korlgtiti oblik (8.3.3).

8.4. Izdavaaje brojnih vrednogti promenljivih dvostruke ta6nosti

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-

blEne taEnoetl, opie (8.3.2) je pogodan kada ee radi o vrlo mellm ill vrlovsl{klm brojnim vrednostlma, dok je u svlm drugim slu6ajevioa pogodniji

opig (8.3.3). Ovo lz razloga Bto je eksponencijalnl oblik broja nepogodniji

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

alova E koJe se korigti za obiduu tadnost,

cl.r8. 1. 1.

Pored opiaa

Page 89: Fortran Za Treci Razred Masinske Tehnicke Skole

170

Prlraer

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

a

"h * rr)a2., x2r*r (8.3.4)

(8.3.6)

(8. 3. 7)

lxl<r, gaeie

ai

e!

85

E?

a9

all

= 0, ?85 398

=-0,080 745

= 0,002 490

=-0,000 036

= 0,000 000

=-0,000 00.0

t63 397 426

512 18? 669

394 565 299

5?6 18? 395

3r3 333 683

00r ?34 798

5

4

5

3

3

7

IzraEunavenje po formuli (8.3.4) daje vrednostl sluuene funkcije sa

relativnom greEkom

E < 16. l0-r6 (8. 3.5)Algoritam potprograma prikazan Je na sI.8.3. 1.

Brojne vrednostl kondtanate a2s., . dodeljuJu se etementima nlza br*r ,

i =0, 1, ...,+, ^

zatlm lzraEunava

Y=x2da bi se u clklueu odredila vrednost polinoma

n = br +yfbr +y [u3 +yfta+y 1ur+u.y1;]f6to odgovara polinomu

R = ar +x2 las +x2[a5 +xz (a7 +xz (ae +a11 xr))]f

Po lzlasku iz ciklusa dobijena vrednost R se mnoZl sa x, dime je odredjena

vrednost aprokelmacionog polinoma (8. 3.4) za detu vrednoet x.

FunkciJsld potprogram Bastavljen prema algoritmu ne sI.8.3. I ima

slede6i lzgled

L7L

FUNCTJON SINP+X(XIDULIBLE PRECISION SINP4X'B( 5I rXrY8 ( I I =u" 7E5396L6)397 4265A I 2 I - - 8.-07 45, I 21 87 66e4D- 2

B( 3 I =2" a9C39+565299t0-3A I 4l = - 3. 65761 8.?3 95: D- 5B(51=3cL1t336833D-7YrXtXS I NP4X=- 1.7347987f,-9DO l0 l=lr5

l0 SINPaX=SIf,tP4X*Y+Bl6-1,SINP4X.5l\P4X*XRfTURNENI')

Program koji za zadat ugao u ra-

dijanima (x), izra6unava ugao Ittl4\'xi sin((n/a). x), ima elede6i izgled:

sI.8. 3. I

DOUELE PRECISION XTYTALFAI 5INP4X

,, lBllil?lu?]n*,'*'r?Xr'UGA' u RADIJANITIA' rl4Xr'sINUs'/ I

IOO nelOt5rl00rEND-l0ll x

lo0 FoRfrAT(F8.51Y.SINP{X(xlaLin=3. rar 5 s26535ae7 et 2 / 4' r x'

HRtfE(612OOl X'ALFAtVzoo i6inlii;' lFBo5rF22ol6ro2€''161

G0 T0 30010r sToP

ENT)

Rezultati ee Stampaju u obliku tabele

X UGAO U RADIJANIMA

l. oo0u0 o.7853eSl 633974480-o.4oo0o -0.31415e26515897e20.0 0.0

-0.oooot -0.00000785398163400.52000 0.40840?0449666730

SINUS

o.?071067811865450D 00-o.3090169943749487D O0

0.0-0. ?85398 I 63389t5L90-O5

0. 39716789063477e39 00

R.y+b5_i ? R

Page 90: Fortran Za Treci Razred Masinske Tehnicke Skole

Izradunavanje elementarnih funkcija sadvostrukom tadno5du

t72

Ako se proraCun izvodi sa dvostrukom taeno5du, tada je potrebno isve elementarne funkcije, koje se javljaju u proradunu, lzraeunati sa dvo_strukom-tadnoscu- vec je redeno da se u sludaju obiEne ta.nosti ove funk-cije radunaju preko funkcijskih potprograma sa propisanim imenima, koji8e automatskl pozivaju pri prevodjenju programa 6a I,ORTRAN-jezika nametinski jezik. potprogrami koji izradunavaju elementarne funkcije 6advostrukom tadno66u imaju takodje propisana imena, a prvo slovo. ovihimena ie uvek D, dto ukazuje da se radi o potprogramu sa dvostrukom ta6-noB6u. U tabell g. S. l. dat je spieak propisanih imena ovih potprograma.

Pored funkcijsrdh potprograma navedenih u tabeli g,5. 1, u FORTRAN--jeziku postoji I izvestan broj funkcija koje se pi.u na isti nadin kao i funk_cijsld potprogrami, aU se ne javljaju jedanput u programu na ma5inskomjeziku, ved onollko puta koliko puta su zapisane u programu, To zna6i dase ova funkcija zamenju;e nizom ma5inskih naredbi na svakom mestu pro_grertra na kojem je zapisana. Spisak ovih funkcija sa propisanim imenimadat je u tabeli g.5. 2.

U tabelama 9. S.1 i g, S.2 uvedene su sledeCe oznake:

x, xl, x2 ,... - aritmetidki izrazi,R _ reaLna velidina koja se registruje u obliku pokret_

nog zateza,

C _ celobrojna velidina, koja se registruje u qbliku ce_log broja,

M _makeimalna vrednost celog broja (M=Z 14? 4gB 647),p _ maksimalaa vrednost broja registrovanog u oblikupokretnog zareza (pr7, Z. IOls ),

[yJ - celobro;ni deo broja y,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),

UU ,rEt. e1r. Otu Eira

Eb, | {lta.att ! t' !t.!a_rt E{*!t.rr rGElt.relrl a ! ,,tt'la-l' E@ l{[tc&lo(rl { I n a.ta. L-l' m btGtb0F lr, 6 u B l.{.la-'t[ulrl .bo { . l.tl.rcll 4 a.[.U-Lu[t DI I rl < a.tt.tcr' d a,x. ra-l!

{Ert&

r(r, at (.1 d I { <!.lt.lol't 4 , a\.vrrt, I !,!t.ll-lt

m|tl { < o.tt.lor'drtt. H.t..

B a,ar.la_lluu(t, r l.l u q< I n I' O. tl-l'

hEqE.

Etrt il t(l B l,t:.r-r'Ulrl &cEtd n r{(t il r.r. ro_tlE:atrrrl B latt ,tnt a t I 1.il. tt-r.

cntrl I ! < lta.art x !.9.ra_l'rd I l I'tl.la-l'Nl.' ritr(lt a !at a a'at.la-rr ,.ru4rt,n,..., Elt,rt....l B 11,.try,... a t T bU-F rtrra.uq.rr,.,.t 6t.t..r..,.t n t{,rrrr,... < t E LLI-r. xh..r.Eb *flt-a l T lril. rl-13Eb, r-;[/in'r. 4 rttat & t.o.to-L' Et!.-t tUto5L, r:-\-r.r n It.ta-tt<rdt.tta B a.:.ra_L

o4br uJ.-ttt'ra d c<r <a,ut.tctt il l.rl.tt-D

I

1?3

Tabela 8.b.1.

Tabela 8.5.2.ubrb,. ab

&Lrta_tdreb c I Edrrr. tr dlt!dl4.bt. r dl0

t&rtq ss.r IDhc, t'l T ,r.{ I c

go B Irtao l.utd a d

E& turt rDb&ar+h|rtt il

re(tt,tt .r-Ft/f,rJ..r t Hrr.E.ql-dbuol bl T rrtaQ B

Page 91: Fortran Za Treci Razred Masinske Tehnicke Skole

lrtliil

ilir

Iii

il

ti[1

I'l'lr

t71

Navedena relativna greEka funkctj{r,vedu atatigddki dobijenu relativnu greBkudozvo{enog lntervala.

Prlmer

f,I2nlme primer naveden na kraj.u odetjka 4. g, s tlm Eto 6emo eadalzraEunavanJe erementarnrh funkclja izvr.iti preko potprograma aa dvoetru-kom tadno66u. U ovom zadatku treba lzradunati

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 dvoetrukotntaEnol6u lma elededl izgled:

ggyg!E PRTCISTOT{ xrYrrY&Y3HRlrEt6, 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.4IYl !l' -oExP | -Il

:D-s t lJl ?: rx t r o1s61o, ocos ( r r rrz, rorAN I x Iy3.DARstNt x/loo., +oLoG r ola iiiiiIoArAN( x ry3.DseRr I Dms r r..-oraii i ;t; i; ;i ; ;iiiililiocos" r, Ilol xRrrEt6r3ool xr ylry2rij:--3oo FoRlrATt . . rFo.irii, iitt-i.t t

STOP, .Elrlo

Izlazd. rezulted au Etampanl u obliku tabele:xYlYZY3

u tabeli 8.5. l, predetavlja naj_za rezne vrednosti argumenta iz

-75.t+2f-3r.2665-2t.0032i2.3{lo

0.rbg+.t.2026tt..33t!

-o.5828t970 32-0.!989881o l5-0.74071620 lz-o.97to9590 0to.3911757tr 000.2229++10 0to.a728656D 02

-0.758+e52D Ot-0.t?99992D Ol-Oc.57992?*D Ol-Oot0t6tt4D 0l-0.e86t05?o oooo2t29i40D Oto.lt90?20D Ot

-Oo?E88785O 3l-0ol16?878O l6-0o21?633e0 t3-Oo1122784o e2-o.to35loio ol-Or9089O7!D O2r0.l6E5t9lD 0!

1?5

Razlike izmedju ovlh rezultata i rezultata u primeru na kraju odelj-

ka 4.9, nastaju zbog izradunavanja elementarnih funkcija na 16 vaZedih ci-fara, prema ? vaZedih cifara kada ee radi Ea obidnom tadno56u.

Page 92: Fortran Za Treci Razred Masinske Tehnicke Skole

l{$

til$

ti!filrlJFtfrffi lrll

i$

aii'il1

ffi;{

ffrltwrtta+{l

$i{ft

#

ffillllil

iii

f{''.t.

r$

lj,t'j1

i

I

It

il

ljl

i

I

9. ALC,ORITMI SA KOMPLEKSNIM KONSTANTAMA

r pnbvrnrvr"rrvuvr

U neklm oblaetlma nau6nih i tehnt6kih izradunavanja javljaju,ee kom-plekene veliEine I operacije sa ovakyim veliElnama. Kako ee aritmetiekeoperacije ea kompleksnlm velidinama svode ne aritmetidke operacije aa

realnim veliEinanta, pri demu se vodi ra6una o realnom i imaginarnomdelu 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-

teva vedi broj aritmetiCkih operacija nad realaim velidinama, to je progra-miranje aritmetidkih operacija nad komplekenim veliEinama vrlo zaroetan

poeao. Tako, ako su z1 i z2 kompleksni brojevi

zr =a+biz2 =c+di

gde su a, b, c I d realne velidine, a i = 6l- tada je

zr+zz=(e+c)+(b+d)i21 - N2= (a - c)+(b - d) izr . zz = (ac-bd)+(ad+bc)i

(e.l)

(s.2)

Ztz2

ac+bd bc-ad+-ic2+d2 c2+d2

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

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

Page 93: Fortran Za Treci Razred Masinske Tehnicke Skole

lT8

programiranje aritmetlEHh opetrclra aad hompleksnlm vellItnama u FOR-

TRAN-jeziku, postoji mogudnost rada .s tomplekenim veUIinana bez raz-dvajanja realnog i funaglnarnog dela ovlh vellElna.

9, 1. Definicija komplekene konetante

J Kompleksna konstanta ee pi5e u obtiku

/ (a, u) (e. r. r)gde eu a i b meBovlte konstante u FoRTRAN-jeziku./Konatanta (9. 1. l)u matematldkoj notacljl predstav{a kompleksni broJ

I a+bl (e. r. 2)

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-r{l ralunara ge koriste dva reglstra;"/U jednom regl8tr:u ee nelezi realnldeo kompleksne konstEnte, e u drugom lmaginarnl deo. Oba dela ae regl-struju p obllku pokretnog zereze.

Prlmerl

a) Dozvofienl obllcl kompleksnih konstanti

(1.4, -3.2)(0.0,45. )

(0.0, 0.0)

(t2.38-2,5.4)

b) Nedozvoljenl obllcl komplekenlh konstantl

(A, B)

(A,4.0)

(r2.4E-3)

9. 2. Definiclja kompleksne Fromenljlve \

Iae komplgkene promenljlve defini3e Ee na latl naEln kao i ime real-

-ne promenljlve. Medjutlm, da bi ee imena ovih promenlJivih razlikovala,

1?9

imena komplekanth promenlJlvrh moraJu bld dekrarisana kao komplekenepromenllve. /Ova deklaraclJa mole bltl eksplicltna, pomodu oplsne narJd_be

/ coMpl.nx ueta (9. 2. l)68de

je

I COUpIOX - elulbena re6 kojom ee deklarigu lmena komplekenihpromenljivlh,

\ llata - spteak imena promenljivih, medju eobom razdvojenihzarezlraa, koJa se deklariEu kao komplekane promen_ljive.

Teho, optana naredba

coHPLEX XTYTNAPoNTA{ 1O I (s.2.2)dsklrlSe promenljtve X, y t NAPON kao kompleksne promenlji!.e I nlz A,Lro nlz ra l0 el.emenata, od kojlh je evaki kompleksni broj.

pored' eksplrcitne dekraracije (9. 2. l ) komprekenih promenrjrvih, mo-gu tc oyo proilenljive deklarisati lmpllcttno oplenom naredbom

IMPLICIT lista (e. 2. 3)gdc F

IMPLICIT - eluZbena reC, a

ll8ta - epieak elemenata, medju gobom razdsojenih zarezima.

Element ltete (9. 2.3) je oblika

vrsta (listel) (e.2.41gde Je

vrsta - sluZbena re6 COMpLEX, REAL, INTEGER ill LOGICAL,Ustar - epiaak velilcifi elova engleske azbuke, medju eobom razdvo_

Jena zarezima.

Impllcltnom deklrracijom (9. 2, S) deklarlEu se 6va lmena promen{i_rrlh koJa podfnJu Jednlm od navedenih elova izmeoJu zagrada u (9. 2.4), kaopromeulve odredJene vrate, a preBa tome koja erutrbena rer etojl nanestor€El vrste u (9.2.4).

Tako oplana oaredba

lnPtlc I T r0clcAt I lrslrcotptEX.l Tr RrZ I (9. 2.5)

Page 94: Fortran Za Treci Razred Masinske Tehnicke Skole

180

ima eledede znalenje: promenljive Elja imena podinju slovima A i S, dekla-

riEu se kao logidke promenljive, a promenljive Cija imena podinju slovima

T, R ill Z, kao kompleksne promenljive.

Ako slova koja ee navode izmedju zagrada u (9.2.4) slede u azbud-

nom redu, tada ee moZe pisati samo pr-vo i zadnje slovo izmedju kojih se

etavlja povlaka (-). tako naredba

IHPLICI T COJ'IPLEXI tI-II,T I (9. 2.6)

deklariEe promenljive 6ija imena po6inju slovima D, E, F, G, H i T kao kom-

pleksne promenljive.

Opisne naredbe za deklarisanje vrste prornenljivih piSu se na podet-

ku programa pre svih drugih opisnih naredbi, odnosno pre prve izvrBne na-

redbe programa ako drugih opisnih naredbi nema, i to tako da se najpre na-

vodi eksplicitna, a zatim implicitna opisna naredba za deklarisanje vr6te

promenljivih.

Za svaku kompleksnu prornenljivu u memoriji radunara bi6e rezervi-sana dva registra, za reg"istrovanje realnog i imaginarnog dela promenljl-

ve, kao brojeva u pokretnom zarezu.

Opisnim naredbama (9.2. l) i (9.2.3) deklariSu se i imena funkcijskih

naredbi i potprograma, ako je rezultat ovih potprograma kompleksni broj.

9.3. Dodeljivanje vrednosti kompleksnim promenljivim r'

9.3. 1. Aritmetidka naredba /

Kompleksnoj promenljivoj moZe

tl6ke naredbe

a=9gde je

se dodeUti vrednost pomofu aritme-

(e.3. l)

- aritmetiEki izraz, a ,

- ime kompleksne promenljive.

y Arltmetl6kiizraz g moZe kao argumente imati celobrojne, realne ikompleksne konstante i promenljive, Rezultat aritmetldke operacije izme-

dju dva argumenta, od kojih'je bar jedan kompleksan, bl6e uvek komplek-

sna konstanta. Izradunata vrednost aritmetidkog izraze V. kao kompleksna

v

a

r81

konstanta, dodeljuje se komplekenoJ pr.omenljlvoj a na levoj strani znakajednakosti. Ako je vrednost arltmetiEko g lztaza ? realan broj, tada de bi-ti lormirana kompleksna konstanta, 6ijt ce rearan deo brtl vrednost arit-metiEkog tzteza. a imaglnarni deo 6e bitl nura. ovakva komplekena kons-tanta bi6e dodeljena promenljivoj a .

u arltmetiEkom izrazu r mogu se koristlti Ietiri erltmedEke opera-clje izmedju celobrojnrh, lsornrfu i konpleksnih konstantl i promenrjivih.

Moie ee korietiti i operacija stepenovanja, prr 6emu u sludaju da je.oanova komplekena velrEina, stepen mote bitt eoho celobrojna veu€ina.

9.3.2, Naredba ulaza y'

faaa a" L^-Fleksnoj promedjfvol t :ejF:1' __tedage u ulaznom etrogu pojav{uju dve porja koja eadrre dve realne. konstante. u,

Jto-*i"*"_"t Fgi-gaglaaren deo komplekgne promenljive./Ou. po{l ee opisulu pomo6u opl-

_"-1 ."..rl"Eo"tte t]ljtss.ttg({ iu E- gpit:--, 1/ TaEo, alo kompleksne promenljive X i y, i celobrojna promeljiva J

doUtil-iu brojne vrednosti ea ulaza, tada ee moZe pisati

&EADl5r lo9t XtYtJ-100 FORIAf l 2( FO.3rElA.5 ], I4t

U ovom slu6aju na JednoJ karttct Je opiaano 5 polja:

- prvo polje od 8 kolona, sa opleom Fg.3, eadrli realrri deo komplek_ene promenljive X,

- drugo polje od 12 kolona, sa opisom 812.5, eadrZi imaginarni deokomplekane promenJ.jlve. X,

- tre6e polje od 8 kolona, sa oplsom F9.3, sadrZi realni deo kom_plekene promenljive y,

- Eetvrto polje od 12 kolona, ea opieom Elz.S, sadri,i imaginarnideo komplekene promenljive y, i

- peto polje od 4 kolone, sa opisom 14, sadrti ceo broj koji se dode_ljuje promenljivoj J.

Page 95: Fortran Za Treci Razred Masinske Tehnicke Skole

t62

b. 4. Izdavanje vrednortl lonptrtrotb promenljtvth

fZa lzdevanJe vrednoatl komplGt.rth promenUlvth vaZt ellGno kro I ze

q9l9 u_{e-

. tl lzlazne neredbe navodt tme komplekgne pron"dJly",lt_llrlfb49lS_qL.SoophuJu rc dva poUa koja radrZe r9afn9 broJevlr-prvo po[e rrdrll realnldeo, a drugo lmrginernl deo komplekrne promen{lve. Ove po{e ae opleuJu

opislma ze nelorrlte konltanto (F tlt E ople)./

Ui Talco ako ae leU izdati vrednoat komplekene promen$lve Z, mo?e ee

pieatl\, rRtTE{6.2obl z/-200 FORllaT ll I tEll.4t?xrF8.+l- . , ._ .- _.

_U orron rluGelu lzlezni ilor redrtl'-@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-.to{e ^d n rimbol.. .r oplsom F8.4, foJlg:l3ggllt !-:glf:4

deo komplokrne promenlJlve Z.

Prlmer

Progmm .e.tlvttl trko dr ta bror.vt ) Z | ! nrlazo na JednoJ kar-tlcl I dr ovskvih kutlcr motG bltl prolzvolJen broJ. Al3orltem za ovo lzra-dunrvrnJo prlkrzrn 1r ne rl.9.f.'t.

broj l.ra;lIj t\,riU*

r Y"

r83

uL-^z: x,z,L

taAz"x,z.Y,L

sl.9.4. I

Progrem na FORTRAN-Jeziku, eastavlJen po algoritrnu na e1. 9,4. l.tme rlededl tzgled:

COllPlEX ZrYHRITE(612001

200 FoRH^Tl | .r3Xrrxrrl0lr.zt t22\tryrrl6xr rLrl1r rlSXrtREALo lHAG.rrEXrtREALerrgXr.uIAc../l

400 READ(trt00rE)|Dr50O I Xr ZrL300 FoRHATI F5. L t f 6. 2tF).2r I Ll

G0 T0 llrZr3r4lrLYrXf Z

r0l HRlTEt6120U xrZrYrL201 F0RilATl I t 1l)t lrFEo2rFTr2rlXrl€l!r6rl{l

G0 T0 +00I Yrx.t.lt.2r-!r6l

00 ?0 +0t2 Yrl-;r12.gra.O,

G0 ?0 40tt l.Z.ZlX

80 t0 401'1 ftZl l0t0t-lo0l.Ic0 t0 aol

t00 sToPEI{D

Page 96: Fortran Za Treci Razred Masinske Tehnicke Skole

184

Rezultati su StamPani u oblllil tabele

xLREAL. I t4AG"

25"2 36.78 -1"26Z.r 0.0 4.00

- l.O 2.2O -lo lO2.J 1.00 1.006'!, 2.00 3'001.5 s.oo -2.oo

REA L.

0" 5361 83E0.2loo00E0.420000E0.00. r32000E0.300000E

I I'iAG.

-0.367800E olo.+00000E ol

-0.9999968- 0lo.100000E 010.144000E 02o. r20000E 02

L

3523I4

5. Kompleksne velidine dvostruke tadnosti /

ve6 smo videli da se komPleksna velidina u radunaru prikazuje pomo-

6u dva realna broja, koja se registruju u obliku pokretnog zatez^' Prvi od

ovih broieva Predstavlia realni, a drugi imaginarni deo kompleksnog broja'

Kako se brojevi u pokretnom zairezrt mogu u radunaru registrovati i u obll-

kudvostruketabnoeti(g1avaS),toseikompleksnekonEtanteiprorhenljivemogu pojaviti u obliku dvostruke tadnosti'

. Kompleksna konstanta dvostruke tadnoeti pi6e se u obliku

(a, b)

o2c1OI

02ol

qde su a i b mesovite konstante dvostruke taEnosti u FORTRAI\hIgiEI'

--

-\---- '-;+;---

-tmets-mpfet"nu p.o-""liive deklariSe se pomo6u eksplicitne nared-

bezadeklarisanjevrstepromen1jivih.Medjutim,l@.'Iil""

=""d13ima oblikCOMPLnX * 16 listq--^--- (9. 5. 2)

sde broi 16 ukazuje da se 16 podregistara koristi za re-gistrovanje brojne.6-- -- -" -:-_+

vrednosti kompleks ne p"o-t"11iil__f tlo svakiie gistar sadr Zi 4 podre gis -

j.r"pl"k"i" nam:nl:ive avo:trute ta!n9 i*.":::O-narni deo kolnpt"t"togEfrllT"Eiil" uoditi da se dvostruka tadnost kom-

-r- ::-oil""tn p.o-"nijiut,te moZe deklarisati Pomo6u naredbe DOUBLE PRE-

CISION, jer se u listi ove naredbe mogu navesti satno imena realnih pro-

menljivih.

186

Tako ee ne moZe PisatiCOHPLEX A'BDoUBLE PRECISIOII Ar0

vedCOltPLEXtl6 Ar B

O zadavanju broja podregistara za registrovanie promenljivih, u opis-

nlm naredbams, bi6e redl u odeliku 10.1'

Kompleksnoj promenljivoj dvoetruke taEnosti moZe ae dodeliti vred-

nost pomo6u aritmetiEke naredbe

a =* (e,5. 2)

gde je a ime promenljive deklarisane kao komplekEna promenliiva dvostru-

ke tadnoeti. Aritmetidkl Lzrez ,lr moze lmati za argumente celobrojne kone-

tante I promen\jive, kao i realne i kompleksne konstante i promenljive obld-

ne ill dvoetruke ta6no8ti. Rezultat aritmetiEke operacue lzmedju dva argu-

menta, od kojih je bar jedan kompleksna veucina dvostruke tacnostl, b16e

uvek kompleksna konetanta dvostruke taEnosti. Izra6unata vrednost aritme-

tiEkog lzraza v, kao kompleksna konstanta dvostruke taEnoetl dodeljuje ee

promenljivoj a na levo j strani znaka je dnakosti u nare dbl (9 ' 5 ' 2 ) '

DodeljivanjevrednostlkomplekanojPromenljivojdvostruketaEnosti

sa ulaza, vrEl se na slidan naein kao i u sludaju komplekene promenljive

obldne taEnogti, eamo 6to ee u eludaju dvostruke tacnoeti za opis polja u u-

laznom Elogu koristi opls meEovltih konstanti dvoetruke tacnostl. I6to vazi

i u eluEaju lzdavanja vrednosti kompleksnih promenliivlh dvostruke taeno-

sti.

Primer ,L (

Prirrernakrajuodeljkag.4.reditisadvostrukomtaEno66u'Uovomslu6aju FORTRAN-program ima elededi izgled

COHPLEX+16 ZrYOOUELE PRECISION XHRI TE I 61 20O I

2OO FORHATI | .r3Xr rXrrlOXrtlt t22XttYrrl6IrrLr/rr r18X;.REAL. lllAGrrrSXr.REAL.'r9Irr.lHAG.r/,

t00 READI 5r300rENDr5O0l XrZrL300 FORITAT( F5.LtF6t2tF5.2r I I I

GO TO llr2r3r4lrLY.X+Z

Page 97: Fortran Za Treci Razred Masinske Tehnicke Skole

186

401 l{RITE(612Oll IrliVrL201 FORIIATI I rrf5olrfOrZIFT.2rllt2€l5.6rt4l

G0 TO 400I Y.X*ZIl lr2D0r-fo6D0l

G0 T0 4012 Ytz_t*l2o0D0r4.oDol

GO T0 +013 Y.Z*ZIX

GO TO 4ol4 YtZl lOoODOr-1.000 lrI

GO TO 401500 sToP

END

Rezultati se dobtjaju u obliku tabele

xzREAL. IIIAG.

25.2 '6.?8

-1.262. I 0.0 +.00

-1"0 2.20 -4.102.0 1.00 r.006"0 2.OO 31001.5 8.00 -2.o0

REAL.

0.5351 83D0.21000000.420000D0.00.132000D 020.3000000 0l

I HAG.

-0.36?800D 0l I0.+000000 ol 5

-oc1000000 00 20.1000000 0l 3001{4000D 02 I0" 12000 D 02 (

o20r0l

Razllke u rezultatima, kada je prlmer re6avan 6a obidnom tadnoilu.(na kraju odeuka 9.4), t prlkazanlh rezultata u sludeju dvostruke talnoatl,potlEu iz slededih rezloge.

- vrednosti promenljivih x. 7 z, u sluEaju dvoetruke tadnosti, btde

prevedene aa vedom tadnoScu iz dekadnog brojnog slstema u binarno kodl-ranl heksadekadnl brojnl sistem u pokretnom zar.ezrr,

- vrednosti konetanti koje se javljaju u prog"amu takodje 6u sa ve6-om tadnoS6u registrovane u memoriji,

- izradunavanje po navedenim formulama izvrBava se ea ve6im bro-jem vaZe6ih clfara argumenata, i medjurezultati pojedinih aritmetidkih o-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-

18?

ne funkclje. Tako, ako Je argumcnt loodrlA blt 6$oc tednoett, bl6e

I vrednost funkctje komplekenl broJ obllar trb.d, odlo.no eko Je argu-

ment kompleksnl broJ dvostnrte trcm.tl bl6c t vrcdno.t t\lDIcuG komplek-

snl broj dvoetruke ta6nostl. Ime komplekanlh elementsmlh funkc{a oblEne

tadnosti poElnJe slovom C, a ime komplekenih funkcija dvoetruke ta6noatl

podlnje slovlma CD.

U tabell 9.6. 1. dat je spieak funkcijekih Potprograma sa propisanim

imenima, koji se Eogu koristitt u FORTRAN-jeziku za izradunavanje kom-

plekenih elementarnlh funkcija.

Pored funkcijsHh potprograma navedenih u tabeli 9.6. 1., u FORT-

RAN-jeziku poetoji I lzveetan broj frurkcija koje se pidu na isti nadln kao i

funkctJakl potprogreml, aU ee ne javljaju jedanput u Pr<tglatlu na ma6ln-

Ekom jezlku, ve6 onoUko puta kollko puta au zepleane u prograntu. Spieak

ovlh funkctja ea propleanim lmenima dat je u tabell 9.6.2.

. U tabelama 9.6,1 I 9.6.2 kori66ene 8u slede6e oznake:

K - kompleksna veUdina obiIne tadnoetl,

KK - kompleksna ve1i6lna dvoetruke tadnoeti,

R - realna vell6ina obidne tadnosti,

RR - realna veUdlna dvostruke tadnosti,

z - kompleksna veUdine, z=a+bi,

P - makeimalna vrednost konstante u Pokretnom zatezu obilne ta6-

nosti (P e 7,2. fi15 L

DP - maksimalna vrednost konotante u pokretnom zarezu dvostuke

, ta6nosti (DP E 7,2'Io75 )

Page 98: Fortran Za Treci Razred Masinske Tehnicke Skole

188

Tabela 9.6.1&!t! Dlr.nlr

Opl lU toftranr Ytau ogrelaanr. krbCrylr) I rl < I?a,57f, ,u< a rir<-rac I t,ta.to-5OEP (.1 n rl<l?{.5t3 --

u < o.3i!?.loro n t,5f,' to-rt :lJ.

CE{t) h(:l I .t&01 t z,oo.ro-5 ,rlrodhl 1o9!rttuCoG(z) u / 0+01 n s.7!. to- "CSF(rl vt n -tbt <9 x

Kvrdratnl lorcn@80nf, (!) I rt,lbl(P g 9,8c. lo-'"CSrr lr)

ta(t)I rt <0.82t5-loo T l,17. to-'

tlgotr*t!ljtt.l[rlc I t.-'DSIX (r, ( rl < 0,351t.1O"

rl < lta,5tlI t, ?t. to-r'

CG(ttco. (r l

x rl < 0,8239.106)l <l?4.5t!

I l,ur-to-6

CDCga ( t ! u il <0,35!t-1016bt d lTa,atr

g s, te. ro-t5

qS(r)I rl - lr+btl

I (.2rr2tt/2 <p t 1.8?.to-6CNs (r) u (.'+b't'lr < D? E t,32. to-l:

Tabela 9.6.2Nlaln plenrr ruhkclrr

Qir*"-l .'n..nrr."r. RGI.grcl. tGEnJ. od

&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

]OU (.. b I R rar , rbr < P

X(mu(a,b tt lat,tbt<oP sroir od dvd rcaln!

;oNG (a)con) I

l.r,tbr<rEoNC (r, f,x i,5r<oP ,lck.nog broj!

Primer

Zz zadatr vrednost kompleksnog broja z izradunati funkcije

y, = ["", +Ln(3,6+4, Zi)] ]. lcosz I sinzz

Jz =[Re(y,1+I-(y,)] * [n"1y, )-I-(rr)] i

yr = conj(y2)+3,8-4i

u obidnoj tadnosti.

Za izra6unavanje u obidnoj tadnoeti FORTRAN-program ima slededi

lzgled

colrPLex Yl3lrzltRlTE(6r51

5 F0Rl'lAT(r'r6Xr'ReALNI DFO II'IAGINARNI'r*. DEor/ I

READI 5r l0 I Zl0 FoRr'rAT( 2F8"41

Y( I l*CSQRT(CEXP ( Z+1. I {CLOG( ( 3.6r4.21 I I r*ca8sl c c0s(z tFcsINlz.rLlyl 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 Iyl 3 l=CON.rGt y( 2 t l+( 3. 8r-4.O1URITE{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

STOPENO

Rezultati se dobijaju u obliku tabele

R,EALNI D€O IHAGTI,IARNI OEO

Z - -O.{16000OE Ol 0.2t'120(r0E C2Ylr -0.!258756t l9 -O.27857788 l9Y2' -0.6044533E 19 -o.4729?80F l8Y3. -C.6044533E 19 O.rr72978OE l8

Page 99: Fortran Za Treci Razred Masinske Tehnicke Skole

j{]J.i{

I o. RActoNALNo KoRTSC ENJE uNUTRASt.re MpuonI.lrneCuuene

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

kapaciteta. Zato je prohlem racionalnog koris6enja unutraSnje memorije

radunara vrlo vaZan u programi.ranju. ovaj problem se resava na dva nadi-

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

Page 100: Fortran Za Treci Razred Masinske Tehnicke Skole

tyz

zove se duZina podatka. U programima koje 6mo do sada pisali nije poseb_no ul<azivano na duZinu podataka. Za sve podatke koji su kori5deni u prog_ramu, pretpostavljana je tzv. standardna dul,ina podataka. standardna du_Zina podataka u FORTRAN-jeziku bide primenjena za sve one podatke zakoje nije zahtevana drugadija duZina. pored standardne duZine postoji mi._nimalna i maksimalna duZina podataka, Minimalna duZina predstavlja najmanji broj podregistara, a maksimalna najvedi broj podregistara koji 6e morekoristiti za odredjenu informaciju u FORTRAN_jeziku. Standardna, mini_malna i maksimalna duZina podataka u FORTRAN_jeziku prikazana je u ta_beli 10. 1. 1..

Tabela 10. l. I

Vrsta podatka DuZina podatka

Standardna Minimalna MaksimalnaCelobrojna promenlji

vb 4 2 4

Realna konstartd ilirealna promenljiva 4 4 6

Kompleksna konstanta. ili kompleksna pro-

menljiva I o r6Logidka konstanta ili

logitka promenljiva 4 I 4

Celobrojna konstanta u programu uvek se registruje u jednom memo_rijskom registnr, tj. ima duZinu 4. Za promenljive u programu 6ija je vr_sta definisana unutrasnjom konvencijom FoRTRAN-je zika vazi standardnaduZina podataka.

Za promenljive u programu dija je vrsta definisana opisnom ,aredlbom za implicitnu deklaraciju vrste duZina podataka moze biti razlidita iukazuje se u naredbi

IMpLICIT iista

gde je element iiste u obliku

(10.1.1)

(10. 1.2)vrsta* s (listar)(10. l. 6)

1git

gde je s dulina podatka koja se odnosi na odgovarajudu vr6tu promenljivih,dija imena poEinju slovima navedenim u lietir.

Ako promenljive koje se implicitno deklariEu imaju standardnu duZi_nu onda se element liste pi6e u obliku

vrsta (listar) (10. r.3)

tj. oblik bez navodjenja dutrine promenljivih.Tako se moZe pisati

I r.tPtIcl T INT€6ERr2l A, 6rCl rREAL*8tRr 5rTlEto zna6i da ce promenljive dija irnena po6inju .lovima A, B i c biti celo-.brojne i svaka od njih registrovana u dva podregistre memorije, tj. u Jeq-nom memorij.kom regi'tru mogu ae registrovati brojne vrednosti za dveovakve promenljive, a promenljive R, S i T bi6e realne promenljive dvoe_truke tacnostl 1 svaka od njih bice registrovana u g podregi.tara, tj. u dvamemorijska registra.

Ako je celobrojna promenljiva duZine dva podregietra, tada njenabrojna vrednost x mora biti u ir$ervalu

-2ri (x .zL'-l=s2787 (r0. r.4)

u naredbi za ekspricitnu dekraraciju vrate promenljivih moze biti u-kazana duZina promenfjivih. To moZe biti uCinjeno na vi5e nadina:

a) Definieanje duzine prornenrjivih za sve promenlJive koje se navodeu listi ove naredbe. U ovom sluEaju naredba ima oblik

vrstaj! a lista (10. r.5)

gde je

vrata - sluZbena re6 INTEGER, REAL, COMPLEX ifi LOGICAL,a - c€o neoznaEen broj koji ukazuje na duZinu promenljivih i e_

lemenata nizova u listi,llsta - spisak imena promenljivih i nizova medju sobom razdvojenih

' zarezima.

Tako se moZe pisati

LOGICAL*T A,OELTA,ALFAI I,O I

Page 101: Fortran Za Treci Razred Masinske Tehnicke Skole

194

5to deklariEe promenljive A, DELTA i r0 elemenata niza ALFA kao logid-ke promenljive duzine l, tj. vrednosti ovih promenljivih bice registrovanegvaka u po jednom podregistru.

b) Definisanje duZina promenljivih za evaku promenljivu ponaosob. uovom sluEaju naredba ima oblik

vrsta lista (10. l. ?)

gde je

vrsta - sluZbena red INTEGER, REAL, COMPLEX ili LOGICAL,lista - spisak elemeneta medju sobom razdvojenih zarezima.Elemenat ltste, u (10. 1. ?) lma oblik:

ime*s

ako ee odnosl na promenljlvu, odnosno

(10. r.8)

imet s (ltsta, ) (r0. r.9)

ako se odnosi na niz, gde je

ime - naziv promenljive ili niza,s - duZina promenljive, odnosno elementa niza,

ll8tat - spisak, od najvise ?, celih neoznaCenih brojeva, medju so-bom razdvojenih zarezima, koji defini5u maksimalne vred_nosti pojadinih indeksa niza.

Tako se moZe pisati

collPLEx 8ETA, RaD*1r{ GRAD* 16( lo, l5 | (r0. l. l0)

6to znadi da je promenljiva BETA kompleksna promenljiva obidne tadnostia RAD i<ompleksna promenljiva dvostruke taenosti, kao i svih rb0 eleme-nata dvodimenzionalnog niza GRAD.

c) Definisanje dulina promenljivih moZe biti udinjeno i konrbinovanjemzajedniEke duZine(a) i pojedinadnih duZina (b). u ovom sludaju naredba imaoblik

vrsta*s Usta (10.1. il)

195

gde su elementi liste imena promerrljivih i nizova, pri demu je njihova du-zina definisana sa brojem s u (10. 1. 1l), ili su elementi liste oblika (10. 1.

9), pri demu je njihova duZina posebno definisana.

Tako se moZe pisati

INTEGER*2 LI ST,MASA (

'O ' , GA}IA*4 (i0. 1.12)

6to znadi da su promenljiva LIST i b0 eiem6nata niza MASA deklarisani kao

celobrojne promenljive duZine 2 podregistra, a promenljiva GAMA kao 9e_lobrojna promenljiva duZine 4 podregistra.

U odeljku 8.2 uvedena je opisna naredba DOUBLE pRECISION za de_

klarisanje realnih promenljivih dvostruke tadnosti. Medjutim, eksplicitnadeklaracija pomodu naredbe

REAIr*8 lista

bna potpuno isti efekat kao naredba

(10.1.13)

DOUBLE pRECISION tista

gde ee podrazumeva da su liste u naredbi (10. 1.13)

(10.1.14)

i (10.1.14) jednake.

10. 2. ViSestruko kori56e tora u okviruProgr

Svakom imenu promenljive ili elementa niza dodeljuje se u memorijiraEunara fizicko meato u kojem se 6uva vrednost ove promenljive. Kao Stoemo videli, ovo fizieko mesto moze bi.ti najmnnje jedan podregistar, a naj_vi6e 16 r.jih u memoriji radunara. prostor u memoriji potreban za regis-trovanje jedne konstante zvademo polje, ViSe polja dine zonu u mem()rijiraEunara. Prema onome gto smo do sada videli svako polje u memoriji re-giBtruje vrednost jedne promenljive ili jednog elementa niza. U toku izvr_Savanja programa iz polja se izdaje registrovana konstanta ili se upisuje, a

u zavisnosti od mesta odgovarajuce promenljive u naredbi koja se izvriava.

mem

Page 102: Fortran Za Treci Razred Masinske Tehnicke Skole

196

Tako, ako se ime promenljive nalazi na deenoj stranl znaka jednako_sti, u aritmetidkoS naredbi, tada ee vr6i izdavanje vrednosti odgovaraju.epromenljive iz memorije, a ako ae ime promenljive nalazi na revoj stranijednakoeti vrgi ae upis nove vrednosti u odgovarajude memorijsko polje.

Kako FORTRAN-jezik dozvoljava veliki izbor u imenovanju promen_ljivih, to se u toku izrade programa uvode imena promenljivih prema nji_hovom znadenju u problemu koji se re6ava, kao i prema mnemotehnidkimolakdicame u pilanju programa. Medjutim, vrlo 6esto ovakvo imenovanjepromenljivih dovodi do neracionalnog koribdenja memorijskog prostora.Zato u FORTRAN-jeziku poetoji opisna naredba kojom se moZe zahtevatida'viEe promenrjivih ili nizova imaju zaJedniEku zonu u memoriji. u nared-nom izlaganju upoznaCemo se Ba definisanjem zajedniEke zone u memoriJlu okvlru jedne programske jedinice,

lO.2.L. Zajedni6ka polja za promenljive jednakih duZina

Opisna naredba za definieanje zajednidkih polja ima oblik

EQUryALENCE lista (10.2. l)

gde je

EQUMLENCE - sluZbena red,

lista - spisak elemenata medju sobom razdvojenih zarezima.

Element liste u (10.2. l) je oblika

(listaj

gde je Listat spisak imena promenljivih iste duZine mediunih zarezima.

Tako se moZe pieatiR€ALT8'{A5A, DUZI I{A, JOTr4IilfEGER12 ATBE14TC rGr4EQUI vaL eNC E I A r BE fA r C I r ( JOT r G t r I ilASA r OUZ t NA I

(10.2.21

sobom ratdvoje-

197

To znaEi da 6e celobrojnim promenljivtm A,BETA i C biti dodeljenoiato polje u memorijl radunare duZlne 2 podregistra, a promenljivim JOTi G pofje dullne 4 podregistare (l memorijeH regietar), i na kraju promen_ljivim MASA i DUZINA bi6e dode{eno polje durine dva memorijska registra,poilto eu to realne promenljive dvostruke tacnoati. prema tome, ako se nebi koristila opiena naredba EQUMLENCE za registfovanje promenljivihA,BETA C, JOT, c, MASA i DUZINA bilo bi angazovano gx2+2x4+2x8 = B0podregietara' Medjutim, upotrebom naredbe EQ'IVALENCE koristi se i+4++8=14 podregistara memorije.

Opisna naredbe EQUMLENCE pi6e se.pre prve izvrlne naredbe pro-grama lli potprograma, U odnosu na ostale opiene naredbe ove naredba senavodl poele naredbe za deklarisanjevr6te i dimenzije nizova.

1o.2.2.

Ako su promenljive razliEitih duZina, tada je polje odredjeno promen-ljivom naJvede duZine. Sve promenlJive navode se u listi u (10.2.2). Kao3to Je poznato, kompleksna promenljiva dvostruke tadnogti predstavlja pro_menljivu najvece duzine (16 podregietara), a logi.ka promenljiva predstav-lja promenljivu najmanje dutine (1 podregistar). Ako ee u zajedniEkom po_lju nalazi po Jedaa promenljiva razlldite duZine, tada svaka od njih po.injeda se regiatruje od prvog levog podregistra polja, Ciju 6emo adreau ozna-6iti ea 1, prema podregistrima veCe relativne adrese (2,g,. -.). Na sl. lO.2.1 prikazano je polje od 16 podreglatara i oznaden raspored registrovanjapromenljivih razllEite duZine.

Na.sl. 10.2.1 uvedene su sledede oznake;Cl6 - komplekena konstanta dvostruke tacnosti (duZine 16),CE - kompleksna konsterta obidne taInosti (duZine g),R8 - realna konateda dvostruke tadnosti (duZine g),i{ - realna konstarda.obi€ne tadnosti (dutrine 4),14 - celobroJna konetanta (duline 4),Il - logiEka konstanta (du'ine 4),12 - celobro:tn&konstanta (duline 2),Ll - logtdka konsterta (duZine l).

Page 103: Fortran Za Treci Razred Masinske Tehnicke Skole

198

ZAf POLJA

c16

c8RA

R4

T4

L4

l2L1

sl. 10.2. I

Premtr tome, ako se ZeIe registrovati u polju kompleksne promenlji-

ve dvostruke tadnosti KOM2, realna promenljiva dvostruke tadnosti RP2,

kompleksna promenljiva obidne ta6nosti KOM1, realna prpmenljiva obidne

ta6nosti RPl, celobrojne promt:nljive 14 i 12 duZine 4, odnosno 2, i logilke

promenljive L4 i Ll duZine 4, odnosno l, tada Ce opisne naredbe imati sle-

de6i izgledcor,tPl Ex Kor.tl, xo]t2*!6REAL RP2*8TNTEGER I2I2LOGTCAL L4rL l*lEoUIVALENCF I KOHzr KollLr RP2r RPI r | 4, | 2 tL4 tL||

Promenljive RPI i 14 nisu deklarisane po vrsti i duZini, jer za njih vai,i u-

nutragnja konvencija F.ORIRAN-jezika. U ovom sludaju polje sa raspore-

dom promenljivih prikazano je na sl. 10.2.2.

Medjutim, u jednom polju vede duZine moZe se registrovati vedi broj

promenljivih manje duZine. Na 3I. 10.2.3 prikazano je polje od 16 podregis-

tara sa mrrgudim registrovanjem promenljivih manje duZine. O:nake na sl.

I O. 2. 3 iste su kao ve6 koriSdene oznake na sl. I 0. 2. l.Opisne naredbe koje deklariSu kori5denje polja od 16 podregistara rt;t

!IIr

Kon2KOMl

R.P 2

RP1

T4L4

T2

L1

10.2.2

POL]E

1 2 3 4 516l7l8 ? l10l11 112113 14 1s116

+SADRZAT PoLfA -=

sl. 10. 2.3

nadin prikazan na sl.10.2.3. imaju sledeCi izgled:

cor.rPLEx KoH2*l6r Konl ( 2)REAL RP2*8(2IIRPI(4IINTEGER I4(4lrl1*2(81L0GICAL L4(41'L,rll 16,EQUMLENCElKOH2rKolll( I !' RP2( I I rRPII I I r

*I{( I }r Il (1. lrL4( I IrL( ll )

c16

cE coRg RA

R4 R4 e,4 R4

t4 L4 I4 T4

L4 L4 L4 L4

l2 t2 l2 L2 l2 t2 l2 I2L1Ll LIL1 L1L1 L1L1 Lt lLl lLr lL1 LI L1LI LI

Page 104: Fortran Za Treci Razred Masinske Tehnicke Skole

200

Na sl. 10. 2.4 prlkazan je

polja od 16 podregistara

raspored promenljivih unutar memorijskog

POLJE1lz 3 4 5 617 a 9 110 11 12 .13 114 15 16

SADRZAJ eolr-Koy|2

KOM1(1) KOM'r(2)

R P2(1) e.P2(2)

Rp1(1) Rp1(2) RP1(5) RP1(4)r4(1) 14(2) r46) 14@)L4(1) L4(2) L4G) L4(4)

r1(1) I r.t(z) r1(3) I r1(4) I1(s) | I1(6) r1(7) I r1(8)-(r )lL(z) L(s (4 (5)l L(6)lL (7)lL(8 -(9)lL(ro)L(11 /raVt ar aLlt hillLh4

st. 10.2.4

Kao 5to se vidi, u naredbi EQUIVALEI\C_8, u ovom sluCa;u, trebahavesti prve elemente nizova. Detaljnije o zajednidkim zoirama nizova bi-6e redi u slede6em odeljku.

LO.2.3, Zajednidka zona za nizove

Elementi dva niza ili vi5e nizova mogu imati zajednidku zonu u me_rdoriji. U ovom sludaju element liste u (10.2.2) jeste obtika

im e( I ist ar) (10.2.3)

gde je

ime - naziv niza,

lista2 - spisak, od najvi5e ?, neoznadenih celih brojeva, medjusobom razdvojenih zarezima. O;ri brojevi definisu konkre_tan elemenat niza-

20t

Pored oblika (l0. z. B) na konkretan element niza mote se ukazati ipreko odgovarajuceg elemerda Jednodimenzlonelnog niza (vidi odeljak b. s,relac{a 5. 5.6), tj.

ime(J) (10.2.4)

gde te J ceo neozneCen broj odfedten relacljom (5.5.0).Kao 6to Je poznato, nizovl se fegistruJu ri rsgldrima memorlje ClJe

adrese blede Jedna za drugom. u EQUIVALENCE-nerecrbi navode 6e kon-kretni elementl nizova koji ce trrratl zajedniEko po{e, a a obzirom na toda se ostali erementr niza regletruJrr u eueedriim regiatrrna, to 6e i drugielementl nizova imati zaJedniCka polja.

Tpko opiene naredbe

DI|IENSl0N At5t? I trll'lEQUI 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.Isti efekat 6e imati i zapis

DI,IENSION Al 5r?l r Bl 351eQUIvArEI{CE tAt I tr8(l t I

gde Je u prvom sludaju, u naredbi EQUIVALENCE konkretan erement nlzaA 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-nisana zajedniEka zona u kojoj ce raepored nizova zavisiti od navedenih kon-kretnih elemenata u naredbi EQUMLENCE. Tako 6e naredbama

OtxENSION Al lOl rB(5 I tCl2t 2lEQUIVALENCE (Al5rrBl I lrC( lr I I I

bitl definigana zajedniEka zona od l0 registara u kojoj 6e nlzovi biti respo-redjenl na nadin prikazan na sl. 10.2. S,

Isti raspored nizova proizvodi i zapie

DI'{ENSION Al l0 I r8( 5t rcl 2r 2lEQUIvAtENCE lAl5l rB(2lrCl e, I t I

kao i drugi zapiei prema el. 10.2.5, koji definiiu odgovarajuCe elementenlzova A, B i C u ietom polju memoriJake zone.

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!

Page 105: Fortran Za Treci Razred Masinske Tehnicke Skole

202

l- zoNA oDro REorsr^RA

saocZa: zoxe

A(1) A(2) A(3) a(a) A(s) A(6) A(z) .A(6)^(e)

A(1o)

B(1) B(2) B(5) B(4) B(s)

c(!,1) z(z,t) 4t.z) *4sl. 10.2. 5

ra nalaziti podatak registrovan prema propisanom nadinu registrovanje od-govarajuceg podatka.

Tako se moZe pisaticoHPLEX Ct 4tINTEGER J*2( I2 IDIilENSION A{ IO IEQUIVALENCE(A'3', CI I IrJ( I I IRaspored elemenata nizova prikazan je na sl. 10.2.6. Elemernat C( l)

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, odrnosnoelementiJ(l), J(2), J(g), J(4) nizaJ.

ZONAOD 10 REGISTARA

1 2 5 4 5 6 7 a 7 lo

SADRZAI ..+A(1)

^(z)A(5)

^(4)A(s) A(6) A(7) A (o) A(?) A(10)

c(l) c(2) c(5) c(4)

sr.10.2.6

Isti nizovi mogu se registrovati i od podetka zajednidke zonc; tada

opisne naredbe imale slededi izgled:

1 2 5 4 5 6 7 o 9 10

bi

j

$

203

COI'1PLEx C(41INTEGER J*2II2IOITTENSION A(IOIEQUIVALENCETA( l t rc( I lrJ I I ) l

U ovom sludaju raspored elemenata nizova prikazan je na s1. 10.2. ?

ZONAOD IO REOIS'IARA

1 2 5 4 5 6 7 a 9 ro

sADRiAr zoNE--*-.|

A(1) A(2) A(s) A(4) A(s) A (6) A(7) A(8) A(?) A.(1o)

c(1) C(L) c(3) c(4)

(1 h ,F)fJ16. (z)FG r(7F(rc (",

s1. 10.2.7

10.3. Vi5estruko kori56enje memorijskog prostora od strane

@

Naredba EQUMLENCE omogu6uje viSestruko kori56enje memorij-

skog prostcra u okviru jednog programa ili potprograma. Medjutim, pot-

programi se vrlo desto koriste lt programiranju, i nije teSko pretpostaviti

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 -

vise programskih jedinica. u ovom sludaju treba omoguditi da polje ili zona

u memoriji bude zajednidka za vi5e programskih jedinica' Orakve zone u

memoriji mogu se definisati na dva nadina, kao

- neimenovane zajednidke zone u memoriji, i kao

- imenovane zajednidke zone u memoriji.

10.2. 1. Neimenovana zajedni6ka zona u memoriji

Opisna naredba za definisanje neimenovane zajednidke zone u memo-

riji, pi5e se u obliku

Page 106: Fortran Za Treci Razred Masinske Tehnicke Skole

2U

COMMON lista (10.3. l)

gde je

COMMON - sluZbena r€C,

lista - spisak elementa medju sobom razdvojenih zarezima.

Elemenat liste moZe biti ime promenljive ili niza. Ako je elemenatliste ime niza, onda se iza imena izmedju zagrada m.gu navesti maksimal-ne vrednoEti indeksa niza, tj,

ime(listal) (r0.3.2)

gde je

ime - naziv niza,

listar - spisak, od najvise ?, neoznadenih cetih brojeva, koji de-fini5u maksimalne vrednosti pojedinih indeksa.

Ako se jedna naredba (10.3. 1) nalazi u programu, a druga ovakvanaredba u potprogramu, sa ekvivalentnim iistama, tada de odgovarajudepromenljive iz jedne i druge liste imati zajedni[ka polja u memoriji. pod

ekvivalentnim listama podrazumevaju se liste sa istim redosledom promen-Ijivih po vrsti i duZini.

Tako, ako se u programr.r nalazi naredba

COMMON AI, A2, A3, J7, J2

a u potprogramu naredba

coMMoN xL, x2, x3, Kl, K2

tada Ce promenljive Al i Xl imati zajednidki registar u memoriji, kao iproruenljive AZ i)I.2, Ag i X3, Jf i Ki, kao i J2 i KZ.

Odmah treba uoditi da ovakva zajedniEka zona izmedju programa ipotprograma predstavlja jedan nadin za ulaz podataka u potprogram, bez

njihovog navodjenja kao argumenata potprograma, kao i za izraz rezunatapotprograma.

Ako se COMMON-naredbom ZeIi dobiti zona za zajednidkim podaci_ma zs viEe prograrnsldh jedinica, tada sve coMMoN-naredbe moraju ima-

205

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

Tako, ako se naredbe

INIEGERT2 Jrt(LOGICALT! LlrL2COl.ll{ON Al 30 I r JrKrLl rL2

nalaze u programu, a naredbeINTEGERT2 CrOLOGICAL*I FIrF2COltl{ON Bl30 I rCrDr FlrF2

u potprogramu, liste COMMON-naredbi su ekvivalentne i u ovakvoj zajed-

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.

Ako se zajedniCkom zonom ne prenoae vrednosti promenljivih, ved

se aemo racionalno koristi memorljski prostor, tada redosled promenlji-vih u listl moZe biti proizvoljan. Medjutim, ovaj redosled mora biti usa-glegen u.programu i potprogramu. Ova eaglasnost Eroze se posticl na dva

naEins

- navdjenjem promenljivih u redosledu po njihovoj opadajucoj du-

Zini, ili- navodjenjem promenljivih u proizvoljnom redosledu sa uvodjenjem

filrtivnih promenlivih da bi se usaglaeile duZine promenljivih u listama

COMMON-naredbi.

10.3.2. Imenovana zajednidka zona u memoriji

Zajednicka zona u memoriji kao i pojedini njeni delovi mogu dobitiime. U ovom BluEaju element liste u (10.3. 1) ima oblik

/ime/ tista, (10.3.3)

gde je

ime - nazlv zone koJu 6lne promenljive koje slede u listi2,liata2 - gradl se na istl nacin kao i lista u (10.3. 1).

Nazlv zone defiriile 8e na isti na6in kao i ime promenljive i uvekse pi6e izmedJu kosih crte.

Tako re moZe pisati

Page 107: Fortran Za Treci Razred Masinske Tehnicke Skole

t08

co'|NoN I zoNAtI Al 5 I t8 I lO'/zoNA2/KSI I 5I, JOT

gde elementi nizova A i B 6ine_deo zone u memoriji, koja noer ime zoNAl,a elementi niza KsI I promenljiva Jor cine deo zone u memoriji 6a imenorn7,oNA2.

u istol coMMON-naredbi mogu se nalaziti imenovani i neimenovanidelovi 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 ealmenom- BETA.

Ako ee nadJe vi6e COMMON-naredbi u jednoj programskoj jediniciea 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, tadaje 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),

2VI

6. Olrisna naredba za definisanje zajednidke zone u jednoj programr

skoj jedinici (EQUMLENCE),

?. Funkcijske naredbe, i

8. Izvr5ne naredbe programir.

Page 108: Fortran Za Treci Razred Masinske Tehnicke Skole

il

lfi

1 1. DODEIJIVANJE POEETNIH VREDNOSTIPROMENIJTVIM

/

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

broj konstantl, koje ulaze u prora6un sa nepromenjenim vrednostima Pri

svakom izvodjenju proraduna. Ovakve konstante dodeliuiu se promenljtvlm

jedanput na PoEetku Prora6una.

Takvo dodeljivanje podetnih vrednosti promentjivim, odigledno' moZe

se izvrSiti pomodu aritmetidkih naredbi, kod kojih 6e se na desnoj strani

rnaka jednakosti nalaziti konstarta, a na levoi ime promenljive kojoj 6e o-

va konstanta dodeljuje' Medjutim, aritmeti6ke naredbe predstavljaju izvr5ne

naredbe programa i posle prevodjenja programa sa FORTRAN-jezika na ma-

Sinski jezik, ove naredbe ostaju u programu na ma6inskom jeziku' 6ime zau-

zimaju prostor u memoriji i pored toga Sto 6e se izvrliti samo jedanput na

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

stavlja neekonomidno kori5denje memorijskog Prostora'

Uovojglavibi6eobjaEnjenerraredbekojeomogu6ujudodeljivanjepo-

detnih vrednosti promenljivim u fazi prevodjenja Programa sa FORTRAN-

-jezika na maEineki jezik. Prema tome, ove naredbe 8e ne javljaiu u Pro-

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 , IFa ekEiEiliTEEklaraciju viste promenljivih V

Ve6 smo videll da opisna naredba za eksplicitnu deklaraciju vrste

promenljive (REAL, INTEGER, COMPr'FX,LOGICAL) ima dve funkcije:

Page 109: Fortran Za Treci Razred Masinske Tehnicke Skole

2Lo

- deklariEe vrstu promen{lvih po lmenima promenljlvih,- defini5e duZine promenljivih.

Pored navedenih funkclja, ova naredba se moZe koristitl i za dode-ljivanje poeetnih vredno6ff promenljivim i nizovima koji se pojavljuju ulisti ove naredbd, .iako, oplta funkcija ove naredbe moZe se opisati naslededi nadin

vfFte * I llsta (11. l.l)gde je

vrsta - slulbena red (REAL, INTEGER, COMPLEX ili LOGICAL),s - nbobavez4n ceo neoznaden lroj kojt definlse duZinu promen_

ljivih za koje to nije posebno ukazano u listi ove naredbe,lista - spisak elemenata medju sobom razdvojenih zarezima.

Ako se deklari5e ime promenljive u listi, onda je elemenat Uste

tuE * q/k/ (ll.l.2)gde je

ime - nazlv promenlJtve,

s1 - neobavezan ceo neoznaden broj koji deflnlEe duZinu promenljl-ve, a

k - neobavezna konstanta, koja ee dodeljuje kao podetna vrednostpromenljivoj.

Ako se deklarile ime niza u listi (ll. I. l), onda je element listeime*sz (lista r ) llista2 / (ll. 1.3)

gde je

ime - naziv niza,s2 - neobavezan ceo neoznaden broj, koji definiie duZinu eleme-

nata niza,

lieta1 - neobavezan spisak, od najvi5e ?, neoznadenih, celih brojeva,medju sobom razdvojenih zarezlma, koji defini5u makeimal_ne vrednosti indeksa niza,

lista2 - neobavezan episak konetanti, medju sobom razdvojenilr zare-zima, koje se dodeljuju kao poEet-ne vrednosti elementimaniza.

Ako au u lieti2 uzaatopne konstante medju sobom jednake, tada ele-ment llste2 moie imati obllk

rlr

fli+

iF

.r.*:-]Tffi

m*k2lr

(11.1.4)gde Je

m - c€o neoznaden broj koji ukazuje na broj konetantl sa vredno66uk,

k - konetanta koja se ponavlja m puta.

Tako ee mole pleati

,, INTEGERi2 JOT/186/TALFA(5, tOt t5O+OtREAL ftAsA/_7.2f3/ rBEtA( lOt/5.1.0, 5+2.0/col{PlEXrl6 DEt TA/ I -1.4D-2 13. 2D4 I ILOGIcAL LoG*I/"TRUE. /,PLus/.FALsE./

Iime ee postiZe eledede dejstvo

- promenljiva Jor i elementl niza ALFA deklariSu se kao celobroj-ne promenlJlve duZine dva podregistra, i promenljlvoj JOT se do_deljuje podetna vrednogt 186, a evih 50 elemenata niza ALFA dobi-jafu potetnu vrednoet nula,

- promenljlva MA'A i elementi niza BETA dekrarrdu se kao rearnepromen{ive duZlne 4 podregistara, t promenljivoj MASA dodeljuJeoe pocetna vrednoet - 7zoo, a prvrh pet elemenata nlza BETA do-blJaJu broJnu vrednoat t, dok elede6ih 5 eremeaata vrednost 2,

- komplekanoj promenljtvoj dvoetruke tadnoeti DELTA dodeljuje eepodetna vrednost -0, 014+32000. i,

- logidkoj promenljlvoj LOG duZine jedan podregietar dodelJuje eepoEetna vrednost . TRUE., a logidkoj promenljtvoj pLUS, duZine4 podregletra, dodeljuje se vrednost . F-AI^SE.

)rft' ft.2. Naredba za dodeljlvanje podetnih vrednoeti

DodeljivanJe podetnih vrednosti moZe se izvrBiti i pomodu poeebnenaredbe obllka

DATA Ueta (11.2. r)gde je

DATA - sluZbena re6,libta , epleak elemenata medju sobom razdvojenlh zarezima.

Elementl liete, .u (11.2. l), imaju obltk

Page 110: Fortran Za Treci Razred Masinske Tehnicke Skole

\

li:

iitl

i212

Iietal /lieta21 (r1.2.21gde je

Ustal - spisak imena promenljivih sa indeksom ili bez njega i imenanizova medju 6obom razdvojenih zarezima,

Iista2 - spisak konstanata koje se sleva nadesno dodeljuju promenlji_vim i elementima nizova navedenim u listil , medju sobomrazdvojenih zarezima.

Konstante u listi2 mogu blti celobrojne, realne, kompleksne, heksa_dekadne, 10gi6ke ili alfabetske (literali). Ako je viSe uzastopnih konstantijednako, moZe se pisati

m*k (11.2.3)gde je

m _ ceo neoznaden broj koji ukazuje na broj ponavljanja konstante k,- k - konstanta koja se ponavlja.

'Tako se moZe pisatiLOGICAL t{2IDI rtil,is I ON Al lO,, C ( 5loAr a N/ L 2 / t A / tO+O. I, B, C f 3, 2 t 5*t

" 5 / t L f .TRuE. r. FALsE. /6ime se postize slede6e dejstvo:

- celobrojna promenljiva N dobija brojnu vrednoet 12,- deset elemenata niza A dobijaju vrednost nula,- promenljiva B dobija vrednost 5,2, apet elemenata niza C dobija_

ju vrednosti l, S, i- Iogi6ke promenljive L(l) i L(2) niza L dobijaju vrednosti .TnuE

odnosno . FALSE.

Ako se Zeli proizvoljan sadrZaj postaviti u memorijski.registar, po_godno je koristiti heksadekadne konstante.

Heksadekadna konstanta pi5e se kao niz heksadekadnih cifara o,1,2,3,4,5,6,7,8,9, A, B, C, D, E i F ispred kojih stoji slovo Z.

Kako binarni k6o heksadekadnih cifara sadrZi detiri binarne cifre, toznadi da u jednom podregistru sa g 6etija mogu da se registruju dve hek_sadekadne cifre. posto je binarni kod heksadekadnih cifara potpun ravno_meran kod, to zna6i da se pomoCu heksadekadnih cifara moie u memorij-

'aa3

skom registnr poetavlil pfolzvo{en btaarnl radrzaj. Makaimalni broj clfa_ra koji moze imeti hek.edekadna konstarta zavisi od definieane duzine pro-menljive, Kako se duZina promenljtve odredjuje po broju,podregistara zanjeno registtovanje, a jedan podregiatar sadrZi dve heksadekadne cifre, toje maksimalni broj cifara h"ksadekadne konatante dva puta vedi od duzinepromenljive kojoj se dobeljuje ova konstanta. Ako j6 broj cifara heksadekad_ne konstante ve6i od dozvoljenog,za datu duZinu promenljive, odbacuju €eheksadekadne cifre e leve strane; ako je pak broj cifara manji, s leve stra_ne se dodaju nule. Tako se moZe pisati

CoHPLEx CrOrl6INTEGER*2 OETA,ALFALOGICAL IOG*IDArA C/ | 3. E "197O. I IDIL6HSREDNJA VREDN0SI/,,. BEt At I Ag. I , ALFA|ZCLCS| tL}clar'rl

dlme ae poettZe slede6e:

- promenljlvoj C, dtja Je duZlna g, dodeljuje se podetna vrednost li_teral

3. 8. 1970

kojl je definiean izmedJu apostrofa,- promenljivoj D, 6ija je duZina 16, dodeljuje se kao podetna vred_

noet llteralSNEDNJA VREDNOST,

kojl Je deftnlean opleom 16H,

- promenrJlvoj BETA, 6lja je duZina 2, dodeljuje se kao podetna vre-dno€t llteral

.ABkojl je definisan lzmedju apostrofa;

- promenljivoj ALFA, Eija je duZina 2, dodeljuje se kao podetna vre_dnogt hekeadekadna konstanta

crcskoja je definieana podetnim slovom Z, i

- promenljivoj LOG, Cija je duZlna l, dodeljuje sc kao podetna vred_noet heksadekadna konstanta

D3

koja je definleana poEetnim elovo

Page 111: Fortran Za Treci Razred Masinske Tehnicke Skole

ri;,1

rll

2t4

Naredba (11.2.1) plBe se pre lzvrlnlh naredbl progratna, i tada je

redoaled oplenih naredbl glededi:

1) Oplane naredbe za ekeplicltnu I lmpllcitnu deklaraclJu vrste (RE-

AL, INTEGER, DOUBLE PRECISION, COMPLEX, I.OCICAL, IMPLICII),

2) Optsna naredba za navodJenje lmena potprograma koJl se javljaju

kao argumenti drugih potproglama (EXTERNAL),

3) Optena natedba za definisanje dimenzije nizova i maksimalnih

vrednostl lndekaa nizova (DIMENSION),

4) Oplene naredba za deflnisanje zajedntdkih zona (COMMON),

5) Opiena naredba za dellnlsanje zajednidldh polja (EQUfVALENCE),

6) Optgna naredba za postavljanje podetnih vrednosti (DATA),

?l FunkdJake naredbe, I8) Izvr6ne naredbe programa.

Naredba (11.2.1) ne mole ee koristiti za dodeljivanje poEetnih vred-

noetl promen[lvim koJe uleze u zajednidku zonu pr6gr"msldh jednlca (CO-

MMON-zona). Ovalfftm promen{ivim dodeljuJe 6e podetna vrednoet pomo-

6u poaebne progrqmske jedlnice BTJOCK DATA, koja je opiaana u slede-

€em odeljkr,r.

11.3. Programeka Jedlnlca za dodeUivanje poEetnih vrednosti

zajednlEldm zonama u memorlji

PostavljanJe podetnih vrednoeti promenl5lvim i nizovima koji Eine

zajednidku zotttr ze vlSe programskih jedinica vrSi se preko posebne pro-

gramske jedinice, Etja je etruktura elededa

BI-OCK DATAIII

END

(1r.3. l)

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.

2t5

Izmedju prve naredbe programske jedinice (BLdCK DATA) i zadnjenaredbe (END), ne 6me 6e nalaziti nijedna izvr5na naredba. Ako se koris.te.naredbe za eksplicitnu ili implicitnu deklaraciju vrgte promenljivih one

se moraju pisati neposredno iza prve naredbe potprograma (BLOCK DATA).Iza ovih naredbi navodi se naredba COMMON u kojoj sG mogu navesti sa_

mo lmenovane zajednidke zone, i to sve promenljive ovih zoia, bez obzira -

da li dobijaju podetne vrednosti ili ne. ova programska jedinica se posebno

ne poziva u programu, ve6 dini sastavni deo programa, i izvr5ava se napoCetku programa.

Tako se moZe pisatiELOI( DAIAR,EAI. KORzcollHOilrl'oN/?l r Er KOR2OATA Pl r Er KOR!/3. l4l 599 t 2.7 lB2B2 t l. +t+2t4 IEND

dlme se postiZe sledede:

- zajedniEka zona aa imenom KON sadrZi promenljive pI, E, KORZ,kojima se dodeljuju podetne vrednosti,

- promenljivoj PI dodeljuje se podetna vrednqst 3. f4lS93,

- promenljivoj E dodeljuje se poietna vrednost Z.7t8ZgZ, i- promeljlvoj KOR2 dodeljuje se poietna vrednost t.4t4?t4.

Page 112: Fortran Za Treci Razred Masinske Tehnicke Skole

I

i

ti

I2. OPSTE MOGUCNOSTI UNOSENJAFODATAKA

I IZDAVANJA

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 (odeljak12.3) odnosl ee na unoEenJe i izdavanje podatarra bez korl6denJa naredbeFORMAT.

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

gde Je

n

G

k

d

nck. d (12.1.1)

- ceo neoznaCen broj koJl uka2uSs na broj ponevljanja opisa,- glnbol FORTRAN-jezl&a,

- ceo neoznaCen broJ koji ukazuje na duZlnu polja u ulaznom, odno_gno lzlaznom, elogu,

- ceo neoznacen broj kojl ukazuje na broJ var.6rh cifara kada geopleuje 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 lntervalu0,lrlxl<rd (t2. r.2l

Page 113: Fortran Za Treci Razred Masinske Tehnicke Skole

218

gde je d parameter u speclflkacltt (12. l. l), tada se broj izdaje bez lzlo-Zioca. U suprotnom Bludaju, meEoviti broj se lzdaje sa izloZiocem E iU D,

6to zaviai od deflnlsane duZine promenljlve, Eija je to brojna vrednoct.

McdJutlm, pri izdavanju me5ovitih brojeva u 3irlnl polja k treba uvek

predvideti meata za izloZilac broja.

Pri korlE6enju opisa (12.1. l) treba voditi ra6una o slededem: ako je

duZlna polja (k) nedovoljna za sme5taj brojnog podatka, tada Ce bitl polje

lopunjeno sa k zvezdica (*).

Prlmer

Sietaviti program koji dodeljuje poEetne vrednosti promenljivimStampa njlhove vrednoeti na slede6l naEin

a) CelobroJne promenljlve

ALFA = 4236

JOT =5

b) Realna promenljiva dvostruke tadnocti

D = 324.12

c) Realna promenljiva obidne ta6nosti

R = -125.6

d) Kompleksna promenljiva

KOM = (r4.2, -s.Bl

e) Logt6ka promenljiva

LOG = .FA[,SE.

Progro- ima slededl izgled

INIEGER*2 ALFAt1236l, JgT l5tREAL.8 Dl tZ4. LZt, R!1 f -LZ'.. 6tcollPtEx t(Otrllt4r2r_r.8t, -

LoGtCAt.l LOG/.FAt SE. /, rRITE(6rl0t ALFI,JOTTDlRl|(Qil1!916

l0 FonilAtt I t r2G4tGt2.s,eir.zrz6ir .t$!tstoPEND

Vrednosti promenljivih Etampaju se u obliku

42t6 5 ?24.12 -0el3E 03 14.2 -3" 80

219

Po6to Je vrednoat promenljlve R van intervafa (12. I.21, to je StampanJe

izvrieno u ekeponenclJalnom oblLku (ea zaokruZenjem).

L2. l, 2. KoeficUent razqere

Ako se konatante u ulaznom, odnosno, lzLaznorn slogu opieuje opis-

om F, E ill D, tada se moZe uz ovai opis primeniti koeficijent razmere u

obllku

mPnFk. d (12.1.3)

' mPnEk. d (r2. 1.4)

mPnDk. d (12. 1. 5)

- ceo oznaden broj koji ukazuje na koeficijent razmere,

- elmbol FORTRAN-jezika.

ili

iu

gde je

m

P

Ako ee opie (12. 1.3). kortett za ople polja u ulaznom slogu, tada lma

slede6e dejstvo

u=s.10-- (12. 1.6)

gde je

a - vrednoat konatante u ulaznom slogu, a

u - vredtroat konstante koja Ce biti regietrovana u memoriji.

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

lma elede6e deJstvo

s=u.108 (12.1.7)

gde je

u - vrednost konstente u memoriji, a

e - vrednoet konetante koja 6e biti izdata u izlaznom slogu.

Ako ee opie (12.1.4) iU (12.1.5) prlmenjuje na konstante u poljima

ulaznog eloga., on je bez dejstva. Ako se ovi oPi.si primenjuju na izlazu,

tada ne u.tlEu na brojnu vrednost konstantl, veC semo na oblik Stampanja

tako 6to 6e se vrednoet mantlse povedati 10o puta, a eksponent umanjiti

ze m.

Page 114: Fortran Za Treci Razred Masinske Tehnicke Skole

220

Koeficijent razmere primenjen na jedan opis u FoRMAT-naredbi os_taje u vaznosti i na svim ostallm opisima koji slede iza ovog opisa, Ako eeZeIi ukinuti va'noet koeficijenta razmere, treba zapi.sati opis F, E ili D uobliku (12. 1.5), (tZ. r.4) iU (12. 1. S) u kojem 6e biti m = 0.

L2.7.9. Razme6taj polja u ulazno_izlaznom slogu

Posebnim opisom moZe se definisati poCetak polja u ulaznom, odnos_no u izlaznom slogu. Ovaj opis se pi6e u obliku

(12.1.8)gde je

T - simbol FORTRAN_jezika,

n - ceo neoznaden broj, manji od maksimalne duZine sloga lli jed_nak ovoj, i oznadava podetak polja u slogu.

Medjutim, kada ee radi o izlazu treba imati u vidu da je prvi eimbolu lzlaznom elogu komandnog karaktera i da ee odnosi na vertikalno pome-ranje papira na Etampadu. Tako je drugi elmbol lzlaznog sloga u etvari pr-vi simbol koji se Etampa, pa n u (f 2. 1.8) ukazuje na (n-l)_vi elmbol ujednom Etampanom redu.

Prlmer

Slede6l program

4.2f. 13E'-0. OliIRITE(orl0t Ar8

l0 FORHA7(, A-rr2pF6.0 fT4tElA.lrFlr I B=rtS IOPEAID

daje Ftampanl dokument u obllkuA. 22t3.B= _l4oDE_03

PoSto je na opis F, za promenljivu A, primenjen koeficijent razme-re 2P- to je brojna vrednost promenljive A, pove6ana l0 puta pre Stam-panja. Kako se koeiicijent razmer€ prenoei I na sledede opise koji slede,to je i za opis E primenjen isti koeficijent razmere.. Medjutim, brojn:r

Tn

22L

vr€dnost promenljive B, nede bitl promenjena, ali 6e oblik dtampanja bitltakav da 6e mantlsa bltl pomnoZena sa 103 , a eksponent umanjen ze 2. lIdfugom lzlaznom slogu raspored polja u slogu je definlsan opislma T.

12. L. 4. Opis heksadekadnih konstanti

U odeljku 11.2 videli smo da se podetna vrednost promenljivih moZe

postavltl pomo6u heksadekadnih konstanti. Medjutim, hekeadekadna kon-stanta ae moZe na€i i u polju ulaznog ili izlaznog sloga. U ovom sluCaju o-pisuje se ea

(12. 1.9)'gde je

n - ceo neoznaEen broj kojl oznalava broj ponavljanja opisa,Z - elmbol FORTRAN-jezika, ik - ceo neozna6en broj koji definide duZtnu polja u slogu.

Ako je heksadekadna konstanta duZa od duZine polja, tada se odbacu-

Ju clfre eleve. Ako Je heksadekadna konatanta kra6a od duZine polja, vrdiee dopuna sleva nulama u sluEaju ulaza, odnosno znacima blanko u eludajutz]reze,-

12. f.5. Opie alfabetaklh podataka

FORTRAN-jezIk je deflntean pre svega ,^ opi" problema, u kojimaae preteZno javljaju izradunavanja po odredjenim formulama; drugim re-llma za obrEdu brojnih podataka. Alfabetski podaci koji predstavljaju nizsimbola, javljaju se u obllku literala, kao neimenovani podaci, a eamimtlm, ne pruzeju ge vede moguCnosti manipulaclje sa njima u progremu.Medjutim, da bl I u FORTRAN-jeziku postojala mogu6noet za ve6e mani-pulactje sa a[abetskim podacima, uveden je opie

nAk (12.1.10)

gde je

n - ceo neoznaden broj kojl ozne€ava broj ponavljanja opisa,

A - simbol FORTRAN-jezika, Ik - ceo neoznaden broj kojl defniEe duZinu auabetskog podatka.

rrZk

Page 115: Fortran Za Treci Razred Masinske Tehnicke Skole

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 iartnaEln kao t lme promen{ivfua. Dullna aUabetakog podatka odgovara dutrinipromen{lve, CiJe ime se dode{uJe alfebetekom podatku. Ime ovakvog alfa_betekog podatka prBe se u liail ulazne naredbe, kada ee unosi, odnoeno uUrti lzlazne naredbe, kada ee lz.daJe aUabetski podatak.

Ako je duZlna auabetskog podatka (k) jednaka po broju slmbola aadclderleanom dulinom promenljrve kojoj ee dodeljuje auabetski podatakteda odgovarajude polje u ulaznom, odnoeno u izlaznom alogu sadrZf L sl_mbola. Akb je durtna alfabetekog podatka manJa od duzlne porja, tada aeelfabeteki podatak poetavlja u polju sleva nadesno, a u oatali deo poljapost8vuaju se znacl blanko. Ako je {ulrna auabetskog podatka ve6a od du-Itne po{a, tada ge alfabetskr podatak poatavlja eleva nadeeno, a vrEak ai-mbol,a ge odbacuje.

Primer

U l.koloni karticg bu5en je ceo broj k, a od 2. do 10. kolone broj x.tzracunativrednoet n, F ill y uzavisnostlodvrednoetibroja k, nasle-de6l naGln

f t izraEunati t= x2+lIk =1 2 ', F.=2x+g,sII a " y-x2-2x-4\

Program saataviti tako da ae moze korlstltl za prolzvoljan broJ ula_znlh kartlca.

Program na FORTRAN-jeziku ima elededl izgledrDlHEilStolt A(3tDATA Al ll l. ALF|. l.

^l 2l t.gElA. f ,A l3l t.cAnA. f

3OO READI jrl00rENtrriool KrI100 Fo8t|atlllrFg.tl

G0 TO llr2r3lrK'G0 r0 300I V.X||X+I.

{OO llRlTEl6r?O0l AlKl rY2OO FqRlffllr rlA4r! ' rrEl2.5l

60 TO'3002 l'2tlX+1.5

GO r.O 400

3

t00

YrXaX-2.1X-4cG0 T0 400STOPEND

Za ulazne podatke date u tabell 12. l. L, rezultati se dobijaju u obli-

Tabele 12.1. Iku:

k x

2 r,26

I {,003 2.20

I -1, 00

0ETA . 0.600008 OlALFA . O.l700O€ 02GAI{A r -0.35600E 0lALFA . C.20000E 0l

Elementlma olza A dodeljene su kao poEetne vrednosti, aUabeteld

podact ALFA, BETA t GAMA, I Etampanje teketa izvr6eno je pozivanjem

odgovaraJudeg elementa niza A.

12.2. Promene FORMAT-naredbe za vreme izvr6avania programa

Prema dosadaBnjem izlaganju FORMAT-naredba se pi5e u programu

I nJen obllk se ne moZe menjati za vreme izvr5avanja. Medjutim, u neldm

aluEaJevtma Je pogodno da ge ova naredba moZe menjati za vreme 7zvr6a-

vanJa programa. Ovo se moZe postldi na dva nadina:

- postav{anjem ea'drZaJa FORMAT-naredbe sa ulaza, i

-poatavljanjeeadrZajaFORMAT.naredbekaopodetlevrednostirrlza.

12.2.1. PoetevUanje eadrZaja FORMAT-naredbe sa ulaza

U odeljku 4.8.5 obJa6njeno je da se llteral u FORMAT-naredbi, koja

Je prldnrZeoa naredbl ulaza, zamenjuje aadrZajem odgovarajuceg polja u

ulaznorn elogu. Prema tome, ako je opiena naredba napisana u obllku

j FORMAT('Uteral') (r2'2' r)

a lzvr6na naredba ulaza, pomo6u koje ee unoel novl eadrZaj FORMAT-na-

redbe

READ (i,J) (t2.2.2)

Page 116: Fortran Za Treci Razred Masinske Tehnicke Skole

221

tada 6e izvr.nom naredbom (Lz.z.z) brti postav{en novr eadrraj naredbe(I2.2. l) na predvidjenoj duZini izmedju apoetrofa.

Na ovaj naEin eadrZaj FORMAT_naredbe moZe se menjati proizvolj_an broj puta za vreme izvrEavanja programa. Medjutim, ove promene aeodnose aamo na pisani tekst (Uteral) koji se nalazi izmedju apostrofa.

Tako je ovo pogodan nadin kada ae unoae razlldita objaEnjenja kojatreba Etampati uz rezultate.

12.2.2.

SadrZaj FORMAT-naredbe, ukljuduju6i spoljnu otvorenu i zatvorenuzagradu, moZe se postaviti kao vrednost niza sa odgovarajudim brojem e_Iemenata u zavisnoeti oct broja ermbola koje sadrZi FoRMAT-naredba.ovavrednost moze biti postavljena kao podetna vrednost nlza lri dodeljena ele-mentima niza sa ulaza. Naredbom

odnosno

gde je

ime - naziv niza Cijim elementima je dodeljena vrednost sadrZaja

_ FORMAT-naredbe.

Primer

Tako raniji primer na kraju odeljka 12.l.S, mole biti iapiean bezFORMAT-naredbe, i tada program ima slede6l izgled

READ(i, ime)Usta

WRITE(i, ime)Usta

(12.2.3)

, (t2.2.41

OIHENSION A{3I,FORUL( 3I,FCRIZI5'DATA A./.aLFASETAGAMA, t.iaeiliili I tFeoit. I s

_- -]FoRlzl2oHl. rrA4rr . .rEl2.5i t3o0 REAo( 5TFORULT ENO:5oot i;i-- - "G0 T0 llr2r3trK

I400

2

)

G0 T0 300l=l*l+11t{RtTE(6,FoRIZl A(|(l,YG0 T0 ]i00Y=2;rX+3.5GO TO 400Y-XrX-2. *X-4.G0 T0 400

500 STOPE

^10

225

Ze ulazne podatke date u tabeli 12. l. l, rezultati se dobijaju, kao iranije, u obliku

B€fA = 0.6OO0OE OlALFA . O.1700OE Oz6AflA - -0.356O0E OlALFA = 0.20000E Ol

,r.r.

Uno6enje i izdavanje podatala vrEi se navodjenjen imena promenlji_vlh, u Usti odgovaraju6ih izvrEnih naredbi, i navodjenjem opiea u listiFORMAT-naredbe. pri ovome ae jedna ista informacija o vrsti podatakanavodi dva puta. prvi put je to reEeno preko imena promenljive, a drugiput preko opiea polja u ulaznom, odnosno u izlaznom slogu.

Postoji mogudnoet da se unoEenje I tzdavar{e podataka vrdi lsk{udi_vo preko lmena promenljivih i nizova. Ovo se postiZe naredbom

NAMELIST lletagde je

NAMELIST - sluZbena red,

liste - epieak elemenata koji se medju sobom ne razdvajajuzarezima.

Elernenti liete imaju oblik

/ime/lieta, (r2.3.21gde je

ime - nazlv koji se eastoji.od jednog do 6est alfanumeridkih sim_bola, od kojih prvi mora biti slovo,

Uatal - splsak imena promenljivih i nizova medju sobom razdvoje_nlh zarezima.

U ovom slu6aju nare{ba ulaza ima obllk

(r2.3. l)

(12. 3. 3)

(12.3.4)

READ(i, ime)odnosno u elu6afu izlaza

IvRITE(i, ime)

Page 117: Fortran Za Treci Razred Masinske Tehnicke Skole

li)l

irl

l

i,i,

226

gde te

i - ceo neoznaden broJ llt ime celobrojne promenljlve, kojim eedefinlEe nlazno-izlazna jedinica,

ime - naziv promen{lvlh sadrZanih u lletll u (12.3. Z).

fako-ime u (fZ. g.3), odnoeno (12,1, \,-ukazuje na eplsak promeh_ljivth t nizova, to znadl da Je ovlm deflnlsana lista urazne. odnosno izlaz_ne, naredbe, Opia po{a ulaznog, odnogno Lzlaznog sloga u ovom cludaJunlje zadat, ali ee zato ulazni, odnoeno lzlazri podaci moraju pisati.u ob[_ku

ime lista2 & EI{D (12. 3.5)gde je

lme - nazlv promenljlvlh eadrZanlh u Uetll u (12. S. 2),11sta2 - siisak elemenata medJu sobom razdvojenlh zarezima, iEND - gluZbena red, koJa oznaEava kral ulaznlh podataka.

Elementl llete2 eu oblika

tulmeo = I

lmeo = llsta3

(12. 3.6)

(r2.3.71gde je

imep - lme promenllve, koJe mora biti eadrZano u lletll ,

k - kongtanta koJa se dodeljuje promen{lvoj sa lmenom imep ,lmea - lme niza, koje mora biti eadrtreno u UEtil ,

lieta3 - episak konetand medju sobom razdvojenih zarezima, i<oje se

redom dodefiuju elementima nlza Cije je lme na levoj etrantznaka jednakoati.

Ako je u lietl3 viEe uzaetopnih konstantl jednako, onda element listemoZe lmatl obllk

m*kr (r? 3.8)gde je

m - ceo neozna6en broj koji ukazuje na broj ponavljanja konstante,kl - konstanta koja ee ponavlja.

. 227

Ulazni podacl koji se unose pomo6u naredbe (12.3. 1) moraju biti bu-Seni podev od 2. kolone kartice.

Naredba (12.3. l) moie se nqlq2ill bilo gde u prograrnu, ali mora bi-tl lspred prve naredbe u kojoj se korrste imena promenljivih iz listel u(L2-3.2). Pomocu ove naredbe mogu ae unostiti i izdavati vrerlnosti svihvrsta promenljivih: celobrojne, meSovite, komplekdne ilt logiike konstan-te.

Prlmer

Zadate eu dva kompleksna broja Cr i Cz, i l0 elemenata niza A sa

realnlm konstantama obidne tarnosti, kao i 3 elementa niza L sa Iogidkimkonatantama. IzraCunati C, P i K po formulama

c=

P=

K = Lr IrLz ALt

Program na FORTRAN-jeziku ima slededi izgled:

COIIPLEX CTCTIC2LOGICALII L(3I,KOI

'{ENsI ON A I IO

'NAI.IEL I ST/ULA ZICI,C2,L, AI IZLAZ/CTP TKR EAo l 5r u_AZ

'C-CllC2pr10O lO l.lrlO

l0 PrPr11 1 1

K-l-( I l.AND.Ll z t.ANo.Lt 3 IltRt TE ( 6r I ZLAI ISTOPEITID

Ulaznl podacl ee pripremaju na karticama, tako da se buEe od 2. ko-lone kartice. Za ulazne podatke

6ULAZ Ct-(2. t4.21 tC2. l-L. t5.21111=T1 TlF g

1r{1 l4lle rt12. r 6END

rezultatl se ltampaju u oblikurt zLlzf,rtEND

crc,l0l-la'I'l

(0.?0419616r-Oo5l?O54621rP. l28.0OOO0 rt(.F

Page 118: Fortran Za Treci Razred Masinske Tehnicke Skole

13. KORISCENJE SPOLJNIII MEMORIJA

'!iJiilii

: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 medijrim na koji ,e irrfor]c"'s,:rr,-1macija upisuje i sa kojeg se izdaje serijeki, i.to kod magnetnog dieka bit rr rj1i"

"po bit, a kod magnetne trake znak po znak (karakter). ., ,i:,.

' ii'4'-

-gd13. I Magnetni disk ,:i ji,r

f 3.l.l. Definisanje podataka /t: \.1,_svi podaci koji 6e 6e prenositi ng magnetni disk ili izdavati aa dis_

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

DEFINE FILE lista ( r3. 1. 1)

gde je

DEFINE FILE _ sluZbena red,lista - spisak elemenata

ma.medju sobom razdvojenih zarezi-

Elementi u listi (tB. t. l) su oblika

iiit

t#rr;ii

d1[,i{:,i$

:;:61

,if;

.1i

$

,r,

r riilrr#

1.tll.;

gde je

g (s, d, f, p) (13.1.2)

Page 119: Fortran Za Treci Razred Masinske Tehnicke Skole

tt0

I - c€o neozna6en broj koJi predatavlja identifikacioni broj grupe,

8 - c€o neoznalen broj koji definlEe broj elogova u grupi sa iden-tifikacionim brojem g,

d - ceo neoznacen broJ kojt defini6e makeimalnu dutinu sloga u gru.pi sa identiflkacionim brojem g,

f - elovo L, E ili U koje definiFe neEin preno6enJa lli izdavanja po-dateka, i

p - ime celobrojne promenljlve, Cija vrednost definiEe slog na dis-ku.

DuZina sloga d moze se lzraziti broJem podregistara ili brojem re-glstara u memoriji Eiji se eadrZaj izdaje na disk ili poatavlja sa di6k; jed-

nim elogom obrazovanim za ovakvu komunikaciju.

Slovo L defini6e da se srog za komunikaciju izmedju diska i unutraE-

nJe memor{e obrazgJe prema F08MAT-naredbi ili bez ove naredbe. Mak-

simalna duZlna eloga (d) izraZava se brojem podregistara u memoriji.Slovo E definiSe da se elog za komunikaciju izmedju diska i unutraS-

nje menorije obrazuje prema FORMAT-naredbi. Mahimalna duZina slog'a

(.d) lzraZava se brojem znakova.

Slovo U definiEe da ee slog zq komunikaoiju izmedju dieka i unutra5-nJe memorije obrazuje bez upotrebe IORMAT-naredbe. Maksimalna duzi-na aloga LztaZava ee broJem registara u memoriji.

Poele evakog obradanja disku vrednost celobrojne promenljive p bi-va uvedana za jedinicu, Cime ukazuje na slededi slog na disku.

13. 1. 2. Pozicioniranje glave disr<a

Da bl se omogudllo pozicioniranje gleve dlska pre nego 6to dodje do

izvrdne naredbe uno6enJa ili izdavanja informaciJa ea diska, uvedena je na-

redba

FIND (g'r) (13.1.3)

FIND - sluibena red,

g - ceo neoznaden broj ili celobrojna promenljiva diia vrednostpredstavlja identifikacioni broj grupe,

gde je 8de je

231

r - ceo neoztreEen broJ ili aritmettckt lzt9;z Elit vrednost ukazuje

na relativan poloZej sloga u grupi sa idertifikacionim brojem g,

13. 1. 3. Prenos Podataka

13. 1.3.1. UPis Podataka na disk

Upie podataka iz unutra6nje memorije radunara na disk vr5i se iz-

vr6nom naredbom

WRITE (g'r, j) Iieta (13.1.4)

gde jel

lista

WRITE - sluZbena re6,

g - ceo neoznaden broj ili i-e celobrojne PromenlJive Ciiavrednost predstavlja iderdifikacioni broj grupe,

r - ceo neoznacen broj ili aritmeti6ki izraz tiia vrednost uka-zuj€ na relativan poloZaj eloga u grupi sa idedifikacionimbrojem, g, i

j - neobavezan Parameter, koji ako se navodi mote biti obe-

leZje;edne FoBUaT-naredbe, ili irne jednog nlza' 6iji sa-drZaj odgovara sadrZaju jedne FORMAT-naredbe kojom se

defini6u izlazni podacl,

- splsak imena promenljivih i nizova, medju sobom razdvo-jenlh zarezima, 6ije Ce ee vrednosti Prenositi'

READ - sluZbena reC,

g - ceo neoznecen broj ili ime celobrojne promenljive 6ijavrednogt predetavlja identiflkacioni broj grupe'

r - ceo neoznaEen broj ili aritmeti6ki izraz dija vrednost uka-

zuje na reletivan p"t"Z.j sloga u grupi ss ldentifikacionimbroJem g,

13. 1.3.2. Izdevanje Podatka aa dieka

Izdavanje podataka sa diska i njihovo prenosenje u unutra6nju memo-

rlu re6unara vr6i 8e izvr6nom naredbom

READ (g'r, i, ERR=n) Iieta (13. 1.5)

Page 120: Fortran Za Treci Razred Masinske Tehnicke Skole

232

Primer

; - neobavezan parametar, koji ako se navodi mo'e biti obelez_je jedne FORMAT-nareabe, ili ime jednog niza 6iji sadrZajodg.ovara.sadrZaju jedne FORMAT_naredbe kojom se defini_5u izlazni podaci,

n - reobavezan parametar, koji ako se navodi predstavlja obe_leZje jedne izvrSne naredbe na koju se vrSi prelazak u slu_daju da se otkrije gre5ka na disku za vreme prenogenja po_dataka u unutra5nju memoriju radunara, ilista - spisak imena promenljivih i nizova, medju sobom razdvoje_nih zarezima, kojima se dodeljuju brojne vrednosti sa diska.

Sastaviti program koji elementu ai,.; matrice

al,6o

ai,,eo

i

a s,'o o

arri. oo

3t, se 3t,60

iiasiso tr,'oo

at, s6

?2, Se

:

15,'s6

azd, se

diska u unutra5nju memoriju ra6unara i StampatiProgram ima slede6i izgled

lNTt6ER At20r60 I,81 60'DEFINE FILE 2(20r6OrUrKtDO l0 l.lrZ0DO 20 J'1r60

20 al I;J l.loo*frJl0 l{RITE(2r I I lAl I rJ I rJrlr6Ol

O0 30 l{rlr5REA0l2.il'ERR=5OO) lgl J I r J.l r6O I

/

,,, ',,

dodeljuje brojnu vrednost

ar.J = 100i+j (13.1.?)

ovako formiranu matricu upisati na magnetni disk, a zatim preneti elemente

(13.1.8)

njihove vrednosti.

233

blRI TE ( 6r 40 I ( 0l J t r J=56t 601F0RilAT( ! rr516lSTOPEND

Elementi matrice A dine grupu podataka sa identifikacionim brojem

2. Svaka vrsta matrice [ini jedan slog, pa prema lomc grupa je saEinjena

od 20 slogova. Svaki slog sadrZi 60 elemenata jedne vr.te matrice. Upis

na disk vrEi se vrsta po vrsta matrice, Sto dini ulnrpno 20 slogova za upis.

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

dieka u unutragnju memoriju raeunara, Stampa se zadnjil 5 elemenata vrste

od 56. do 60. elementa. Tako ftadlprni dolorment ima slededi izgled

156 Lrl rto I59 160256 297 2rA 259 260356 )r1 tt6 759 360456 457 458 +59 +60516

'57 558

'59 560

U sludaju da se pri prenoGu podataka sa diska u unutrasniu memori-

ju radunara otkrije greSka, tada dolazi do prelaska na naredbu zauetavlja-

nja (ea obeleZjem 500), Eime se prekida dalji rad po Programu.

ta'2.W13. 2. 1. Prenos podataka

13.2. 1.1. Upis podetaka na magnetnu tralor

Upis podataka iz unutra6nje memorije ra€unara na.magnetnu traku

vr5i se izvrSnom neredbom

WRITE(i) Iista ( 13. 2. 1)

gde je

WRITE - sluZbena fed,

i - ceo neoznaden broj ili celobrojna promenljiva, 6ija vreri-nost ukazuje na jedinicu magnetne trake,

tista - spisak imena promenljivih i nizova medju sobom razdvo-j€nih zarezima, dije se brojne vrednosti upisuju na mag-nctnu traku,

3040

500

Page 121: Fortran Za Treci Razred Masinske Tehnicke Skole

234

Naredbi (13.2.1) nije pridrutene opisna FORMAT-naredba, jer ob-lik (13.2.1) pretpo.tavlja prenogenje podataka u internom kodu radunara,tako da FORMAT-naredba nije potrebna.

Pored oblika (f3.2. f) moZe se koristiti i oblik

WRITE (i, ) rista 1t3.2.21

koJi ima isto znaCenje kao i naredba izlaza opisana u odelJku 4. S., s timsto 6eda i ukazuje na Jedinicu megnetne trake. prema tome, naredbi (13. 2

2.) prtdrulute ee FORMAT-ndreilba sa obeleljem j.

13.2.1.2. Izdavenje podstaka ea magnetne trake

IzdavanJe podataka sa magnetne trake i njihov upis u unutradnju me-moriju ralunara vr5i se izvrgnom naredbom

READ(i) li6ta

gde Je

READ - slutbena re6,

I - ceo neoznaden broj ili celobrojna promenljiva, Eija brojnavrednost ukazuje na jedinlcu magnetne trake,

lista - spisak imena promenljivih i nizova medju sobom razdvoje_nih zarezima, kojima se dodeljuju brojne vrednosti sa mag_netne trake.

Naredbi (13.2.3) nije pridruZena opisna FORMAT_naredba, jer ob_

lik (f3.2.3) pretpostavlja da se sa trake izdaju podaci koji su upisani u in_ternom kodu ralunara, naredbom (19.2. l).

Ako su duZlne liste i sloga na magnetnoj traci jednake, tada 6e sveizdate informacije sa trake upisuju u ukazane memorijske registre imeni-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,ako Je duZina liste veda od duZine sloga na traci, tada se ovakva naredba(13..2.3) nede izvr5iti i dolazi do prekida rada po programu.

Pored oblika (13,2.3) moZe se koristrti i oblik

(13.2.3)

READ(i, j) lista (13.2.4)

235

koji ima iFto znscenJe kao i neredba ulaza opieana u odeljku 4. r1.2, s tim6to i seda ukezuJe na jedinicu magnetne trake. Prema tome, naredbi ( f 3. 2.

4) pridrulujq ee FORMAT-naredba 8a obeletjem j.

13.2.2. Oznaka kraja grupe podataka

Kraj grupe pdataka na magnetnoj traci oznadava se posebnlm zna-

kom koji se upisuje naredbom

END FILE g (13.2. s)

gde je

END FILE - sluZbena re6,

g - ceo neoznacen broj tli celobrojna promenljiva, {ijabrojna vrednost predetavlja idertifikacioni broj grupepodataka.

13. 2, 3, Premotavanje magnetne trake

L3.2.3.1. Vradanje trake na prethodan slog

Vracanje trske na prethodan slog postize ae naredbom

BACKSPACE g

gde je

BACKSPACE - sluZbena red

(13.2.6)

g - ceo neoznaeen broj ili celobrojna promenljiva, dijabrojna vrednost predstavlja identifikacioni broj gru-pe podataka.

t3-2-3.2.@

VraCanje trake na poEetak grupe postiZe se rrrr -'dborn

REWIND g

gde je

REWIND - slutbena red,

(1s.2.'i)

g - ceo neoznacen broj ili celobrojna promenljiva, dija brojnavrednoat predttsvua identifikacioni broj grupe podataka'

Page 122: Fortran Za Treci Razred Masinske Tehnicke Skole

trl

t2l

t3l

t4l

LITERATURA

Fredric stuart: FORTRAN ProgramminS, ilohn Wiley & 8ons, inc' 'New York. 1969,

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) '

Milan Zotalj: FORTRAN IV, Koordlnecioht odbot' korienika meElna

zs obradu podataka Jugoslavije, 1969'

IBM System/360, FoRTRAN Iv lJtbrery Eubprograms (Cz8-6596-2)lsl

PRILOG

RAD SA FORTRAN _ PROGRAMIMANA RACUNARU PDP.I1/70

Page 123: Fortran Za Treci Razred Masinske Tehnicke Skole

S A D R Z,A J

l. Uvod2. Opis radunrrskog sistema PDP-ll/70

2.1. Tchnidke karakteristike2.2. hoganrski sistem

3. Komuitocija korisnika sa sistemom

3.1. Podetak rada na terminalu3.2. Kr i rada na terminalu

4. Rad na FORTRAN - progamima

4.1. ddresa teke4.2. Uno&nje novog prograna4.3. Prevotlenje progama 2494.4. Povezivanje programa 2514.5. Izwtavanje programa 2524.6. Obrazovanje komandne teke 252

5. Urealivad tekgta - editor 253

5.1. ReZimi rada editora . 2545.l.l.Relim unoienja ZS45.l.2.ReZim ureilenja 255

5.2. Komande editora 2555.2.1. Ubacivanje novog telsta ?555.2.2.lzbuivan1e teksta 2565.2.3. hetraZivanje tekrta . 2565.2.4. Rad sa pokazivadem reda . 2Sj5.2.5. Unolenje rcvog bloka . 2575.2.6. fkC nda n cditorom ZSg

Strana

241242

242245

245

245246

247

247248

Page 124: Fortran Za Treci Razred Masinske Tehnicke Skole

240

6. Neke osobine implementiranog FORTMN _ jeziira

!.1 . Priprema programa6.2. Elementi iezika6.3. Na';d;iorrnnN-j."ik"' : : : : . :

6.3.l.Naredbaulazaiilaza . . : : . : . : : : :6.4.2. Naredba promenljivog bezuslovnog prelaska6.3.3. Naredba ciklusa .-:6.3.4. Konverzija podataka

6.4. Funkcijski potprobarn

9.1.l.geilrisanjJ$ue4nihbro.yeva . : : : : : : : : .

9.1.?.?r;ok" operacde nad redima6.4.3. Logidko pomoanje .

6.5. Biblioteki potpiograma

9.l.l.Fgeklediniceiteke ..6.5.2. Datumi i weme .6.5.3. Kraj izvrlavurja programa

258

25825825925926126t2612632632&264266266267267

27tUTERATI.]RA

I. WOD

U ovom prilogu izloZeni su osnovni elementi o radunarskom sistemuPDP-l I /70, rad sa FORTRAN.programima pod operativnim sistenorn IAS,pripremaI9lTleN+tograma u interaktivnom radu, kao i osobenosti implementiianogFORTRAN-jezika. Za ovo izlaganje koriidena je dokumentacija proizvottaCa,navedena na kraju priloga. Izlaganje nema cilj da prikaZe we mogudnosti koje jeproizvodad 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 ukaZena razlilie izmedu FORTRAN-jezika opisanog u knjizi i implementiranog zaraEunare PDP-Il. lmplementirura varijanta jezika nosl oznaku proizvodadaFORTRAN IVVOIC.O3.

Pri izlaganju sintaksnih definicija. koristi se slededa simbolika:

l"lrr

lalt_,CTRL/Cr

C-]RL/ZJparumetor

TEKST

wram(tar

TEKST

- elenrenat o mole sc ponoviti najmanjer-puta. a najviSe j.put;r.

- isrojestoiIo]l

* meiluprostor ili blanko,

- ovo su tastaturne komande, kcje se proizvodejednovrem:eninr pritiskom na tastere CTRL i C, odnosno Z

- mala kurziv slova, oznadavaju parametre, koje korisnikdefinite.i unosi,

- crna velika slova, oznadavaju tekst, koji korisnik unoci,uvek u navedenom obliku,

- mala kuziv podvudena slova, oznadavaju.parametre, diievrednosti rad unar izdaje,

- velika slova, cnadavaju tekst, kc{i ratrunar izdqie, uvck unavedcnorn obliku.

- telat podwCen isprekidanom linijom korisnik tipka olt nno vidi na cltrulu.

Page 125: Fortran Za Treci Razred Masinske Tehnicke Skole

I

ir,

l:,ll

242

. Ovde su poronetott TEKST, pg.gllg_t_gl i TEKST primeri navedenih oblikaslova.

2. OFIS RACUNARSKOG SISTEMA Pt'P.I T/70

2. l. Tehnicke karakteristike

- Radunar PDP-lr/70 je najveci radunar iz serije radunara pDp-l l, arneridkcfirme DEC (Digital Equipment corporation). osnovne karaktcristike sistemi su:

- l6'to bitna red sa mogudnosdu obrade po recima (16 bita), po bajtovima(8 bita) i za brzi prenos dvostrula rel (32 bita),

- asinhrnost operacija,

- sistem prekida,

- brzi registri opite namene,

- komunikrcioni tanat (UNIBUS), i- mogudnost prikljudivanja rznovrsne periferne opreme.Na sl. 2.1.r orikazana je veza sistemi pomod. komunikacionog kanara(LNIBUS). Kaiakterisrika ovakve organiz.ri:i iu-f-"to pritfirClr."i.-;;;;;

opreme.. Komuaikacija sa operativnom m..oiilotn odviia se na istr natin kaoi saperifernim urcdajima.

Opcrativna mano{ia

- kryacitefi 64KB4MB,- vrcme prilaza: 0p gccc,

- mcmorijrkiregistar: t6 delija,- direktni pristup memoriji,

o, .. I poluprwodntna medumemorija od 2 KB, smanjujo brcj obradrnjalcritnoj memoriji, tako da je srednje vrerne prilaza 0,4 psec

AdnretiCki o4n- bzi registri oplte namcne,- ultnctfli(c operacijc u fikrnsn zarezu (vrcme bvrlavriria 0.96.?,scc).

aritmetickc operac{c u pokretnom zarean (vrcme tL"il;ii,ii4;lrtcc),

- obrada m dudni redi (t6 bita) i duzini bdtl (E bitt).

NIBUS

sr. 2.t.t.

243

Upravljadki orgar

- asinhronost opcrac{a,

- sistcm prekida,

- komunikacioni kanal za vezu izmedu organa sistema (UNIBUS).

Spoljnja mernorija

Magnetri disk RP{s

- broj povr$na: l9 povrsina/paketu,- broj staza: 4l I stazay'povrSini.

- broj se(tora : 22 sektora/ sw|i,- broj bajtova: 512 bajtova/sektoru- kapacitet: 88 MB,

- bzina diska: 3.600 obrtaja/min.,- pozicioniranje glave:

- zajedan cilinder: 7 msec

- maksimalno pozicioniranje: 50 msec

- srednje vreme: 28 msec.

Magnetna traka TE-16

- lirina trake: 1,27 cm,- duZinatrake:731,6m

' - 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,- kapacitet 23 MB ili 46 MB,

- brzina prenosa; 36.([0 bajtova/sec, ili 22.000 bajtova/sec.

[Jlszneizlrni srt hiIinijCd stmpat LA-lt0

- matridni lt8rrpaC,-- matrica 5x7 tafakr,- skup znakova: 96 znakova (rrelika i mala slorva),- duzina reda: l32znaka/ndu,- bzina: oko 100 redova/min (zaviri od dutine reda).

TcminalW-50

- alfurumeriCki tcrmind se tastaturqn i okranorn,- skup simbola: vtlikaslova, dckadno cifrc i ryecijalni zawi(sl.2.l.Z),- broj rcdovrnackruru: 12

- broj pctcUr u rcdu: 80.

Page 126: Fortran Za Treci Razred Masinske Tehnicke Skole

244

ol

al

v)

rErLflJ

t-illllNEtrEtrtrtrEtrtrl-ElEJ

Htrtrtrtrtrtrtr@trtrtrtrEH

HHntrtrtrtrtrtrtrtrtrtrtrr

HHtrtrEtrtrtrtrtrEtrtrtrtr@

245

2.2. Programski sistem

Programski sistem radunara dinc operativni sistem i progamski prevodioci iinterpretatori. Za ratunu PDP-I I /70 je razvijen operativni sistem IAS (InteractiveApplications System), koji omoguduje:

- rad u razdeljenom vremenu,

- sekvencijalnu obradu poslova, i- rad u realnom vremenu.

Na sistemu postoje prevodioci za sledede jezike:

- simbolidkijezik,_ FORTRAN IV,_ FORTRAN IV PLUS, i- coBoL

klao i interpretator za BASIC-jezik.

3. KOMI.JNIKASJA KORISAIIKA SA SISTEMOM

3.1 . Podetak rsda n8 termhalu

Svaki korisnik mora, pre rada na sistemu, dobiti Sfre pomodu kojih Ce muoperativni sistem omogueiti rad sa programima sistenra. Ove Sifre korisnikodre<luje u dogovoru sa sistem-programerom, koji iste saoptrtsva qerativnomsistemu. Kada korisnik Zeli da radi na terminalu, mora, po uk[udeqiu terminda uelektriCno. napajanje, sprovesti odreden dijalog, kre kdi se predstada sistcmu.Ovaj dijalog ima slededi izglsd;

CTRL/C

I.AS PROGRAM DEVEIJOPMEMSYSTEM VERSI0N 2I}weme daUm

PDS>IJOGINUSER NAME? karktnikPASSWORD? .rrf_a

USER kortnik WC [tutalos I TTOI: JOB-ID 12 sarc ettu!4

Svaki red korisnik .zavriava pritiskom na taster RET.URI.I (prelezat napoCetsk novog reda). U navedcnqrr d$dogu porukc korisnike imaju slcdcCcznaiinja:

koisttik - nisks simbola odrodena u dogovoru se{stem?rogrilrl.erqm,

gtlra - niska simbolr odrollena u dqovoru sa sisbmarogrun,crorn, pri t[kanju r ne vidi na ekruru,

Page 127: Fortran Za Treci Razred Masinske Tehnicke Skole

: .ill'tt:

,liftr,;i'

246

wemedoumlatabt

Posle zavrietka dijaloga, korisnik, na poruku sistema PDS, moze zahtevati:

- uno*nje novog programa,

- rad sa editorom radi ispravki u programu,

- prevotlenje progt:rma,

- povezivanje progama, ili- iarriavanje programa.

himerNeka korimik Cije u Sifre, ranije ved saopstcnc operativnom sistcmu,

DRAGAN i 1951, teli da radi na terminalu. Tada korimik vodi slededi dijalog:

GTRL/C

IAS PR,OCRAM DEI/TIOPMENT SIISTEM VERSION 2.0

17:29:56 26-FEB-79

TDS>IOGINT,SERNA"IIIE? DRAGANPASSWORD? l$l 'TSERDRAGAN ttlC[201,1001 TTOI: JOB-ID 12 l?:30:fi) 26-FEB=7e

tDs>

32. Knjtadanatcrmiaah

. Kada korisnik Zcli da zavrli rad na terminalu, na poruku sistema PDS,odgovara sa Loc'our' q'

pDs > u)"ourposle Ccga sistem izdajo zavrlmr ponrku u obliku:

USER /gonsai& lJlC I kttabr ITTOI: JOB-ID 12 ware dattonCDNECTTIME 4 M SYSIEMUTILIZATIONzT MCTS

BYE

fdo *.f i n odgovuajuCt yrcmcna.

trd ovalcvog zrvrlct&.a radl, mdc i. sistem prckinuti opdulfuurttcrmindq ako korirnik odrcdcno urmo (nr primer l0 minuta) ne saopiti nikrhnrpondru prcko tlrte0n. U oqn slu0{u sirtcm jwljr ponrku.

TIIrIEOtnLdrfczrrlnu ponrku i pruklde oprlulivrnJc torminrh"

- 6as minut i sekund tekudeg vremena,

- dan, mesec i godina tekudeg dana.

- identifikacioni kod korisirika.

247

Primcr

. Tako, ako korisnik, DRAGAN, zavr5i r.ad sa terminalom moZe se dobitisledcdi bve5taj:

PDS > LOGOUT

USERDRAGAN UIC[20l,tm] TT0l: JoB-rD il t7:38:00 26_FEB_79CONECT TIME 08 M SYSTEM UTILIZATION I MCTS

BYE

4. RAD SA FORTRAN-PROGRAMIMA

4.1. Adresa teke

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 seprogramoteka. Na istan memorijskom medijumu moie se nalaziti vi5e teka.Informacija po kojoj se pronalazi memor{ski medijum, na kome se nalazi teka,kao i teka na medijumu zwe se adresa teke. Op5ti oblik adrese teke je

-- furetloi:l[katatoglimeI sadr|aj)f:verziial

ueu - ukazuje na vrstu memorijskog uredaja, i to tako daprva dva slova dznadavaju vntu uredaja, abroj izaslova..ukazuje na uredaj iz date vrste. Tako, poredostalih, postoje sli:dedi uretlaji:MM - magretna traka,RK - magnetni disk,SY - sistemski uredaj (disk),LP - StampaC,

- t9- t dva-oktalna broja, razdvojena zarezima, koji sepitu izmetlu uglastih zagrada i moraju biti iz inte;daI I ,377 | . Ovo je idenrifikacioni kod korisnika.

- do dcvet simbola, koji mogu biti slova ili cifre, stim daprvi simbol mora biti slovo. Ovo je ime teke.

- ukazuje na sadrZaj teke, i toFTN, - FORTRAN-program,LST ,- izveSt{ (listing) o programu,OBJ - preveden program,OLB - biblioteka,TSK - ia,r&ri program,CMD - komurdna tekaDAT - datoteka.

- olilalni broj iz intervala [ 1,77777 ] , koji defini&verziju tcke. Ako se ne navede podrazumeva se vezijasa najvcdim brojem.

lcotalog

ine

sdrrsi

tunila

Page 128: Fortran Za Treci Razred Masinske Tehnicke Skole

ii:1r

248

4.2. Unobnje novqg programa

Ako Zeli da unosi novi program, preko terminala, korisnik tieba da ima uvidu, da, sadrZaj jedne kartice, odgovaralednom redu na terminalu. prema tomeako 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 naredba ne sadrtioDele+, tada se pritiskom na TAB, takode dolazi na poziciju za unosenje naredbe.

Pri uno5enju programa korisnik vodi slededi dijalog:

PDS > CREATEFILE? rrne.FTNREADY FOR INPUT

fortran-program

CTRL/Z

tzI EXrT ]PDS >

U ovom dijalogu sluibena red CREATE oznadava da se Zeli unositi (kreirati)novi progtram. Ime programa irne navodi korisnik, i to moze biti niska odmarksimum devet slova ili cifara, pri demu prvi simbol mora biti slovo. Iza imenaprograma 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 unosiFORTRAN-program. Kada je korisnik uneo FORTMNjrogram, tipka CTRL/Z(ednovremeno CTRL i Z) i program je, pod nryedenim imenom-, saiuvanlna.disku, a sistem daje poruku PDS ) i korisnik-odluduje Jta ieli dalje da radi.

- Kod ovakvog unolenja prog{ama, korisnik moZe vrliti iqpravke, siuno utekudem redu, i to:

a) Pritiskom na tasterDELETE bri5ezadnjiznaku tekudem redu.b) Pritiskom CTRL/U brile tekuCi red. Red koji je zavrlen, pritiskorn na

taster RETURN, ne moZe se iqprav.jati. Ovakve grelke mogu sc igravliati sapopomodu editora.

Primer

Un95e.1lj: novog Programa ilustrovademo naJednostavnom primeru. Bi& toqPgatn koji izradunava simu unel8 tri ccla broji. Uno5enje ss'"rgi ;;;;;dijalogu:

J49

PDS >CREATEFILE? SUMA.FTN

INTEGERXI,X2,)c},YTYPE IO

l0 FORMAT( t UNETITRI BROJA UOPISU t8:')ACCTPI20XIX2X3

20 FORMAT(3rE)Y=Xl+X2+X3TYPE 30,Y

30 ionrr,r,lr 1 ' s[rMA UNETIH BRoJEVA JE' , 17)

STOP

ENDctRL/zlzI Exlr ]tDs>

Posle ovoga, progam pod imenon SLJMA.FTN'nalazi se na dislu i korisnikmoZe zahtevati.njegovo prevoilenje, povezivanje i izvrSavutje. Metlutim, ako uprogramu postqie greSke, ispravke se mogu vr$ti samo pomodu editora,

4.3. Prevodeni: pmgruna

Da bi izvriili prwottenje FORTRAN-programa, potrebno je pozvati FORT'RAN.prevodilac, zadati adreal teke sa FORTRAT{-programom i prcdi na izvrhva.njc prevoilenja. Ovo se postile komandama:

PDS.> FOIRRANI[kvalifilutorll telnl

iliFDS > FOIRTRAN] [ftrulrf,tzror]fl

FILE? tel@l

Kvaldilotor &finis teke koje sc formiraju u toku prwodenja, kao i izvcltaje oizyrFnan prwotlenju. Telul saddi FORTRANjrogram i mora, kao opis sadrlajeimati FTN. (rulgttaton mogu biti:

/LIST [ : teka2l

lOBlIECII:telol

/sw I rTcH | : ([ /fin*aia ll )

Kvrlilikator LIST fonnira tiluz o FOf.TRAN-progamu, eis rrdrlrJa o,al<veteke je IJT. Ako teloz niie nnredena onda sc izvettaj o progamt izdaje neltsnpdu. Ako kvdilikator LIST niie navc&n izvctt{ sc ne Ldajc.

Page 129: Fortran Za Treci Razred Masinske Tehnicke Skole

250

Kvalifikator OBJECT formira tehu od prevedenog programa, a opissadr2aja ovakve teke je OBJ. Ako kvalilikator OBJECT nije na'eden formira seteks sa imenom te&e1 i opisom sadrfaja OU.

Kvalifikator swITcH omoguduje da korisnik bira oblii izvettaja o izvrrenomprevoilenju. ovo sc zadaje navoilenjem odgovarajudih niski simbola namesto rceifunkciia. Mogu biti navedene sledede niske:

U:0U:lLl :2Ll:3DE

EX

izdavanje dijagnostike,izdavanje FORTRAN-programa i dijagnostike,izdavurje raspodele memorije i dijagnostike,izdavanjc gonerisanog koda i d{agnostike,prwotlenje progranrskih redova sa slovcn D u pnojpoziciji,prihvata red od 80 pozicda, u protivnon prihvata redod 7.2 pozicije.

Navotlcnjcm 11 ;7 bide obuhva&ne we funkcdeU: l.Ll:2iLl:3dakle s,iizvettaji koji se mogu dobiti pri prwodenju. Broj n u definicdi kvalilikrtoraSWITCH o&eilen je brojem funkcda koje se navedu.

Primer IKomanda

PDs > F0RTMN/LIST/SW: (/tl : l) PROGI

prwodi prograrn PROGI. FTN, izdaje izveltaj na ltarptCu, kojl sadrZi FORT.RAN-progrant i dijagrostiku, i formira teku prcvedepog programa PROGI.OBJ.

Primcr2

Komande

fDS> FORTRAN

FILE? POTI.]LAZ

ptcvode program POTULAZ.FTN, i formiraju tetcu sa prcvedcnim programom podimenorn K)TULAZ.OBJ.

Primer 3

Komande

PDS > FORTMN/LIST : L /OBL.:PFILE? MAX

prwodc program MAX.FTN, formir{u teku L.LST o izvr$idn prevotlenju i'tctuP.OBJ prevctlnog programa.

251

Primer 4

Komanda

PDs > FORTRAN/SW : (/DE) POTtzLAz

prevodi program POTIZLAZ.FTN, tako da ukljuduje i programske redove, koji u

pwoj poziciji sadrZe slovo D, i formira teku POTIZLM.OBJ.

4.4. P ove:,iv mje programa .

Preveden program nije u izvrSnom obliku, jer je potrebno izvrSiti povezivsjepojedinih programskih jedinica. Ovo se postiZe slededim komandama:

PDS > LINK I lcvatifitator lf, - teka I u telca lu teta[/1n11 ">'fli

PDS > LINK I kwlilitutor liFILE? tete f, tet<a 1/LIB l] 3

Kvolifilutor definie teke koje se formiraju u toku povezivanja. Navedene tekemoraju imeti opis sadr2aja OBJ, a ako se koristi biblioteka, tada iza odgovarajuCe

adrcse tcke trcba postaviti /LIB. Kvaliflearon mogu biti:

ftASK; telu1

/MAP[:reAn2 l

Kvalifikator TASK formira khh d izvr5nog programa, diji je opis sadrZaja TSK;ako sc ne navede, tada se formira teka sa imenom programa, koji se pwezuje iqisom sadrtaja TSK.

Kvalifikator MAP formira teha koja sadrii raspored i veze izmeduprogramskih jcdinica, sa opison sadrzaja MAP Ako * tekh ne navede tada se

izreltaj izdaje na Stampadu.

Pdncr IKomande

DS>LINKIASK : ZADATAK/

I FILE? PROGI,FOTULAZ,MAX,PATIZLAZ

povezuju prwedcne grogramc PROG l. OBJ, POTULM.OBJ, MAX.OBJ, POT

IZI-|.Z.ON i-forminju now toku ZADATAK.TSK kojs sadrZi ?vrlni program.

Page 130: Fortran Za Treci Razred Masinske Tehnicke Skole

252

Primer 2

Komanda

PDS > LINK/MAP FED

lou:t.uj. program FED.OBJ, zdaje_zvestaj o povezivanju na Stampadu i formirazvrSniprogramsarmenomFED.TSK. J - r- '-"sr

Primer 3

Komande

PDS > LINK

FILE? RAD

povezuju program RAD.OBJ, i obrazuju izvrsni program RAD.TSK.

4.5.Izvr3avarje programa

Kada je FORTRAN-Iradunaru. #*;#;il;;i:"$Tr.[il1?.: povezan moze se izvrriti m

PDS ) RUN r.r ,elz

PDS > RIJN

FILE? tet@

?Or.*t:t predstavlja adresu programa, koji se Zeli izvrsiti, i mora imati opis sadrZrf

Primer

Komande

PDS >RIJN

FILE? ZADATAK

omoguCuju prelazak na izvrfuvanje programa ZADATAK.TSK.

4.6. Obrazoruje kornmdnc bke

. Jedan FORTRAN-orogram prolazi koz fazu prevottenja, povezivanja iwrevanja. Za svaku *;,[j*:.iil;.;ffiuje komande. Merrutim, prttestrranju prqgrama cesro treba vis p'ta prodi kroz navedene faze. Da bi rc

ili

t53

izbeglo navotlenje istih komandi viSe puta, moZe se od komandi obrazovatikomandna teka i komandonr

PDS) @ re&a

'preii na interpretacdu komandi u navedenoj komandnoj teci, diji opis sadrZajamora biti CMD.

Primer

Obrazujmo komandnu teku KOM.CMD na slededi nadin:

PDS >CREATE

FILE? KOM.CMD

READY FOR INPUT

FORTRAN PROGI

FORTRAN/LIST FOTI.JLA Z

FONf,RAN MAXFORTRAN POTITLAZLINK/TASK: ZADATAK

. PROGI. FOTULAZ, MAX POTIZLAZ

RIJN ZADATAK

CTRL/Z

tzI EXIT J

PDS >

Interpretacija wih komandi, u komandnoj teci KOM.CMD. omoguduje sekornandom'

-s>@KoMgde se podraatmwa opis sadrzaja CMD. Interpretacijom orih komandi vrSi seprevodenje programa PROG I , POTULAZ,MAX,POTIZI.AZ, djihovo povezivanjeu izvrlni program ZADATAK i prelazak na izvrgvanje ovako formiranogprograma. Pri prevotlenju programa POTULAZ dobija se i izveltaj o prevodenju.

5. UREDIVAC TET$TA-EDITOR

Program koji omoguduje uroitenje bilo kakvog tekstazovc se uredivaC tekstaili editor. Ovaj program se pciva komandcn

PDS> EDIIT I

Page 131: Fortran Za Treci Razred Masinske Tehnicke Skole

{t

ffi

ffi

ffii

lffi

ffil

ififJ1

lri

{11

iil

rl|$'f:l'l'.t.

li,,'

t,

I

254

Ovaj p_rogran se koristi zr igravke FORTMN-programa u interakttunom reZimurada. Program ima dva osnovna reZima rada: re2im unolenja i rezim uredenja. UreZimu unolenja omogudeno je unoSenje novih redora u portojedu teku. kao iformiranje novih teka. U relimu uretlenja omogudene su izmene postojeie teke,

5.1. Retimirdacditon5.1.1. Rctiauro&njr

Kada korisnik pozove prqgram za uredenje teksta i navede novo ime teke,tada se editor dovodi u re2im unolenja. slededi dijalog prikazuje formiranje noveteke:

PDS ) EDIT re&a

I CREATTNC NEW F|LE IINPUT

tekstr EXIT

I Exlr ]PDS >

Unotenje ptaznog reda (tipka REruRN) do,odi editor u rcZim uredenja .Zato akooe tcti uncti red bcz grafiEkih tipografskih znakova, mora !e uneti jedan ili vi&mcduprostorr (blankova) u odgovaraju0i rcd. Po uno5enju pr8znog reda editorizdaje ' i ako korisnik tipka komandu EXIT editor zatvara iclu.

Primer

Sledcdi interaktivur rad korisnika vrti formiranje nry€ teke, pod imenomPROG I. FTN.

PDS > EDIT PROGI.FTN

I cREATT]tc NEW FILE I

tNPtn

C PR.OGRAMPROGI.

TNTEGERA(40),Y

CALL ULAZ(NA)y=MAX(N'i{)

CALLTZ,AZ(Y)

STOP

END*EXITI EXrr I

PDS >

255

5.1.2. Refim urcilenja

Kada korisnik Zeli vrtiti ispravke u postojedoj teci, tada editor dovodi ureZim uretlenja. Ovo se postize sledecim dijalogom:

PDS > EDIT

FILE? relu

. I n LINES READ IN I

IPACE r l

Ovde adresa tekeul<znr1e na teku koja se Zeli uredivati, anje broj uzetih redova ielcke. Zvetdtca (') na kraju dijaloga ukazuje da se editor nalazi u reZimu uretlenja,pa se odekuje intervencija korisnika. Ako u adresi teke nije navedena verzda,uzima sc teka sa najvedim brojem verzije.

Teka se sastoji od redova i pri radu editora.obra,uje se zona editora,kojamole da primi blok od 80 redova. Ovakav blok redova zove sc strana. Da bi sc

ukazalo na odretlen red uvodi se pokazivad reda. Na podetku rada editorapokaziva! ukazuje na prvi red u teci. Neke komande editora menjaju poloZajpokazivaca reda.

Primer

Pozovimo progam PROG I.FIN radi ispravki. Ovo se posti2e na slededi

nadin:

DS>EDIT

FILE? PROGI.FIN

[ 7 LINES READ rN IIPAGE I l

52. Komn& cditore

5.2.1. tlbrclvrijc novog tsksta

I z ] CIIHNGE] / nislal / nisko2 [ / |

Ova konianda pootavlje r&lu2 na mcsto niskel u prvon pojavljivanju zrstelu tckudcm redu. Alio je nislul grazna, tada * nisluT pctavljr na podetak reda.Ako je niska2 prazns,.tada sc nurtar izbacujc iz redr"Nro rrrlzlnijc naalens uI rkudatr redu izdejc re poruka NO MATCH. Cco broj n ukazujc de dc r komrnde:zvrlti n puta.

Page 132: Fortran Za Treci Razred Masinske Tehnicke Skole

156

Irll./C IHANGE | /nisluy /niskaxl/]Kao komanda CHANCE samo Sto se funkcija obavlja u wim pojavljivanjima

niskel u tekuiem redu, a ne sarno u prvom pojavljivanju kao 5to se to radi ukomandi C-HANGE. Ceo broj n ukazuje da ie se komanda primeniti na tekudi red islededih n-l redova.

t INSERT l[nistta IA*o je niska navedena, tada ubacuje navedenu nisku kao novi red koji sledi

iza tekudeg reda. Pokazivad postavlja u red kojije ubaeen.Ako nislct nije navedena editor.prelazi u reZim uno5enja.

AIDD] nril<a

Navedena niska se dopizuje na kraj tekuCeg reda. Pokazivad reda ostaje utekuiem redu.

l*niskaIma istu funkciju kao komanda ADD, osim Sto se novi tekudi red i izdaje.

R[EfiPE] [nrsea]

Izbacuje tekudi red i na njegovo mesto postavlja navedenu nisku. Pokazivadreda ostaje u tekudem redu.

Ako nistca nije navedina, tada se izbaorje tekudi r€d, a pokazivad reda senalazi u slede6em redu, u odnosu na izbaden red.

5.2.2. Izbacivmje teksta

D [ELETE] [a]

Ako je n)O izbacuje se tekudi red i n-l slededi red, apokaziva! s€ postav[ana red koji sledi iza zadnjeg izbadenog reda.

Ako je n(0, tada Ce n redova ispred teku6eg reda biti hbadeno. pokazivad.reda ne menja polozaj.

Ako n nde navedeno, tada de teku6i red biti izbaden i pokazivaC redapostavljbn na sledeei red.

KILLZatvan ulaznu teku, bri$e izlaznu teku editoh i vrada sistem u pN.

5.2.3. Pretrativarje teksta

[r]F INDJ [nrta]Pretratuje redov€, pocev od reda koji dedi iza tekudeg reda, i trati a-ti red

koji podinje sa navedenom niskom, postavlja pokhwaC u naiten rod i izdajesadrLaj reda. Ako nr'slra nije navedena. pokazivad se postavlja na slede6i red.

257

Lt lsrlIzdaje we redove, na terminalu, podev od tekudeg reda. pbde izvrlenogizdavanjapokazivae reda nalazi se na poditku bloka.

_ Komanda CTRL/O obustavlja izdavanje, a ponorrnim pritiskon CTRL/Oizdavanje se nastavlja.

I}Ima isto dejstvo kao komanda LIST, samo ito sp izdavanje vrii na itampadu.

[n] L [ocATEf [zrs&a]Postavlja pokazivad,reda u red, u kojem je naiten z-ti dogailaj niske, podevod rcda koji sledi iza tekudeg reda.Akci niska nije navedena pokazivad reda se postavlja u slededi red.

[n] PL [OCATEI[nistul

. rma istu funkciju kao komanda LocATE, samo sto prcuaarje s'e broko'eteke. r.vs.sJw rrs uruAv..

5.2.4. Rd sa pokazivadan reda

N [ExT] [tr ]Postavua pokun&, reda u z.ti red u odnosu na tekudi red, i to unaprcd zan)O, unazad za n(0,Ako n nije navedeno postavtja pokaz iva0 na slededi red.

ry Ir1lma istu funkciju kao korn-anda NEXT, sarno tto izdaje novi tekudi red.Pritisak na rasrer RETURN ima istu li,"k;idk- $ r,-, pi-iiul'ii.t"r1o,

ESC ima istri funkciju kao NP-I.

P IRINTI [r]Izdajc tckudi red i n-r srededih redora; ako n nije navedenobdaje samo.teku.ired. Pokazivad je postav[cn na zrdnji a,O"U LO.

-- --"-

TOF

Upisujc tekudi btok u teku ipokazivaC postavlja naprvi red tcke.

5.2.5. Unoenjc novog blokrRDN [Ewl [z]

Unosi n-ti blok tcke za iepravtja4ie u zonu cditora, i pokazivrd postavlja uprvi red bldra.Ako z nijo navedeno, trda sc.tpku6i brok upinrjc u tcku, a stededi brok unoriu zonu cditon. pokaziva! r pchvfa u pnireOifoL.

Page 133: Fortran Za Treci Razred Masinske Tehnicke Skole

258

5.2.6. kaj rada sa cditorom

EX [tT] [reka]Zatvua teku i vrada sistem u PDS. Isti efekat ima i komanda sa tastature

CTRL/2.ltko je teka navedena, tada izlazna teka dobija navedeno ime.

6. NEKE OSOBINE TMPLEMENTTRANOG FORTRAN-JEZIIG

Ovde 6e biti objasnjc4c n€kc T€cificnosti irplcm€ntacije FORTRAN-lrzikaza radunare PDP-I l. BiCe pomenute silmo one osobine koje sc ralikuju u odnosrna FORTRAN-jezik opisan u knjizi.

6.1. Priprema programa

Kada se pregrant unosi preko tastature terminala, vaie ista pravila orasporedu naredbe unutar jednog reda, kao i za rasporcd narcdbe na kartici.Medutim, razlike koje poctoj€'treba da olaklaju interaktivnu pripremu programa.

To su sledede razlike:l. Ako programski rcd ne sadrZi obeleZje, pritiskom na taster TAB dolazi se

u 7. poziciju zaunosenje naredbe.2. Akg programski red sadr2i obeleZje, pritiskom na taster TAB, poslc

unetog obeleZja, dolazi se na 7. poziciju.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.4. Progranrski red koji u prvoj poziciji sadr2i dovo D mote biti, Pri

prevottenju, uzet kao konrentar, ili prcveden kao naredba. Ovo se rcguli& opcijomDE u kvalifikatoru SMTCH.

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 iryrcdkqnontara narrodi znak ruvika (!).

62. ElenortiJczilre

l. Cclobrojne konsturtc rnoraju biti u intervalu | -327 68; 327 67 l.2. Rcdna konrtant!, r&lidits od nule, mora biti po rpsolutnoj vrednosti u

intcrvalu [0,14x l(Irt;0,17 x lOt ].3. Standardna drdina celobrojne promcnljive jc 2 podrcgistra (INTEGER.

2).4. Porcd logiekih opcracija .Nm., .AND. i .OR. uvcdcne sr i opcncije

.EQV. i XoR.i<bfininne na sledcdi nadin:

259

X Y X.EQV.Y X.XOR.Y

0

0

I

I

0

I

0

I

I

0

0

I

0

I

I

0

6.3. Nnedbe FORTRANlzika

5.3.1. Nardba ulgn i lg,laza

l. Ako se drugadije ne defini$, tada je broj 5 broj logidke jedinice unaredbi 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

polja, tada se podaci mogu razdvajati zuezima O. Ovo se moZe primeniti zapodatke dija se polja opisuju sa I, O, F, E, D, G i L, ali ne mohe za opise A i H.Tako, naredba

READ (5,10) N, x, Yl0 FORMAT (16,2F8.2)

za ulazni slog

30. t.5.-2.04

dodcljuje vrednosti promenljivim i to: N=30, X=l,5 i Y=-L.M.5. U FORMATaaredbi ne moZe se koristiti qis Z, ali zaro posloli opis O,

koji ima op3ti oblik

nOkgdd je & duZina polja, a n broj ponavljanja opisa. SadrZaj polja, na ulazu, je oktalnibroj, koji ne moZc biti vedi & 177777, i promenljiva u listi mora biti celobrcjna.Ako jc polje pridndeno celobrojnoj prunenljivoj u naredbi izlazaradase oktalnavrednost pranenljive bdajc u polju desno poravnata.

6. Ako se Zbli odrediti duZina ulanqg sloga ili dela ulaznog doga, moZe sena poCetak ili unutar FORMAT-narcdbe potaviti slovo Q, a u listi, naodgovarajudem mestu celobrojna pronenljiva, kojoj Ce se dodeliti cco broj kojipredstavlja, odgovarajudu duiinu ulaznog sloga.

7. Posebno korisna mogudnost, za pisanje interaktivnih programa, jestonavotlenjc znaka $ (znak za dolar), kao pwog sinrbola u izlsnqn dogu Ovim se

spreCna prelazak u naf,i red, posle izdavurja izlunog sloga na terminalu.8. Za rad sa temrinalqn postoj€ poscbne narcdbe uleza i izlea Trko, za

ulaz sa t$tature tcrminala motc sc koristiti narcdba

Page 134: Fortran Za Treci Razred Masinske Tehnicke Skole

260

ACCEYI i,lista

Sto je ekvivalentno sa naredbom

READ (i,il listo

' gde je i broj logidke jedinice pridruiene terminalu.

Sliino za izlaz na.terminal postc4'i naredba

TYPE i [, tista ISto je ekviva.lentno sa naredbom

WRITE ( i, j l|ista I

gde je i broj logidke jedinice pridruZene terminalu.9. Posebna naredba omoguCuje izlaz na Stampad To,je naredba.

PRINTi[,lrira]Sto je ekviva.lentno sa naredbom

WKITE / i,j )llistalgde je i broj logr'dke jedinice.pridruZen Stampadu.

10. Naredba DEFINE FILE moZe se pisati samo u obtiku

If,FINE FILE g( s,d,U,p )

Primer

-, . . ^ ! _tl"drdern programu za unete logidke veliCine X i y odroiluje se X.EeV y iX.XOR.Y:

LCIIICAL*t X. ywRtTE (5, l0) !KOMENTAR SE MOZEPTSATI IZA USKLTCNIKA,

l0 FORMAT('$ UNESIEDVEITGTCKEVREDNOSTI:')READ (5,20) N, X, YFORMAT ( Q,2L5)wRrTE (5,30) X.Y.NFORMAT (' ULAZNE VELICINE Su:

"2L5

/I' DUZINA ULAAnOC SLOGA JE:',I5)TYPE 40, X, Y. X. EQV.Y,X. XOR. YrcRMAT ( x="ll/' Y="L1/' X.EQV.Y="lt/' XXOR.y="L{)sIoPEND

20

D

D30

D

N

26t

Izvrlavanjem ovog programa dobija se sle&di izvettaj na terminalu.

UNESIE DVE LOGICKE VREDT€STI: F, FT.,LAZNE VELICINE SU: F F

DUZNA I.'I.AZNOG SI.OGA JE: 3

X=FY=fX.EQVY=TX.XOR.Y=F

Ovaj program ilustruje:l. Komentar s€ moZe pisati u istqn redr! sa naredbon, ali se navodi iza

znaka usklika (!),2. Komsrdni ripbol u izlu;nqn slogu moZe biti $,3. Broj logidl@ jedinice 5 odnosi ce na terminal,4. himona opisa Q uFORMAT.naredbi,5. Naredbr TYPEje nuedbtzlazana terminal,6. Korii&nt logidkih operacija.EQV. i XOR.7. U listi naredbe izlaza mogu sc navoditi izrazi.

532. Nelcdbr plurcn$ivog bczurlovnog prcla*a

- - U ovoj naredbi dcvoli:no je bctaviti listu, tako da narodba ima opltioblik:

GO TO i[(isra)]

fJJ. f{rs{gs cikhrrs

- Narcdba cikbsa (DO) moZe imati celobrojne ?raze, ,namosto podetnevrednooti, gornjc granicc i priraltaja indekra. hiralt8t indeksa *oz.'irn.ti-inqativno vrcdnocti.

6.3.4. Xovcrzijr po&tdoPodaci sc nelazo u mcmoriji u inGmqn kodu, a pri komunikrciji sq

fS.-"T ury9"jF1 podaci nr-u ASCII-kodu. Mgguda je trirverzgr poa-ffi ijcdnog u drugi kod. Tako, nrredba

XIIICODE (n,i,p\ tisa

konvcrtuje podstkc iz intcmog kodr u ASCII.kod, gdc ar

n

i- colobrcjni izraz, koji prcdstrvtja broj ASCII-simbola,

koji dc rc dobiti konvoniio,- obcldjc FORMAToalcdbe ili ime niua toii !1drrt

qbcpo!r,

Page 135: Fortran Za Treci Razred Masinske Tehnicke Skole

262

Konverzija podataka iz ASCII-koda u intemi kod ostvaruje se naredbom

lista

gde su

n

tp

Itsta

kincr

- ime niza, koji de primiti konvertovane podatke u

ASCII-kodu,

- qpisak prornenljivih, nizova i/ili elemenata nizova, Cijevrednosti 6e biti konvertdane iz intemog koda uASCII-kod.

DECODE (n,j,p) lista

- celobrojri izraz, koii predstavlja broj ASCII-simbola,koji Ce biti konvertovani,

- obeletje FORMAT-naredbe, ili ime nLa koji sadrliopise polja,

- ime niza, koji sadrii ASCII+imbole, koji de bitikonvertofuri u intemi kod,

- spisak promenljivih, nizwa i/ili elemenata nizovakojima de se dodeliti vredncti u intemqn kodu.

U slededem programu je nrndbon DECODE dodeljena vrednost promenlji-voj N; ova vEdnost je u intcmun kodu, tako da se moZe koristiti zaizra0unavanja, tto ie ilustrovano mnoZenjem ove vrednosti sa 2, a zatim je rezultat,naredban ENCODE, transformisan u ASClI.kod.

C PROGRAM ILUSTRUJE DECODE I ENODE.DATA X /, 12Y,. /DECODE(4, lox ) N

'O FI)RMAT(I4)

l;=2eN t

F TCODE(4,10,Y) N

TYPE20,Y

20 FORMAT (' REZT LTAT JE ' ,iA ;.$oPEND

Lvriavarjem ovog prograrr dobija se izvclt{:

REZTJLTAT '82468

Ovrj prcdsn ibrtn$r primenu nucdbi DECODE i ENCQDE.

2ot

5.4. Funkcijdd posrogram

6.4. l. C*nedsmjc sbdajnih brojcva.

Skupu elementamih funkcija dodat je potprogram za generisanje pseu-

do-sludajnih brdeva. To je funkcijski potprogam ipoziva se sa

RAN ( t,i)

gde su f i y celobrojne promenljive. Rezultat rada funkciskog potproBrama jesludajan broj uniformne raspodele nad intervalom (0,1). Menjaju6i poeeme

vrcdnosti arguminata (ij), mogu se generisati rezlidite sekvence sludajnih brojwa.

Primer

$ededi program. itustruje primenu funkcijskog potprograma RAN:

DIMENSTON Y(4)70 TYPE IO

l0 FORMAT('S POCETNE VREDNOSTT:')

ACCEPT 20, I, J. N

?a F0RI{AT (3I8)

rF ( N. LT.0) SrOP

PRINT 50,I, J60 FORMAT( /' ZA rcCETNE VREDNOsTti' .t2,',',t2,' DOBUA SE:')

DO30K=l,N+lDOutOL= l3

'10 Y(L) = RAN(1, J)

30 PRINT 50, Y50 FORMAT{ ",4F10.6;

GOTO 70

END

Izrrbvo!:m wogprogiunamodo se na lturpafu dobiti rlstledi izveltaj:

Page 136: Fortran Za Treci Razred Masinske Tehnicke Skole

264

ZA POCETNEVREDNOSTT:0, 0 DOBIJA SE:

0.0000310.012360o.0020420.838541o.&85450.393595

0.0003360.M69670.4061t6o.ut1t30.4321300.725453

ZA POCETNE VREDNOSTI: 3, 2 DOBIJA SE:

0.000t83 0.0008240.0444% 0.1557320.@6802 0.8224400.r zosor 0.4761340990&g 0.1069860.826873 0.418881

0.001 190 0.0041 200.1s5732 0.5r t 6900.419702 0.8631720.234E93 0.6339380.386418 0.4293340.468534 0.282129

0.0032e60.5339390.8734t60.3222910.72&770.071433

0.0r40080.6685550401 7100.6895960.0982430475966

6.42 Logj[ke operscije nad rcdimaSadrzaj dva podregistra

1roz: se posmatrati kao binarna red. Nad ovakvimbinarnim redima mogu se rzv,oajt.Joerji. op.,"&. i to nal-sriioufr;r.;ffi"bitovima. Ovo je omogudeno slededim-fu*"i'rt_ i"rprogramima:

IOR(n, n)

Logleka llloperacija nad velidinama m i n rr:etimkao binarne re0i,

IAND (m, z)

Logidka loperacija nad velicinama m i n uzetikao binarne redi,

NOT(rn)

Logidka NE-operacija nad velidinan m uzetom kao binarna red,

IEOR (rz,z)

."0i. bgdk" ekskluzivna lll-operacija nad velidinama m i n vzetimkao binarne

9 *i'' ovim potprogamima argumenti m i n sr cerobrqine promenljive'ielementi celobrojnih nizova du2inJd".poOregirt a. *

6.4.3. Logidko pcnernje

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

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

265

gde su

m

n

- cclobrtina promenljiva ili element celobrojnog niza

duZinc dva podrcgistra,

- defini5e vntu i broj Pomeranja veltine m i to na

slededi naCin:n)0, puneranje levo,n(0, pcncranje desno,

n=0, bez pomeranja.Apsolutna vrednost z odreiluje broj panerutja.

' N='. 06l' IoR(M,N)='. o6l' IAI{D (M, N) = ' , 06l' tfor(M) =' , 9,6/

' IEOR(M,N)=' . 9,6/

' ISI{FT (M, N) = ' . 9,6/

Primer

Slededi progam unosi oktalne brojeve M i N; i nad njihorim vrednostima,

uietim kao binarne reCi, vrSi logidke opcraciie i logiitko pqncrsnje i ?dajc

rearltate na terminalu:

40 TYPE IO

t0 FORMAT(' $ tNETIDVAOKTALNABROJA:')ACCEPT ]0, M, N

20 FORMAT (2O8)

ll =lOR(M.N)12 = IAND (M, N)

13 = tCIT(M)14 = IEOR(M, N)

15 = ISHFT (M, N)

TYPE 30, M, N, I I , 12, 13, 14, 15

30 FORMAT('M=',06lI2

3

4

5

6

CO TO,t0

END

Page 137: Fortran Za Treci Razred Masinske Tehnicke Skole

)66

UNETI DvA OKTALNA BROJA: l7J' lf= 17

N-7IOR (M, N) = t7

IAND(M,N)= 7

tlOT (M) = 1777(A

IF0R (M, N) = 3600

UNETI DVA OKTALNA BROJA: CTRL/C

TASK SUSPENDED

DS>ABORT. I I : 30 : 23 SIZE: 5K CPU: 0.06

tDs>

Prograrn sadr2i.ciklus bez blaznog kriterijuma. Korisnik moZe izadi b ciklusa(programa) tipkanjem.CTRl/C, posle Ccga sistem javlja poruku da je zadatakprivrcmeno iskljrgen ([ASK SUSPENDFD) i dolazi u PDS. Korisnik, ako Zeli daprckne rad po programu tipka ABORT, r)ime definitivno iskljuduje program,'aako Zeli da se vrati u progr.am tipka CONTINUE.

6.5. Biblioteka potprogrdna

55.1. LogiCkc jedinie i teke

CALL ASSIGN (n, telu, dutina)Argumenti:

- ceo broj, cclobrojna prcimenljiva ili celobrojni iraz,- azbudni podatak, koji sadrZi naiv ureilda i ime teke,- duZina azbucnog podatka, kojijc naveden kao argum-

ent teka,

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.

CALLCI,6E(n)Argumcnt:

n - coo brc{, cclobrojna promcnljiva ili celobrojni braz.

Funkcija; Zatv,ara teku nr nryedcnoj logiCkoj jedinidf

nteludutiw .

261

6.5.2. Datuni i vreme

CALL DATE (arz)

Argument: niz -ime niza,, iu"nt.ij., u pnih g podregistara niza postavlja se tekuii datum, u obliku

dd-mmm-ggde srr r^lddan u mesecu, mmm-naziv meseca' gg-zadnje dve cifre

godine.

CAIL IDATE (t;,e)

Argumenti; i,y,,t'celobrojne promenljive,Funkcija: Promenljiva i dobija vrednost rednog brda meseca u godini,T dana

u toku meseca, a k zadnie dve cifre godine od tekudeg datuma.

sEcNrF (tArgument: i-ceo broj ili celobrojna promenljiva,

Funkcija: Vrednost funkcijskog potPrograma je broj sekundi od ^i

- tog

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)

drgumentp-ime pronrenljive ili niza,Funkcija: Tekude vreme kao zbudni podatak u obliku

hh:mm:ss

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

6.5.3. Kraj izvtlwoja prognrta

CALLE)OT

Funkcija: To je potprogram koji ima ckvivalentnu funkcijl kao naredba

STOP, ooim lto ne izdaje poruku. Ovaj PoQrogam zatvara sltc teke otvorene u

programu i prekida izvrtavutje programa.

Primer

Sastavidemo prograrn u kome demo koristiti p otptogllrne za datum i vrcme,

kao i poprograme zq rad'sa imenovanim datotekama u FORTRAN-prgEamu' --.i.to, it.a.Ci program odrotluje datum (D), redni broj mcseca Q), duta (J) i

godine (Kj, vreme-(T), kao i vreme u sekundama u lreoutku poietka.radn

ir"Sr-itsf i i vte.i iaAa poFrograma (S2).Ovako odrodene velidine upisuje, kao

4 sloga, u datotcku DATUM.DAT:

Page 138: Fortran Za Treci Razred Masinske Tehnicke Skole

268

LOGICALTI D(e),T(8) '

Sl = SECNDS (0.)CALL ASSIGI.i( i.'onruu.nAT' ,9)

DEFINE FILE I (4,5, U,L)

CALL DATE(D)

CALL IDATE(I, J, K)

CALL TIME (T)52=SECMS(!l)L= IwRtTE ( I' L) Sl , 52

WRITE(I,L) D

WRITE(l'L) I, J, K

WRITE(l'L) T

CALL CK)SE (l)STOP

,KRA' UPISA UDATOTEKU',

END

Slededi program upisane slogove, u datoteku DATUM'

terminalu:toGICAL*l D(e),T(8)

CALL ASSIGN ( I, ' DATUM.DAT, ,9)

. DEF',INE FILE l(4'5' U' L)

L=lREAD (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=' ,l4l6 ' T=',8A1)

CALL CTOSE(I) I

CALL EXT I

END

DAT, cita i izdaje na

\

'%9

Izvrlavanjem ovog Programa mogu so dobiti slededi rcatltsti na terminalu:

Sl = 0,4189920Et05

52 = 0.08

D = 24-FEB-79

l= 2

J= 24

l(= 79

T= ll:38:19

Tumacedi ore rcatltste vidimo da od purodi do vrcmena I I Crsova, 38 minuta iis;k""dipi"itk". lresg sekundi (SO' a da deo Plograrna izmodu odrotlivrnja

St i Sl traj; 0.08 sckundi (S3). Ostali rczultati su oCigledni

Page 139: Fortran Za Treci Razred Masinske Tehnicke Skole

LITERATURA.

[]. PDP-II FORTRAN Language Referencc ManualI I *LFLRA-C-D

l2 I . t AS/RSX-I I FORTRAN IV User's Guide

-LMFUA-C-D

Order No.

Order No.

DEC_.

DEC-| r-

[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.

Page 140: Fortran Za Treci Razred Masinske Tehnicke Skole

18

4.2,2. Yrsta

vrsta promenljive odredjuje se prema tome khkva brojna vreclnost semoZe dodeliti promenljivoj, Svaka promenljiva mora biti delinisana po vrs_ti. To znadi da promenljlva dobija ili celobrojne vrednosti ili melovitebrojne vrednosti (brojeve u pokretnom zarezu). Ako promenljiva uzima sa_mo celobrojne vrednoatl zove se cel0broJna promenljiva, a ako uzirna vre-dnosti meSovitih brojeva zove se realna promenljiva.

Vrsta promenljive, po unutra5njoj konvenciji FORTRAN_jezika, defi_n15e se na slededl nadin:

- ako ime promenljlve podinje slovom I, J, K, L, M ili N, to je ce_lobrojna promenljiva,

- ako ime promenljlve ne poCinje jednim od navedenih slova, to je rc_alna promenljiva.

Svakoj promenljivoj u FORTRAN_programu pre lzvrSenja programana radurteru, dodeljuje se jedan registar u koJem /:e se duvati brojna vred_nost promenljive. Ako je promenljiva celobrojna njena brojna vrednost 6eee reglstrovati u odgovarajudem reglstru kao ceo broj. Ako je promenljivarealna njena brojna vrednost 6e biti registrovana kao broj u pokretnom za-

'.ezu.

Prlmeri

a) Celobrojne promenljive po unutraSnjoj konvenciji

IJ

I19

IAT]

I\'ASA

NETO

b) Realne promenljive po unutralnjoj konvenciji

I

i)

iii

A

R

prornenljive po unutraSnjoj konvenciji

l9

CENA

BRUTO

c1846

4. 3. Aritmetidki izraz

' Aritmetidki izraz dine jedan argument ili vi5e argumenata medju so-

bom razdvojenih znacima aritmetidkih operacija. Argument aritmetidkog iz-raza je konstanta ili promenljiva.

4. 3. l. Afitmetidke operacije

AritmetiEke operacije su:

+ sabiranje,

- oduzimanje,

't mnozenje,

/ deljenje i** stepenovanje.

Aritmetieki izraz se pi5e kao niz, koji se sastoji od naizmeni-nog

smenjivanja argumenata i aritmetidkih operacija, pri demu:

- niz podinje sa argumentom ili znakom minus (-), koji oznaiava pro-

menu znaka prvom argumentu, i- niz se zavrdava argumentom.

Vrednost aritmetiekog izraza izrattnava se sleva na desno, pri demu

vaZl prioritet aritmetidkih operacija, prikazan u tabeli 4.3. l, gde je sa Ioznaden najvi5i prioritet, a sa pz operacija promene znaka argumentu.

Tabela 4.3- I

Prlorltet ArltnetlEka operacija Izvr5ava se

I s'rPZ sdesna na levo

2 sleva na desno

3 +r- sleva na desno