Реализация программного модуля




1) Форма обращения к модулю

 

trap(Gk,G0,n,f)

2)Спецификация идентификаторов входных параметров модуля

 

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
G0 Real   H Нижний предел интегрирования  
Gk Real   H верхний предел интегрирования
nt Integer     количество шагов

 

3) Спецификация идентификаторов выходных параметров модуля

 

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
trap Real     Значение подынтегрального выражения

 

 

Текст модуля

 

! Подпрограмма интерирования

function trap(Gk,G0,nt,f)

h=(G0-Gk)/(nt-1)

x=Gk

y=G0

s=f(x)+f(y)/2

do i=2,nt-1

x=x+h

s=s+f(x)

end do

trap=s*h

end function

 

 

Тестовая задача модуля

1)Описание тестовой задачи

 

Вычислить интеграл:

 

a=0

b=1

nt=51

 

2) описание исходных данных тестовой задачи

3) текст вызывающей программы

program integ

external f

integer, parameter:: N=51

a=0

b=1

S=trap(a,b,N,f)

print*, ‘S=’,S

end

 

4) текст вызываемых прграмм

 

Function f(x)

f=X**2

End function

 

5) Результаты решения тестовой задачи

S= 0.3333998

 

2.4.3 Описание подпрограммы «f».

 

2.4.3.1 Общие характеристики.

 

1) Наименование подпрограммы

Подынтегральная функция

 

2) Назначение модуля

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

 

3) Язык программирования

Фортран Compaq Visual Fortran

 

4) Тип и версия операционной системы

Microsoft Windows XP

Home Edition

Версия 2002

Service Pack 2

 

 

2.4.3.2 Описание модуля.

Подпрограмма задающая подынтегральную функцию

 

 

2.4.3.3 Реализация программного модуля.

 

Алгоритм.

См. раздел 2.2.3

 

 

Блок – схема.

см. приложение №1

Таблица идентификаторов.

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
Cyz Real   Текущее значение коэффициента подъемной силы  
V Real V   м/с Скорость полёта
Cxz Real   Текущее значение коэффициента лобового сопротивления  
G Real   Н Вес самолета  

 

 

Листинг.

function f(G)

use source_data

common/cml/ Cxz,Cyz

f=(V*Cyz)/(G*Cxz)

 

end function

 

Обращение к подпрограмме.

f(x)

Тестирование подпрограммы.

Подсчет контрольной точки на калькуляторе показал, что расчеты верны:

f (x)= 0,0156 для первой итерации.

 

 

2.4.4 Описание подпрограммы «Inter».

2.4.4.1 Общие характеристики.

 

1) Наименование подпрограммы

Линейная интерполяция

 

2) Назначение модуля

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

 

3) Язык программирования

Фортран Compaq Visual Fortran

 

4) Тип и версия операционной системы

Microsoft Windows XP

Home Edition

Версия 2002

Service Pack 2

 

2.4.4.2 Описание модуля.

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

 

2.4.4.3 Реализация программного модуля.

 

Алгоритм.

См. раздел 2.2.4

 

Блок - схема.

см. Приложение №1

 

Таблица идентификаторов.

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
y Real   Массив значений функции  
x Real   Массив значений аргумнета  
yk Real   Текущее значение функции  
xk Real   Текущее значение аргумента    
m Real нет   Количество узловых точек  

 

 

Листинг.

subroutine inter(y,x,xk,yk,m)

real, dimension(m)::y,x

do j=2,m-1

if(yk<=y(j))then

i=j-1

xk= x(i)+((x(i+1)-x(i))/(y(i+1)-y(i)))*(yk-y(i))

exit

elseif (yk>y(m))then

xk= x(m-1)+((x(m)-x(m-1))/(y(m)-y(m-1)))*(yk-y(m-1))

end if

end do

end subroutine

Обращение к подпрограмме.

 

call inter(Cy,Cx,Cxz,Cyz,5)

Тестирование подпрограммы.

 

Program interpol

integer,parameter::n=4

real,Dimension(n)::x,y

do xk=0,5,0.5

x(1)=1

x(2)=2

x(3)=3

x(4)=4

y(1)=1

y(2)=1

y(3)=2

y(4)=2

 

Call inter(y,x,xk,yk,n)

Print*,xk, yk

End do

End program

 

subroutine inter(y,x,xk,yk,m)

real, dimension(m)::y,x

do j=2,m-1

if(yk<=y(j))then

i=j-1

xk= x(i)+((x(i+1)-x(i))/(y(i+1)-y(i)))*(yk-y(i))

exit

elseif (yk>y(m))then

xk= x(m-1)+((x(m)-x(m-1))/(y(m)-y(m-1)))*(yk-y(m-1))

end if

end do

end subroutine

Результат:

0.0000000E+00 1.000000

0.5000000 1.000000

1.000000 1.000000

1.500000 1.000000

2.000000 1.000000

2.500000 1.500000

3.000000 2.000000

3.500000 2.000000

4.000000 2.000000

4.500000 2.000000

5.000000 2.000000

Press any key to continue

 

2.4.5 Описание подпрограммы «Cyt».

 

