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

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

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

Цель работы:

  • получить навыки составления и реализации программ с использованием программных компонентов: подпрограмм и функций

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

Задание 6.1 Составить программу табулирования функции по варианту задания 3.2 с использованием программного компонента function.

Задание 6.2 Составить программу обработки одномерного массива согласно варианту по заданию 4.2 с использованием программного компонента subroutine.

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

Задание 6.1. Составить программу табулирования функции y=-1 с использованием программного компонента function.

Схема алгоритма реализации задания 6.1 приведена на рис. Л6.1

Рис. Л6.1 Блок-схемы реализации задания 6.1

Блок-схема функции f(x)=-1 представлена на рис. Л6.2

Рис. Л6.2 Блок-схема function f(x)

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

Program Lr61

real h, a, b

integer i,n

real X(50),y(50)

Write(*,'(a,$)'),'Введите начало промежутка a='

Read(*,*),a

Write(*,'(a,$)'),'Введите конец промежутка b='

Read(*,*),b

Write(*,'(a,$)'),'Введите шаг табулирования h='

Read(*,*),h

open(5,file='1.txt')

X(1)=a

n=int((int(b)-int(a))/h)+1

do i=1, n

If (x(i)>=0) then

Y(i)=f(x(i))

Write(5,'(a,i2,a,f5.2,a,i2,a,f5.2)'),'x(',I,')=',x(i),' y(',I,')=',y(i)

Else

Write(5,'(a,i2,a,f5.2,a)'),'x(',I,')=',x(i), ' Y не существует'

endif

x(i+1)=x(i)+h

Enddo

close(5)

Contains

Function f(x)

Real x

F=sqrt(x)-1

End function f

End

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

Введите начало промежутка a=-2

Введите конец промежутка b=2

Введите шаг табулирования h=0.5

x( 1)=-2.00 Y не существует

x( 2)=-1.50 Y не существует

x( 3)=-1.00 Y не существует

x( 4)=-0.50 Y не существует

x( 5)= 0.00 y( 5)=-1.00

x( 6)= 0.50 y( 6)=-0.29

x( 7)= 1.00 y( 7)= 0.00

x( 8)= 1.50 y( 8)= 0.22

x( 9)= 2.00 y( 9)= 0.41

Задание 2.2. Разработать программу для нахождения произведения положительных элементов одномерного массива размером n с использованием подпрограммы subroutine. Элементы массива считываются из файла. Исходный массив и результат вывести на экран.

Алгоритм основной программы приведен на рис. Л6.3

Рис. Л6.3 Блок-схема основной программы задания 6.2

Алгоритм подпрограммы mult для поиска произведения положительных чисел массива приведен на рис. 6.4.

Рис. 6.4 Блок-схема подпрограммы mult

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

Program lr62;

Integer, parameter :: n=10

integer a(1:n)

integer I,p

do i=1, n

print ‘(a,i2,a,$)’, ‘a(’,I,’)=’

read(*,*), a(i)

enddo

call Mult(a,p)

Write(*,’(a,i5)’)(‘p=’,p)

contains

subroutine mult(a, p)

integer a(1:n)

integer I,p

P=1

do i=1, n

If (a(i)>0) then

P=p*a(i)

Endif

enddo

end subroutine mult

End

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

a( 1)= 4

a( 2)= -7

a( 3)= 5

a( 4)= 7

a( 5)= -2

a( 6)= 1

a( 7)= 0

a( 8)= 4

a( 9)= -9

a(10)= 6

p= 3360

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