15
Programski jezik FORTRAN Uvod Računala su (samo) elektronički sklopovi. Ne znaju ništa, ne razmišljaju ni o čemu, ne razgovaraju, ne pitaju i ne odgovaraju na pitanja. Kad bismo iz njih uklonili tzv. BIOS (Basic Input-Output System), nakon uključivanja se ne bi dogodilo - ništa. Elektronika, iako pod naponom, ne bi "radila" ništa, osim proizvodnje topline. Što, onda, računala mogu, kad već nisu u stanju razmišljati samostalno, kako uopće obavljaju toliko različitih i složenih poslova kojima ih opterećujemo iz sekunde u sekundu? Računala savršeno rade samo jednu stvar: slijede precizno napisane upute. Takve upute moraju se napisati u posebnom jeziku koji računalo može "razumjeti" – programskom jeziku. Računalo dakle provodi u djelo akcije isključivo na temelju niza instrukcija koje je sastavio čovjek. Osnovni program, kojeg su, naravno, kao i (gotovo) sve programe na svijetu, napisali ljudi, je spomenuti BIOS i on daje računalu elementarne upute kako obaviti jednostavne osnovne (basic) zadatke. Napisan je u jeziku Assembly, (naziv sustava kojeg koristimo u pisanju programa je Assembler). To je jezik najnižeg nivoa, složeniji od binarnih nizova kakvi su izravno "razumljivi računalu", no ipak, ne pretjerano smislen "prosječnom" programeru, naviknutom na  programske jezike višeg nivoa. Složeniji, pak, zadaci zahtijevaju složenije programe, a složeniji programi zahtijevaju razvijeniji jezik od Assemblyja. Naime, iako je svaki program moguće napisati u Assemblyju, to je strahovito zahtjevan i dugačak pothvat. Da bi programi bili čitljiviji ljudima, oblikom što sličniji govornim rečenicama (Engleskog jezika), konstruirani su programski jezici viših nivoa. Jedan od njih je i FORTRAN. FORTRAN je programski jezik čija prva verzija (FORTRAN I) datira iz 1956. Verzije II, III, IV,  66 nastale su u periodu od 1958. do 1966. i svaka je bila unaprijeđenje prethodne. Njegovo ime je složeno od početnih dijelova riječi FORmula TRANslation i opisuje način na koji je jezik zamišljen. Ideja autora jezika je bila pružiti znanstvenicima i inžinjerima alat kojim bi uz pomoć računala, rješavali numeričke probleme, koji su zahtijevali velike količine matematičkih proračuna i baratanja s podacima. Verzija koju mi koristimo u nastavi je FORTRAN 77, (kraće F77) kojoj je standard utvrđen 1977. 

Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Embed Size (px)

Citation preview

Page 1: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Programski jezik FORTRAN

Uvod

Računala  su  (samo)  elektronički  sklopovi.  Ne znaju ništa,  ne razmišljaju  ni  očemu, ne razgovaraju, ne pitaju i ne odgovaraju na pitanja. Kad bismo iz njih uklonilitzv. BIOS (Basic Input­Output System), nakon uključivanja se ne bi dogodilo ­ ništa.Elektronika, iako pod naponom, ne bi "radila" ništa, osim proizvodnje topline. 

Što,  onda, računala mogu, kad već  nisu u stanju razmišljati  samostalno, kakouopće obavljaju toliko različitih i složenih poslova kojima ih opterećujemo iz sekunde usekundu?

Računala   savršeno   rade   samo   jednu   stvar:  slijede  precizno   napisane   upute.Takve upute moraju se napisati u posebnom jeziku koji  računalo  može  "razumjeti"  –programskom jeziku. Računalo dakle provodi u djelo akcije isključivo na temelju nizainstrukcija koje je sastavio čovjek. Osnovni program, kojeg su, naravno, kao i (gotovo)sve   programe   na   svijetu,   napisali   ljudi,   je   spomenuti   BIOS   i   on   daje   računaluelementarne upute kako obaviti jednostavne osnovne (basic) zadatke. 

Napisan je u jeziku Assembly, (naziv sustava kojeg koristimo u pisanju programaje Assembler). To je jezik najnižeg nivoa, složeniji od binarnih nizova kakvi su izravno"razumljivi   računalu",   no   ipak,   ne   pretjerano   smislen   "prosječnom"   programeru,naviknutom na  programske jezike višeg nivoa.

Složeniji,  pak,  zadaci   zahtijevaju   složenije   programe,   a   složeniji   programizahtijevaju   razvijeniji   jezik   od   Assemblyja.   Naime,   iako   je   svaki   program   mogućenapisati u Assemblyju, to je strahovito zahtjevan i dugačak pothvat. Da bi programi biličitljiviji   ljudima,   oblikom   što   sličniji   govornim   rečenicama   (Engleskog   jezika),konstruirani su programski jezici viših nivoa. Jedan od njih je i FORTRAN.

FORTRAN je programski jezik čija prva verzija (FORTRAN I) datira iz 1956. Verzije II,III,   IV,     66   nastale   su   u   periodu   od   1958.   do   1966.   i   svaka   je   bila   unaprijeđenjeprethodne. Njegovo ime je složeno od početnih dijelova riječi FORmula TRANslation iopisuje način na koji je jezik zamišljen. Ideja autora jezika je bila pružiti znanstvenicimai inžinjerima alat kojim bi uz pomoć  računala, rješavali numeričke probleme, koji suzahtijevali velike količine matematičkih proračuna i baratanja s podacima.

Verzija  koju  mi  koristimo  u  nastavi  je  FORTRAN  77,  (kraće  F77)  kojoj   je   standardutvrđen 1977. 

Page 2: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Nakon te verzije objavljeno je nekoliko, podosta proširenih, verzija standarda: 

­   F90,   F95   donijele   su   velike   promjene   u   koncepciji   jezika:   slobodnu   formu,modularnost, rekurzivnost, "pripremu" za object­oriented programiranje, operacije nad1D poljima, dinamičku alokaciju i pointere i t.d.

­ F2003 donosi pravo object­oriented programiranje,  standardizaciju aritmetike  (IEEEstd), naprednu manipulaciju podacima, interoperabilnost sa C­om, CLI (command­lineinterface) parametre...

­ F2008 uvodi paralelizam, memory management...

­ U  trenutku nastanka ovog teksta (točnije, njegove  dopune  2013. godine) u planu jemanja   revizija   F2015.  Takve  revizije   ne   donose   bitne   novosti   već   samo   dodatke   ikorekcije.

Page 3: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Jezik: Pojmovi i struktura

Svaki   programski   jezik   mora   imati   leksičku   strukturu,   sintaksu   i   semantiku.Objasnit ćemo što ti pojmovi znače i kako se generiraju.

Leksičku strukturu predstavljaju elementi od koji se tvori jezik

Alfabet

Alfabet (uobičajeno, naziv za skup svih slova u Grčkom pismu) je skup svih znakovakoje programski jezik koristi za tvorbu riječi i rečenica

­ Velika i mala slova engleske abecede (dijakritici ­ č,ć,š,đ,ž ­ nisu dopušteni)­ Znamenke 0 ... 9­ specijalni znakovi (interpunkcija, +, /, ­, * i sl.)

Rječnik

Pomoću Alfabeta gradi se rječnik koji se sastoji od slijedećih klasa

­ ključne riječi (npr. READ, IF, DO, CONTINUE)­ imena funkcija (SIN, COS, ABS)­ identifikatori­ labele­ konstante­ brojevi­ nizovi znakova

itd.

Sintaksu  (pravopis) i  semantiku  (značenje) uvoditi ćemo malo po malo tokomvježbi, kroz primjere i zadatke.

Iz   osnovne   leksičke   strukture   izvode   se   gradivi   elementi   jezika.   U   svimprogramskim   jezicima   pojavljuju   se   elementi   koji   opisuju   pojmove.     Pojmovi   suuglavnom "svuda" isti, "riječi" koji ih opisuju su slične, no ono što razlikuje jedan jezikod drugog su sintaksa i semantika. 

Radi   ilustracije   napomenimo   da   u   govornim   jezicima,   na   pr.   Engleskom   iHrvatskom ,ideja, tj pojam vode je isti, isgovorena riječ je slična u oba jezika, no razlika upisanju je očita 

WATER <­­­> VODA

Page 4: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Slično   je   i  u  programskim  jezicima.  Svaki  postupak  koji   se  može  uobličiti  uprogram, moguće je opisati, isprogramirati u bilo kojem programskom jeziku. Pojmovi iideje se ne mijenjaju s izborom jezika, ali način opisivanja ­ a posebno riječi i rečenice  ­da.

Za početak, opišimo i pojmove i riječi koje koristimo u FORTRANu

Brojevi

U FORTRANu razlikujemo dva tipa numeričkih vrijednosti cijele ( INTEGER ) idecimalne ( REAL )