Алгоритм.

Подпрограмма считает текущее значение по формуле, заданной в условии

 

Блок - схема.

см. приложение № 1

Таблица идентификаторов.

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
Cyt Real   Текущее значение коэффициента подъемной силы  
V Real V   м/с Скорость полёта
S Real S   Площадь крыла
G Real   Н Вес самолета  
Gk Real   Н Начальный вес самолета  
Ro Real. 0,705 кг/м3 плотность воздуха на высоте полета  

 

Листинг.

function Cyt(G)

use source_data

G=Gk

Cyt=2*G/(ro*V**2*S)

print*,'Cyz=',Cyt

 

end function

Тестирование программы.

Контрольная точка: Cyt=0.0794 (Калькулятор)

Cyz= 7.9432629E-02 (ЭВМ)

2.4.6 Описание вызывающей программы «Main».

 

 

Алгоритм.

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

 

Блок - схема.

см. приложение № 1

Таблица идентификаторов.

 

Листинг.

program main

use source_data

 

external f

real::L

common/cml/ Cxz,Cyz

print*,"Programma dlya raschota dal'nosti polyota. Copyright Vladimir Tsukanov, gruppa 1O-203B,MAI 2012"

n=20

Cyz=Cyt(G)

call inter(Cy,Cx,Cxz,Cyz,5)

L=3.6*trap(Gk,G0,n,f)

print*,"Dal'nost' ravna",L

end program

Тестирование программы.

См. Раздел 2.5

 

2.5 Тестирование программы и отладка задачи в целом.

Чтобы оттестировать программу в целом необходимо предварительно отладить все программные компоненты. Оттестировать их на любых примерах. Разработать инструкции по использованию.

 

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

 

!Курсовая работа по информатике

!Вариант № 17

!Выполнил Цуканов Владимир гр 1О-203Б

 

module source_data

 

real,dimension(5)::Cy=(/0.,0.1,0.2,0.3,0.4/),&

Cx=(/0.018,0.018,0.019,0.021,0.027/)

real,parameter::G0=120000,Gk=70000,V=250,S=40

real,parameter::ro=0.705

 

end module

 

 

function Cyt(G)

use source_data

G=Gk

Cyt=2*G/(ro*V**2*S)

print*,'Cyz=',Cyt

 

end function

!Подпрограмма интерполяции

 

subroutine inter(y,x,xk,yk,m)

real, dimension(m)::y,x

do j=2,m-1

if(yk<=y(j))then

i=j-1

xk= x(i)+((x(i+1)-x(i))/(y(i+1)-y(i)))*(yk-y(i))

exit

elseif (yk>y(m))then

xk= x(m-1)+((x(m)-x(m-1))/(y(m)-y(m-1)))*(yk-y(m-1))

end if

end do

end subroutine

 

function f(G)

use source_data

common/cml/ Cxz,Cyz

f=(V*Cyz)/(G*Cxz)

 

end function

 

program main

use source_data

 

external f

real::L

common/cml/ Cxz,Cyz

print*,"Programma dlya raschota dal'nosti polyota. Copyright Vladimir Tsukanov, gruppa 1O-203B,MAI 2012"

n=20

Cyz=Cyt(G)

call inter(Cy,Cx,Cxz,Cyz,5)

L=3.6*trap(Gk,G0,n,f)

print*,"Dal'nost' ravna",L

end program

 

! Подпрограмма интерирования

function trap(Gk,G0,nt,f)

h=(G0-Gk)/(nt-1)

x=Gk

y=G0

s=f(x)+f(y)/2

do i=2,nt-1

x=x+h

s=s+f(x)

end do

trap=s*h

end function

 

2.6 Выполнение расчетов.

Результаты, полученные в результате вычислений, совпадают с расчетом контрольной точки рассмотренного фрагмента программы.

Предусмотрены все предполагаемые аварийные ситуации с соответствующими сообщениями.

 

Programma dlya raschota dal'nosti polyota. Copyright Vladimir Tsukanov, gruppa

 

1O-203B,MAI 2012

Cyz= 7.9432629E-02

Dal'nost' ravna 2215.659

Press any key to continue

 

                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 

 

По каждому модулю должны быть разработаны и приведены:

блок-схема, таблица идентификаторов, листинг программы,

расчет контрольной точки, инструкция по использованию.

Документация по использованию подпрограмм.

 

 

Таблицы идентификаторов:

 

Входные данные

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
Cy Real   Коэффициент подъемной силы  
V Real V   м/с Скорость полёта
Cx Real   Коэффициент лобового сопротивления  
G0 Real   Н Начальный вес самолета  
Gk Real   Н Конечный вес самолета
Ro Real. 0,705 кг/м3 плотность воздуха на высоте полета  
S Real S   м2 Площадь крыла
Integer   Количество разбиений

 

 

Выходные данные

Идентиф. Тип перем. Инженерное обознач. Значение Размерность Содержательное наименование
L Real определ Дальность полета

 

 

Заключение

 

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

Программа была отлажена на персональном компьютере. Представленные расчеты отвечают заданной точности.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-14 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: