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

Farionova_Fortran

.pdf
Скачиваний:
18
Добавлен:
15.02.2015
Размер:
2.71 Mб
Скачать

Тема6. Программныеединицы. Подпрограммыифункции

6.5. Локальные и глобальные переменные

Данные, которые описаны в основной программе, видимы во всех ее программных компонентах, т. е. являются доступными как в самой программе, так и в процедурах. Говорят, что они носят глобальный характер.

Объявленные в процедуре данные доступны только в ней самой и во вложенных в нее процедурах (если таковые имеются), т. е. носят

локальный характер (рис. 6.2).

Program Pl

Область видимости

integer

a, b, c, d, e переменных

contains function f(x)

real x

integer b, c, d

end function f end program p1

а, е - основная программа и внутренняя функция f(x);

b, c, d - основная программа

b, c, d - внутренняя функция

Рис. 6.2. Областьвидимостипеременныхосновной программы и внутренней функции

62

Часть 2. ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО КУРСУ "ОСНОВЫ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ПРОГРАММИРОВАНИЕ" (ЯЗЫК ПРОГРАММИРОВАНИЯ ФОРТРАН)

Лабораторная работа № 1

Тема: Арифметические и логические выражения. Разработка

и реализация программ с линейной структурой.

Цель работы:

получить навыки составления арифметических и логических выраженийнаязыкеФортран;

получить навыки работы по созданию проекта в среде FPS;

научиться составлять программу с линейной структурой, используя средства языка Фортран.

Задания к лабораторной работе

Задание 1.1. Математическую запись представить на языке Фортран (см. таблицу).

Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вари-

Математическое выражение

вари-

Математическое выражение

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1, 2

а)

 

 

ln

 

x

 

+ arctg2z

3

;

7, 8

а)

 

 

ln

 

7z

 

 

+ arctg2z

2

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3(z

 

+

 

 

 

1)2 + 2,1106

 

 

7(z + 1)0,5 + 2,7 106

 

б) ln

 

x + z >

 

 

 

> 0 0 < b < 1

 

б)

 

x + z

 

 

> 10 < b < 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3, 4

а)

107 ln

 

2z

 

+ sin 2z3

9, 10

 

107 ln

 

 

9z3

 

+ cos 2z2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

а)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

3(z + 3)

2

 

2,5 10

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z + 3

 

2 + 2 106

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

 

x + z

 

> 11< b < 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

 

x + z

 

 

> 0 0 < b < 9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5, 6

а)

105 e5 f

 

+ sin2

 

z3

 

;

11, 12

а)

104 2 f + ln

 

z3

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5(z + 1)5 + 106

 

 

 

 

2(z + 2)2 1,5

 

 

 

 

б) 0 < b < 1 0 < f < 0,5

 

б) x + z < 0 0 < f

< 0,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

63

ЛАБОРАТОРНАЯ РАБОТА № 1

Продолж. таблицы

Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вари-

Математическое выражение

вари-

Математическое выражение

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

анта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13, 14

 

10

7

ln

 

3z

 

+ b

0,4

 

 

17, 18

 

10

7

 

 

 

ln

 

3z

 

1,2

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

а)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(z + 1)2 4,2 104

 

(z + 1)2 + 1,2 106

 

б)

 

x

 

> 2 0 < b < 3

 

 

б) ln

 

x + z

 

> 0 0 < b < 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15, 16

а)

106 ln

 

3z3

 

 

+ ln 2z3

;

19, 20

а)

 

ln

 

3z3

 

+ sin 2z2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6(z + 1)6 + 106

 

 

z + 1

 

 

 

2 + 1,5 106

 

 

 

 

 

 

 

 

 

 

б)

cos

 

x + z

 

> 0 < b < 6

 

б)

 

x + z

 

> 0 0 < b < 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 1.2. Представить запись на языке Фортран в виде математическоговыражения. Указатьпорядоквыполнениядействий(см. таблицу).

Номер

Арифметическое выражение на языке Фортран

варианта

 

1, 20

A/B/D+SIN(2*X)-ABS(B*X)-1.E-02+3*H**(1/3.)

2, 19

2*SQRT(SIN(3*X*X)+4)-0.2*P**3/D

3, 18

LOG10(2*X-1)+COS(X)**2-ABS(SIN(X))/2.*C

4, 17

3.17*X**5/(2.7E-3*A+SQRT(X**5+EXP(-X)))

5, 16

SIN(5*X**3)**2-A/3.**SQRT(X+Y)*4.8

6, 15

ATAN(ABS(X**3))+COSH(X)**2/2.*(1-Y)

7, 14

(X/A**2)**3-TAN(R/2/C)+(2/X-A**5)**(1/3.)