Cijeli brojevi su     ...,–3, ­2, ­1, 0, 1, 2, 3, ...

Decimalni brojevi  su  u stvari samo podskup realnih brojeva, no FORTRAN ih nazivarealnim  (REAL)  brojevima. Karakterizira ih  decimalna točka  koja odvaja cijeli dio oddecimalnog dijela broja npr 2.73

Ukoliko je broj napisan bez decimalne točke, FORTRAN ga tretira kao cijeli broj.Ako je napisan s točkom, tretiran je kao realni broj.

Identifikatori...

...su klasa riječi koja je karakterizirana slijedećim pravilom:

Identifikator se sastoji od znakova koji mogu biti slova i znamenke uz uvijet daprvi znak bude slovo.

Kraći zapis tog pravila je 

 "slovo" ["slovo" | "znamenka"]

Kod pisanja leksičkih pravila u uglate zagrade se stavlja ono što se pojavljujenijednom, jednom ili više puta (drugim riječima, može se ali i ne mora pojaviti uopće, aako se pojavi, može se i ponoviti)

Primjer 1:

7SAMURAJA, CVRČICVRČAK, +OSAM

nisu korektni identifikatori. Objasnite zašto. 

Page 5: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Identifikatori se upotrebljavaju kao imena varijabli, funkcija i slično. Znak za razmak " "u identifikatoru nije dopušten. Možete li navesti zbog čega?

Niz znakova...

...definiran je slijedećim pravilom:

Niz znakova je proizvoljna kombinacija znakova unutar literala (apostrof, jednostrukinavodnik)

Primjer 2:

'ovo je broj 7 a ovo broj –9'

je takav niz.

Pravilo koje  smo naveli gore, kraće se zapisuje ovako 

'[znak]'

Konstante ...

...u FORTRANu mogu biti npr.:

numeričke

cjelobrojne  2, -88, ...realne 0.91, +5.0, -4. , -2.5E-3, ...

logičke

.TRUE. i .FALSE.

znakovne

' '  | 'znak'

Page 6: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Programiranje:  Aritmetika u FORTRANU

Do   sada   smo     upoznali   najjednostavnije   pojmove   u   FORTRANu   odnosnoznakove  i   neke   jednostavne   riječi.   Da   bismo,   međutim,   mogli   napisati   program,potrebno je nešto više. Potrebne su riječi koje u kombinaciji s već navedenima stvarajunaredbe, rečenice koje računalu kažu što i kako treba napraviti. 

U nastavku, dobrim dijelom i kroz primjere, naučit ćemo i nove riječi i način nakoji   pišemo   rečenice   našeg   programa.  Prije   svega   upoznati   ćemo  mehanizam   zaFORTRANu 

Funkcije

Funkcije koje susrećemo u matematici, pojavljuju se redovito i u programskimjezicima, posebno u FORTRANu. Inžinjerski problemi pretrpani su funkcijama, i gotovosvi  studenti   tehničkih fakulteta već  su upoznati s   trigonomerijskim,  logaritamskim idrugim funkcijama.

Funkcije predstavljaju izraze oblika

"ime_funkcije" ( "argument" )

pri čemu je argument – izraz. Uočite da argument funkcije mora stajati unutar okruglihzagrada! O tome što je "izraz"  ­ malo kasnije. Za počeak, dajmo konkretne primjere zagornje pravilo.

Primjer 3: 

sin(x), F(y), log(3+4*a)

 su korektno zapisane funkcije: sin, F i log su imena funkcija, x, y, i 3+4*a su argumenti.

Page 7: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Tablica funkcija u FORTRANu

|x| ABS (X)

√ x SQRT(X)ex EXP(X)ln x ALOG(X)log x ALOG10(X)sin x, cos x SIN(X),   COS(X)tg x TAN(X)arc sin x ASIN(X)arc cos x ACOS(X)arc tg x ATAN(X)

Pozabaviti   ćemo   se   sada   onim   radi   čega   je  FORTRAN  (sjetite   se:  FORmulaTRANslation) i smišljen – aritmetikom tj.  načinom na koji se u  FORTRANu  zapisujeformula ili, preciznije, aritmetički izraz.

U FORTRANU ni jedna vrijednost, (konstanta, varijabla ili izraz) ne mogu stajati"sami za sebe". Nije, na pr. dopušteno usred programa napisati

11.4*x+12

i napisani izraz ostaviti da "lebdi u praznom prostoru". Svaka vrijednost koja se možeizračunati, mora se nekamo i smjestiti. Tomu služi

