Professional Documents
Culture Documents
Osnovi Za Fortran
Osnovi Za Fortran
.
.
,
,
. ,
,
BASIC, FORTRAN, PASCAL, C . ,
,
,
, , .
.
.
1957
.
IBM 704 , ,
. Fortran
FORmula TRANslation,
,
.
1 / 36
1.1.
1966 ,
,
.
, 1966
,
66.
,
77 90.
,
77.
(ANSI) , 1980 ,
(ISO
1539).
Windows,
,
visual .
(CPU). visual
Microsoft Power Station
Intel , ,
Compac Visual Fortran
Intel AMD ,
desktop .
1.2.
-
,
.
- , ,
.
.
,
.
,
,
.
.
, ,
.
,
.
6 ,
(labels).
. ,
, ,
.
.
,
.
,
.
,
NASA.
DO
DO 15 I = 1,100
, (?), ,
DO 15 I = 1.100
3 / 36
-
,
. ,
DO15I 1.100
.
,
.
1.3. C JAVA?
C, C++ Java?
,
, , ,
. , e C
Java
,
.
77 90.
90 ,
,
.
,
.
77 ,
90.
77
,
.
2.
,
, Notepad Wordpad,
. ,
ASCII , source ().
,
.
compilers.
.
,
.
,
, ,
.
.
,
(flowchart).
,
.
, :
5 / 36
.
,
,
.
.
.
.
.
( )
.
,
1.
?
1:
x=1
3:
f2(x)
2:
4:
5:
6:
7:
8:
f1(x)
x, f1(x) f2(x)
x 1
x>10
7 / 36
x =1.0
y1=x2
y2=log(x)
x, y1, y2
x = x+1
x>10
1.
2.
3. a, b c
?
.
,
1:
3:
2:
4:
5:
6:
7:
.
.
S.
1:
a, b c.
3:
S a, b c.
2:
3.1:
4.1:
4.2:
5.1:
5.2:
4.
5.
6:
7:
S=0.
S=S+a+b+c
a<b
a<c nb=.
a>c nb=c.
a>b
b<c nb=b.
b>c nb=c.
S.
S nm .
9 / 36
b b
4. x, y z.
2 + x, y < 5
=
f =
g
2 x, y 5
.
,
f + z , x + y < 5
.
f + 2 z , x + y 5
x, y, z
y<5
f = 2-x
f=2+x
x+y < 5
g = f+2z
g =f+z
f,g
4.
5. x1 x2.
x1 + x2 , x1 < x2
=
y =
x1 x2 ,
x1 x2 .
x x , x > x
1
2
1 2
1. z
xi +1
=
z
1
xi + ,
xi
2
11 / 36
-
i=0,1,2,, x0= z + 1 , = xi +1 xi = 103 .
2.
?
3.
3.1.
, :
- : 0,1,2...9
X,Y,Z
- 26 :
,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,
- : = , ( ) - + . ' * /
3.2.
.
.
:
- INTEGER
- REAL
- COMPLEX
- LOGICAL
- LITERAL
3.2.1. INTEGER
.
+ -.
,
. -.
.
IMAX=12
IMIN=-234
INULA=0
, 4
(4*8=32 ), .
integer
, -32768, +32767.
3.2.2. REAL
.
. real
-.
real 11.
:
SUMA=1234.6
AMAX=12.0
BERI=-0.00123
BERI=-123E-05
SUMA=123.46E01
4 (4*8=32 ),
8 (8*8=64 ). real
2128 2127 .
3.2.3. LOGICAL
. 1 0,
TRUE FALSE .
IME=TRUE -
IME=FALSE -
13 / 36
-
4 logical
, 1 .
3.2.4. LITERAL
, . ,
.
IME=SKOPJE
IME=IZ05
,
4
(4*8=32 ).
4.
,
.
(),
.
.
.
- INTEGER
()
4
()
2
- REAL
- COMPLEX
16
- LOGICAL
- LITERAL
4.1.
. ,
:
- ,
- ,
- .
, real integer
.
, .
.
4.2.1. INTEGER
,
(I, J, K, L, M, N)
MAX=12
BAS=12 (POGRESNO !)
MAL23=436
ISUMA
,
! ,
INTEGER ALFA, BAS, ...
,
! ,
15 / 36
4.2.2. REAL
,
(I, J, K,
L, M, N)., :
FAMA
WINDO
AAE24
XING
:
.
REAL MAXI, MINI, JOT32
REAL 11 (4 ).
,
,
8 .
DOUBLE PRECISION ,
20 .
:
REAL*8
4.2.3. LOGICAL
,
. , logical:
LOGICAL A1, MANA, ISUMA, WINLA23
,
IMPLICIT LOGICAL*1 (V)
V
1 .
5.
-
.
:
+
**
17 / 36
-
:
:
.
.
:
3+8.45**2
2*7.12 - 34**0.5
2*(712-34)**0.5
(A+4*B)**2.5
.
A=J**K**L
A=J**(K**L)
,
.
A=B*C/D*E
A=((B*C)/D)*E
6.
,
.
__()
,
,
,
. ,
.
:
-
sin(x)
SIN(X)
cos(x)
COS(X)
tan(x)
TAN(X)
REAL
.
- a
ex
EXP(X)
REAL .
-
ln(x)
ALOG(X)=LOG(X)
log(x)
LOG10(X)
REAL .
SQRT(X)
REAL .
-
arctan(x)
arcsin(x)
arccos(x)
ATAN(X)
ASIN(X)
ACOS(X)
REAL .
-
sh(x)
ch(x)
SINH(X)
COSH(X)
19 / 36
-
tanh(x)
TANH(X)
REAL .
-
ABS(X)
REAL .
, , DOUBLE PRECISION,
D ,
.
:
DSIN(X)
DTANH(X)
DARSIN(X)
DTAN(X)
DEXP(X)
DABS(X)
DCOS(X)
DLOG(X)
DATAN(X)
REAL*8 .
.
MAX(A,B,)
MIN(A,B,)
MOD(I,J)
INT(X)
REAL(X)
I J.
.
.
g=
1 1 + sin ( x )
ln
2 1 cos ( x )
G=0.5*ALOG((1+SIN(X))/(1-COS(X)))
y=
sin p +1 ( x )
p+2
ln ( x )
z =
tanh ( x )
Y=SIN(X)**(P+1)/(P+2)
Z=(ALOG(X)/TANH(X))**1/3
13
3.
:
1 2 3 g 3 2
)
+
2
3
1 h
1 + x
a+b
y3
)
+x
c+d
2
2
) x y
13
1
ln 1
x
1 2
) sin arcsin x + +
2 4
2
3
) cos ( + ) + cot
sin 2 ( x ) cos ( x ) 2
)
+
3
x
8
x
12
7.
7.1. ()
.
. ,
,
, .
:
21 / 36
-
READ(i,n)
n FORMAT(S1,S2,...,SN)
:
i integer
. *.
READ.
n FORMAT-
.
. ,
READ .
, :
READ(*,100)MAX,IR,K,KOM
100
FORMAT(I4,I5,I2,I10)
4,5,2 10
()
integer.
READ(*,100)X,Y,Z
100
FORMAT(F10.5,F10.8,E11.5)
REAL,
FORMAT . X 10
5 , Y 10 8 ,
Z 11
() ,
, E .
,
READ(*,100)X,Y,Z
100
100
FORMAT(F10.5,F10.5,F10.5)
FORMAT(3F10.5)
.
READ(*,100)X,IMAX
100
FORMAT(F10.5,I5)
, , X REAL IMAX integer.
7.1.2.
,
,
. ,
READ(*,100)MAX
100
FORMAT(2)
MAX
- .
7.1.3.
DATA PARAMETER.
PARAMETER
PARAMETER (A=3.24,B=78.124)
A=3.24 B=78.124.
DATA
DATA X/10.3,23.45/
X
X(1)=10.3 X(2)=23.45.
23 / 36
7.1.4.
,
. .
104 . E-4 ,
1E 4 .
x y :
READ(*,100)X,Y
100
FORMAT(2E10.5)
F ,
100
FORMAT(2F10.5)
x=10.23 y=-2.0.
7.2.
WRITE
PRINT.
WRITE(i,n)
FORMAT(S1,S2,...,SN)
:
i .
() *,
.
n e FORMAT-.
PRINT
,
WRITE .
7.2.1. integer
WRITE(*,210)MAX
210
FORMAT(MAX =,I3)
I3
.
WRITE(*,210)M1,M2,N
210
FORMAT(I3,I4,I5)
integer ,
, ,
.
WRITE(*,210)M1
WRITE(*,210)M2
WRITE(*,210)N
210
FORMAT(I3,I4,I5)
7.2.2. real
WRITE(*,200)A
200
FORMAT(F6.2)
F6.2
.
WRITE(*,200)X,Y,Z
200
FORMAT(F6.2,F6.3,F6.4)
.
, ,
. .
, ,
.
25 / 36
WRITE(*,200)I,X,M,Y
200
FORMAT(I3,F6.3,I4,F6.4)
, integer
, real
, integer
real
.
WRITE(*,200)I,X,Y,Z
200
FORMAT(I4,2X,3F6.3)
integer , real
,
. .
7.3.
:
7 72
. 8
. C
,
, .
1.
?
,
2.
?
) (rounding)
(truncation) REAL( ) INT( )?
)
?
3.
r?
) r
?
)
?
4.
H?
)
?
5.
a , ?
7.4.
,
,
. ,
.
27 / 36
-
7.4.1.
,
. ,
,
. Frtran
.
integer 1
99999 .
GO TO n
n .
7.4.2.
,
,
. ,
,
. IF
IF()n1,n2,n3
n1,n2 n3
.
IF , 77
IF
IF(logical expression)THEN
.
.
BLOCK OF STATEMENTS
.
.
ENDIF
.GT.
.GE.
.LT.
.LE.
.EQ.
()
.NE.
.AND.
.OR.
.NOT.
>, >=, <, <=, <>,
=.
IF
ELSE.
IF(logical expression)THEN
.
BLOCK OF STATEMENTS
.
ELSE
.
BLOCK OF STATEMENTS
.
ENDIF
29 / 36
-
6.
x 2 + 1, x > 2.8
f ( x ) =
0
, x 2.8 ,
=
2
x 1, x < 2.8
IF ?
7.
n!
7.5.
,
( ). ,
DO.
DO n I=n1,n2,n3
.
.
.
n
I integer
. n1,n2 n3
:
n1 I,
n2 I,
n3 I.
n DO
.
,
7.5.1.
, DO ,
CONTINUE, :
DO 10 I=n1,n2,n3
.
DO 20 J=n1,n2,n3
.
.
20 CONTINUE
.
.
.
10 CONTINUE
DO
.
DO
DO 70 I=1,N
.
.
.
DO 70 J=1,M
.
.
.
70 CONTINUE
31 / 36
, DO
CONTINUE .
DO J
I !
8
i , N?
i =1
) ;
) e
?
9
N y =x 3 10 x + 2
, x = 0.0 x =0, 2 ?
7.6.
,
.
,
(), .
, .
DIMENSION (I)
I=1N,
.
-,
DIMENSION B(10,10)
.
B .
10
x p.
a
, ?
0
0
5
0
0
0.5
0.
1.4
2.7
6.0
7.0
90
50
50
00
00
x+p
2.
5.
3.
9.
33 / 36
x*p
x/p
-
11
A N 10 ,
?
8.
,
, ,
. ,
.
:
- FUNCTION
- SUBRUTINE.
8.1. FUNCTION
. .
FUNCTION IME(P1,P2,,PN)
.
.
.
RETURN
END
IME , a PN ,
.
RETURN
.
IME(P1,P2,,PN).
8.2. SUBRUTINE
,
.
SUBRUTINE
FUNCTION IME(P1,P2,,PN)
.
.
.
RETURN
END
, . ,
RETURN
.
CALL IME(P1,P2,,PN)
12
k- m
, k 1,2,,m?
1 k 8 ,
k- m
ckm =
13
m!
.
k !( m k )!
35 / 36
=
x r cos ;=
r
x2 + y 2
=
y r=
sin ; arctan
y .
x
d=
( x2 x1 )
r1 2.0;
r2 2.0
=
=
1 0.0
2 1.57
=
=
+ ( y2 y1 ) .
2