Top Banner
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.
64

FORTRAN Zbirka Zadataka Rasid Hadzovic DL

Oct 27, 2014

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

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.

Page 2: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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.

SKRI

PTA

Rasid
Note
Nadam se da će ova skripta pomoći korisnicima da bolje razumiju programski jezik FORTRAN. Autor
Page 3: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 1 Programiranje i numeričke metode - FORTRAN

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 5. Zadaci za seminarski rad 66 6. Literatura 73

SKRI

PTA

Rasid
Note
Accepted set by Rasid
Rasid
Note
Accepted set by Rasid
Page 4: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 2 Programiranje i numeričke metode - FORTRAN

PROGRAMIRANJE U FORTRANU

SKRI

PTA

Page 5: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 3 Programiranje i numeričke metode - FORTRAN

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).

DIJAGRAM TOKA PROGRAMA Definicija Dijagrami toka se koriste za grafičko predstavljanje redosljeda svih radnji, koje su sastavni dio nekog programa: početka, učitavanja podataka, operacija, poređenja, štampanja rezultata, pozivanja potprograma i završetka. 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

ili Učitavanje podataka u program

READ, DATA, OPEN

Operacija - rad sa podacima

Zavisno od zadatka koriste se različite

komande

ili

Štampanje podataka i rezultata na ekranu ili na štampaču

WRITE, PRINT

Poređenje – ispunjenje uslova IF

Početak i kraj programa START , STOP i END

Povratak iz potprograma u glavni program RETURN

Pozivanje potprograma i potprogram

FUNCTION ili CALL SUBROUTINE

SKRI

PTA

Page 6: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 4 Programiranje i numeričke metode - FORTRAN

Dijagram toka Objašnjenje

Učitavanje podataka

Potrebne podatke unosimo sa tastature ili iz nekog poznatog FILE-a. U Fortranu koristimo naredbu READ(*,*) ili READ(5,*). U slučaju da se podaci unose u program iz nekog FILE-a onda se koristi naredba OPEN.

Operacija U ovu grupu spadaju sve komande, koje obavljaju neku vrstu operacije u zavisnosti od onog što se traži u zadatku.

Štampanje podataka

Ispis podataka i rezultata na ekranu ili na štampaču. Vrši se pomoću naredbe WRITE(*,*) ili WRITE(6,*). Oznaka * ili 6 znači da se podaci i rezultati ispisuju na ekranu. Oznaka * poslije zareza znači da je naredba unešena u slobodnom formatu.

Poređenje – ispunjenje

uslova

Najčešće korištena funkcija je IF (ako – u prevodu sa engleskog jezika) koja nam služi da bi postavili pitanje neke operacije i da bi na to pitanje imali dva moguća odgovora DA i NE. Kasnije će biti više riječi o funkciji IF.

START, STOP i END

Komande koje se stavljaju u dijagram toka da bi se označio početak i kraj programa.

Pozivanje potprograma

Znak koji nam služi za pozivanje potprograma. Razlikujemo 2 potprograma: FUNCTION (funkcijski) i CALL – SUBROUTINE (opšti).

RETURN Komanda koja se koristi da bi se izvršio povratak iz potprograma u glavni 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. 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 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.

SKRI

PTA

Page 7: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 5 Programiranje i numeričke metode - FORTRAN

OPERACIJE U FORTRANU

Aritmetičke operacije Oznake u FORTRAN – u Stepenovanje **

Dijeljenje / Množenje * Sabiranje +

Oduzimanje -

Redoslijed korištenja aritmetičkih operacija: R.br. Definicija Fortran 1. zagrade ( ) 2. stepenovanje ** 3. množenje i dijeljenje * , / 4. sabiranje i oduzimanje + , -

Pisanje formula

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

C+ (A+B)/C

( )( )A+BD

C⋅ ((A+B)*C)**D 2 4

2B A C

A+ ⋅ ⋅⋅

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

Zavisne operacije

Značenje Prikaz u Fortranu

Jednako = .EQ. (Equally) Nije jednako < > .NE. (Not Equally)

Manje < .LT. (Little) 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

SKRI

PTA

Page 8: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 6 Programiranje i numeričke metode - FORTRAN

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 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)

WRITE Naredba za štampanje ili ispis podataka i rezultata na ekranu ili na štampaču. 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: 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.

Promjenljiva FORMAT u Fortranu

Naredba Fortrana 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 ) – decimalan i eksponencijalan Gn.m READ/WRITE

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.

SKRI

PTA

Page 9: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 7 Programiranje i numeričke metode - FORTRAN

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 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. Grafički prikaz formata I4:

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 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)

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)

±

SKRI

PTA

Page 10: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 8 Programiranje i numeričke metode - FORTRAN

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 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.31234556.958 .123E+07 ********

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

-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: 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) 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

± .

SKRI

PTA

Page 11: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 9 Programiranje i numeričke metode - FORTRAN

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

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” c) BLOK “IF”

a) LOGIČKI “IF”

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. .NE. .NOT. .GT. <Logički izraz> = <Izraz> .GE. <Izraz> .AND. <Izraz> .LT. .OR. .LE. promjenljiv <Izraz> : nepromjenljiv Aritmetički izraz <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:

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

K=5

DA NE SKRI

PTA

Page 12: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 10 Programiranje i numeričke metode - FORTRAN

Rezultat > 0 < 0

= 0

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

SKRI

PTA

Page 13: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 11 Programiranje i numeričke metode - FORTRAN

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

c) BLOK “IF” <Broj izraza> IF (<Uslov>) THEN ----------------------- ----------------------- ELSE ----------------------- ----------------------- 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 preusmjerila tok programa. Primjer:

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

5 GOTO 50 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.

SKRI

PTA

Page 14: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 12 Programiranje i numeričke metode - FORTRAN

Primjer: K=5 IF(K.EQ.5) THEN WRITE(6,*)’TACNO’ WRITE(6,*)’ISHOD POZITIVAN’ ELSE WRITE(6,*)’NETACNO’ WRITE(6,*)’ISHOD NEGATIVAN’ 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: TACNO ISHOD POZITIVAN dok će u suprotnom biti: 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 ------- ------- BLOK X ------- ELSE IF [<Uslov 1>] THEN ------- ------- BLOK Y ------- ELSE IF [<Uslov 2>] THEN ------- ------- 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 .

SKRI

PTA

Page 15: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 13 Programiranje i numeričke metode - FORTRAN

b) IF blokovi – proces rada: iznutra ka vani

[<broj reda>] IF [<Uslov>] THEN ------- ------- BLOK A ELSE IF [<Uslov 1>] THEN ------- ------- BLOK B ELSE IF [<Uslov 2>] THEN ------- ------- BLOK C ELSE ------- ------- BLOK C1 ENDIF ENDIF ------- ------- BLOK B1 ELSE ------- ------- BLOK A1 ENDIF

Redoslijed ispunjavanja uslova: <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. Tačan blok IF IF (<Uslov>) THEN

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

ELSE ------- ------- ------- ------- ------- -------

ENDIF

SKRI

PTA

Page 16: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 14 Programiranje i numeričke metode - FORTRAN

Netačan blok IF

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

ELSE ------- ------- ------- -------

ENDIF

3) DO – CONTINUE petlja Naredba koja se koristi za ponovno učitavanje varijabli nekog niza. [<broj reda>] DO <Sn> <povratna varijabla> = <prva> , <kraj> [,<korak rasta>]

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

<Sn> [ CONTINUE ] <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 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.

SKRI

PTA

Page 17: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 15 Programiranje i numeričke metode - FORTRAN

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 WRITE(6,25) I

25 FORMAT(1X,I2,’.PUTA RADIO’) 20 CONTINUE

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

jednom.

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

SKRI

PTA

Page 18: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 16 Programiranje i numeričke metode - FORTRAN

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

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

prije dolaska do naredbe DO tj. prije petlje mora im se prethodno zadati neka vrijednost.

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

5 DO 10 I = N,M ----------

---------- 10 CONTINUE

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

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: 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

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

SKRI

PTA

Page 19: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 17 Programiranje i numeričke metode - FORTRAN

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)

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

20 CONTINUE WRITE(6,25)ZBIR 25 FORMAT(1X,’ZBIR BROJEVA:’,I5)

STOP END

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