Pridruživanje

Općenito,  u  FORTRANu, izraze, odnosno  vrijednosti  izraza (a što  je to izraz,objasniti ćemo malo kasnije), moramo pridružiti varijablama. To činimo ovako

"VARIJABLA" = "IZRAZ"

Varijabla je memorijska lokacija, rezervirani memorijski prostor,  u koji možemostaviti   neku   vrijednost.   Nama   će   to   uglavnom   biti   numeričke   vrijednosti,   najčešćedobivene   izračunavanjem  nekog  izraza.  Ime  varijable  postaje   sinonim za  vrijednostspremljenu na danu lokaciju.

Što to znači?

varijabla izraz

pridruživanje

Page 8: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Uočite, ponovo, kako smo to postigli u FORTRANu, 

"VARIJABLA" = "IZRAZ"

Primjećujete znak   "  =  " između varijable i izraza. To  NIJE  znak jednakosti, jerovdje ne provjeravamo tzv. ekvivalenciju: ne razmišljamo o tome da li je "varijabla" istevrijednosti   kao   i   "izraz".   Naprotiv!   Mi   prisiljavamo   varijablu   da   preuzme,   poprimivrjednost izraza, odnosno, spremamo vrijednost izraza u varijablu. Uočite smjer streliceu ilustraciji. Tu strelicu u FORTRANu zamjenjujemo znakom " = ". 

Dakle, znak "=" je znak za pridruživanje i u FORTRANu služi samo toj svrsi i nijednoj   drugoj!   Također,   zapamtite,   taj   znak   je   jednosmjeran   i   smjer   mu   je   onakavkakvog pokazuje ilustracija.

Nakon pridruživanja, varijabla sadrži vrijednost izraza i u programu, kad godzatrebamo   taj   izraz,   možemo  umjesto   njega,  upotrijebiti   varijablu   kojoj   smo   gapridružili  (u koju smo izraz smjestili). Varijabla  sadrži  danu  vrijednost sve do novogpridruživanja!

Primjer 4:

 Varijabli S pridruži broj 7, a varijabli CRVENO pridruži vrijednost 3.1415

S=7CRVENO=3.1415

Primjer 5:

Pridruži          A <­­ 10, B <­­20, C <­­ 30,     a zatim            C <­­ B,   B <­­ A

A=10B=20C=30

C=BB=A

Ovo ilustrira mogućnost da varijabli pridružimo ne samo broj, nego i vrijednostspremljenu u neku drugu varijablu.

S CRVENO7 3.1415

A B C10 20 3010 10 20

Page 9: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Primjer  6:  (N.B.  OVO JE  VAŽNO!)  Pomoću pridruživanja,  u  FORTRANU  se  moženapisati minijaturni program koji je temelj zamjene vrijednosti dvjema varijablama, uzupotrebu treće, pomoćne.

A=10B=20

POMOCNA=AA=BB=POMOCNA

Pridruživanje, dakle omogućava čuvanje neke vrijednosti "pod nekim imenom". To jebitan i jak mehanizam, koji je temelj računanja u programiranju.

Izrazi

Spominjali   smo   da,   generalno,   varijabli   pridružujemo   vrijednost   izraza.Objasnimo stoga značenje "aritmetičkog izraza":

Aritmetički izraz je svaka smislena kombinacija operanada i operatora   (N.B.  OvoNIJE definicija, nego objašnjenje!)

Operator može biti i ispušten: 

4,    a,    PI,    23.45        su izrazi

Također su to i 

A+B,    C*D,    12/m,    cos(A), ...

Operatori,  dakle,  predstavljaju  aritmetičke operacije   i,  na neki  način,  stvarajuvezu između operanada.

Operandi, pak, mogu biti brojevi, varijable, funkcije i  IZRAZI kao npr. u izrazu(a+b)*(c­d). 

Primijetite: ovo je tzv rekurzivna definicija, koja koristi pojam koji upravo definira

Page 10: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Aritmetički operatori koji se koriste u FORTRANu su (zapisani u fortranskoj notaciji)

­ predznak:  +  ,  ­ ­ zbrajanje,  oduzimanje:   +  ,  ­­ množenje, dijeljenje:  *   ,  /­ potenciranje:  **

Kad  FORTRAN  računa   izraz,   računanje   provodi   s   lijeva   u   desno,   osim   kadprioritet računskih operacije ne zahtijeva drukčije:

Najveći prioritet(  __  )

          Funkcije,  ***, /

          predznakzbrajanje i oduzimanje

