You are on page 1of 20

PROGRAMSKE STRUKTURE

LINIJSKE PROGRAMSKE STRUKTURE

1. NAREDBA
2. NAREDBA

n. NAREDBA
Linijska struktura

NOVEMBAR 2005

Zadatak: Sastaviti program koji za zadate vrednosti x i y,


izraunava vrednost funkcije

F ( x , y ) = e 2 x sin( 3 y x )
10 FORMAT(UNESITE VREDNOST ZA X I Y:)
20 FORMAT(REZULTAT F(X,Y)= , E13.6)
WRITE(*,10)
READ(*,*) X,Y
F=EXP(-2.*X)*SIN(3.Y-X)
WRITE(*,20) F
STOP
END
Nenad Grujovi / RAUNARSKI ALATI

RAZGRANATE PROGRAMSKE STRUKTURE


Naredba bezuslovnog prelaska:
GO TO n
1. NAREDBA

n - obeleje naredbe na koju se vri


prelazak
Primer:

2. NAREDBA

3. NAREDBA

4. NAREDBA

GO TO 20

Naredbe uslovnog prelaska:

Razgranata struktura

NOVEMBAR 2005

blokovski uslovni prelazak


logiki uslovni prelazak
aritmetiki uslovni prelazak
izraunati uslovni prelazak
dodeljeni uslovni prelazak

Nenad Grujovi / RAUNARSKI ALATI

Relacijski izraz:
sastavljen od dva aritmetika ili dva znakovna izraza izmeu kojih se pie relacijski znak
>

<

.GT.
.GE.
.LT.
.LE.
.EQ.
.NE.

Vrednost relacijskog izraza je logika konstanta (.TRUE. Ili .FALSE.)!


Primeri:
A.LT.(B-4.2)
C.LT.PETROVIC'

NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

Logiki uslovni prelazak:

IF(i) naredba

Primer 1:

Primer 2:

A>B

DA

C=A+B

NE

Logiki uslovni prelazak

x>0

y = x2

x=0

y = 2x

x>0

y=x

IF(X.GT.0.)Y=X**2
IF(X.EQ.0)Y=2.*X
IF(X.LT.0.)Y=X
Primer 3:
TOL=1.E-10

IF(A.GT.B) C=A+B
IF((A-B).LT.TOL)
IF(ABS(A-B).LT.TOL)...
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

Aritmetiki uslovni prelazak:

IF(a) n1,n2,n3

a - aritmetiki izraz
n1, n2, n3 - obeleja izvrnih naredbi u programu

a<0

a>0

a
a=0

n1

Naredba nastavljanja:

B1

n2

B2

n3

B3

n CONTINUE

Primer:
10 CONTINUE
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

Zadatak: Napisati program za izraunavanje funkcije:

x1 + x2

y = x1 x2
x x
1 2

NOVEMBAR 2005

x1 < x2
x1 = x2
x1 > x2

PRINT *,UNESITE X1 I X2
READ(*,*)X1,X2
IF(X1-X2) 20,30,40
20 CONTINUE
Y=X1+X2
GO TO 50
30 CONTINUE
Y=X1*X2
GO TO 50
40 CONTINUE
Y=X1-X2
50 CONTINUE
WRITE(*,10)Y
10 FORMAT( Y=,F10.3)
END

Nenad Grujovi / RAUNARSKI ALATI

Blokovski uslovni prelazak:


Uslov po kojem se vri prelazak predstavlja logiki izraz i ija vrednost moe biti:
.TRUE. - izvrava se blok naredbi B1 koji sledi iza naredbe prelaska IF
.FALSE. - izvrava se blok naredbi B2 koji sledi iza naredbe prelaska IF

NE

IF(I) THEN
B1

DA
B1

B2

ELSE
B2
END IF

Struktura IFTHENELSE

NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

NE

IF(I) THEN

DA

IF(I) THEN

B1

B1

B1

ELSE
END IF

END IF

Struktura IFTHEN
Primeri:

a > b c = a b
a b c = a+b
IF (A.GT.B)THEN
C=A*B
ELSE
C=A+B
ENDIF

NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

a > b c = a b
IF(A.GT.B)THEN
C=A*B
ENDIF

Zadatak: Koristei naredbe blokovskog uslovnog prelaska definisati kategoriju vrednosti robe
prema priloenoj tabeli:

1. REENJE

Kategorija
IC
1
2
3
4

IF(V.LE.50.0)THEN
IC=1
ELSE
IF(V.LE.125.0)THEN
IC=2
ELSE
IF(V.LE.200.0)THEN
IC=3
ELSE
IC=4
ENDIF
ENDIF
ENDIF
NOVEMBAR 2005

Vrednost robe
V
V 50.0
50.< V 125.0
125.0< V 200.0
200.< V

2. REENJE
IF(V.LE.50.)THEN
IC=1
ELSE IF(V.LE.125.)THEN
IC=2
ELSE IF(V.LE.200.)THEN
IC=3
ELSE IF(V.GT.200.)THEN
IC=4
ENDIF

Nenad Grujovi / RAUNARSKI ALATI

Zadatak: Za zadate vrednosti a i b, napisati deo programa koji izraunava vrednost c, prema
sledeoj formuli

a b,

c = a b,
a + b,

1. REENJE

2. REENJE

IF(A.GT.B)THEN
C=A-B
ELSE
IF(A.LT.B)THEN
C=A*B
ELSE
C=A+B
ENDIF
ENDIF

IF(A.GT.B)THEN
C=A-B
ELSE
IF(A.LT.B)THEN
C=A*B
ENDIF
IF(A.EQ.B)C=A+B
ENDIF

NOVEMBAR 2005

a>b
a<b
a=b
3. REENJE
IF(A.GT.B)THEN
C=A-B
ELSE IF(A.LT.B)THEN
C=A*B
ELSE
C=A+B
ENDIF

Nenad Grujovi / RAUNARSKI ALATI

10

Naredba viestrukog prelaska:

GO TO (n1 , n2,,ni) , m

n1 , n2, - lista obeleja izvrnih naredbi na koje se moe izvriti prelazak


m - celobrojni izraz
GO TO (n1,n2,,ni),m
m[1,i ]

B0

B1

B0
GO TO n

n1 CONTINUE
B1
GO TO n

Bi

.
.
.
ni CONTINUE
BI
GO TO n
n CONTINUE
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

11

Zadatak: Napisati program za izraunavanje vrednosti y prema formuli

x1 + x2 , k = 1

y = x1 * x2 , k = 2
x x , k = 3
1 2

NOVEMBAR 2005

PRINT *,UNESITE X1,X2 I K


READ(*,*)X1,X2,K
GO TO(20,30,40),K
PRINT *, POGRESNO UNETA VREDNOST ZA K
STOP
20 CONTINUE
Y=X1+X2
GO TO 50
30 CONTINUE
Y=X1*X2
GO TO 50
40 Y=X1-X2
50 CONTINUE
PRINT *, Y=,Y
STOP
END

Nenad Grujovi / RAUNARSKI ALATI

12

CIKLINE STRUKTURE
DO n i=m1,m2[,m3]
DO - slubena re
n - obeleje jedne izvrne naredbe koja predstavlja poslednju naredbu ciklusa
i - celobrojna ili realna promenljiva
m1,m2,m3 - celobrojni ili realni aritmetiki izrazi (ako se m3 ne navede uzima se m3=1)
K<0

DA

i = m1

m3 > 0

m1 m2

m3 < 0

m1
m1+m3
m1+2m3
...

TELO
CIKLUSA

i=m1+(K-1)m3
i = i + m3

m1 m2

k = int(( m2 m1 ) / m3 + 1 )

i >m2

k 0 ne prolazi se kroz telo ciklusa

Prikaz ciklusa prema definiciji DO-naredbe


NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

13

i=m1, m2, [m3]


i=m1, m2, [m3]

TELO
CIKLUSA

TELO
CIKLUSA

DO n i=m1,m2,m3
telo ciklusa
n CONTINUE

Ciklusi sa DO naredbom
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

14

STRUKTURE PODATAKA - NIZOVI


Niz - skup podataka istog tipa
Primeri u matematici: elementi vektora i matrica

Xi

A ai , j

{X1 , X 2 ,...X n }
a11 a12
a
a
21 22
...
...

an1 an 2

... a1n
... a2n

...

... ann

IME NIZA I ELEMENTI NIZA


X

MATRIC

AA

AA(1,2) - lan 1,2

Operacije sa lanovima niza:


X - niz

A - matrica
NOVEMBAR 2005

X(I) - i-ti lan niza


X(I+1)

X(3)=(X(1)+X(2))/2.0

A(I,J) - lan ai,j

A(I,J)=C*A(I-1,J+2)

Nenad Grujovi / RAUNARSKI ALATI

15

