Студопедия — End function integ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

End function integ






! Процедуры, описывающие подынтегральные функции

real function f1 (x)

implicit none

real, intent(in):: x

f1=cos(x)**2

End function f1

real function f2 (x)

implicit none

real, intent(in)::x

f2=1./x

End function f2

!Главная программа

Program main

implicit none

real a, b, sq, integ

integer n

real, external:: f1, f2!описание внешних функций

read *, a, b, n

sq=abs (integ (f1, a, b, n)- integ (f2, a, b, n))

print '(A, F5.1, A, F5.2, A, F10.2)',&;

'площадь между 2 кривыми на отр. от', a, 'до', b, ' =', sq

End program main

Пример программы вариант 2

Теперь видоизменим проект. Используя знания о модулях, создадим, как один из вариантов проект, в который поместим модуль общих для вычисления интеграла описаний (a, b, n) global, и модуль metod, содержащий модульную процедуру (в нее поместим метод вычисления интеграла). Главную программу и описания подынтегральных функций поместим в разные файлы или эти процедуры могут быть помещены в одном файле с главной программой.

! Модуль общих описаний.

!В него включим пределы интегрирования, число разбиений участка интегрирования.

Module global

implicit none

real a, b

integer n

End module global

!Модуль в котором помещена модульная процедура

Module metod

use global

Contains

real function integ (f)! функция не имеет параметров (a, b n),

implicit none!т.к. они используются как глобальные

integer I!данные, описанные в модуле

real h, f, s

s=0

h=(b-a)/n

do i = 1, n

s=s+f(a+i*h)

Enddo

integ =s*h

end function integ

End module metod

real function f1 (x)

implicit none

real, intent(in):: x

f1=cos(x)**2

End function f1

real function f2 (x)

implicit none

real, intent(in):: x

f2=1./x

End function f2

 

!Главная программа.

Program main

Use global

Use metod

implicit none

real, external:: f1, f2 !объявление в операторе описания типа

real sq

read *, a, b, n

sq=abs (integ (f1)-integ (f2))

print '(A,F10.2)', 'пл. между 2 кривыми =', sq

End program main

Модульная процедура, в которую помещен метод дает возможность не описывать интерфейс этой процедуры, т.к. к модульной процедуре явный интерфейс. Все проверки соответствия формальных и фактических параметров будут выявлены уже на этапе компиляции.

В модуле global можно задать начальные значения переменным a, b, n с помощью оператора Data или в операторах описания real a/.1/, b/.5/ integer n/100/.

Пример программы вариант 3

Составим теперь другой вариант проекта ( pr_ext_1 ). Напишем два модуля (разместим их в разных файлах). Поместим в модуль I_Face_F интерфейсный блок для подынтегральных функций f1 и f2., а в модуль I_Face_Int - интерфейсный блок для функции, вычисляющей значение интеграла. Организация 2 –х модулей исключительно из-за разделения функций. Процедуру (функцию), вычисляющую значение интеграла оформим в виде внешней процедуры и при выполнении поместим в отдельный файл. Главную программу и описание подынтегральных функций также поместим в отдельные файлы (у нас проект будет состоять из 4 файлов).

Процедура, для которой написан интерфейсный блок, обладает всегда явным интерфейсом (ошибки в типах параметров будут выявлены уже на этапе компиляции).

В этом случае, заданные в интерфейсном блоке процедуры обладают автоматически атрибутом external, и их можно использовать в качестве параметров процедур без дополнительного объявления ( в главной программе не требуется объявления external f).

Объявлять тип функции, вычисляющей значение интеграла, не требуется.

Однако, в интерфейсном блоке в модуле I_Face_Int при описании типов формальных параметров и видов связи, обязательно надо указать real, external:: f, без атрибута intent(in).

!Модули интерфейсов ( заголовочный файл )

!модуль интерфейсов подынтегральных функций

Module I_Face_F

Interface

real function f1 (x)

implicit none

real,intent(in)::x

End function f1

real function f2 (x)

implicit none

real,intent(in)::x

End function f2

end interface

End module I_Face_F

!модуль интерфейса функции для вычисления интеграла

Module I_Face_Int

interface

real function integ (f, a, b, n)

implicit none

real,intent(in):: a, b

integer,intent(in):: n

real, external:: f

End function integ

end interface

End module I_Face_Int

Описания подынтегральных функций

!описание 1 функции

real function f1 (x)

implicit none

real,intent(in)::x

f1=cos(x)**2







Дата добавления: 2015-10-01; просмотров: 290. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия