
- •Реферат.
- •1 Задание на курсовую работу
- •2 Порядок выполнения
- •Определения, обозначения и сокращения Перечень сокращений
- •Обозначения
- •Задание на курсовую работу
- •2 Порядок выполнения.
- •2.1 Анализ условия задания.
- •2.2 Разработка алгоритма решения.
- •2.2.1 Блок «Module source_data».
- •2.2.2 Блок «Trap».
- •2.2.3 Блок «f».
- •2.2.5 Блок «Cyt».
- •2.2.6 Блок «Main».
- •2.3 Выбор представления для входных и выходных данных задания.
- •2.4.1.3 Реализация программного модуля.
- •2.4.2 Описание подпрограммы «Trap».
- •2.4.2.1 Общие характеристики.
- •2.4.2.2 Описание модуля.
- •2.4.4.1 Общие характеристики.
- •2.4.4.2 Описание модуля.
- •2.4.4.3 Реализация программного модуля.
- •2.4.6 Описание вызывающей программы «Main».
- •2.5 Тестирование программы и отладка задачи в целом.
- •2.6 Выполнение расчетов.
- •1 Межгосударственный стандарт «Отчет о научно-исследовательской работе. Структура и правила оформления» гост 7.32–2001. Минск, 2001 г.
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 |
250 |
м/с |
Скорость полёта |
S |
Real |
S |
40 |
|
Площадь крыла |
G |
Real |
|
|
Н |
Вес самолета
|
Gk |
Real |
|
120000 |
Н |
Начальный вес самолета
|
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 (ЭВМ)