8, 13

(A+B)/(C+D/(X+Y))-ABS(X-0,5*Y)*2*SINH(X)

9, 12

2*SQRT(SIN(3*X*X)+4.)-0.2/P**3/D

10, 11

A+B/C*D-LOG(ABS(B*X))-1.E-02+3*H**(1./3)

Задание 1.3. Составить программу с линейной структурой (представить блок-схему). Выполнить программу в среде Compaq Visual Fortran и записать результаты ее выполнения (см. таблицу).

64

Арифметические и логические выражения...

Номер

Вычисляе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

варианта

мые вели-

Формулы для вычислений

Исходные данные

 

чины

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1, 2

T, l

 

 

 

 

 

t sin

2

2x

 

 

 

 

 

 

 

a) i = 3, x = 2,7,

 

 

l = 3

 

 

 

;

 

 

 

 

y = 2 10–3;

 

 

 

 

 

 

 

 

ω3n + 1

 

 

 

 

 

 

 

 

б) I = 5, x = 0,5,

 

 

ω = ety ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = 0,01

 

 

t = 2i – 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3, 4

P, r

p

=

 

 

tg

2

2rx

 

; r =

k+1

+1 ;

 

а) k = 2,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α = 3,7, у = 1,4 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α y

 

 

 

x = 2,34 105 eαy 3

 

 

б) k = 3, α = 0,8, у = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α 2 + 1

 

 

5, 6

λ, U

λ = 12510

6

sin

2

 

x

2

;

 

а) k = 3, у = 34,7,

 

 

 

 

 

 

 

 

 

t = 60;

 

 

 

 

 

 

 

eu 5 t y

 

 

 

 

б) k = 1, у = 0,74,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = arcsin

 

 

 

 

 

y

 

 

 

 

;

 

 

t = 2,5

 

 

 

 

 

 

y2 + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u = 2k + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7, 8

γ, Z

γ =

 

 

 

 

 

arcsin z w 0,75

;

a) k = 2, x = 2,4,

 

 

0,34 105 ex2

+ 3

x + sin t

t = 1,52;

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б) k = 3, x = 5,12,

 

 

z =

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

t = 15,8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1+ x2 w

 

 

 

 

 

 

 

 

 

 

 

w = 2k + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9, 10

T, r

t = ln

 

sinx

2

 

+

1 + tg y

 

a) k = 5, x = 1,24,

 

 

 

 

 

 

 

 

(2 + 1)

y ;

 

y = 3,24;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б) k = 3, x = 2,38,

 

 

r = 0,284 105 es+2 + 5 ( y2 + 1)2 ;

y = 13,44

 

 

s = 3k

2k +1

 

 

 

 

 

 

 

 

 

 

 

 

11, 12

P, r

 

= cos

2

πu

+

3

2

2

+ 1 ;

 

a) n = 2,

 

 

p

 

 

 

 

λ = 1,5, u = 0,2

 

 

 

 

 

 

 

 

2,74 108 uπ

 

 

б) n = 3,

 

 

t = ln arcsin πu ;

 

 

 

 

 

 

 

λ = 10, u = 28,4

 

 

r = 2n2 n 2

 

 

 

 

 

 

 

 

65

ЛАБОРАТОРНАЯ РАБОТА № 1

Продолж. таблицы

Номер

Вычисляе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

варианта

мые вели-

Формулы для вычислений

Исходные данные

 

чины

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13, 14

K, n

k = cos2 2yx ;

 

 

 

a) I = 1, x = 1,35, y = 2;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б) I = 2, x = 1,8,

 

 

n = 2

i

+1

+ 2;

 

 

 

 

 

 

 

y = 2,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = 1,84 108 i y2

n

iy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i2 + 1

 

15, 16

a, b

 

b +

 

 

1

 

 

 

 

 

 

 

x, y

 

 

a =

x2 + 4

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex2

 

 

 

 

 

 

 

 

 

 

x4

 

 

 

2

 

3

 

 

 

 

b =

 

 

 

 

+ sin

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17, 18

a, b

a = ln | y x +

2 | ;

 

x, y, z

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

b = x

 

 

y 79

 

 

 

 

 

 

 

 

 

 

 

z

+ x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19, 20

a, b

b = z3 + a2 ;

 

 

 

 

 

 

 

z, x

a = lg | z 10+5 + x | ; e2 r + 4

r = tg 3423 + x

Образец выполнения работ

Задание 1.1. Математическую запись представить на языке Форт-

ран.

107 ln

 

3z3

 

+ sin 2z5

 

 

 

 

Дано выражение

 

 

 

 

 

 

.

 

 

 

 

(z + 1)

0,5

+ 106

 

 

