Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2.doc
Скачиваний:
16
Добавлен:
04.11.2018
Размер:
4.01 Mб
Скачать

Лабораторная работа №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, Входим в цикл

  1. x=1, j=2: 2 < 4, идем на следующий шаг цикла

  2. x=3, j=3: 3 < 4, идем на следующий шаг цикла

  3. x=7, j=4: 4 ≤ 4, идем на следующий шаг цикла

  4. x=11, j=5: 5 > 4 выходим из цикла.

После выполнения фрагмента программы x=11.

Задание 3.2 Составить две программы табулирования функции на отрезке [-2; 2] с шагом =0,1. В первой программе должен использоваться цикл с параметром, второй - цикл с предусловием .

Рассмотрим решение задачи на примере табулирования функции y=.

Область определения функции x0.

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

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