petlje.

MOGUĆE DO ................... GOTO ili IF

................... CONTINUE

NEMOGUĆE DO..................

.................... .................... CONTINUE

GOTO ili IF

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

MOGUĆE

SKRI

PTA

Page 20: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 18 Programiranje i numeričke metode - FORTRAN

NEMOGUĆE DO 10

DO 20

DO 30 .................... .................... .................... 30 CONTINUE 10 CONTINUE

20 CONTINUE

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

DO 10 K 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.

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:

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).

SKRI

PTA

Page 21: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 19 Programiranje i numeričke metode - FORTRAN

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:

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.

RETURN: Naredba za povratak iz potprograma u glavni program. 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 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 -------- 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.

SKRI

PTA

Page 22: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 20 Programiranje i numeričke metode - FORTRAN

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

u tom potprogramu. Primjer: ← S = F(A,B) ↑ ↓ ↓ ↑ ↓ ↓ 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 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 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.

SKRI

PTA

Page 23: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 21 Programiranje i numeričke metode - FORTRAN

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:

------- CALL PRIMJER (A,B,C,N,...) ------- ↑ ↑ ↓ ↓

------- ↑ ↑ ↓ ↓ SUBROUTINE PRIMJER (D,E,F,M...) ------- ------- RETURN 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 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.

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.

SKRI

PTA

Page 24: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 22 Programiranje i numeričke metode - FORTRAN

RIJEŠENI ZADACI

SKRI

PTA

Page 25: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 23 Programiranje i numeričke metode - FORTRAN

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

Rješenje: Dijagram toka

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 STOP END Ispis na ekranu

START

A

B

A, B

STOP

END

SKRI

PTA

Page 26: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 24 Programiranje i numeričke metode - FORTRAN

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

START

A

B

S

STOP

END

S=(A+ZBI)*B

ZBI

INTEGER ZBI

SKRI

PTA

Page 27: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 25 Programiranje i numeričke metode - FORTRAN

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

Rješenje:

Dijagram toka

Fortran 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) 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

START

A

B

A

STOP

END

A>B DA NE

B

SKRI

PTA

Page 28: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 26 Programiranje i numeričke metode - FORTRAN

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

Rješenje:

Dijagram toka

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) 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

START

A

B

SUMA, PROIZVOD

STOP

END

SUMA=A+B

PROIZVOD=A*B

SKRI

PTA

Page 29: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 27 Programiranje i numeričke metode - FORTRAN

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

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' 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

START

A

B

S=A+B

P=A*B

S > P NE DA

S P

STOP

END

SKRI

PTA

Page 30: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 28 Programiranje i numeričke metode - FORTRAN

Ispis na ekranu

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

Dijagram toka

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

START

A

B

B=0 DA

C

STOP

END

C=A/B

SKRI

PTA

Page 31: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 29 Programiranje i numeričke metode - FORTRAN

Ispis na ekranu

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

Rješenje:

x1,2 = 2 4

2b b ac

a− ± −

D= 2 4b ac− 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

B,C

A

A=0 DA

1 2*BXA

−=

D

IMAM KOMPLEKSNA RJESENJA

1 2*B DX

A− −

=

1 2*B DX

A− +

= IMAM DVOSTRUKO RJESENJE, X=

IMAM DVA RJESENJA X1= , X2= STOP

END

2 4* *D B A C= −

SKRI

PTA

Page 32: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 30 Programiranje i numeričke metode - FORTRAN

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' 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 D=B**2-4*A*C IF(D)20,30,40 20 WRITE(6,2) 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 END Ispis na ekranu

SKRI

PTA

Page 33: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 31 Programiranje i numeričke metode - FORTRAN

8) Učitati niz od N elemenata i odštampati ga u glavnom programu. Rješenje: Dijagram toka

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

DIMENSION A (100)

UNESITE BROJ ELEMENATA

NIZA

START

N

UČITAJTE ELEMENTE

NIZA A

DO 10 I = 1,N

A (I)

10

ELEMENTI NIZA A SU:

DO 20 I = 1,N

A (I)

20

STOP

END

SKRI

PTA

Page 34: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 32 Programiranje i numeričke metode - FORTRAN

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 Ispis na ekranu

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: Dijagram toka

