You are on page 1of 64

UNIVERZITET „DŽEMAL BIJEDIĆ“ U MOSTARU

GRAĐEVINSKI FAKULTET

viši asistent
mr. Rašid Hadžović, dipl.inž.građ.

ZBIRKA RIJEŠENIH ZADATAKA


PROGRAMIRANJE U FORTRANU
SKRIPTA

MOSTAR, 2007.
UNIVERZITET „DŽEMAL BIJEDIĆ“ U MOSTARU
GRAĐEVINSKI FAKULTET

A
viši asistent
mr. Rašid Hadžović, dipl.inž.građ.

PT
mr. Rašid Hadžović, dipl.inž.građ.
ZBIRKA RIJEŠENIH ZADATAKA
RI
PROGRAMIRANJE U FORTRANU
SKRIPTA
SK

MOSTAR, 2007.
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
SADRŽAJ:

1. Programiranje u Fortran-u 02
2. Riješeni zadaci 22
3. Problemi za vježbanje 55
4. Neki od dosadašnjih ispitnih zadataka 62
RI
5. Zadaci za seminarski rad 66
6. Literatura 73
SK

Zbirka riješenih zadataka 1


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
PROGRAMIRANJE U FORTRANU
RI
SK

Zbirka riješenih zadataka 2


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

UVOD
Svaki program se sastoji od pet osnovnih koraka. Prvi korak START odnosno početak,
drugi korak je UČITAVANJE PODATAKA sa kojima će se raditi u programu, treći korak je
OPERACIJA, odnosno faza programa gdje se unešeni podaci obrađuju tj. vrši se rad sa
podacima u zavisnosti od zadatka. U četvrtom koraku se ŠTAMPAJU rezultati programa,
dok se u petom koraku program završava (STOP i END).

A
DIJAGRAM TOKA PROGRAMA
Definicija

Dijagrami toka se koriste za grafičko predstavljanje redosljeda svih radnji, koje su sastavni

PT
dio nekog programa: početka, učitavanja podataka, operacija, poređenja, štampanja
rezultata, pozivanja potprograma i završetka.

mr. Rašid Hadžović, dipl.inž.građ.


U dijagramima toka se koriste geometrijski oblici radi predstavljanja raznih operacija
programa, koji se obavljaju. Standardizovanim oblicima obezbjeđuje se vizuelno
predstavljanje problema zajedničko za sve programe.

Oznaka Značenje Naredba u Fortranu


Učitavanje podataka u READ, DATA, OPEN
ili program
RI
Zavisno od zadatka
Operacija - rad sa
koriste se različite
podacima
komande

Štampanje podataka i
rezultata na ekranu ili na WRITE, PRINT
ili štampaču
SK

Poređenje – ispunjenje
IF
uslova

Početak i kraj programa START , STOP i END

Povratak iz potprograma
RETURN
u glavni program

Pozivanje potprograma i FUNCTION ili CALL


potprogram SUBROUTINE

Zbirka riješenih zadataka 3


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Dijagram
Objašnjenje
toka
Potrebne podatke unosimo sa tastature ili iz nekog poznatog FILE-a. U
Učitavanje
Fortranu koristimo naredbu READ(*,*) ili READ(5,*). U slučaju da se podaci
podataka
unose u program iz nekog FILE-a onda se koristi naredba OPEN.
U ovu grupu spadaju sve komande, koje obavljaju neku vrstu operacije u
Operacija
zavisnosti od onog što se traži u zadatku.
Ispis podataka i rezultata na ekranu ili na štampaču. Vrši se pomoću
Štampanje naredbe WRITE(*,*) ili WRITE(6,*). Oznaka * ili 6 znači da se podaci i

A
podataka rezultati ispisuju na ekranu. Oznaka * poslije zareza znači da je naredba
unešena u slobodnom formatu.
Najčešće korištena funkcija je IF (ako – u prevodu sa engleskog jezika) koja
Poređenje –
nam služi da bi postavili pitanje neke operacije i da bi na to pitanje imali dva
ispunjenje
moguća odgovora DA i NE. Kasnije će biti više riječi o funkciji IF.
uslova

PT
START, Komande koje se stavljaju u dijagram toka da bi se označio početak i kraj
STOP i END programa.
Pozivanje Znak koji nam služi za pozivanje potprograma. Razlikujemo 2 potprograma:

mr. Rašid Hadžović, dipl.inž.građ.


potprograma FUNCTION (funkcijski) i CALL – SUBROUTINE (opšti).
Komanda koja se koristi da bi se izvršio povratak iz potprograma u glavni
RETURN
program.

VARIJABLE

Varijable koje počinju sa prvim slovom I, J, K, L, M i N su po standardu cjelobrojne


varijable, a sve ostale su realne varijable.
RI
INTEGER – naredba koja od realnih brojeva pravi cijele brojeve
Primjer: INTEGER ALBA – ALBA u ovom slučaju postaje cjelobrojna varijabla.

REAL – naredba koja od cjelobrojnih varijabli pravi realne varijable


Primjer: REAL MAAS,KRUG,NET (100) – u ovom slučaju MAAS,KRUG,NET (100) postaju
realne varijable (cjelobrojne su zato što su početna slova M, K, N ...)

PRAVILA UPISIVANJA PODATAKA U FORTRAN – u


SK

U FORTRAN-u koristimo 80 kolona.


U prvu kolonu unese se slovo C, kao oznaka za komentar. Komentari unešeni na ovaj
način pri ispisivanju programa na ekranu ili na štampaču se ne vide tj. skriveni su u
programu i pomažu samo programeru da zna šta je radio u programu i dokle je stigao.
U kolone 2, 3, 4 i 5 upisuju se brojevi komandi.
U šestu kolonu se upisuje znak * ili + , koji služi kao nastavak prethodnog reda.
Od sedme kolone se upisuju naredbe jezika FORTRAN, pa do 72 i poslije prelazimo u
sljedeći red (ukoliko naredba ne može da stane).

Znak = u FORTRAN-u nema isto značenje kao matematički znak = već znači: prebaci sa
desne strane jednačine na lijevu stranu.

Zbirka riješenih zadataka 4


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

OPERACIJE U FORTRANU

Aritmetičke operacije Oznake u FORTRAN – u


Stepenovanje **
Dijeljenje /
Množenje *
Sabiranje +
Oduzimanje -

A
Redoslijed korištenja aritmetičkih operacija:

R.br. Definicija Fortran


1. zagrade ()
2. stepenovanje **

PT
3. množenje i dijeljenje *,/
4. sabiranje i oduzimanje +,-

mr. Rašid Hadžović, dipl.inž.građ.


Pisanje formula

Matematički način prikazivanja formula Pisanje formula u Fortranu


A+ B
(A+B)/C
C
( ( A+B) ⋅ C )
D
((A+B)*C)**D
B2 + 4 ⋅ A ⋅ C
RI
(B**2+4*A*C)/(2*A)
2⋅ A
2 ⋅π ⋅ r 2 2*3,1415927*R**2

Zavisne operacije

Značenje Prikaz u Fortranu


Jednako = .EQ. (Equally)
Nije jednako <> .NE. (Not Equally)
Manje < .LT. (Little)
SK

Veće > .GT. (Great)


Manje i jednako ≤ .LE. (Little and Equally)
Veće i jednako ≥ .GE. (Great and Equally)
Logičke operacije

Značenje Fortran Primjer


Nije .NOT. .NOT.(3.EQ.2) TAČNO
I .AND. (3.EQ.3).AND.(2.EQ.2) TAČNO
Ili .OR. (3.EQ.3).OR.(2.EQ.2) TAČNO
Ili je .EQV. (3.EQ.3).EQV.(2.EQ.2) TAČNO
Ili nije .NEQV. (3.EQ.3).NEQV.(2.EQ.2) NETAČNO
(3.EQ.3).EQV.(3.EQ.2) TAČNO

Zbirka riješenih zadataka 5


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

NEKE OD NAREDBI U FORTRANU:

READ
Naredba za učitavanje podataka u program.

READ(*,*) ili READ(*,n) ili READ(5,n)

Oznaka * ili 5 znači da se podaci unose sa tastature. Oznaka * poslije zareza znači da je

A
naredba unešena u slobodnom formatu. Oznaka n predstavlja ime FORMATA, a
označava se proizvoljnim brojem i upućuje na broj kojim je predstavljena naredba Format.

Primjer:
READ(5,10)N
10 FORMAT (I2)

PT
WRITE
Naredba za štampanje ili ispis podataka i rezultata na ekranu ili na štampaču.

mr. Rašid Hadžović, dipl.inž.građ.


WRITE(*,*) ili WRITE(*,n) ili WRITE(6,n)

Oznaka * ili 6 znači da je ispis prikazan na ekranu. Oznaka * poslije zareza znači da je
naredba unešena u slobodnom formatu. Oznaka n predstavlja ime FORMATA, a
označava se proizvoljnim brojem i upućuje na broj kojim je predstavljena naredba Format.

Primjer:
RI
WRITE(6,10)N
10 FORMAT(I2)

FORMAT
Naredba pomoću koje, u programu, definišemo ulaz i izlaz podataka tj. prema vrsti
podataka se određuje format u kojem će biti unešeni (razlikujemo cjelobrojne i realne
varijable), kao i uređenje ekrana ili štampane stranice.

FORMAT u Naredba Fortrana


SK

Promjenljiva
Fortranu u kojoj se koristi
Cijeli broj In READ/WRITE
Realan broj maksimalno do 7 decimala Fn.m READ/WRITE
Realan broj maksimalno do 7 decimala En.m READ/WRITE
Realan broj (do 7 decimala ) –
Gn.m READ/WRITE
decimalan i eksponencijalan
Realan broj (do 16 decimala) Dn.m READ/WRITE
Alfanumerički broj An READ/WRITE
Logički broj Ln READ/WRITE
Početna tačka za broj kolone Tn WRITE
Preskakanje n kolona nX READ
Broj preskočenih redova n/ WRITE
Broj preskočenih kolona 1X WRITE
Samo neki od Format-a će biti obrađeni u ovoj skripti.

Zbirka riješenih zadataka 6


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

In – format za cjelobrojne varijable


n – broj mjesta koja će se ostaviti (rezervisati) za broj cifara cjelobrojnih varijabli

Primjer:
READ(5,10)N
10 FORMAT (I3)
Ili

A
WRITE(6,10)N
10 FORMAT(I3)

U ovim primjerima moguće je unijeti samo trocifrene pozitivne dok je nemoguć unos
neativnih brojeva ili ispisati trocifrene pozitivne dvocifrene negativne brojeve.

PT
Grafički prikaz formata I4:
±

mr. Rašid Hadžović, dipl.inž.građ.


Format – READ Unešeni podatak Očitani podatak
I4 12 12
I4 -122 -122
I4 123456 1234
I4 1000 1000

Format - WRITE Vrijednost Ispisani podatak


I4 12 12
RI
I4 -122 -122
I4 123456 ****
I4 1000 1000

Fn.m – format za realne varijable


n – ukupan broj cifara uključujući i mjesto za predznak ± i jedno mjesto za decimalnu tačku
m – broj mjesta koja će se ostaviti za decimalne brojeve (za broj cifara koje će doći poslije
decimalne tačke)
SK

En.m - format za realne varijable (E se koristi za eksponencijalne brojeve)


n – ukupan broj cifara uključujući i mjesto za predznak ± i jedno mjesto za decimalnu tačku
m – broj mjesta koja će se ostaviti za decimalne brojeve (za broj cifara koje će doći poslije
decimalne tačke)
U ovom formatu se ne mogu koristiti negativni brojevi.

Primjer:
READ(5,10)N
10 FORMAT (F8.2)
Ili
WRITE(6,10)N
10 FORMAT(F8.3)

Zbirka riješenih zadataka 7


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

± .
Grafički prikaz formata F8.3

n =A+ B + C + D
A – broj mjesta za predznak
B – broj mjesta za broj cifara broja koji će biti unešen ili ispisan
C – broj mjesta za decimalnu tačku
D – broj mjesta koji je ostavljen za broj decimalnih brojeva

A
Isto važi i za Format En.m osim što nije predviđen broj mjesta za predznak, jer se Format
En.m ne koristi za negativne brojeve.

Matematički prikaz Prikaz u Fortranu za E8.3 Prikaz u Fortranu za F8.3


1234556.958 .123E+07 ********

PT
0.34567 .346E+00 0.346
435.67 .436E+03 435.670

mr. Rašid Hadžović, dipl.inž.građ.


-123.4567 ******** -123.456

Tn – početna tačka na ekranu za broj kolone (koristi se u naredbi WRITE)

Primjer:
WRITE(6,10)N
10 FORMAT(T20,I2)

Značenje u Formatu:
RI
U prvom redu i u 20–toj koloni (T20) će početi ispis rezultata.

nX – oznaka za broj kolona koje će se preskočiti prilikom unošenja ili ispisa podataka
ili rezultata. Koristi se u naredbama READ i WRITE.

Primjer:
READ(5,10)R
10 FORMAT(10X,F8.2)
SK

Značenje u Formatu:
10X – preskočeno deset kolona

Znak / - oznaka za preskakanje određenog broja redova pri unosu ili ispisu podataka
ili rezultata. Koristi se u naredbama READ i WRITE.

Primjer:
WRITE(6,*)’UNESITE NEKI REALAN BROJ’
READ(5,10)R
10 FORMAT(F8.2)
WRITE(6,11)R
11 FORMAT(///,10X,’REALAN BROJ JE:’,F8.2)
STOP
END

Zbirka riješenih zadataka 8


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Značenje u Formatu:
/// – preskočena tri reda i 10X – preskočeno deset kolona tj. ispis REALAN BROJ JE: će
početi u četvrtom redu i u 11-toj koloni.

KONTROLNI IZRAZI U FORTRAN-u

A
1) Bezuslovni GOTO
Naredba koja usmjerava program direktno na broj nekog reda bez ikakvog uslova.

2) IF
a) LOGIČKI “IF”
b) ARITMETIČKI “IF”

PT
c) BLOK “IF”

a) LOGIČKI “IF”

mr. Rašid Hadžović, dipl.inž.građ.


Koristi se za poređenje i ispunjavanje samo jednog uslova koji ima dva odgovora DA ili NE.

Logički IF se piše u sljedećoj formi:


[<Broj reda>] IF [<Logički izraz>] <izraz u FORTRAN – u >

.EQ.
RI
.NE.
.NOT. .GT.
<Logički izraz> = <Izraz> .GE. <Izraz> .AND. <Izraz>
.LT. .OR.
.LE.

promjenljiv
<Izraz> : nepromjenljiv
Aritmetički izraz
SK

<izraz u FORTRAN – u >: Ako je rezultat aritmetičkog izraza TAČAN onda program <izraz
u FORTRAN – u > naredbu slijedi, u suprotnom program nastavlja sa svojim tokom (u
slučaju odgovora NE).

Primjer: NE DA

K=5 K=5
IF(K.EQ.5)WRITE(*,*) ‘USLOV TACAN’
WRITE(*,9)’USLOV POGRESAN’
STOP
END

Zbirka riješenih zadataka 9


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

b) ARITMETIČKI “IF”

Koristi se za poređenje i za ispunjavanje jednog uslova koji ima tri različita odgovora.

Aritmetički IF se piše u sljedećoj formi:


<Broj izraza> IF (Aritmetički izraz) N1, S1, P1

A
N1: <Arit. Izraz> Ako je rezultat <0 (manji od nule) → broj reda
S1: <Arit. Izraz> Ako je rezultat =0 (jednak nuli) → broj reda
P1: <Arit. Izraz> Ako je rezultat >0 (veći od nule) → broj reda

<0 >0
Rezultat

PT
mr. Rašid Hadžović, dipl.inž.građ.
=0

Primjer: Unijeti cijele negativne i pozitivne brojeve i naći pojedinačno zbir pozitivnih i zbir
negativnih. Program se zaustavlja unošenjem nule u program.

C BROJ: UCITANI CIJELI BROJ


C PZBIR: ZBIR CIJELIH POZITIVNIH BROJEVA
C NZBIR: ZBIR NEGATIVNIH CIJELIH BROJEVA
RI
INTEGER BROJ, PZBIR
PZBIR=0
NZBIR=0
WRITE(6,*)’UNESITE NEKI BROJ’
5 READ(5,15)BROJ
15 FORMAT(I4)
IF (BROJ)50,200,100
C
SK

C UNESEN JE NEGATIVNI CIJELI BROJ


C
50 NZBIR=NZBIR+BROJ
GOTO 5
C
C UNESEN JE POZITIVAN CIJELI BROJ
C
100 BIR=PZBIR+BROJ
GOTO 5
C USLOV ZA ZAUSTAVLJANJE PROGRAMA JE ISPUNJEN
200 WRITE(6,10)PZBIR,NZBIR
10 FORMAT(1X,’ZBIR POZ. BROJEVA:’,I6,///,1X,’ZBIR NEG.BROJEVA:’,I6)
STOP
END

Zbirka riješenih zadataka 10


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Rješenje:
Prikaz na ekranu će biti, ako unesemo sljedeće brojeve 3, 5, -8, -7, 10, 0.

ZBIR POZ. BROJEVA:####18


-
-
-
ZBIR NEG. BROJEVA:###-15

A
c) BLOK “IF”

<Broj izraza> IF (<Uslov>) THEN


-----------------------
-----------------------

PT
ELSE
-----------------------
-----------------------

mr. Rašid Hadžović, dipl.inž.građ.


ENDIF

Možemo raditi i sa više uslova i sa više blokova, ali samo se jedno ENDIF koristi.

a) Slučaj kada se naredba ELSE ne koristi

Ako se naredba ELSE ne koristi, onda je uslov tačan i program nastavlja sa radom dok ne
dođe do naredbe ENDIF, osim u slučaju ako u bloku IF ne postoji naredba GOTO koja bi
RI
preusmjerila tok programa.

Primjer:

K=5
IF(K.EQ.5) THEN
WRITE(6,*)’TACNO’
WRITE(6,*)’KRAJ PROGRAMA’
5 GOTO 50
SK

ENDIF
10 WRITE(6,*)’NETACNO’
50 STOP
END

U ovom slučaju, ako je uslov K=5 tačan onda se koristi naredba GOTO da bi se
preusmjerio tok programa na kraj programa, u suprotnom program ispisuje na ekranu
NETACNO i zaustavlja se.

b) Slučaj kada se naredba ELSE koristi

Ako se naredba ELSE koristi u bloku IF i ako je uslov tačan onda program ide onim tokom
kako ga usmjeravaju naredbe THEN i ELSE, osim u slučaju ako u bloku IF ne postoji
naredba GOTO koja bi preusmjerila tok programa.

Zbirka riješenih zadataka 11


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Primjer:
K=5
IF(K.EQ.5) THEN
WRITE(6,*)’TACNO’
WRITE(6,*)’ISHOD POZITIVAN’
ELSE
WRITE(6,*)’NETACNO’
WRITE(6,*)’ISHOD NEGATIVAN’

A
ENDIF
STOP
END

Pomoću ELSE programu dajemo mogućnost da odabere tačan odgovor, odnosno ako je
uslov tačan na ekranu biće ispisano:

PT
TACNO
ISHOD POZITIVAN
dok će u suprotnom biti:

mr. Rašid Hadžović, dipl.inž.građ.


NETACNO
ISHOD NEGATIVAN

IF blokovi mogu raditi na sljedeći način:

a) IF blokovi – proces rada: jedan po jedan

[<broj reda>] IF [<Uslov>] THEN


