Professional Documents
Culture Documents
Podatkeskojimaradimo,dakle,elimoi'vidjeti',bilonapapiru,bilonaekranu.
Takoer,podacidobiveniizraunavanjemmorajusemoisauvati,pomogunostiu
nekomstrukturiranomobliku,inakongaenjaraunala.
Konano,dabismouopeimalisimeraunati,nunojeuprogramunijeti(ponekadi
uznatnimkoliinama)podatkeizvana.
Podatkeitamoizipiemou datoteke ilifileove.Dabitobilomogue,prije
svega,datotekutrebaotvoriti.Toznaidaraunalutrebadatidoznanjadaepoeti
komunikacijus harddiskomidaenanjemustvoritinovi zapis,ilipakiskoristiti
postojeiiiznjegaproitatineto.
NaredbakojasekoristizaotvaranjedatotekejeOPEN.
Tasenaredbapojavljujeseupunovarijacija,nomiemoupotrijebitisamojednannjen
oblik.
OPEN(BROJ,FILE='IMEDATOTEKE')
BROJkojistojiunaredbijereferencazadatotekuiponjemuprogramprepoznajeo
kojojsedatoteciradi. Drukijereeno,tajbrojje"sinonim"zadatotekuskojom e
programraditi.
Za nas vrijedi slijedei DOGOVOR: brojevi koje emo koristiti u svojim
programimanekabude5ili6,ovisnootomeelimoliitatiizdatotekeiliupisivatiu
nju.Dakle5itanje,6pisanje.
To openito nemorabititako,noradijednostavnosti,miemoseograniitinaovaj
dogovor.
Rije FILE je rezervirana rije,kojapovezujebrojistvarnoimedatotekena
disku.Imemorabitiuapostrofima,jerseradioznakovnojkonstanti.
Nakonzavretkaradasdatotekompristojnoje(inuno)zatvoritidatotekukoja
jeprethodnootvorena,naredbomCLOSE.Onadajesignaloperacijskomsistemudatu
datotekuuklonispopisaaktivnihioslobodiresursekojisuuztudatotekubilivezani.
CLOSE(BROJ)
BROJ je isti onaj broj s kojim smo otvorili datoteku. Na obiaj e biti zatvoriti
datotekupredsamkrajprograma,npr.prijenaredbeEND.
Primjer
...
OPEN (5,FILE='ULAZ.TXT')
OPEN (6,FILE='IZLAZ.TXT')
...
CLOSE(5)
CLOSE(6)
END
Otvaranjeizatvaranjedatotekasupripremnaizavrnanaredbauprocesurada
s datotekama. Stvarni posao obavljaju druge dvije naredbe naredbe za itanje i
pisanje:READiWRITE.Migovorimooformatiranomitanjuipisanju,pastogauzte
dvijenaredbedolaziitrea,prateanaredba,FORMAT.
Naredbezaitanje,pisanjeiformatdolazeizmeuOPENiCLOSEnaredbiislijedeeg
suoblika:
itanje
Podaciskojimaseeliraunatiuprogramunajeedolazevepohranjeninanekom
mediju(NprdisketiiliCDu,ilisuvepremjeteninaHDD).Uzpretpostavkudasmo
ihnekakosmjestilinaHDD,prijenospodatakasdiskauprogramvrimosa
READ(BROJ,*)[listavarijabli]
[listavarijabli]jenizidentifikatoraodvojenihzarezimanpr.
READ (5,*) A, BE, CEDE, VAR
Gornja naredba nalae programu da iz prethodno otvorene datoteke s brojem 5
proitaredom4vrijednostikojeedodijelitivarijablamaulisti:1.vrijednostideuA,
drugauBEitd.
Zvjezdica*unaredbioznaavaslobodniformat,tj.nezahtijevamonikakavposeban
oblikukombitavrijednostmoralabitizapisana("proitaj,kakogodpisalo").
Toneznaidaeprogramproitatibiloto!Uzmimozaprimjervrijednostkoju
itamosdiskaispremamourealnuvarijablu.Programeproitatibrojbezobziraima
liondvijeilipetdecimala,aliesepobunitiakomuumjestooekivanogdecimalnog
broja,podvalimocijelibrojilinizznakova.
Zadatak 2. napiite program koji uitava vrijednost iz datoteke nazvane ulaz.txt u
cjelobrojnuvarijabluCIJELO.
program citanje
integer cijelo
end
open(5, file='ulaz.txt')
read(5,*) cijelo
close(5)
Objasnitetosedogaauovomprogramuiskojimposljedicama.
Pisanje
Nakontosmonauiliitatipodatkeizdatoteke,abuduidaveznamoiraunatiu
FORTRANu,korisnojeznatiizapisatiizraunaterezultate.
ZapisivanjeseobavljanaredbomWRITE
Obliknaredbekojimemosemisluitije
WRITE(BROJ,LABELA)[izraz]
BROJkaoiprijeoznaavadatotekuukojupiemo,dokLABELA,kojaseovdje
prviputjavljauupotrebi,predstavljanumerikuoznakuretkauprogramu,ukojem
senalazinaredbaFORMATkojomoblikujemoispis.
IzrazmoeinemorebitiprisutanunaredbiWRITE.Ukolikojest,WRITEeispisati
njegovuvrijednost,uoblikuzadanompripadnimformatom.
Primjer
WRITE (6, 100) ALFA
Dabiovanaredbabilakompletna,potrebanjeiFORMATkojioblikujezapis.
Openito,obliknaredbeje
LABELAFORMAT(listaelemenatazaformatiranje).
Listaelemenatamoesadrati:
znak/kojiznaiprelazakunovired,
znakovnukonstantunpr.'temperatura je'
elementarniformatoblika
pIvili
pFv.d(popotrebipEv.d)ili
pX
priemuje
Ioznakazacjelobrojnevrijednosti(IodInteger),
Fjeoznakazarealnebrojeveuobiajenogoblika
(FdolaziodFloatingpoint,nazivazavrstuzapisarealnihbrojevauraunalu)
Ejeoznakazazapisrealnihbrojevaueksponencijalnomobliku,
kaonpr.2.83E3(=2.83*103=0.00283)
Xjeoznakazapraznomjesto(space).
pjebrojponavljanja(elimoispisatipbrojeva)
v je "veliina" broja, odnosno ukupni broj mjesta za ispis pojedine vrijednosti
(ukljuujuiimjestazadecimalnutokuipredznak)
djebrojdecimalnihznamenki(odukupnogbrojaznamenki!!!!)
Primjer
100
11
133
112
#
format (I5)
format (/, 2I7, 3X)
format (F5.2, 3F7.3, 2E4.1)
format (//, 'Slijedi niz od 3 cjelobrojne
vrijednosti', I4,2X,2I4,/)
SpojimosadaWRITEiFORMATnaredbu
Zadatak3.Napiiteprogramkojiitaizdatotekeulaz.txtvrijednostrealnihvarijabliAiB,
rauna opseg i povrinu pravokutnika sa stranicama A i B i zapisuje opseg i povrinu u
datotekuizlaz.
program pravokutnik
real a,b,ops,pov
100
end
open(5, file='ulaz.txt')
open(6, file='izlaz.txt')
read(5,*) a,b
ops = 2*(a+b)
pov = a*b
write(6,100) ops,pov
format('Opseg je ',1F8.3,/,'Povrsina je ', 1F8.3)
Zadatak4. Opremiteprogrameizzadatka1,naredbamazaispisivanje,kakobiizraunate
podatkemoglividjetiudatotecinadisku.
Kaoslijedeikorak,dodajteinaredbezauitavanjevarijablekojapredstavljakut.tosmotime
postigli?