najmanji prioritet

U izrazu  a+b*c+d  prvo se računa  b*c  zatim se dodaje  a, a nakon toga dodaje d.U  izrazu    (a+b)*(c+d)    prvo se  izračunaju zbrojevi,  a  zatim se  ti  zbrojevi  pomnože.Zagrade mijenjaju redoslijed operacija, i pametnim korištenjem zagrada, (pogotovo akoniste sigurni u redoslijed izvođenja) dobiva se  željeni redoslijed računanja.

Zadaci   :  

Pretvorite u klasičnu matematičku notaciju:

1. (a*b*c)**22. a/b*c/d3. a/b*c**24. 5.0/(a**3*b**2/3.2)

Pretvori u fortransku notaciju

1.  x←3a+bc

2.  x←5+a+2ba−b

3.  x← 3a2

b3

4. x←

a+bc

d 2

Page 11: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Programiranje: Varijable

Varijabla  je,  spomenuli  smo to na početku,  rezervirani  memorijski prostor čijisadržaj korisnik/programer smije mijenjati tokom izvođenja programa. 

Sadržaj dakle može biti upisan u varijablu. Pri tome se sadržaj koji je eventualnoprethodno tamo stajao briše i zamjenjuje novim. Upisivanje vrijednosti u varijablu  sevrši  pridruživanjem.

Naravno,   ukoliko   je   u   varijablu   nešto   upisano,   tada   to   možemo   i  pročitati,odnosno   iskoristiti   na   neki   način.   Čitanje   sadržaja   nije   destruktivno,   tj   čitanjem   sesadržaj varijable ne mijenja i ne briše

Varijabele se razlikuju po imenima, te se njihovim sadržajem barata pomoću tihimena. Ime varijable je identifikator i ono mora biti JEDINSTVENO. 

Da bismo u varijablu upisali sadržaj pridruživanjem koristimo slijedeće pravilo:

"ime_varijable"  =  "izraz"npr. 

J=42, ZAGREB=16.0

Čitanje   je   zapravo   samo   jednostavan   naziv   za   upotrebu   vrijednosti   spremljenu   uvarijablu danog imena.

Primjer 7:

R=2.71PI=3.1415O=2*R*PI

Nakon ovih nekoliko redova koda, varijabla O sadržati će vrijednost 17.02693, jersu   tokom   računanja   izraza   iz   memorije   računala   pročitane   vrijednosti   R   i   PI  iupotrijebljene u aritmetičkom izrazu.  R i PI pri tome nisu ni izgubile ni promijenilesvoje vrijednosti.

Dakle,  u  varijablu   (u  ovom  slučaju  O)   ne   sprema  se   stvarno   sam  izraz,  većnjegova izračunata vrijednost! Što mora biti zadovoljeno da bi to bilo moguće?

Primjer 8:            X=10.0

JEDAN = SIN(X)**2 + COS(X)**2dva=alog10(X**2)

Page 12: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Deklaracija

FORTRAN kao i brojni drugi programski jezici zahtijeva od programera da prijenego  što  počne  koristiti   imena  varijabli  u  programu,   ta   imena  deklarira,   tj  "najavi"njihovu upotrebu i rezervira ih. FORTRAN je u tome, međutim, nešto liberalniji od npr.C­a.

Što je deklaracija?

Deklaracija   je   popisivanje   imena   varijabli   koje   će   biti   korištene   u   programu,   uzistovremeno određivanje tipova varijabli. Preciznije, deklaracijom se propisuje koji tippodatka smije biti smješten u koju varijablu.

Zašto?

Govorili smo o tipovima brojeva u  FORTRANu  (decimalni tj. realni   i cijeli). Veličinaprostora koji će pri zapisivanju   u memoriju zauzeti cijeli  broj, općenito je manja odprostora koji je potreban realnom broju. 

Pojednostavljeno,  compiler  želi,  radi  efikasnosti,  unaprijed  znati  koliko mjesta   trebarezervirati   za   korisnikove   podatke.   Također,   određivanje   tipa   podatka   unaprijed,omogućava compileru da te podatke adekvatno tretira pri prevođenju i kasnije, raduprograma.

Stoga, compileru  nekako  trebamo reći koliko varijabli imamo, kojeg su tipa i kako sezovu i to prije nego što "radni" dio programa dođe na prevođenje.

Kako?