START

DIMENSION A(20)

DO 10 I=1,20

A(I)

10

P=1

S=0

S=S+A (2*I)

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

DO 20 I=1,10

20

S,P

STOP

END

SKRI

PTA

Page 35: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 33 Programiranje i numeričke metode - FORTRAN

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 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 DO 2 I=1,5 S=S+A(2*I) P=P*A(2*I-1) 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

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:

SKRI

PTA

Page 36: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 34 Programiranje i numeričke metode - FORTRAN

Dijagram toka

Fortran C UCITATI NIZ OD 10 ELEMENATA, ONDA FORMIRATI DRUGI NIZ B TAKO DA SE 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

SKRI

PTA

Page 37: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 35 Programiranje i numeričke metode - FORTRAN

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 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) PMIN=B(1) DO 30 I=1,K IF(PMAX.LT.B(I))THEN 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 Ispis na ekranu

SKRI

PTA

Page 38: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 36 Programiranje i numeričke metode - FORTRAN

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

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'

START

DIMENSION A(20)

DO 10 I=1,20

DO 15 J=I+1,20

DO 20 I=1,19

A(D)

10

A(I)<A(J)

C=A(I)

A(I)=A(J)

A(J)=C

15

20

A(J)

STOP

END

DA

NE

SKRI

PTA

Page 39: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 37 Programiranje i numeričke metode - FORTRAN

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(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) 30 CONTINUE STOP Ispis na ekranu

SKRI

PTA

Page 40: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 38 Programiranje i numeričke metode - FORTRAN

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)

DO 10 I=1,10

A(10)

DO 30 J=I + 1,10

A(I)>A(J)

30

20

DO 40 I=1,5

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

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

40

STOP

END

10

C = A ( I )

A (I) = A (J)

A(J) = C

DO 20 I=1,9

DO 50 I=1,10

NE

DA

50

B(I) SKRI

PTA

Page 41: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 39 Programiranje i numeričke metode - FORTRAN

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 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) A(I)=A(J) A(J)=C ELSE 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) 40 CONTINUE STOP END Ispis na ekranu

SKRI

PTA

Page 42: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 40 Programiranje i numeričke metode - FORTRAN

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

jkkiji BAC ,,, ⋅= Rješenje: Dijagram toka:

Fortran

START

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

DO 10 I=1,4

DO 10 I=1,4

A (I)

10

DO 20 I=1,4

DO 20 J=1,4

B(I)

20

DO 50 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

30

50

C(I,J)

STOP

END

SKRI

PTA

Page 43: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 41 Programiranje i numeričke metode - FORTRAN

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,')') 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 6 FORMAT('B(',I1,',',I1,')') READ(5,2)B(I,J) 2 FORMAT(F8.2,F8.2) 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) 7 FORMAT(F10.2,F10.2) 30 CONTINUE STOP END

Ispis na ekranu

SKRI

PTA

Page 44: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 42 Programiranje i numeričke metode - FORTRAN

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

Rješenje: Dijagram toka:

Fortran

C NACI TRAG MATRICE A DIMENSION A(4,4) WRITE(*,*)'PROGRAM ZA RACUNANJE TRAGA 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 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

START

DIMENSION A(4,4)

DO 10 I=1,4

DO 10 J=1,4

A(I)

10

TRAG = 0

DO 20 I=1,4

TRAG=TRAG+ A(I,I)

20

TRAG

STOP

END

SKRI

PTA

Page 45: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 43 Programiranje i numeričke metode - FORTRAN

P. P.

FUNCTION F(A,B)

F= A+B

END

RETURN

Ispis na ekranu

15) U glavnom programu učitati varijable A i B i pozivom funkcijskog potprograma izračunati

sumu tih varijabli. Rješenje: Dijagram toka:

START

A

B

SUMA = F(A,B)

SUMA

STOP

END

SKRI

PTA

Page 46: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 44 Programiranje i numeričke metode - FORTRAN

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' 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 FUNCTION F(A,B) F=A+B RETURN END

Ispis na ekranu

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: Dijagram toka:

START

UNESITE NEPOZNATU X

Y

STOP

END

Y=F(X)

P.P.

