Farionova_Fortran
.pdfТема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 |
|
|
> 1∩ 0 < b < 7 |
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
3, 4 |
а) |
10−7 ln |
|
2z |
|
+ sin 2z3 |
9, 10 |
|
10−7 ln |
|
|
9z3 |
|
+ cos 2z2 |
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; |
|
а) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
3(z + 3) |
2 |
|
− 2,5 10 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
z + 3 |
|
2 + 2 106 |
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
б) |
|
x + z |
|
> 1∩1< b < 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
б) |
|
x + z |
|
|
> 0 ∩ 0 < b < 9 |
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
5, 6 |
а) |
10−5 e−5 f |
|
+ sin2 |
|
z3 |
|
; |
11, 12 |
а) |
10−4 − 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 |
а) |
10−6 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, |
||||||||
|
|
ω = e−ty ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 10−5 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 10−5 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 e−s+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 10−8 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 10−8 i y2 |
n |
iy |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i2 + 1 |
|
|
15, 16 |
a, b |
|
b + |
|
|
1 |
|
|
|
|
|
|
|
x, y |
|||
|
|
a = |
x2 + 4 |
|
|
; |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
e− x−2 |
|
|
|
|
|
|
|
|
||||
|
|
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. Математическую запись представить на языке Форт-
ран.
10−7 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
Все выражение имеет вид
10−7 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