Рассмотрим элементы числителя:

10–7 1.0e–7 z3 z**3

66

Арифметические и логические выражения...

3z3 abs(3*z**3) ln 3z3 log(abs(3*z**3)) z5 z**5

sin2 z5 sin(2*z**5)

Таким образом, числитель можно записать:

10–7ln 3z3 + sin2 z5

1.0e-7*log(abs(3*z**3))+sin(2*z**5).

Рассмотрим элементы знаменателя:

(z + 1)0,5 = (z + 1) sqrt(z+1)

106 1.0e+6

Знаменатель имеет вид

(z + 1)0,5 + 106 sqrt(z+1)+1.0e+6

Все выражение имеет вид

107 ln

3z3

 

+ sin 2z5

 

 

 

 

(z + 1)0,5

+ 106

(1.0e-7*log(abs(3*z**3))+sin(2*z**5))/ (sqrt(z+1)+1.0e+6)

Задание 1.2. Представить запись на языке Фортран в виде математического выражения.

Дановыражение

X+4/3/(X+Abs(ATan(X)))/2*X+1.0E-5*X**(5/3)

Разобьем выражение на слагаемые:

X+

4/3/(X+Abs(ATan(X)))/2*X+

1.0E-5* X**(5/3)

1

2

3

Рассмотрим слагаемые по отдельности:

1)X x

2)Примем условные обозначения:

С= X+Abs(ATan(X)), тогда

4/3/С/2*x 4x

3C2

X+Abs(ATan(X)) x + arctg x

67

ЛАБОРАТОРНАЯ РАБОТА № 1

Подставим вместо С выражение X+Abs(ArcTan(X)):

4/3/(X+Abs(ATan(X)))/2*X

4x

2 3(x +

 

arctg x

 

)

 

 

3) 1.0E–5 10–5

 

 

 

 

 

5

X**(5/3) x 3

Все выражение имеет вид

X+4/3/(X+Abs(ATan(X)))/2*X + 1.0E-5* X**(5/3))

 

 

4x

 

 

5

x +

 

+10

5 x 3

2

3(x +

 

arctg x

 

)

 

 

 

 

 

 

 

 

Задание 1.3. Составить программу с линейной структурой (представить блок-схему) – см. варианты 19, 20. Выполнить программу в среде Compaq Visual Fortran и записать результаты выполнении.

Решение

Составим текстовый алгоритм:

1. Принять с клавиатуры значения x и z.

2. Вычислить выражения b = z3 + a2 ; a = lg | z 105 + x |;

Начало

e2+r + 4

r = tg 34 + x.

Ввод х, z

23

34

3. Вывести на экран значения a и b.

Составим алгоритм программы в графическом

r = tg 23 + x

виде с использованием блок-схемы (рис. Л1.1).

105 + x

 

a = lg z e2+r +4

 

b = z3 + a2

Рис. Л1.1. Схемаалгоритмапрограммы

слинейнойструктурой

Вывестих,х,zz

 

Конец

 

68

 

Арифметические и логические выражения...

Текст программы

Program Lr1 !заголовок программы

real x, z, a, r, b !блок описания переменных print '(a,$)','Vvedite x '

read(*,*),x ! ввод исходных данных (значения переменной х) print '(a,$)','Vvedite z '

read(*,*),z ! ввод исходных данных (значения переменной z) r=tan(34/23.)+x ! блок вычислений a=log(abs(z-(1.0e5+x)/(exp(2+r)+4)))/log(10.) b= z**3 + a**2 print'(a,f8.3,a,f8.3)','a=',a,'b=',b!вывод результатов end program Lr1 !оператор окончания программы

Результаты работы программы:

Vvedite x 2

Vvedite z 2

a= 0.293 b= 8.086.

69

Лабораторная работа № 2

Тема: Разработка и реализация программ с разветвленной

структурой.

Цель работы:

получить навыки составления и реализации программ с разветвленной структурой, используя средства языка Фортран;

получить навыки работы с графическим редактором aGrapher.

Задания к лабораторной работе

Задание 2.1. Записать логическое выражение, которое принимает значениеtrue, еслиточкаАскоординатамих, упринадлежит заштрихованной области (см. таблицу).

Номер

1,

варианта

2

Область

Номер

5,

варианта

6

Область

3, 4

7, 8

70

Разработка и реализация программ с разветвленной структурой

Продолж. таблицы

Номер варианта

Область

 

 

 

9, 10

 

Номер

15,

варианта

16

Область

11, 12

17, 18

13, 14

19, 20

Задание 2.2. Составить программу вычисления значения функции, заданной графически (значение аргумента Х вводится произвольно с клавиатуры) – см. таблицу.

71

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]