Dva   su   načina   za   deklaraciju   varijabli.   Nazivaju   se   eksplicitna   i   implicitnadeklaracija.  Općenita preporuka glasi:  koristite eksplicitnu deklaraciju.  Ipak,  za nekeuobičajene slučajeve, mi ćemo koristiti i implicitnu deklaraciju.

Eksplicitna deklaracija 

je ona u kojoj jasno i nedvosmisleno "crno na bijelo" navodimo tipove i imenavarijabli po pravilu

"oznaka_tipa"     "ime_varijable"   [, "ime_varijable"]

Page 13: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

nprinteger DECKO, AS, DESETKAreal HERC, TREF, PIK

Implicitna deklaracija

je vrsta deklaracije koja se podrazumijeva ako ne specificiramo tipove varijabli.

Da   bi   "olakšali"   rad   programerima   (najčešće   iz   matematičkih,   fizikalnih   i   tehničkihstruka) autori FORTRANa su unaprijed odredili da 

I,J,K,L,M,N i sve varijable koje počinju tim slovima označavaju INTEGER varijable,osim ako programer ne odredi drukčije. 

Varijable koje počinju bilo kojim drugim slovom osim gornjih su tipa REAL.

Dakle,  u programu je dopušteno pisati

IVICA = 6DRAGICA=7.5

bez prethodne deklaracije, ali nije dopušteno slijedeće:

IVICA = 6.0DRAGICA = 7

Želimo li ipak izvesti to pridruživanje, moramo dodati eksplicitnu deklaraciju 

real IVICAinteger DRAGICA

IVICA = 6.0DRAGICA = 7

Napomena:   Deklaracija   mora   biti   jednoznačna:   ime   varijable   se   u   deklaraciji   smijepojaviti samo jednom. 

Objasnite zašto nije korektno pisati

integer A,B,Creal B,C,Dinteger C,D,E

Page 14: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Programiranje: Struktura programa u FORTRANu

Program je tekst koji sadrži  niz naredbi, pri čemu u svakom redu stoji  najvišejedna naredba. Pri tome ne mislimo da se pod naredbom podrazumijeva jedna "riječ"nego cijela "rečenica". Neke naredbe imaju proširenu strukturu i zauzimaju više redova.

Red u koji se upisuje naredba, u FORTRANu ima posebnu strukturu: podijeljenje na pozicije ili kolone tj. stupce (na svakoj poziciji može stajati samo jedan znak).

1 2 3 4 5 6 7 72

1  ­ mjesto za oznaku komentara1­ 5   ­ labela6  ­ mjesto za oznaku retka za nastavak7 – 72  ­ naredba

Komentar  –  Ako se na prvom mjestu u retku nalazi slovo   "C", ostatak  teksta u tomretku  compiler ignorira. Takav se redak smatra komentarom  koji služi programeru (ičitatelju) za pisanje objašnjenja. 

Labela – numerička oznaka od 1 do 99999 koja služi za označavanje retka. Nužna je priradu s naredbama za kontrolu toka programa

Mjesto za nastavak – Ako je naredba preduga i ne stane u prostor veličine 66 znakova(od 7.  do 72. znaka), treba ju nastaviti u slijedećem redu. U redu u kojem se piše nastavak naredbe, u 6. kolonum upišemo bilo koji znak osim '   'i nule. Dogovorno, u okviru vježbi iz FORTRANA neka to bude znak "#"

Struktura programa

PROGRAM IME_PROGRAMA

Deklaracije varijabliInicijalizacija varijabli

123 naredba...naredba

END

Page 15: Programski jezik FORTRAN - rudar.rgn.hrrudar.rgn.hr/~isharma/studenti/userfiles/1-uvod_i_struktura... · Programski jezik FORTRAN Uvod Računala su (samo) ... std), naprednu manipulaciju

Primjer 9:

Ovo je prvi program koji upoznajemo u FORTRANu. On je sasvim korektno napisan icompiler će ga prevesti u izvršni kod. Taj se program može nakon toga i pokrenuti.

program prviend

Što taj program radi?

Primjer 10:

U   primjeru  7   izračunali   smo   opseg   kruga  pomoću   nekoliko   naredbi   pridruživanja.Opremimo  te naredbe dodatnima, i kompletirajmo program.

program opseg

real r, pi, o

r =2.71pi=3.1415o =2*r*pi

end

Zadatak 1:

Napišite program koji izračunava duljinu katete u pravokutnom trokutu ako je zadanadruga kateta i kut uz nju. Kut je zadan u radijanima.Napišite i varijantu programa koji računa katetu, ako je kut zadan u stupnjevima.