DIMENZIJE NIZA
DIMENSION ime(dimenzija) [ ,ime(dimenzija) ]
ime - ime niza
dimenzija - spisak granica pojedinih dimenzija niiza meusobno razdvojene zarezima
granice - [donja:]] gornja (ako nije navedena donja, podrazumeva se 1)
Primer:
DIMENSION A(10), B(-3:3), C(10,10)
Nain registrovanja nizova u memoriji:
Jednodimenzionalni niz DIMENSION X(10) uva se u obliku niza
X(1),X(2),X(3),,X(10)
Matrica DIMENSION A(3,4) uva se u obliku niza kolona po kolona
A(1,1), A(2,1), A(3,1), A(1,2), A(2,2), A(3,2), A(1,3), A(2,3),...
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

16

Deklaracija tipa niza:


Vai unutranja deklaracija, po kojoj su nizovi ija imena poinju na I, J, K, L, M i N
nizovi celobrojnih vrednosti, a nizovi ija imena poinju ostalim slovima abecede - nizovi realnih
podataka.
Primeri:

INTEGER A(20)

IA(20)

A(20)

Uitavanje elemenata jednodimenzionalnih nizova:


1.

READ(*,10) X(1), X(5), X(8)

2.

DO 10 I=1,12
READ(*,*)X(I)
10 CONTINUE

3.

READ(*,*)(X(I),I=1,12)

4.

DIMENSION X(20)
READ(*,*)X

NOVEMBAR 2005

( ime(i), i=m1,m2 [,m3] )


( ime(i), i=m1,m2 ) - m3=1

Nenad Grujovi / RAUNARSKI ALATI

17

Uitavanje i tampanje dvodimenzionalnih nizova:


READ(5,10) A(1,1), A(2,3), A(4,4)
WRITE(3,20) A(1,1), A(2,3), A(4,4)
( ( ime( i1,i2 ), i1=m1(1),m2(1) ), i2=m1(2),m2(2) )
ime - ime dvodimenzionalnog niza
i1, i2 - imena celobrojnih promenljivih
m1(1), m2(1), m1(2), m2(2) - celobrojni izrazi
DIMENSION A(3,4)
READ(1,10)((A(I,J),I=1,3),J=1,4)

bre se menja indeks i

Redosled u listi: A(1,1), A(2,1), A(3,1), A(1,2), A(2,2),

I=1,2,3; J=1

WRITE(3,10)((A(I,J),I=1,3),J=1,4)
10 FORMAT( ,3E12.4)
tampanje kolona po kolona
WRITE(3,20)((A(I,J),J=1,4),I=1,3)
20 FORMAT( ,4E12.4)
tampanje vrsta po vrsta
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

18

Primer1:
NALAENJE SUME ELEMENATA NIZA
DIMENSION X(20)
DO 10 I=1,20
READ(*,*)X(I)
10 CONTINUE
SUMA=0.0
DO 20 I=1,20
SUMA=SUMA+X(I)
20 CONTINUE
WRITE(*,*) SUMA=, SUMA
STOP
END

NOVEMBAR 2005

Primer2:
SABIRANJE MATRICA
DIMENSION A(3,4), B(3,4), C(3,4)
READ(1,10)((A(I,J),J=1,4),I=1,3)
10 FORMAT(4E12.4)
READ(1,10)((B(I,J),J=1,4),I=1,3)
DO 20 I=1,3
DO 30 J=1,4
C(I,J)= A(I,J)+B(I,J)
30 CONTINUE
20 CONTINUE
WRITE(3,40)((C(I,J),J=1,4),I=1,3)
40 FORMAT( ,4E12.4)
STOP
END

Nenad Grujovi / RAUNARSKI ALATI

19

Primer3:
MNOENJE MATRICA
DIMENSION A(4,5), B(5,4), C(4,4)
READ(1,10)((A(I,J),I=1,4),J=1,5)
10 FORMAT(4E12.4)
READ(1,20 )((B(I,J),J=1,4),I=1,5)
20 FORMAT(4E12.4)
DO 30 I=1,4
DO 40 J=1,4
C(I,J)=0.0
DO 50 K=1,5
C(I,J)=C(I,J)+A(I,K)*B(K,J)
50 CONTINUE
40 CONTINUE
30 CONTINUE
WRITE(3,60) )((C(I,J),I=1,4),J=1,4)
60 FORMAT( ,4E12.4)
STOP
END
NOVEMBAR 2005

Nenad Grujovi / RAUNARSKI ALATI

20

You might also like