Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Современный Фортран_учебник

.pdf
Скачиваний:
31
Добавлен:
23.03.2015
Размер:
1.61 Mб
Скачать

42

#

M 12 * # ( ! !,

! +) :

1.A – ! # ., ! # D (D <0, ),

2.B – ! ! .,

3.C – # . .

! Z = A + B – C.

!-

( 3 % -# . (

! -# Vector.

Notr = 0;

-

 

A = 0;

-

 

 

 

i = 1, 12

/

 

 

 

 

 

 

 

D < M(i) < 0

 

 

 

 

 

 

Notr > 0

Notr = Notr + 1

 

**

A = A / Notr

8 = 8 + M(i)

 

 

 

 

 

.4. A – ! #, ! # D

* - *: « ! # ., ! # D»

B = 0 -

/

i = 1, 12

M( i ) > 0

Exit B = i - > 0

 

 

 

 

 

 

 

 

 

B = 0

 

 

 

 

 

 

/

 

 

 

 

 

 

 

 

 

 

j = i +1, 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

***

0 < M (j) < M (B)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B = j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.5. B – ! ! .

** - *: «! »

43

Cnt = 0 -

 

= 0 - $

 

 

 

i = 2, 12, 2

/

 

 

 

 

 

 

 

M( i ) = 0

 

 

 

 

 

 

Cnt > 0

Cnt = Cnt + 1

 

****

C = Cnt /

= + 1 / M(i)

 

 

 

 

 

.6. C – #

.

*** - *: «! = 0»

( )

Program Vector

!(%, ) & $ & &

Implicit None

Real,dimension(1:12):: M

Real:: A, C, D, Z Integer B, i, Notr, Cnt

Open(1,FILE=’In.txt’) ! %

Open(2,FILE =’Out.txt’) ! % Write(2,*) ’Программа Vector’

Read(1,*)M !

Write(2,10) M ! 2

10 Format (?????)! Format

Write(*,*) ’Input D < 0’ ! D <0

Read(*,*) D

Write(2,14) ’D =’, D, ’- должно быть отрицательным

14 Format (?????)! Format

! *****

По блок-схемам, составленным с учетом индивидуального задания, написать операторы программы Vector для вычисления и форматного вывода трех переменных и результирующего выражения. Выводить значения переменных по мере их вычисления, поясняя формулировками из индивидуального задания.

! *****

End Program Vector

44

Vector

Out.txt ! Vector

, - :

' Vector #

6 2

D = -12.00

- ! !

A = -17.05

- . D<M<0

B =

10

- ! ! .

C =

25.13

- .

Z =

34.77

= A + B – C

$

1.- + ?

2.& # .

3.; 0, 1, 2 # -

+ +.

4.' , . -

3 + ?

Logical C(7), D(7), B(-7:0), U(0:7)

Integer A(-3:3)

Real Е(0:6)

/ ?

/ ! . -90?

5.' * . '/.

6.3 A .-

1 12. / , +:

-# . ?

-# 8 . ?

-?

-. ?

7./ where? '

where ) ; ) ; ) .

8.3 : Real,dimension(1:10)::A

- ?

Read(1,*) A(10)

Write(*,*) A(10)

Read(*,*) A(11)

Write(*,*) A(11) Write(*,11) A(8:10)

0 format Write. / 6 # . A?

45

# $& !

1.( 20 .. 0 ! #

! + # 8 .

( # ). 2- # !. .

2.! * 100 .. 0 . :

a)5 «# »;

b)$ .

3.data.txt – 12 ! . / -

! . ( )?

Integer, dimension(1:12):: Mas = 0

Open(1,file = ’data.txt’) Read(1,*) Mas(3), Mas(5) Write(*,11) Mas(3:5)

