Лабораторная работа №2
Тема: Разработка и реализация программ с разветвленной структурой
Цель работы:
-
получить навыки составления и реализации программ с разветвленной структурой, используя средства языка Фортран;
-
получить навыки работы с графическим редактором aGrapher.
Задания к лабораторной работе
Задание 2.1 Записать логическое выражение, которое принимает значение true, если точка А с координатами х, у принадлежит заштрихованной области.
№ вар. |
Область |
№ вар. |
Область |
1,2 |
11,12 |
||
3,4 |
13,14 |
||
5,6 |
15,16 |
||
7,8 |
17,18 |
||
9,10 |
19,20 |
Задание 2.2 Составить программу вычисления значения функции, заданной графически. (значение аргумента Х вводится произвольно с клавиатуры).
№ вар. |
Функция |
№ вар. |
Функция |
1,20 |
6,15 |
||
2,19 |
7,14 |
||
3,18 |
8,13 |
||
4,17 |
9,12 |
||
5,16 |
10,11 |
Образец выполнения работы
Задание 2.1. Записать логическое выражение, которое принимает значение true, если точка А с координатами х, у принадлежит заштрихованной области.
Данная часть плоскости состоит из двух непересекающихся областей. Таким образом если точка попадется или в одну область или в другую она будет принадлежать заданной плоскости.
Область находящаяся в первой четверти ограничена тремя линиями: x=0, y=0, x2+y2=22, при чем область находится выше y=0, то есть y>0; справа от x=0, то есть x>0, и внутри окружности x2+y2=22, то есть x2+y2<22
Таким образом, логическое выражение для этой области x>0 y>0 x2+y2<22.
Область находящаяся во второй четверти ограничена линиями: x=0, y=0, x=-2, y=-2, при чем область находится ниже y=0, то есть y<0; слева от x=0, то есть x<0, выше y=-2, то есть y>-2; справа от x=-2, то есть x>-2.
Таким образом, логическое выражение для второй области x>(-2) y>(-2) x<0 y<0.
На языке Фортран окончательно логическое выражение будет иметь вид:
x>0.and.y>0.and.x**2+y**2<4.or.x>(-2).and.y>(-2).and.x<0.and.y<0
Задание 2.2 Составить программу вычисления значения функции, заданной графически. (значение аргумента Х вводится произвольно с клавиатуры).
Математическая модель:
|
Схема алгоритма решения задачи представлена на рис.Л2.1.
Рис. Л2.1 Блок-схема решения задания 2.2
Текст программы:
Program lr2
Real x,y
Print ’(a,$)’, ‘Enter x ’
Read(*,*), x
If (x<-2) then
Y=-2
else
If (x>4) then
Y=4
else
Y=x
End if
End if
Print ‘(a,f5.2)’, ‘y=’, y
End
Результаты работы программы:
Enter x 0
y= 0.00
Лабораторная работа №3
Тема: Разработка и реализация программ с циклической структурой
Цель работы:
-
получить навыки составления и реализации программ с циклической структурой, используя операторы цикла языка Фортран.
Задания к лабораторной работе
Задание 3.1. Представить математическую запись фрагмента программы и вычислить значение переменной X после его выполнения. Обозначение: N - это номер варианта.
№ вар |
Фрагмент программы |
№ вар |
Фрагмент программы |
1,2 |
X=1 do J=7, N,(-1) X=X*J enddo X=2*X |
11,12 |
X=0 J=1 do while J.LE.N X=X+J J=J+2 enddo |
3,4 |
X=0 do J=1, N X=X+2 enddo X=2*X |
13,14 |
X=1 do while X<=N X=X+1 enddo X=2*X |
5,6 |
X=1; J=1; X1=int(N/5) do while J.LE.5 X=X*X1 J=J+1 enddo |
15,16 |
X=N do K=1, 8 X=X+5 enddo |
7,8 |
X=N do K=1, 6 X=X+1 enddo |
17,18 |
X=1 do J=7, N X=X*J enddo X=2*X |
9,10 |
X=5 do J=1, N X=X+2 enddo X=2*X |
19,20 |
Х=1; J=1; X1=2 do while J.LE.10 X=X*X1 J=J+2 enddo |
Задание 3.2 Составить две программы табулирования функции на отрезке [-2; 2] с шагом =0,1. В первой программе должен использоваться цикл с параметром, второй - цикл с предусловием .
№ вар. |
Функция |
№ вар. |
Функция |
№ вар. |
Функция |
№ вар. |
Функция |
1 |
6 |
11 |
16 |
||||
2 |
7 |
12 |
17 |
||||
3 |
8 |
13 |
18 |
||||
4 |
9 |
14 |
19 |
||||
5 |
10 |
15 |
20 |
Образец выполнения работы
Задание 3.1. Представить математическую запись фрагмента программы и вычислить значение переменной X после его выполнения. Обозначение: N - это номер варианта. Пусть N=4.
X=0
J=1;
do while (j<=N)
X=X+J
J=J+1
end
C хема алгоритма фрагмента программы задания 3.1 приведена на рис. Л3.1.
Рис.Л3.1 Cхема алгоритма фрагмента программы задания 3.1
Начальные данные: X=0; J=1;
Тело цикла: X=X+J; J=J+1
Условие выхода из цикла J>N
Присваиваем начальные значения
X=0, j=1.
j=1 <4, Входим в цикл
-
x=1, j=2: 2 < 4, идем на следующий шаг цикла
-
x=3, j=3: 3 < 4, идем на следующий шаг цикла
-
x=7, j=4: 4 ≤ 4, идем на следующий шаг цикла
-
x=11, j=5: 5 > 4 выходим из цикла.
После выполнения фрагмента программы x=11.
Задание 3.2 Составить две программы табулирования функции на отрезке [-2; 2] с шагом =0,1. В первой программе должен использоваться цикл с параметром, второй - цикл с предусловием .
Рассмотрим решение задачи на примере табулирования функции y=.
Область определения функции x0.
1. Блок-схема решения задачи (задание 3.2) с использованием оператора цикла с предусловием приведена на рис. Л3.2.
Рис. Л3.2 Блок-схема решения задачи (задание 3.2) с использованием оператора цикла с предусловием
Приведем текст программы, реализующий алгоритм решения задачи (цикл с предусловием):
Program Lr3_while
real x, y, h, a, b
Write(*,’(a,$)’),‘Введите начало промежутка a=’
Read(*,*),a
Write(*,’(a,$)’),‘Введите конец промежутка b=’
Read(*,*),b
Write(*,’(a,$)’),‘Введите шаг h=’
Read(*,*),h
X=a
Do While (x<=b)
If (x>=0) then
Y=sqrt(x)
Write(*,’(a,f7.3, a,f7.3)’),‘x=’,x,’ y=’,y
Else
Write(*,’(a,f7.3,a)’), ‘x=’,x, ‘Y не существует’
Endif
X=x+h;
Enddo
End.
2. 1. Блок-схема решения задачи (задание 3.2) с использованием оператора цикла с параметром на рис. Л3.3.
Рис. Л3.3 Блок-схема решения задачи (задание 3.2) с использованием оператора цикла с параметром
Приведем текст программы, реализующий алгоритм решения задачи (цикл с парамеиром)
Program Lr3_do;
real x, y, h, a, b
integer i,n
Write(*,’(a,$)’),‘Введите начало промежутка a=’
Read(*,*),a
Write(*,’(a,$)’),‘Введите конец промежутка b=’
Read(*,*),b
Write(*,’(a,$)’),‘Введите шаг h=’
Read(*,*),h
X=a
n= (b-a)/h+1
do i=1, n
If (x>=0) then
Y=sqrt(x)
Write(*,’(a,f5.2, a,f4.2)’),‘x=’,x,’ y=’,y
Else
Write(*,’(a,f5.2,a)’), ‘x=’,x, ‘Y не существует’
X:=x+h;
End
End.
Результат работы программы:
Введите начало промежутка a=-2
Введите начало промежутка b=2
Введите шаг h=0.5
X=-2.00 Y не существует
X=-1.50 Y не существует
X=-1.00 Y не существует
X=-0.50 Y не существует
X= 0.00 y=0.00
X= 0.50 y=0.71
X= 1.00 y=1.00
X= 1.50 y=1.22
X= 2.00 y=1.41