RI
-------
------- BLOK X
-------
ELSE IF [<Uslov 1>] THEN
-------
------- BLOK Y
-------
ELSE IF [<Uslov 2>] THEN
-------
SK

------- BLOK Z
-------
ELSE
-------
------- BLOK W
-------
ENDIF

Redoslijed ispunjavanja uslova:

<Uslov> Ako je TAČNO program će uraditi BLOK X .


<Uslov> NETAČAN i <Uslov 1> TAČAN – program će uraditi BLOK Y .
<Uslov> i <Uslov 1> NETAČNI i <Uslov 2> TAČAN – program će uraditi BLOK Z .
<Uslov>,<Uslov 1> i <Uslov 2> NETAČNI – program će uraditi BLOK W .

Zbirka riješenih zadataka 12


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

b) IF blokovi – proces rada: iznutra ka vani


[<broj reda>] IF [<Uslov>] THEN
-------
------- BLOK A
ELSE IF [<Uslov 1>] THEN
-------
------- BLOK B

A
ELSE IF [<Uslov 2>] THEN
-------
------- BLOK C
ELSE
-------
------- BLOK C1

PT
ENDIF
ENDIF
-------

mr. Rašid Hadžović, dipl.inž.građ.


------- BLOK B1
ELSE
-------
------- BLOK A1
ENDIF

Redoslijed ispunjavanja uslova:


RI
<Uslov> TAČAN program će uraditi BLOK A.
<Uslov> i <Uslov 1> TAČNI program će uraditi BLOK B.
<Uslov> i <Uslov 1> i <Uslov 2> TAČNI program će uraditi BLOK C.
<Uslov> i <Uslov 1> TAČNI i <Uslov 2> NETAČAN program će uraditi BLOK C1.
<Uslov> TAČAN, a <Uslov 1> NETAČAN program će uraditi BLOK B1.
<Uslov> NETAČAN program će uraditi BLOK A1.

c) svaki blok koji počne mora se i završiti. Iz jednog IF bloka se ne može prebacivati
neka informacija u drugi.
SK

Tačan blok IF
IF (<Uslov>) THEN
-------
-------
-------
-------
ELSE
-------
-------
-------
-------
-------
-------
ENDIF
Zbirka riješenih zadataka 13
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Netačan blok IF

IF (<Uslov>) THEN
-------
-------
-------
-------
ELSE

A
-------
-------
-------
-------
ENDIF

PT
3) DO – CONTINUE petlja

mr. Rašid Hadžović, dipl.inž.građ.


Naredba koja se koristi za ponovno učitavanje varijabli nekog niza.

[<broj reda>] DO <Sn> <povratna varijabla> = <prva> , <kraj> [,<korak rasta>]


---------
---------
---------
<Sn> [ CONTINUE ]
RI
<povratna varijabla> : može biti cijeli ili realni broj
<prva> : početna vrijednost povratne varijable
<kraj> : posljednja vrijednost povratne varijable
<korak rasta> : vrijednost za koju se povećava unos podataka
<prva>, <kraj>, <korak rasta> : mogu biti
promjenljivi
SK

nepromjenljivi
aritmetički izraz
broj – funkcija.

<Sn> : broj reda koji završava petlju i kome se pridružuje naredba CONTINUE. Mora biti
cijeli broj.

Pravila:
1. Naredba DO se uvijek mora koristiti zajedno sa naredbom CONTINUE.
2. Petlja počinje sa naredbom DO i uzima vrijednost <prva> i nastavlja sa
radom sve do naredbe CONTINUE.
3. Naredba CONTINUE prilikom svakog okretanja petlje povećava vrijednost
<prva> za vrijednost <korak rasta> dok ne dođe do zadnje vrijednosti
<kraj>. Poslije toga program dalje nastavlja sa radom.
4. Ako se vrijednost <korak rasta> ne napiše onda se uzima da je 1.
Zbirka riješenih zadataka 14
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

5. Ako je vrijednost <korak rasta> pozitivna vrijednost <povratna varijabla> se


mijenja sve dok ne dođe do vrijednosti <kraj> pri tom će izvršavati sve
naredbe unutar DO – CONTINUE petlje.

Primjer:
WRITE(6,10)
10 FORMAT(1X,24(/))
DO 20 I = 1,5

A
WRITE(6,25) I
25 FORMAT(1X,I2,’.PUTA RADIO’)
20 CONTINUE
STOP
END

PT
6. Ako je ispunjen uslov onda će se DO – CONTINUE petlja okrenuti barem
jednom.

mr. Rašid Hadžović, dipl.inž.građ.


Primjer:
WRITE(6,10)
10 FORMAT(1X,24(/))
DO 20 I = 5,1
WRITE(6,25) I
25 FORMAT(1X,I2,’.PUTA RADIO’)
20 CONTINUE
STOP
RI
END

Prikaz na ekranu:

5. PUTA RADIO

tj. ako je vrijednost <prva> veća od vrijednosti <kraj> onda će se petlja jedan put okrenuti.

7. Ako je vrijednost <korak rasta> negativna onda vrijednost <prva> mora biti
SK

veća od vrijednosti <kraj> tako da će se svaki put pri oktretanju petlje


vrijednost <povratna varijabla> smanjivati za vrijednost <korak rasta>.

Primjer:

WRITE(6,10)
11 FORMAT(1X,24(/))
DO 20 I = 5,1,-1
WRITE(6,25) I
25 FORMAT(1X,’I=’,I2)
20 CONTINUE
STOP
END

Zbirka riješenih zadataka 15


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Prikaz na ekranu:
I=5
I=4
I=3
I=2
I=1

8. Ako su vrijednosti <prva>, <kraj>, <korak rasta> definisane kao promjenljive

A
prije dolaska do naredbe DO tj. prije petlje mora im se prethodno zadati neka
vrijednost.
----------
----------
5 DO 10 I = N,M
----------

PT
----------
10 CONTINUE
----------

mr. Rašid Hadžović, dipl.inž.građ.


----------

U primjeru je vrijednost <prva> N, a vrijednost <kraj> M. npr. N=1, M=5.

9. Vrijednost <povratna varijabla> unutar petlje se ne smije ponovo posebno


zadavati, jer tada petlja nece uraditi predviđeno.

Primjer:
RI
WRITE(6,10)
10 FORMAT(1X,24(/))
DO 20 I = 1,5
WRITE(6,25) I
25 FORMAT(1X,I2,’.PUTA RADIO’)
50 I=6
20 CONTINUE
STOP
END
SK

Prikaz na ekranu:

PUTA RADIO

a da nije bilo reda 50 onda bi prikaz na ekranu bio:

1. PUTA RADIO
2. PUTA RADIO
3. PUTA RADIO
4. PUTA RADIO
5. PUTA RADIO

Zbirka riješenih zadataka 16


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

10. Vrijednost <povratna varijabla> može da bude zadata i kao promjenljiva i da


se koristi u nekoj drugoj svrhi osim u onoj osnovnoj.

Primjer:
INTEGER ZBIR
ZBIR=0
WRITE(6,10)

A
10 FORMAT(1X,24(/))
DO 20 I = 1,100
ZBIR=ZBIR + I

20 CONTINUE
WRITE(6,25)ZBIR

PT
25 FORMAT(1X,’ZBIR BROJEVA:’,I5)
STOP
END

mr. Rašid Hadžović, dipl.inž.građ.


11. Naredbe GOTO ili IF program mogu da izvedu van granica DO – CONTINUE
petlje.

MOGUĆE DO ...................
GOTO ili IF
...................
CONTINUE
RI
NEMOGUĆE DO..................
....................
....................
CONTINUE
GOTO ili IF
SK

12. U slučaju da imamo više od jedne petlje pravilo rješavanja petlji je iznutra
prema vani.

MOGUĆE

Zbirka riješenih zadataka 17


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

NEMOGUĆE

DO 10
DO 20

DO 30
....................
....................

A
....................
30 CONTINUE
10 CONTINUE
20 CONTINUE

PT
13. Za više petlji možemo da koristimo samo jedan CONTINUE.

DO 10 K

mr. Rašid Hadžović, dipl.inž.građ.


DO 10 L
DO 10 M

10 CONTINUE

14. Po završetku <povratna varijabla> se može koristiti u razne druge svrhe u


zavisnosti od zadatka.
RI
DIMENSION

Naredba koja određuje (rezerviše) prostor za varijable i promjenljive koje će biti unešene
prilikom korištenja programa.
DIMENSION serija – ime (a1, a2, ...) [serija – ime 1 (b1, b2,...)]

Primjer:
SK

DIMENSION AD(100), MAAS (100),MATRICA(10,10)

Pravila:

1. Naredba DIMENSION se postavlja na početku programa. (START)


2. U ovoj naredbi možemo definisati jednu ili više serija.
3. U jednom program u naredba se može više puta koristiti.
4. a1, a2, an ili b1, b2, bm dimenzija može biti cijeli ili promjenljivi broj.
5. Ne može se u istom programu 2 puta definisati prostor za istu seriju.
6. U programu se ne mora koristiti ova naredba.

Primjer: INTEGER A(10,10),B(100).

Zbirka riješenih zadataka 18


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

POTPROGRAMI
Prilikom programiranja mnogo puta se desi da se dijelovi programa ponavljaju. Da ih
ne bi ponovo pisali na različitim mjestima, koristimo se potprogramima za obavljanje te
funkcije. Znači, program koji može da radi sam za sebe, a koji je dio glavnog programa
zovemo POTPROGRAM.

Postoje dvije vrste potprograma:

A
1) Otvoreni potprogram: FUNCTION (funkcijski) potprogram
2) Zatvoreni potprogram: CALL SUBROUTINE (opšti) potprogram

Radi povratka iz potprograma u glavni program obavezno je korištenje naredbe RETURN.

PT
RETURN: Naredba za povratak iz potprograma u glavni program.