11 Format (I4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

% 10.

 

$' ! « »

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

 

'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

A – ! # . ;

1

 

 

 

B +

 

 

 

B – ! . N # .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

+ 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R + Q + S

R – ! # . -

2

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q – ! . ;

 

 

R Q S + 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

 

 

 

 

H – N # .;

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

H +

 

 

 

 

 

 

 

G

E – ! .;

 

 

 

 

 

 

 

H

+

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G – . .

 

 

U +

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

S – ! # ., ! # D;

4

 

 

 

S + T

 

+ 1

T – ! + . ( );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U – N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X – . [A, B];

5

 

 

 

Z +

 

 

 

 

 

 

 

 

 

 

Y – ! ! .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

+ Y

 

 

 

 

 

 

 

 

 

Z – . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U

 

 

 

 

 

 

 

 

 

 

 

 

U – . ;

6

 

 

 

 

 

 

 

+ S

R – ! + .;

 

 

 

 

 

 

 

 

 

 

R + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

46

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A B

 

 

 

 

 

 

A – # .;

7

 

 

 

 

 

 

 

 

 

 

B – ! . ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C + 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R – # .;

8

 

 

 

 

R

 

 

 

+ S

Q – .;

 

Q +

1

S – ! # N #

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

 

 

 

 

 

 

 

+ G

H – ! # N # .;

 

 

 

 

 

 

 

 

 

 

 

 

9

(E + 1)(H + 1)

E – ! .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A – ! . ;

10

C +

 

 

A

 

+

 

 

 

 

B

 

B – . ;

 

 

 

 

 

 

 

 

 

 

+ A

C – # N # .-

 

 

 

10

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

X – ., ! # D, ;

11

Y +

 

 

 

 

 

 

 

 

 

 

 

Y – ! + . ( );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10 + Z

Z – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A + B

 

A – ! # .;

12

C +

 

B – ! . ;

A B + 1

 

 

 

 

 

 

C – N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T V + U

V – ! # ., ! # D, (D<0) ;

13

 

T – ! .;

 

 

 

 

U + 1

 

 

 

 

 

 

U – ! # N #

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – ! # .;

14

(U+T) (S+2)

T – ! + .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U – N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

 

 

 

 

 

 

 

+ G

H – ! # .;

 

 

 

 

 

 

 

15

(E + 1)(H + 1)

E – ! .:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G – . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X + Z

 

 

 

 

 

 

X – ., ! # D, ;

16

 

 

 

 

 

 

 

 

 

Y – ! ! .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y + 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z – # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

A – ! # .;

17

B +

 

 

 

 

 

 

 

 

 

 

B – .;

 

 

 

 

 

 

 

 

 

 

 

 

 

C + 1

 

 

 

 

 

 

 

 

 

 

C – ! # . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C +

A

+

 

 

B

A – ! # .;

 

 

 

18

 

 

 

 

 

 

 

 

B – ! ! .;

 

 

10

 

 

 

10 + A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C – # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

47

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X + Z

 

 

 

 

 

 

X – ! # . ;

19

 

 

 

 

 

 

 

 

 

 

 

Y – .:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y + 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z – # ., ! # D.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A B

 

 

 

 

 

 

A – ! # .;

20

 

 

 

 

 

 

 

 

 

 

 

 

B – ! + . ( );

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C + 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

 

H – ! # .;

 

 

 

 

 

 

 

21

 

H +

 

 

 

 

 

 

 

G

E – ! . N # .;

 

 

 

 

 

H

+ 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G – . .

 

U +

 

 

 

 

 

1

 

 

 

 

 

 

 

 

S – ! # .;

22

 

 

 

 

 

 

 

 

 

T – ! ! .;

 

S + T + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U – ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U

 

 

 

 

 

 

 

 

 

 

 

 

U – # N # .;

23

 

 

 

 

 

 

 

+ S

R – ! + .;

 

 

 

 

 

 

 

 

 

 

 

R + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – ! # ..

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

R – ! . ;

24

 

 

 

 

 

 

 

 

+ S

Q – # .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S – N # .;

25

 

 

(U+T) (S+2)

T – ! ! .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U – . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A + B

 

A – ., ! # D;

26

C +

 

 

 

B – ! . ;

 

A B + 1

 

 

 

 

 

 

 

 

C – N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H + 1

 

 

 

 

 

 

H – . [A, B];

27

 

 

 

 

 

 

 

 

 

 

 

 

E – ! . ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(C + 2)E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H – . [A, B];

28

 

 

 

(H + E ) C

 

E – ! + .;

 

 

 

(E + C + 4)

C – ! # N #

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R + Q + S

R – ., ! # D;

29

 

 

Q – ! ! .;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R Q S + 2

 

 

 

S – ! # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U – ! . [K, L];

30

 

 

 

 

 

 

+ U+T

T – . .

 

 

 

 

 

 

 

 

 

 

R + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R – ! N # ..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

48

2.5. , !

1.0 ! , :

a)In.txt ,