F=X2

FUNCTION F(X)

X>5

X=5

F=X2+2 X<5

F=5X

RETURN

END

DA

DA

DA

NE SKRI

PTA

Page 47: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 45 Programiranje i numeričke metode - FORTRAN

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) 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 IF(X.LT.5)F=5*X RETURN END Ispis na ekranu – prvi način

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)

SKRI

PTA

Page 48: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 46 Programiranje i numeričke metode - FORTRAN

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 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 WRITE(6,*)'POSTO JE X<5 VRIJEDNOST FUNKCIJE JE F(X)=5*X' ENDIF ENDIF 10 RETURN END

Ispis na ekranu - drugi način

17) U glavnom programu učitati prvi, pa drugi broj kombinacije, te pozivom funkcijskog

potprograma izračunati kombinaciju: )!(!

!JIJ

IK−

=

Rješenje:

SKRI

PTA

Page 49: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 47 Programiranje i numeričke metode - FORTRAN

Dijagram toka:

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

P.P

INTEGER FUNCTION FAKT (L)

FAKT = 1

DO 10 N=1,L

FAKT = FAKT*N

10

RETURN

END

START

INTEGER A,B,C,FAKTI

I,J

A = FAKT (I)

B = FAKT (J)

C = FAKT (I-J)

K = A/ (B*C)

F,J,K

STOP

END

SKRI

PTA

Page 50: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 48 Programiranje i numeričke metode - FORTRAN

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

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

DO 10 I=1,10

X(I) ,Y(I)

10

XA =0,5

YA =1,0

DO 20 I = 1,10

20

DMAX=D(1)

DMIN=D(1)

DO 30 I = 1,10

DMAX<D(1)

DMIN>D(1)

DMIN = D (1)

30

DMAX,DMIN

STOP

END

P.P.

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

DUŽINA=SORT((A-C)**2(B-D)**2)

END

DMAX = D(1)

DA

NE

NE

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

RETURN

SKRI

PTA

Page 51: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 49 Programiranje i numeričke metode - FORTRAN

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(*,*)' ' 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 XA=0.5 YA=1.0 DO 20 I=1,10 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 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

SKRI

PTA

Page 52: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 50 Programiranje i numeričke metode - FORTRAN

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:

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

START

DIMENSION A (4,4)

DO 10 I = 1,10

DO 10 I = 1,10

A (I, J)

10

SUMA,PMAX, PMIN

STOP

END

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

P.P

DIMENSION B (4,4)

S = 0

DO 20 I = 1,4

DO 20 J = 1,4

I<J

20

PMAX=B(1,1)

M=1

N=1

DO 30 I = 1,4

DO 30 J=1,4

PMAX< B(I,J)

30

END

S=S+B(I,J)

PMAX=B(I,J)

M=I

N=J

RETURN

SUBROUTINE RACUN (B,S,M,N,PMAX) SK

RIPT

A

Page 53: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 51 Programiranje i numeričke metode - FORTRAN

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 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 S=S+B(I,J) ENDIF 20 CONTINUE 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 RETURN END

Ispis na ekranu

SKRI

PTA

Page 54: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 52 Programiranje i numeričke metode - FORTRAN

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:

Fortran

C SUMA ELEMENATA ISPOD GLAVNE DIJAGONALE DIMENSION A(4,4) WRITE(*,*)'PROGRAM ZA RACUNANJE SUME ELEMENATA ISPOD' 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

START

DIMENSION A(4,4)

DO 10 I=1,4

DO 10 J=1,4

A (I,J)

10

CALL RACUN (A, SUMA)

SUMA

STOP

END

P.P

SUBROUTINE RACUN (B,S)

DIMESION B(4,4)

S=0

DO 20 I=1,4

DO 20 J=1,4

I>J

20

END

S= S+B (I,J)

RETURN

SKRI

PTA

Page 55: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 53 Programiranje i numeričke metode - FORTRAN

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

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:

START

REAL M,T,Q,L

L

Q

R=Q*L/2

R

DO 10 I=0,10

2** 10* *10 2

I LI LM R Q

⎛ ⎞⎜ ⎟⎝ ⎠= −

M

10

DO 20 K=0,10

**10

I LT R Q= −

T

20

STOP

END

SKRI

PTA

Page 56: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 54 Programiranje i numeričke metode - FORTRAN

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 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 3 FORMAT(/,1X,'REAKCIJE',/,10X,'Av=Bv=',F 8.2,' kN') WRITE(6,*)'MOMENTI SAVIJANJA NA DESETINAMA RASPONA' DO 10 I=0,10 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 END

Ispis na ekranu

SKRI

PTA

Page 57: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 55 Programiranje i numeričke metode - FORTRAN

PROBLEMI ZA VJEŽBU

SKRI

PTA

Page 58: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 56 Programiranje i numeričke metode - FORTRAN

PROBLEMI ZA VJEŽBU Problem 1: Za dati program napisan u FORTRANU napisati izlazne podatke. 10 10

INTEGER A,B,C,D A=3 B=2 C=4 D=1 CALL DENE(A,B,C,D) WRITE(*,10)A,B,C,D FORMAT(/,4(I5,3X)) STOP END 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 FORMAT(/,4(I5,3X)) RETURN END

Problem 2: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati dijagram toka. 10 10 10

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 FORMAT(/,4(I5,3X)) STOP END 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 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 FORMAT(/,3(I5,3X)) RETURN END

SKRI

PTA

Page 59: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 57 Programiranje i numeričke metode - FORTRAN

Problem 3: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati dijagram toka. 10 10

INTEGER X1,X2 X1=4 X4=6 WRITE(*,10)X1,X2 FORMAT (1X,I4) CALL ALT (X1,X2) WRITE(*,10)X1,X2 STOP END SUBROUTINE ALT(A,B) INTEGER A,B X1=A+B X2=A*B A=A*B B=A+5 WRITE(*,10)A,B FORMAT (1X,I4) RETURN END

Problem 4: Za dati program napisan u FORTRANU napisati izlazne podatke i nacrtati dijagram toka. 10 10 15

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

SKRI

PTA

Page 60: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 58 Programiranje i numeričke metode - FORTRAN

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

+

PROGRAM ZA KORISTENJE FUNKCIJA POMOCU POTPROGRAMA

EXTERNAL SIN1,COS1,TAN1 WRITE(*,5) FORMAT (1X,'UGAO',T17,'SINUS',T31,'KOSINUS',T46,'TANGENS',/,1X, '----',T17,'-----',T31,'-------',T46,'-------') 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 FORMAT(1X,I3,T15,F7.3,T30,F7.3,T45,F7.3) CONTINUE STOP END SUBROUTINE PRORACUN(FUNC,Y,REZULTAT) REZULTAT=FUNC(Y) RETURN END FUNCTION SIN1(X) SIN1=SIN(X) RETURN END FUNCTION COS1(X) COS1=COS(X) RETURN END FUNCTION TAN1(X) TAN1=TAN(X) RETURN END

Ispis na ekranu

SKRI

PTA

Page 61: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 59 Programiranje i numeričke metode - FORTRAN

SKRI

PTA

Page 62: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 60 Programiranje i numeričke metode - FORTRAN

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

SKRI

PTA

Page 63: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 61 Programiranje i numeričke metode - FORTRAN

Problem 6: Za dati program napisan u FORTRANU nacrtati dijagram toka. C C 10 15 20

+

PRORACUN ARCSINUS-a, ARCKOSINUS-a I ARCTANGENS-a WRITE(*,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) C=ACOS(X) T=ATAN(X) WRITE(*,15)I,S,C,T FORMAT(1X,T10,I3,T19,F10.7,T35,F10.7,T50,F10.7) CONTINUE STOP END

Ispis na ekranu

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

Fortran 1 10 30

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

SKRI

PTA

Page 64: FORTRAN Zbirka Zadataka Rasid Hadzovic DL

mr.

Raš

id H

adžo

vić,

dip

l.inž

.gra

đ.

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đ.

Zbirka riješenih zadataka 73 Programiranje i numeričke metode - FORTRAN

LITERATURA:

1. Cezmi Orkun: Fortran 77, Ornas Yayinlari 1994. 2. Philip Crookall: Programiranje za početnike, Tehnička knjiga 1983.

SKRI

PTA