mr. Rašid Hadžović, dipl.inž.građ.


Pravila:

1) Najmanje jedna naredba RETURN mora biti u potprogramu


2) Prilikom povratka u glavni program vraća se u red iz kojeg je pozvan potprogram
(FUNCTION) ili odmah u prvi poslije poziva CALL (opšti).

1) FUNCTION (funkcijski) potprogram


RI
Dio programa koji može da radi sam za sebe i koji može da bude pozvan više puta.

Opšti oblik:

INTEGER
REAL
DOUBLE PRECISION FUNCTION <ime> (par1(,par2)...)
COMPLEX --------
LOGICAL --------
SK

CHARACTER --------
--------
RETURN
END

<ime> Ime funkcijskog potprograma.


(par1(,par2)...) promjenljive koje se prebacuju iz glavnog programa u potprogram.

Pravila:

1) FUNCTION potprogram mora početi sa FUNCTION a završiti sa END.


2) Može se koristiti više od jedne definicije, osim u slučaju ako je funkcija aritmetička,
onda semože koristiti samo jednom.
3) Koristeći se imenom funkcije FUNCTION (funkcijski) potprogram dolazi u aktivno
stanje.
Zbirka riješenih zadataka 19
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

4) Iz ovog potprograma u glavni program vraća se samo jedna vrijednost. Povratna


vrijednost nosi ime funckijskog potprograma.
5) Ime funkcije istovremeno određuje i tip funkcije.
6) Isti FUNCTION potprogram može biti pozvan više puta.
7) U potprogramu mora biti samo jedno RETURN prisutno.
8) Jedan FUNCTION potprogram može biti pozvan iz nekog drugog FUNCTION
potprograma.
9) Vrijednosti promjenljivih koje se šalju u potprogram moraju biti jednake promjenljivim

A
u tom potprogramu.

Primjer:

S = F(A,B)

PT
↑↓↓
↑↓↓

mr. Rašid Hadžović, dipl.inž.građ.


FUNCTION F(C,D)

Objašnjenje:

F je ime potprograma koji se poziva iz glavnog programa i samim tim je nepoznata u


potprogramu, a dok su A i B već poznate varijable koje su unešene u glavnom programu.
Prelaskom u potprogram nije obavezno korištenje istih oznaka za varijable, tako da u
primjeru varijabla A prelazi u C, a varijabla B u D. Nakon izvršene potrebne operacije u
potprogramu izračunata vrijednost F se vraća u glavni program i to u isti red iz kojeg je
RI
potprogram, sa imenom F, pozvan. Nakon povratka u glavni program, vrijednost koju je
potrebno štampati ili ispisati na ekranu je vrijednost S (strelicama je objašnjen put prelaska
vrijednosti iz glavnog programa u potprogram i nazad).
Kroz gornji primjer je objašnjeno na koji način se izračunava samo vrijednost S koristeći
se funkcijskim potprogramom.

2) OPŠTI POTPROGRAM
SK

Opšti oblik CALL SUBROUTINE (opšteg) potprograma.

SUBROUTINE <ime potprograma> (par1,(par2),...)


--------
--------
RETURN
END

<ime potprograma> Koristi se za određivanje imena funkcije


(par1,(par2),...) Lista promjenljivih parametara.

Pravila:

1) Opšti potprogram se poziva naredbom CALL iz glavnog programa, a potprogram


počinje sa SUBROUTINE, a završava sa END.
Zbirka riješenih zadataka 20
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

2) Unutar opšteg potprograma sve naredbe se mogu koristiti.


3) Najmanje jedno RETURN mora postojati.
4) Ime potprograma nema nikakvog uticaja na vrijednost koja se vraća u glavni
program.
5) Jedan SUBROUTINE potprogram može biti pozvan više puta.
6) Iz jednog potprograma se može pozvati novi potprogram.

Primjer:

A
-------
CALL PRIMJER (A,B,C,N,...)
------- ↑↑ ↓ ↓
------- ↑↑↓↓
SUBROUTINE PRIMJER (D,E,F,M...)
-------

PT
-------
RETURN

mr. Rašid Hadžović, dipl.inž.građ.


END

Objašnjenje:

U gornjem primjeru ime potprograma je PRIMJER i obavezno se mora naznačiti u


potprogramu. Naime, potprogram PRIMJER se poziva iz glavnog programa pomoću
naredbe CALL, tako da program prelazi u potprogram pomoću naredbe SUBROUTINE.
Pored CALL i SUBROUTINE mora stajati ime potprograma (u ovom slučaju PRIMJER).
Ime programa predstavlja samo vezu između glavnog programa i potprograma, ali se ne
RI
uzima kao nepoznata vrijednost kao kod funkcijskog potprograma. U zagradi se nalaze sve
vrijednosti, poznate i nepoznate, odnosno vrijednosti koje će biti obrađivane u
potprogramu.U glavnom programu su A i B nepoznate, a C i N su poznate i prelaze u F i
M, a iz potprograma kao proračunate D i E prelaze u glavni program na mjesto nepoznatih
A i B. U daljnem radu programa moguće je štampati proračunate varijable A i B, kao i
poznate C i N.
Kroz gornji primjer je objašnjeno na koji način se izračunava veči broj nepoznatih
vrijednosti koristeći se opštim potprogramom.
SK

Glavna razlika između dva predstavljena potprograma je u tome što


funkcijski potprogram može da proračuna samo jednu vrijednost, a
opšti potprogram može beskonačno mnogo vrijednosti.

Zbirka riješenih zadataka 21


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RIJEŠENI ZADACI
RI
SK

Zbirka riješenih zadataka 22


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

1) Učitati varijable A i B i odštampati ih u glavnom programu.


Rješenje:

Dijagram toka

START

A
A

PT
B

mr. Rašid Hadžović, dipl.inž.građ.


A, B

STOP

END
RI
Fortran

C UCITATI VARIJABLE A i B I ODSTAMPATI IH


C UCITAVANJE VARIJABLI A i B
READ(5,10)A,B
10 FORMAT(F8.2)
C STAMPANJE VARIJABLI A i B
WRITE(6,20)A,B
20 FORMAT(10X,//,'VARIJABLA A=',F8.2,/,'VARIJABLA B=',F8.2)
C ZAUSTAVLJANJE PROGRAMA
SK

STOP
END

Ispis na ekranu

Zbirka riješenih zadataka 23


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

2) Učitati varijable A, B i ZBI, te odrediti S=(A+ZBI)*B i odštampati ih u glavnom programu.


Rješenje:

Dijagram toka START

INTEGER ZBI

A
A

ZBI

PT
S=(A+ZBI)*B

mr. Rašid Hadžović, dipl.inž.građ.


S

STOP

END
RI
Fortran

C PROGRAM ZA UNOSENJE ZBI I ODREDJIVANJE S


WRITE(*,*)'PROGRAM ZA PRORACUN S=(A+ZBI)*B'
WRITE(*,*)' '
INTEGER ZBI
WRITE(6,*)'UNESITE VARIJABLU A'
READ(5,1)A
1 FORMAT(F8.2)
WRITE(6,*)'UNESITE VARIJABLU B'
READ(5,2)B
SK

2 FORMAT(F8.2)
WRITE(6,*)'UNESITE ZADNJI BROJ INDEKSA'
READ(5,3)ZBI
3 FORMAT(I2)
S=(A+ZBI)*B
WRITE(6,4)S
4 FORMAT(/,5X,'VRIJEDNOST S=',F10.2)
STOP
END
Ispis na ekranu

Zbirka riješenih zadataka 24


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

3) Učitati dvije varijable i odštampati onu koja je veća u glavnom programu.


Rješenje:

Dijagram toka
START

A
A

DA NE
A>B

PT
A B

mr. Rašid Hadžović, dipl.inž.građ.


STOP

END

Fortran
RI
C UCITATI VARIJABLE A i B I ODSTAMPATI VECU
C UCITAVANJE VARIJABLI A i B
WRITE(*,*)'UNESITE VARIJABLE A i B'
READ(5,10)A,B
10 FORMAT(F8.2)
C STAMPANJE VARIJABLI A i B
IF(A.GT.B)GOTO 15
WRITE(6,2)
2 FORMAT(10X,///,'VARIJABLA B JE VECA=',F8.2)
WRITE(6,20)B
20 FORMAT(10X,///,'VARIJABLA B=',F8.2)
SK

GOTO 100
15 WRITE(6,3)
3 FORMAT(10X,///,'VARIJABLA A JE VECA=',F8.2)
WRITE(6,25)A
25 FORMAT(10X,///,'VARIJABLA A=',F8.2)
100 STOP
END

Ispis na ekranu

Zbirka riješenih zadataka 25


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

4) Učitati varijable A i B, naći sumu i proizvod istih i odštampati ih u glavnom programu.


Rješenje:

Dijagram toka

START

A
A

SUMA=A+B

PT
PROIZVOD=A*B

mr. Rašid Hadžović, dipl.inž.građ.


SUMA,
PROIZVOD

STOP

END
RI
Fortran

C KALKULACIJA SUME I PROIZVODA DVIJE VARIJABLE


REAL C
WRITE(*,*)'UNESITE VARIJABLU A'
READ(5,1)A
1 FORMAT(F6.2)
WRITE(*,*)'UNESITE VARIJABLU B'
READ(5,2)B
2 FORMAT(F6.1)
SK

C=A+B
P=A*B
WRITE(6,3)C
3 FORMAT(10X,///,'SUMA=',1X,F7.2)
WRITE(6,4)P
4 FORMAT(10X,////,'PROIZVOD=',1X,F10.2)
STOP
END

Ispis na ekranu

Zbirka riješenih zadataka 26


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

5) Učitati varijable A i B, naći sumu i proizvod istih i odštampati veću od njih u glavnom
programu.
Rješenje:

Dijagram toka

START

A
A

PT
S=A+B

mr. Rašid Hadžović, dipl.inž.građ.


P=A*B

DA NE
S>P

S P
RI
STOP

END

Fortran

C KALKULACIJA SUME I PROIZVODA I STAMPANJE VECE OD NJIH


WRITE(*,*)'UNESITE VARIJABLU A'
READ(5,1)A
1 FORMAT(F 6.2)
WRITE(*,*)'UNESITE VARIJABLU B'
SK

READ(5,2)B
2 FORMAT(F 6.1)
S=A+B
P=A*B
IF(S.GT.P)THEN
WRITE(*,5)
5 FORMAT(/,'SUMA JE VECA OD PROIZVODA')
WRITE(6,3)S
3 FORMAT(/,'SUMA JE',1X,F 7.2)
ELSE
WRITE(*,6)
6 FORMAT(/,'PROIZVOD JE VECI OD SUME')
WRITE(6,4)P
4 FORMAT(/,'PROIZVOD JE',1X,F 10.2)
ENDIF
STOP
END

Zbirka riješenih zadataka 27


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Ispis na ekranu

A
6) Učitati varijable A i B, naći količnik istih i odštampati ga u glavnom programu.
Rješenje:

Dijagram toka

PT
START

mr. Rašid Hadžović, dipl.inž.građ.


A

DA
B=0
RI
C=A/B

STOP

END
SK

Fortran

C KALKULACIJA KOLICNIKA
WRITE(*,*)'UNESITE VARIJABLU A'
READ(5,1)A
1 FORMAT(F 6.2)
5 WRITE(*,*)'UNESITE VARIJABLU B'
READ(5,2)B
2 FORMAT(F 6.2)
IF(B.EQ.0)GOTO 5
C=A/B
WRITE(6,3)C
3 FORMAT(/,'KOLICNIK JE',F10.2)
STOP
END

Zbirka riješenih zadataka 28


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.
Ispis na ekranu

A
7) Napraviti program za rješavanje kvadratne jednačine: ax2 + bx + c = 0.

Rješenje:

−b ± b 2 − 4ac

PT
x1,2 =
2a

mr. Rašid Hadžović, dipl.inž.građ.


D= b 2 − 4ac

D > 0 => Realna rješenja (dva rješenja x1 , x2)


D < 0 => Kompleksno rješenje
D = 0 => Dvostruko rješenje (x1 = x2)

Dijagram toka START


RI
B,C

DA
A=0

D = B2 − 4 * A * C
SK

−B − D
−B X1 =
X1 = 2* A
IMAM 2* A
KOMPLEKSNA
RJESENJA −B + D
IMAM DVOSTRUKO X1 =
RJESENJE, X= 2* A

IMAM DVA RJESENJA


STOP X1= , X2=

END

Zbirka riješenih zadataka 29


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

C PROGRAM ZA RJESAVANJE KVADRATNE JEDNACINE


REAL D,X1,X2
WRITE(6,*)'PROGRAM ZA RJESAVANJE KVADRATNE JEDNACINE'
WRITE(6,*)'Ax2+Bx+C=0'
WRITE(6,*)' '
WRITE(6,*)'UNESITE VRIJEDNOST B'

A
READ(5,1)B
WRITE(6,*)'UNESITE VRIJEDNOST C'
READ(5,1)C
WRITE(6,*)'UNESITE VRIJEDNOST A'
10 READ(5,1)A
1 FORMAT(F8.2)
IF(A.EQ.0)GOTO 10

PT
D=B**2-4*A*C
IF(D)20,30,40
20 WRITE(6,2)

mr. Rašid Hadžović, dipl.inž.građ.


2 FORMAT(///,2X,'IMAM KOMPLEKSNA RJESENJA')
GOTO 100
30 X1=-B/(2*A)
WRITE(6,3)X1
3 FORMAT(///,2X,'IMAM DVOSTRUKO RJESENJE',/,'X=',F10.2)
GOTO 100
40 X1=-B/(2*A)-SQRT(D)/(2*A)
X2=-B/(2*A)+SQRT(D)/(2*A)
WRITE(6,4)X1,X2
4 FORMAT(///,2X,'IMAM DVA RJESENJA',/,'X1=',F10.2,/,'X2=',F10.2)
100 STOP
RI
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 30


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

8) Učitati niz od N elemenata i odštampati ga u glavnom programu.


Rješenje:

Dijagram toka
START

A
DIMENSION A (100)

UNESITE BROJ
ELEMENATA
NIZA

PT
UČITAJTE
ELEMENTE
NIZA A

mr. Rašid Hadžović, dipl.inž.građ.


DO 10 I = 1,N

A (I)

10

ELEMENTI
NIZA A SU:
RI
DO 20 I = 1,N

A (I)

20

STOP
SK

END

Fortran

C UCITAVANJE I STAMPANJE NIZA ELEMENATA


DIMENSION A(100)
C UCITAVANJE BROJA ELEMENATA NIZA
WRITE(6,*)'UNESITE BROJ ELEMENATA NIZA'
READ(5,2)N
2 FORMAT(I4)
C UCITAVANJE ELEMENATA NIZA A
WRITE(6,*)'UCITAJTE ELEMENTE NIZA A'
DO 10 I=1,N
READ(5,1)A(I)
1 FORMAT(F8.2)
10 CONTINUE

Zbirka riješenih zadataka 31


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

C STAMPANJE ELEMENATA NIZA A


WRITE(*,*)'ELEMENTI NIZA A SU:'
DO 20 I=1,N
WRITE(6,3)A(I)
3 FORMAT(F8.2)
20 CONTINUE
STOP
END

A
Ispis na ekranu

PT
mr. Rašid Hadžović, dipl.inž.građ.
9) Učitati niz od 20 elemenata i naći sumu članova na parnim i proizvod elemenata na
neparnim mjestima. Sumu i proizvod odštampati u glavnom programu.
Rješenje: START

Dijagram toka DIMENSION A(20)


RI
DO 10 I=1,20

A(I)

10

P=1

S=0
SK

DO 20 I=1,10

S=S+A (2*I)

P=P*A (2*I-1)

20

S,P

STOP

END

Zbirka riješenih zadataka 32


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

C SUMA PARNIH I PROIZVOD NEPARNIH ELEMENATA NIZA


DIMENSION A(20)
WRITE(*,*)'PROGRAM ZA SABIRANJE PARNIH I MNOZENJE NEPARNIH’
WRITE(*,*)’ELEMENATA NIZA'
WRITE(*,*)'UNESITE 10 ELEMENATA NIZA'
C UNOSENJE ELEMENATA NIZA A

A
DO 1 I=1,10
READ(5,10)A(I)
10 FORMAT(F8.2)
1 CONTINUE
C OPERACIJA SA ELEMENTIMA NIZA A
P=1
S=0

PT
DO 2 I=1,5
S=S+A(2*I)
P=P*A(2*I-1)

mr. Rašid Hadžović, dipl.inž.građ.


2 CONTINUE
C STAMPANJE SUME I PROIZVODA NIZA A
WRITE(6,20)S,P
20 FORMAT('SUMA=',F8.2,/,'PROIZVOD=',F14.2)
C ZAUSTAVLJANJE PROGRAMA
STOP
END

Ispis na ekranu
RI
SK

10) Učitati niz od 10 elemenata, onda formirati drugi niz B, tako da se sastoji samo od
različitih elemenata niza A. Zatim naći minimalni i maksimalni elemenat niza B. Odštampati
elemente niza A i niza B i minimalni i maksimalni elemenat u glavnom programu.
Rješenje:

Zbirka riješenih zadataka 33


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Dijagram toka

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RI
Fortran

C UCITATI NIZ OD 10 ELEMENATA, ONDA FORMIRATI DRUGI NIZ B TAKO DA SE


SK

C SASTOJI SAMO OD RAZLICITIH ELEMENATA NIZA A. ZATIM NACI MIN.I MAX.


C ELEMENAT NIZA B. ODSTAMPATI NIZ B I MIN. I MAX. ELEMENTE NIZA B.
WRITE(*,*)’FORMIRANJE NIZA B OD RAZLICITIH EL. NIZA A’
WRITE(*,*)'I TRAZENJE MAKSIMALNOG I MINIMALNOG ELEMENTA NIZA'
DIMENSION A(10),B(10)
C UCITAVANJE ELEMENATA NIZA A
WRITE(*,*)'UNESITE 10 ELEMENATA NIZA A'
DO 10 I=1,10
READ(5,1)A(I)
1 FORMAT(F8.2)
10 CONTINUE
C STAMPANJE ELEMENATA NIZA A
WRITE(*,*)'ELEMENTI NIZA A SU:'
DO 11 I=1,10
WRITE(6,5)A(I)
5 FORMAT(F8.2)
11 CONTINUE

Zbirka riješenih zadataka 34


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

C ODREDJIVANJE ELEMENATA NIZA B


B(1)=A(1)
K=0
DO 15 I=1,10
DO 20 J=1,K
IF(A(I).EQ.B(J))GOTO 15
20 CONTINUE
K=K+1
B(K)=A(I)
C STAMPANJE BROJA ELEMENATA NIZA B

A
WRITE(*,2)B(K)
2 FORMAT(/,'NOVI ELEMENAT NIZA B JE:',F8.2)
15 CONTINUE
WRITE(*,6)K
6 FORMAT(/,5X,'BROJ ELEMENATA NIZA B JE:',I3)
C ODREDJIVANJE MAX. I MIN. ELEMENTA NIZA B
PMAX=B(1)

PT
PMIN=B(1)
DO 30 I=1,K
IF(PMAX.LT.B(I))THEN

mr. Rašid Hadžović, dipl.inž.građ.


PMAX=B(I)
ELSE
IF(PMIN.GT.B(I))PMIN=B(I)
ENDIF
30 CONTINUE
C STAMPANJE MAX. I MIN. ELEMENTA NIZA B
WRITE(6,3)PMAX,PMIN
3 FORMAT(//,'MAX.ELEM.=',F8.2,/,'MIN.ELEM.=',F8.2)
STOP
END
RI
Ispis na ekranu
SK

Zbirka riješenih zadataka 35


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

11) Učitati 20 elemenata niza A, sortirati ih u rastućem redosljedu i odštampati.


Rješenje:

Dijagram toka

START

DIMENSION A(20)

A
DO 10 I=1,20

A(D)

PT
10

mr. Rašid Hadžović, dipl.inž.građ.


DO 20 I=1,19

DO 15 J=I+1,20

DA
A(I)<A(J)

NE

C=A(I)
RI
A(I)=A(J)

A(J)=C

15

20
SK

A(J)

STOP

END

Fortran
C UCITATI NIZ A OD 20 ELEMENATA, NAPISATI
C PROGRAM ZA SORTIRANJE U RASTUCEM REDOSLJEDU
DIMENSION A(20)
WRITE(*,*)'PROGRAM ZA SORTIRANJE EL. NIZA A U RASTUCEM REDOSLJEDU'
WRITE(*,*)'UNESITE 20 ELEMENATA NIZA A'

Zbirka riješenih zadataka 36


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

DO 10 I=1,20
READ(5,1)A(I)
1 FORMAT(F8.2)
10 CONTINUE
C SORTIRANJE ELEMENATA
DO 20 I=1,19
DO 15 J=I+1,20
IF(A(I).LT.A(J))GOTO 15
C=A(I)
A(I)=A(J)

A
A(J)=C
15 CONTINUE
20 CONTINUE
WRITE(*,*)'SORTIRANI ELEMENTI NIZA A SU:'
DO 30 J=1,20
WRITE(6,3)A(J)
3 FORMAT(F8.2)

PT
30 CONTINUE
STOP

mr. Rašid Hadžović, dipl.inž.građ.


Ispis na ekranu
RI
SK

Zbirka riješenih zadataka 37


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

12) Učitati niz A od 10 elemenata, pa formirati niz B tako da imamo sljedeće:

B(1)<B(2)>B(3)<B(4)>B(5)<B(6)>B(7)<B(8)>B(9)<B(10)
Rješenje:

Dijagram toka:

START

DIMENSION A(10),B(10)

A
DO 10 I=1,10

A(10)

PT
10

mr. Rašid Hadžović, dipl.inž.građ.


DO 20 I=1,9

DO 30 J=I + 1,10

DA
A(I)>A(J)

C =A(I)
NE
A (I) = A (J)
RI
A(J) = C
30

20

DO 40 I=1,5

B(2*I-1) = A( I )
SK

B(2*I) =A ( I + 5 )

40

DO 50 I=1,10

B(I)

50

STOP

END

Zbirka riješenih zadataka 38


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

C UCITATI NIZ A OD 10 ELEMENATA, PA FORMIRATI NIZ B TAKO DA IMAMO


C SLJEDECE: B(1)<B(2)>B(3)<B(4)>B(5)<B(6)>B(7)<B(8)>B(9)<B(10)
DIMENSION A(10), B(10)
WRITE(*,*)'PROGRAM ZA FORMIRANJE NIZA B IZ NIZA A TAKO DA JE'
WRITE(*,*)'B[1]<B[2]>B[3]<B[4]>B[5]<B[6]>B[7]<B[8]>B[9]<B[10]'
WRITE(*,*)' '
WRITE(*,*)'UNESITE ELEMENTE NIZA A'
DO 10 I=1,10

A
READ(5,1)A(I)
1 FORMAT(F8.2)
10 CONTINUE
DO 20 I=1,9
DO 20 J=I+1,10
IF(A(I).GT.A(J))THEN
C=A(I)

PT
A(I)=A(J)
A(J)=C
ELSE

mr. Rašid Hadžović, dipl.inž.građ.


GOTO 20
ENDIF
20 CONTINUE
DO 30 I=1,5
B(2*I-1)=A(I)
B(2*I)=A(I+5)
30 CONTINUE
WRITE(*,*)'ELEMENTI NIZA B SU:'
DO 40 I=1,10
WRITE(6,2)B(I)
2 FORMAT('NIZ B',F8.2)
RI
40 CONTINUE
STOP
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 39


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

13) Učitati matricu A(4×4) i matricu B(4×4), onda naći matricu C kao proizvod matrica A i B.

C i , j = Ai , k ⋅ B k , j
Rješenje:

Dijagram toka:

START

A
DIMENSION A(4,4), B(4,4), C(4,4)

DO 10 I=1,4

DO 10 I=1,4

PT
A (I)

mr. Rašid Hadžović, dipl.inž.građ.


10

DO 20 I=1,4

DO 20 J=1,4

B(I)
RI
20

DO 50 I=1,4

DO 30 J=1,4

C(I,J) =0

DO 40 K=1,4
SK

C(I,J)= C(I,J) + A(I,K)* B(K,J)

40

30

50

C(I,J)

STOP

END

Fortran
Zbirka riješenih zadataka 40
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

C NACI PROIZVOD MATRICA A i B, KAO MATRICU C


DIMENSION A(4,4), B(4,4), C(4,4)
WRITE(*,*)'PROGRAM ZA RACUNANJE PROIZVODA DVIJE MATRICE'
WRITE(*,*)' '
WRITE(*,*)'UNESITE ELEMENTE MATRICE A(4×4)'
DO 10 I=1,4
DO 10 J=1,4
WRITE(6,5)I,J
5 FORMAT('A(',I1,',',I1,')')

A
READ(5,1)A(I,J)
1 FORMAT(F8.2,F8.2)
10 CONTINUE
WRITE(*,*)'UNESITE ELEMENTE MATRICE B(4×4)'
DO 20 I=1,4
DO 20 J=1,4
WRITE(6,6)I,J

PT
6 FORMAT('B(',I1,',',I1,')')
READ(5,2)B(I,J)
2 FORMAT(F8.2,F8.2)

mr. Rašid Hadžović, dipl.inž.građ.


20 CONTINUE
WRITE(*,*)'PROIZVOD MATRICA A i B JE:'
DO 30 I=1,4
DO 30 J=1,4
C(I,J)=0
DO 40 K=1,4
C(I,J)=C(I,J)+A(I,K)*B(K,J)
40 CONTINUE
WRITE(6,8)I,J
8 FORMAT('C(',I1,',',I1,')')
WRITE(6,7)C(I,J)
RI
7 FORMAT(F10.2,F10.2)
30 CONTINUE
STOP
END
Ispis na ekranu
SK

Zbirka riješenih zadataka 41


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

14) Učitati matricu A(4×4) onda naći trag matrice A

Rješenje:

Dijagram toka:

START

A
DIMENSION A(4,4)

DO 10 I=1,4

DO 10 J=1,4

A(I)

PT
10

mr. Rašid Hadžović, dipl.inž.građ.


TRAG = 0

DO 20 I=1,4

TRAG=TRAG+ A(I,I)

20

TRAG
RI
STOP

END

Fortran

C NACI TRAG MATRICE A


DIMENSION A(4,4)
WRITE(*,*)'PROGRAM ZA RACUNANJE TRAGA MATRICE'
SK

WRITE(*,*)' '
WRITE(*,*)'UNESITE ELEMENTE MATRICE A(4x4)'
DO 10 I=1,4
DO 10 J=1,4
WRITE(6,5)I,J
5 FORMAT('A(',I1,',',I1,')')
READ(5,1)A(I,J)
1 FORMAT(F8.2,F8.2)
10 CONTINUE
TRAG=0
DO 20 I=1,4
TRAG=TRAG+A(I,I)
20 CONTINUE
WRITE(6,2)TRAG
2 FORMAT('TRAG MATRICE JE:',F10.2)
STOP
END

Zbirka riješenih zadataka 42


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Ispis na ekranu

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RI
15) U glavnom programu učitati varijable A i B i pozivom funkcijskog potprograma izračunati
sumu tih varijabli.

Rješenje:

Dijagram toka:
START
SK

P. P.
A

FUNCTION F(A,B)
B

F= A+B
SUMA = F(A,B)

RETURN
SUMA

END

STOP

END

Zbirka riješenih zadataka 43


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

C FUNKCIJSKI POTPROGRAM
WRITE(*,*)'PROGRAM ZA SABIRANJE VARIJABLI POMOCU'
WRITE(*,*)'FUNKCIJSKOG POTPROGRAMA'
WRITE(*,*)' '
WRITE(*,*)'UNESITE VARIJABLU A'
READ(5,1)A
1 FORMAT(F8.2)
WRITE(*,*)'UNESITE VARIJABLU B'

A
READ(5,2)B
2 FORMAT(F8.2)
SUMA=F(A,B)
WRITE(6,3)SUMA
3 FORMAT('SUMA VARIJABLI JE:',F10.2)
STOP
END

PT
FUNCTION F(A,B)
F=A+B
RETURN

mr. Rašid Hadžović, dipl.inž.građ.


END

Ispis na ekranu
RI
16) U glavnom programu učitati varijablu X, te pomoću funkcijskog potprograma odrediti
X2 ako je X>5
f(X)= X2+2 ako je X=5
5X ako je X<5

Rješenje:
P.P.
Dijagram toka:
FUNCTION F(X)
SK

DA
X>5
START
DA
F=X2
X=5
UNESITE NEPOZNATU X

DA
F=X2+2
Y=F(X) X<5

F=5X
Y NE

STOP

END RETURN

END

Zbirka riješenih zadataka 44


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Prvi način Fortran

C PROGRAM ZA ODREDJIVANJE FUNKCIJE


C X**2 X>5
C f(X)= X**2+2 X=5
C 5X X<5
WRITE(*,*)'UNESITE NEPOZNATU X'
READ(5,2)X
2 FORMAT(2F8.2)
Y=F(X)

A
WRITE(6,1)Y
1 FORMAT(1X,'SUMA:',F7.2)
STOP
END
FUNCTION F(X)
IF(X.GT.5)F=X**2
IF(X.EQ.5)F=X**2+2

PT
IF(X.LT.5)F=5*X
RETURN
END

mr. Rašid Hadžović, dipl.inž.građ.


Ispis na ekranu – prvi način
RI
SK

Drugi način Fortran (pomoću BLOK IF)

C ODREDITI FUNKCIJU
C X**2 X>5
C f(X)= X**2+2 X=5
C 5X X<5
WRITE(*,*)'UNESITE NEPOZNATU X'
READ(5,2)X
2 FORMAT(2F8.2)

Zbirka riješenih zadataka 45


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Y=F(X)
WRITE(6,1)Y
1 FORMAT(1X,'F(X)=',F7.2)
STOP
END
FUNCTION F(X)
IF(X.GT.5)THEN
F=X**2
WRITE(6,*)'POSTO JE X>5 VRIJEDNOST FUNKCIJE JE F(X)=X**2'
ELSE

A
IF(X.EQ.5)THEN
F=X**2+2
WRITE(6,*)'POSTO JE X=5 VRIJEDNOST FUNKCIJE JE F(X)=X**2+2'
ELSE
ENDIF
IF(X.LT.5)THEN
F=5*X

PT
WRITE(6,*)'POSTO JE X<5 VRIJEDNOST FUNKCIJE JE F(X)=5*X'
ENDIF
ENDIF

mr. Rašid Hadžović, dipl.inž.građ.


10 RETURN
END

Ispis na ekranu - drugi način


RI
SK

17) U glavnom programu učitati prvi, pa drugi broj kombinacije, te pozivom funkcijskog
I!
potprograma izračunati kombinaciju: K =
J ! ( I − J )!
Rješenje:

Zbirka riješenih zadataka 46


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Dijagram toka:
START
P.P
INTEGER A,B,C,FAKTI
INTEGER FUNCTION FAKT (L)
I,J
FAKT = 1

A = FAKT (I) DO 10 N=1,L

A
B = FAKT (J) FAKT = FAKT*N

C = FAKT (I-J)
10
K = A/ (B*C)

F,J,K RETURN

PT
END
STOP

mr. Rašid Hadžović, dipl.inž.građ.


END

Fortran

C PRORACUN KOMBINACIJE K=I!/[J!(I-J)!]


INTEGER A,B,C,FAKT
C I=PRVI BROJ
C J=DRUGI BROJ
C K=REZULTAT
RI
WRITE(*,*)'PROGRAM ZA RACUNANJE BROJA KOMBINACIJA'
WRITE(*,*)' '
WRITE(*,*)'UNESITE PRVI,PA DRUGI BROJ KOMBINACIJE'
READ(5,1)I,J
1 FORMAT(2I3)
A=FAKT(I)
B=FAKT(J)
C=FAKT(I-J)
K=A/(B*C)
WRITE(6,3)I,J,K
SK

3 FORMAT(1X,'1.BROJ:',I3,//,1X,'2.BROJ:',I3,//,1X,
+'BROJ KOMBINACIJA:',I4)
STOP
END
INTEGER FUNCTION FAKT(L)
FAKT=1
DO 10 N=1,L
FAKT=FAKT*N
10 CONTINUE
RETURN
END

Ispis na ekranu

Zbirka riješenih zadataka 47


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

18) Učitati x,y koordinate 10 tačaka. Napisati funkcijski potprogram koji će da računa rastojanja
datih tačaka sa kordinatom XA = 0.5 i YA = 1.0, te naći najveću i najmanju dužinu u glavnom
programu.

Dijagram toka:

START
P.P.

A
DIMENSION X(10),Y(10),D(10)

FUNCTION DUŽINA (A,B,C,D)


DO 10 I=1,10

X(I) ,Y(I) DUŽINA=SORT((A-C)**2(B-D)**2)

PT
10

RETURN
XA =0,5

mr. Rašid Hadžović, dipl.inž.građ.


END
YA =1,0

DO 20 I = 1,10

D(I)=DUŽINA (X(I),Y(I),XA, YA)

20

DMAX=D(1)
RI
DMIN=D(1)

DO 30 I = 1,10

DA
DMAX<D(1)

DMAX = D(1)
NE

NE
SK

DMIN>D(1)

DMIN = D (1)
30

DMAX,DMIN

STOP

END

Zbirka riješenih zadataka 48


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

C UCITATI x,y KOORDINATE 10 TACAKA.NAPISATI FUNKCIJSKI POTPROGRAM


C KOJI CE DA RACUNA RASTOJANJA DATIH TACAKA OD TACKE SA
C KOORDINATOM Xa=0,5 i Y=1,0. NACI NAJVECU I NAJMANJU DUZINU U
C GLAVNOM PROGRAMU
DIMENSION X(10),Y(10),D(10)
WRITE(*,*)'PROGRAM ZA RACUNANJE RASTOJANJE TACAKA OD TACKE'
WRITE(*,*)'Xa=0,5 i Y=1,0'
WRITE(*,*)' '

A
WRITE(*,*)'UNESITE KOORDINATE 10 TACAKA A(X,Y)'
DO 10 I=1,10
WRITE(6,3)I
3 FORMAT('TACKA BROJ',I2,' JE: ')
READ(5,1)X(I),Y(I)
1 FORMAT(2F8.2)
10 CONTINUE

PT
XA=0.5
YA=1.0
DO 20 I=1,10

mr. Rašid Hadžović, dipl.inž.građ.


D(I)=DUZINA(X(I),Y(I),XA,YA)
20 CONTINUE
DMAX=D(1)
DMIN=D(1)
DO 30 I=1,10
IF(DMAX.LT.D(I))THEN
DMAX=D(I)
ELSE IF(DMIN.GT.D(I))THEN
DMIN=D(I)
ENDIF
30 CONTINUE
RI
WRITE(6,2)DMAX,DMIN
2 FORMAT(5X,'MAX. DUZINA JE:',F8.2,//,5X,'MIN. DUZINA JE:',F8.2)
STOP
END
FUNCTION DUZINA(A,B,C,D)
DUZINA=SQRT((A-C)**2+(B-D)**2)
RETURN
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 49


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

19) Učitati matricu A(4×4). Naći sumu elemenata iznad glavne dijagonale. Zatim naći maksimalni
elemenat (vrijednost) i njegove indekse. Sve to obraditi pomoću opšteg potprograma.

Rješenje:

Dijagram toka:

START
P.P

A
DIMENSION A (4,4)
SUBROUTINE RACUN (B,S,M,N,PMAX)

DO 10 I = 1,10
DIMENSION B (4,4)

DO 10 I = 1,10
S=0

PT
A (I, J) DO 20 I = 1,4

mr. Rašid Hadžović, dipl.inž.građ.


DO 20 J = 1,4
10
I<J

CALL RACUN (A,SUMA ,M,N,PMAX)


S=S+B(I,J)

20

SUMA,PMAX,
PMIN PMAX=B(1,1)

M=1
RI
STOP
N=1

END DO 30 I = 1,4

DO 30 J=1,4

PMAX<
B(I,J)
PMAX=B(I,J)

M=I

N=J
SK

30

RETURN

END
Fortran

C SUMA ELEMENATA IZNAD GLAVNE DIJAGONALE I MAX. ELEM. MATRICE


C M= PRVI INDEKS
C N= DRUGI INDEKS
DIMENSION A(4,4)
WRITE(*,*)'PROGRAM ZA RACUNANJE SUME ELEMENATA'
WRITE(*,*)'IZNAD GLAVNE DIJAGONALE I MAX. ELEM. MATRICE'
WRITE(*,*)' '
WRITE(*,*)'UNESITE ELEMENTE MATRICE A(4x4)'
DO 10 I=1,4
DO 10 J=1,4
WRITE(6,5)I,J

Zbirka riješenih zadataka 50


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

5 FORMAT('A(',I1,',',I1,')')
READ(5,1)A(I,J)
1 FORMAT(F8.2,F8.2)
10 CONTINUE
CALL RACUN(A,SUMA,M,N,PMAX)
WRITE(6,2)SUMA,PMAX,M,N
2 FORMAT('SUMA ELEMENATA IZNAD GLAVNE DIJAGONALE JE:',F10.2,/,
+'MAKSIMALNI ELEMENAT:',F8.2,/,'MJESTO MAKSIMALNOG ELEMENTA JE: A('
+,I1,',',I1,')')
STOP

A
END
SUBROUTINE RACUN(B,S,M,N,PMAX)
DIMENSION B(4,4)
S=0
DO 20 I=1,4
DO 20 J=1,4
IF(I.LT.J)THEN

PT
S=S+B(I,J)
ENDIF
20 CONTINUE

mr. Rašid Hadžović, dipl.inž.građ.


PMAX=B(1,1)
M=1
N=1
DO 30 I=1,4
DO 30 J=1,4
IF(PMAX.LT.B(I,J))THEN
PMAX=B(I,J)
M=I
N=J
ENDIF
30 CONTINUE
RI
RETURN
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 51


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

20) Učitati matricu A(4×4). Naći sumu elemenata ispod glavne dijagonale. Sve to obraditi
pomoću opšteg potprograma.

Rješenje:

Dijagram toka:

START P.P

A
SUBROUTINE RACUN (B,S)
DIMENSION A(4,4)
DIMESION B(4,4)
DO 10 I=1,4
S=0
DO 10 J=1,4

PT
DO 20 I=1,4
A (I,J)
DO 20 J=1,4

mr. Rašid Hadžović, dipl.inž.građ.


10

CALL RACUN (A, SUMA) I>J

SUMA
S= S+B (I,J)

STOP
20
RI
END

RETURN

END

Fortran

C SUMA ELEMENATA ISPOD GLAVNE DIJAGONALE


DIMENSION A(4,4)
WRITE(*,*)'PROGRAM ZA RACUNANJE SUME ELEMENATA ISPOD'
SK