* ; ,;

b)A Out.txt;

c)! , !

! ;

d)! ,

!

.

2.( ! , !-

# ! #

! .

1.0 ! .

2., , .

3.% ! .

4.2-# .

5..

6.! Out.txt.

! "

1./ + ! In.txt +* :

a)M, N (M N – )

b)", * M N .

( a) b) + +* .

2. ! M 10 N 10 7N ! Out.txt.

/

, . *- + !+ , !

. 0,

a

11

a

12

a

 

 

 

 

13

 

* A(1:2, 1:3) +* -

a21

a22

a23

 

: {a11a21 a12a22 a13a23}.

( , ,

– {a11a12a13 a21a22a23}, Read(1,*) A - $ * + {a11a12 a13a21 a22a23}. & Write(2,*) A

49

* , . .

{a11a21a12 a22a13a23}.

!! ' ! !

Read(1,*) A; Write(2,*) A

+ , # - ! * !

.

&

! + :

Integer,parameter:: kolStr=2, kolStlb=3

! $

Integer::str,stlb ! $

Real,dimension(1:kolStr,1:kolStlb):: A !

!$ $ = «:» – [1:kolStlb]

Read(1,*)(A(str,:),str=1,kolStr)

!$ - :

Read(1,*)(A(str,1:kolStlb), str=1,kolStr)

! $ $

Read(1,*)((A(str,stlb),stlb=1,:),str=1,kolStr)

! , ! .

Write(2,1)(A(str,:),str=1, kolStr)

1format(‘Матрица’/3(f5.1))

Format ! kolStlb – :

1format(‘Матрица’/<kolStlb>(f5.1))

- .

!

, . $ -

!, . -

( ):

a)! Allocatable, -

;

b)! (

– , – -

.);

c)! Allocate;

d)! ;

e)! ! Deallocate.

#

.,

+, ! . # + , -

50

# . ! +* + -. & # * .

.7. 2-#

*— «! i 0»

**— «3 = [i, Num]»

Program Matrix; Implicit None

! (%, ) & $ & &

Integer,Allocatable,dimension(:,:)::A !

Integer,Allocatable,dimension(:):: B !

Integer varStr,varStlb !

Integer i, j ! $

Open(1,file=’in.txt’)

! %

Open(2,file=’out.txt’)

! %

Do ! %

Read(1,*,end=10)varStr,varStlb

! ( , $ )

! varStr , varStlb $

Allocate(A(1:varStr,1:varStlb),B(1:varStlb))

! - -

Read(1,*) ( A(i,:), i = 1,varStr )

!$ - , ,

!4 $ $ $

Deallocate(A) ! $

Enddo

End Program Matrix

51

Out.txt c :

В исходной

матрице

3 строки

и 5 столбцов

Исходная матрица

 

 

0

-123

-33

12

-5

0

 

0

0

0

0

0

 

0

12

0

1

Координаты

первого

ненулевого элемента строки = [ 1, 2]

В строке 2

все элементы равны 0

Координаты

первого

ненулевого элемента строки = [ 3, 3]

Преобразованная матрица

 

0

123

-33

12

-5

0

 

0

0

0

0

0

 

0

-12

0

1

$

1.- ? 1 -

# . & # Fortran90,

.

2.– # ,

% (# ) .

3.0 , +* #,

!+.

4.4 * . #

!+. ' .

5.3 A(12,12). / -

! Fortran90? / ! : )

, ) + , ) . ?

6.( , 3

? '?

Real A(2, -3:3), B(0:1, 0:6), C(-2:-1, 1:7) A = cos(B**2)- 3*C

7.' #

#.

8./ where? '

where ) ; ) ; ) .

9.- Read?

Real,dimension(1:12,1:12) A

Read (1,*) A(1, 12)

10./ + , 3

Real, dimension(1:20,1:12):: A?

11./ + , 3

Real, dimension(1:20,1:12):: A?

12. #.