WRITE(*,*)'GLAVNE DIJAGONALE MATRICE'


WRITE(*,*)' '
WRITE(*,*)'UNESITE ELEMENTE MATRICE A(4x4)'
DO 10 I=1,4
DO 10 J=1,4
WRITE(6,5)I,J
5 FORMAT('A(',I1,',',I1,')')
READ(5,1)A(I,J)
1 FORMAT(F8.2,F8.2)
10 CONTINUE
CALL RACUN(A,SUMA)
WRITE(6,2)SUMA
2 FORMAT('SUMA ISPOD GLAVNE DIJ.',F10.2)
STOP
END
SUBROUTINE RACUN(B,S)
DIMENSION B(4,4)
S=0

Zbirka riješenih zadataka 52


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

DO 20 I=1,4
DO 20 J=1,4
IF(I.GT.J)THEN
S=S+B(I,J)
ENDIF
20 CONTINUE
RETURN
END

Ispis na ekranu

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RI
21) Napraviti program za proračun reakcija, momenata savijanja i transverzalnih sila na
desetinama raspona proste grede opterećene ravnomjernim kontinuiranim opterećenjem.
Rješenje:
Dijagram toka:
DO 20 K=0,10
SK

DO 10 I=0,10
START

I *L
REAL M,T,Q,L 2 T = R −Q*
⎛ I *L ⎞ 10
I *L ⎜ 10 ⎟
M = R* −Q* ⎝ ⎠
L 10 2 T

Q M

20

R=Q*L/2
10
STOP
R
END

Zbirka riješenih zadataka 53


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Fortran

REAL M,T,Q,L
WRITE(6,*)'PROGRAM ZA PRORACUN M I T SILA PROSTE GREDE'
WRITE(6,*)'ZA RAVNOMJERNO KONTINUIRANO OPTERECENJE'
WRITE(6,*)'NA DESETINI RASPONA GREDE'
WRITE(6,*)' '
WRITE(6,*)'UNESITE STATICKI RASPON GREDE KAO REALAN BROJ'
WRITE(6,*)'STATICKI RASPON GREDE L='
READ(5,1)L

A
1 FORMAT(F 6.2)
WRITE(6,*)'UNESITE VRIJEDNOST OPTERECENJA KAO REALAN BROJ'
WRITE(6,*)'VRIJEDNOST OPTERECENJA Q='
READ(5,2)Q
2 FORMAT(F 6.2)
R=Q*L/2
WRITE(6,3)R

PT
3 FORMAT(/,1X,'REAKCIJE',/,10X,'Av=Bv=',F 8.2,' kN')
WRITE(6,*)'MOMENTI SAVIJANJA NA DESETINAMA RASPONA'
DO 10 I=0,10

mr. Rašid Hadžović, dipl.inž.građ.


M=R*(I*L/10)-Q*(I*L/10)**2/2
WRITE(6,4)I,M
4 FORMAT(10X,'M',I2,'=',F 10.2,' kNm')
10 CONTINUE
WRITE(6,*)'TRANSVERZALNE SILE NA DESETINAMA RASPONA'
DO 20 K=0,10
T=R-Q*(K*L/10)
WRITE(6,5)K,T
20 CONTINUE
5 FORMAT(10X,'T',I2,'=',F 10.2,' kN')
STOP
RI
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 54


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
PROBLEMI ZA VJEŽBU
RI
SK

Zbirka riješenih zadataka 55


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

PROBLEMI ZA VJEŽBU

Problem 1: Za dati program napisan u FORTRANU napisati izlazne podatke.

INTEGER A,B,C,D
A=3
B=2
C=4

A
D=1
CALL DENE(A,B,C,D)
WRITE(*,10)A,B,C,D
10 FORMAT(/,4(I5,3X))
STOP
END
SUBROUTINE DENE(C,D,B,A)

PT
INTEGER A,B,C,D
I=A+B+C+D
K=A*B

mr. Rašid Hadžović, dipl.inž.građ.


WRITE(*,10)A,B,C,D,I,K
10 FORMAT(/,4(I5,3X))
RETURN
END

Problem 2: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati


dijagram toka.
RI
INTEGER A,B,C,D
A=3
B=2
C=4
D=1
CALL DENE(A,B,C,D)
CALL ALT(C,D,B,A)
WRITE(*,10)A,B,C,D
10 FORMAT(/,4(I5,3X))
STOP
END
SK

SUBROUTINE DENE(C,D,B,A)
INTEGER A,B,C,D
I=A+B+C+D
K=A*B
WRITE(*,10)A,B,C,D,I,K
10 FORMAT(/,4(I5,3X))
CALL ALT(I,K,A,B)
RETURN
END
SUBROUTINE ALT(I,K,A,D)
INTEGER A,D
J=K+A+D
I=J
D=I*J
WRITE(*,10)I,J,K,A,D
10 FORMAT(/,3(I5,3X))
RETURN
END

Zbirka riješenih zadataka 56


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Problem 3: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati


dijagram toka.

INTEGER X1,X2
X1=4
X4=6
WRITE(*,10)X1,X2
10 FORMAT (1X,I4)

A
CALL ALT (X1,X2)
WRITE(*,10)X1,X2
STOP
END
SUBROUTINE ALT(A,B)
INTEGER A,B
X1=A+B

PT
X2=A*B
A=A*B
B=A+5

mr. Rašid Hadžović, dipl.inž.građ.


WRITE(*,10)A,B
10 FORMAT (1X,I4)
RETURN
END

Problem 4: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati


dijagram toka.
RI
INTEGER X1,X2
X1=4
X4=6
WRITE(*,10)X1,X2
10 FORMAT (1X,I4)
CALL ALT (X1,X2)
X1=X1+X2
CALL ALT(X2,X1)
WRITE(*,10)X1,X2
STOP
SK

END
SUBROUTINE ALT(A,B)
INTEGER A,B
X1=A+B
X2=A*B
A=A*B
B=A+5
WRITE(*,10)A,B
10 FORMAT (1X,I4)
WRITE(*,15)X1,X2
15 FORMAT (1X,F7.2)
RETURN
END

Zbirka riješenih zadataka 57


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Problem 5: Za dati program napisan u FORTRANU nacrtati dijagram toka.

C
C PROGRAM ZA KORISTENJE FUNKCIJA POMOCU POTPROGRAMA
C
EXTERNAL SIN1,COS1,TAN1
WRITE(*,5)
5 FORMAT (1X,'UGAO',T17,'SINUS',T31,'KOSINUS',T46,'TANGENS',/,1X,
+ '----',T17,'-----',T31,'-------',T46,'-------')

A
DO 10 I=1,90
X=FLOAT(I)*1.745329E-2
CALL PRORACUN(SIN1,X,S)
CALL PRORACUN(COS1,X,C)
CALL PRORACUN(TAN1,X,T)
WRITE(*,20)I,S,C,T
20 FORMAT(1X,I3,T15,F7.3,T30,F7.3,T45,F7.3)
10 CONTINUE

PT
STOP
END

mr. Rašid Hadžović, dipl.inž.građ.


SUBROUTINE PRORACUN(FUNC,Y,REZULTAT)
REZULTAT=FUNC(Y)
RETURN
END
FUNCTION SIN1(X)
SIN1=SIN(X)
RETURN
END

FUNCTION COS1(X)
COS1=COS(X)
RI
RETURN
END

FUNCTION TAN1(X)
TAN1=TAN(X)
RETURN
END

Ispis na ekranu
SK

Zbirka riješenih zadataka 58


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RI
SK

Zbirka riješenih zadataka 59


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
RI
SK

C PRORACUN ARCSINUS-a, ARCKOSINUS-a I ARCTANGENS-a


Zbirka riješenih zadataka 60
Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

Problem 6: Za dati program napisan u FORTRANU nacrtati dijagram toka.


C PRORACUN ARCSINUS-a, ARCKOSINUS-a I ARCTANGENS-a
C
WRITE(*,10)
10 FORMAT(1X,T10,'UGAO',T20,'ARCSINUS',T35,'ARCKOSINUS',T50,
+ 'ARCTANGENS',/,1X,T10,'----',T20,8('-'),T35,10('-'),T50,10('-'))
DO 20 I=0,90,5
X=I*1.745329E-2
S=ASIN(X)

A
C=ACOS(X)
T=ATAN(X)
WRITE(*,15)I,S,C,T
15 FORMAT(1X,T10,I3,T19,F10.7,T35,F10.7,T50,F10.7)
20 CONTINUE
STOP
END

PT
Ispis na ekranu

mr. Rašid Hadžović, dipl.inž.građ.


RI
Problem 7: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati
dijagram toka.
SK

Fortran

INTEGER BROJ(5,5),ZBI
WRITE(*,*)'RJESENJE ZADAATKA'
WRITE(*,*)'UNESITE ZBI'
READ(5,1)ZBI
1 FORMAT(I3)
DO 10 I=1,5
DO 10 J=1,5
BROJ(I,J)=0
IF(I.EQ.J)BROJ(I,J)=ZBI
10 CONTINUE
WRITE(*,30)((BROJ(I,J),J=1,5),I=1,5)
30 FORMAT(/,5(I2,4X),/)
STOP
END

Zbirka riješenih zadataka 61


Programiranje i numeričke metode - FORTRAN
Univerzitet «Džemal Bijedić» u Mostaru
Građevinski fakultet
Programiranje i numeričke metode viši asistent mr. Rašid Hadžović, dipl.inž.građ.

A
PT
mr. Rašid Hadžović, dipl.inž.građ.
LITERATURA:

1. Cezmi Orkun: Fortran 77, Ornas Yayinlari 1994.


2. Philip Crookall: Programiranje za početnike, Tehnička knjiga 1983.
RI
SK

Zbirka riješenih zadataka 73


Programiranje i numeričke metode - FORTRAN

You might also like