Москва


перейти к полному списку дипломных проектов

Ссылка на скачивания файла в формате .doc находится в конце странички

Москва

Москва. Диалог-МИФИ. 2000г.

3. Шелеств В.Д. Программирование. Санкт-Петербург. BHV. 2001г.

4. Самарский А.А. Введение в численные методы.

5. Боресков А.В. Шикин Е.В. Шикина Г.Е. Компьютерная графика: первое знакомство. Москва. Финансы и статистика. 1996г.

6. Константинова Л.А. Ларионов Н.М. Писеев В.М. Методические указания по выполнению раздела “Охрана Труда” в дипломном проекте для студентов МИЭТ. Москва. МИЭТ. 1988г.

7. Багиев Г.Л., Тарасевич В.М., Х. Анн “Маркетинг: учебник”. Москва. “Экономика”. 2001г.

Приложение 1.

Листинг программы console

program Diplom_console

use AVDef

use DFLib

use AVViewer

!Block_1

implicit none

integer :: lbi=1,ubi,lbj=1,ubj,lbk=1,ubk,i,j,k,status,hav

integer(2) :: plx, ply, vis, pld

integer(4) :: delay

real(4) :: hx,hy,ii,jj

real(4), allocatable :: TDMas(:,:,:)

real(4), allocatable :: VMas(:,:)

!DEC$ATTRIBUTES array_visualizer :: VMas

real(4), allocatable :: PXMas(:)

!DEC$ATTRIBUTES array_visualizer :: PXMas

real(4), allocatable :: PYMas(:)

!DEC$ATTRIBUTES array_visualizer :: PYMas

!Sclaes

real(4), allocatable :: XAxis (:)

!DEC$ATTRIBUTES array_visualizer :: XAxis

real(4), allocatable :: YAxis (:)

!DEC$ATTRIBUTES array_visualizer :: YAxis

character (8) :: com

character (70) :: preFile, txtFile

character (20) :: xname, yname, zname

!Block_2

!reading filenames

call Help()

1 write (*,'(a\)') 'Enter name of file with presets values >'

read *,preFile

write (*,'(a\)') 'Enter name of file with matrix values >'

read *,txtFile

!default values

hx=1

hy=1

xname='X'

yname='Y'

zname='Z'

!reading presets

98 format (E4.2)

open (3,FILE=trim(preFile))

read(3,'(I2)', END=2) ubk,ubi,ubj

read(3,98, END=2) hx,hy

read(3,'(a)', END=2) xname

read(3,'(a)', END=2) yname

read(3,'(a)', END=2) zname

2 close (3)

!allocate arrays

allocate (TDMas(lbk:ubk,lbi:ubi,lbj:ubj))

allocate (VMas(lbi:ubi,lbj:ubj))

allocate (PXMas(lbj:ubj))

allocate (PYMas(lbi:ubi))

allocate (XAxis(lbj:ubj))

allocate (YAxis(lbi:ubi))

!set axis scales

do j=lbj,ubj

XAxis(j) = real(j)*hx

end do

do i=lbi,ubi

YAxis(i) = real(i)*hy

end do

!reading values

99 format (E12.5)

open (3,FILE=trim(txtFile))

do k=lbk,ubk

do i=lbi,ubi

do j=lbj,ubj

read(3,99,END=3) TDMas(k,i,j);

end do

end do

end do

close (3)

!starting state k=1, i=1, j=1

3 k=1

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

j=1

do i=lbi,ubi

PYMas(i)=VMas(i,j)

end do

i=1

do j=lbj,ubj

PXMas(j)=VMas(i,j)

end do

delay = 80

!Block_3

!prepare to start AV

call faglStartWatch(VMas, status)

call faglStartWatch(PXMas, status)

call faglStartWatch(PYMas, status)

call faglStartWatch(XAxis, status)

call faglStartWatch(YAxis, status)

!starting graph is 'visual' k=1

plx=0;

ply=0;

pld=0;

vis=1;

call favStartViewer(hav, status)

call favSetArray(hav, VMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetDimScale(hav, 2, XAxis, status)

call favShowWindow(hav, av_true, status)

call favSetUseAxisLabel(hav, X_AXIS, 1, status)

call favSetAxisLabel(hav,X_AXIS, trim(xname), status)

call favSetUseAxisLabel(hav, Y_AXIS, 1, status)

call favSetAxisLabel(hav,Y_AXIS, trim(yname), status)

call favSetUseAxisLabel(hav, Z_AXIS, 1, status)

call favSetAxisLabel(hav,Z_AXIS, trim(zname), status)

call Stat()

!Block_4

4 call favSetArrayName(hav, 'Array Visualizer Extender Shell', status)

write (*,'(a\)') 'Enter comand (help for comand list)> '

read(*,'(a)') com

if (trim(com) == 'status') then

call Stat()

end if

if (trim(com) == 'anim') then

call Animat()

end if

if (trim(com) == 'delay') then

call ChangeDelay()

end if

if (trim(com) == 'k') then

call ChangeK()

end if

if (trim(com) == 'plainx') then

call PlainX()

end if

if (trim(com) == 'plainy') then

call PlainY()

end if

if (trim(com) == 'plain3d') then

call Plain()

end if

if (trim(com) == 'visual') then

call Visu()

end if

if (trim(com) == 'help') then

call Help()

end if

if (trim(com) == 'exit') then

goto 5

end if

if (trim(com) == 'pause') then

call Paus()

end if

if (trim(com) == 'newfile') then

goto 1

end if

goto 4

!Block_5

5 print *, "Ending work"

call faglEndWatch(Vmas, status)

call faglEndWatch(PXMas, status)

call faglEndWatch(PYMas, status)

call faglEndWatch(XAxis, status)

call faglEndWatch(YAxis, status)

deallocate(TDMas)

deallocate(VMas)

deallocate(PXMas)

deallocate(PYMas)

deallocate(XAxis)

deallocate(YAxis)

call favEndViewer(hav, status)

contains

!Block_6

!Subroutins

subroutine Stat()

print *, "Matrix information"

write (*,*) 'min i=',lbi,' max i=',ubi

write (*,*) 'min j=',lbj,' max j=',ubj

write (*,*) 'max k=', ubk

print *, "Current position"

write (*,*) 'k=', k

write (*,*) 'Animate delay is ', delay

end subroutine

subroutine ChangeDelay()

write (*,*) 'Current animate delay is ', delay

write (*,'(a\)') 'Enter new value of delay > '

read *, delay

return

end subroutine

subroutine Animat()

integer :: k1, k2, tmp

if (pld==1) then

print *, "Can't animate in this view type"

return

end if

write (*, '(a\)') 'Current k is '

print *, k

write (*, '(a\)') 'Enter start k > '

read *, k1

if (k1>ubk) then

k1=ubk

end if

if (k1

k1=lbk

end if

write (*, '(a\)') 'Enter end k > '

read *, k2

if (k2>ubk) then

k2=ubk

end if

if (k2

k2=lbk

end if

if (k2

tmp=k1

k1=k2

k2=tmp

end if

if (plx==1) then

write(*,'(a\)') 'Enter i > '

read *,ii

i=int(ii/hy)

if (i>ubi) then

i=ubi

end if

if (i

i=lbi

end if

end if

if (ply==1) then

write(*,'(a\)') 'Enter j > '

read *,jj

j=int(jj/hx)

if (j>ubj) then

j=ubj

end if

if (j

j=lbj

end if

end if

print *, "Start animation"

if (vis==1) then

print *, "3D animation"

do k=k1,k2

write (*,*) 'k=', k

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

if (plx==1) then

do k=k1,k2

write (*,*) 'k=', k

do j=lbj,ubj

PXMas(j)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

if (ply==1) then

do k=k1,k2

write (*,*) 'k=', k

do i=lbi,ubi

PYMas(i)=TDMas(k,i,j)

end do

print *, k

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

k=k-1

print *, "End animation"

return

end subroutine

subroutine Help()

print *, "Array Visualizer extender v1.01"

print *, "by V. Sidorin (year 2002)"

print *, "View comands:"

print *, "anim, plainx, plainy, plain3d, visual"

print *, "Other comands:"

print *, "newfile, help, k, delay, status, exit"

return

end subroutine

subroutine ChangeK()

write (*,*) 'Current k is: ', k

write(*,'(a\)') 'Enter k > '

read *,k

if (k>ubk) then

k=ubk

end if

if (k

k=lbk

end if

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

j=1

do i=lbi,ubi

PYMas(i)=VMas(i,j)

end do

i=1

do j=lbj,ubj

PXMas(j)=VMas(i,j)

end do

call favUpdate(hav, 0, status)

return

end subroutine

subroutine PlainX()

if (plx==0) then

plx=1

ply=0

pld=0

vis=0

call favSetArray(hav, PXMas, status)

call favSetDimScale(hav, 1, XAxis, status)

call favSetUseAxisLabel(hav, X_AXIS, 1, status)

call favSetAxisLabel(hav,X_AXIS, trim(xname), status)

call favSetUseAxisLabel(hav, Z_AXIS, 1, status)

call favSetAxisLabel(hav,Z_AXIS, trim(zname), status)

end if

write(*,'(a\)') 'Enter i > '

read *,ii

i=int(ii/hy)

if (i>ubi) then

i=ubi

end if

if (i

i=lbi

end if

do j=lbj,ubj

PXMas(j)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine PlainY()

if (ply==0) then

plx=0

ply=1

pld=0

vis=0

call favSetArray(hav, PYMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetUseAxisLabel(hav, X_AXIS, 1, status)

call favSetAxisLabel(hav,X_AXIS, trim(yname), status)

call favSetUseAxisLabel(hav, Z_AXIS, 1, status)

call favSetAxisLabel(hav,Z_AXIS, trim(zname), status)

end if

write(*,'(a\)') 'Enter j > '

read *,jj

j=int(jj/hx)

if (j>ubi) then

j=ubj

end if

if (j

j=lbj

end if

do i=lbi,ubi

PYMas(i)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine Plain()

if (pld==0) then

plx=0

ply=0

pld=1

vis=0

call favSetArray(hav, VMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetDimScale(hav, 2, XA

скачать бесплатно Визуализация инженерных и научных расчетов

Содержание дипломной работы

pas (продовження) Государственный комитет РФ по высшему образованию
Рассмотрены вопросы освещения, защиты от излучений, электро- и пожаробезопасности, защиты от шума и вибрации, психофизические опасные и вредные факторы
1 Обзор средств визуализации инженерных и научных расчетов Использование вычислительной техники для визуализации и анализа научных данных стало уже традиционным
Визуально такую поверхность часто представляют либо в виде трехмерного изображения, либо в виде линий уровней
Для вращения изображения достаточно разместить мышь на поле графического вывода, нажать левую кнопку мыши и затем, оставаясь на поле вывода, перемещать мышь в произвольном направлении
Последнее выбрано исходя из соображений совместимости не только с Fortran-программами, но и с C/C++ и даже Pascal-программами
Графически структуру программы можно изобразить как это сделано на рис 4 (оговоримся сразу – это не блок-схема программы, это только схематичное изображение структуры)
Команды программы Скриптовый режим программы Запуска программы
Pre-файл (от preset – предварительные установки)– это файл с установками, необходимыми для работы программы, а также с оформлением шкал
будет отображаться массив с изменяющейся координатой X и постоянной координатой Y)
Кроме этого, первые две строки скрипта это имена pre-файла и файла данных соответственно
23456E+02 с пробелом в начале если число положительное и знаком ‘ - ‘ если отрицательное
5E", M[i][j]); fputs(str,f); fprintf(f,”\n”); } fclose(f); } Здесь формируется массив M[20]][20] (необходимо помнить, что в C массивы начинаются с 0) и заполняется функцией M[i][j]=i+sin(j)
Как и всякий процесс, написание программ обработки результатов для последующего графического вывода и вывод имеет свою технологию
Информация может передаваться через оперативную память (ОЗУ), через файловую систему в виде бинарных файлов или, более объемных, текстовых файлов
Негативная сторона заключается в затратах на обучение программистов, а так же в затратах на оболочки визуализации
Самым простым является тот, когда прямые перпендикулярны плоскости изображения, а сама эта плоскость является одной из координатных плоскостей или параллельна ей
Поскольку элементы сцены или картинки можно заносить в буфер кадра или в z-буфер в произвольном порядке, их не нужно предварительно сортировать по приоритету глубины
Создание интерфейса пользователя Этот этап выделен как заключающий, потому что от вида интерфейса зависит только удобство работы с программой
Оговоримся сразу, что использование созданного ПО предполагается в рамках университетской программы, к тому же работающей по расчетам программ инженеров
Таким образом, оценка конкурентоспособности товара подразумевает сопоставление значений показателей качества товара фирмы с показателем качества товара конкурента
Сравнение цен потребления производится по формуле (2): где Э – общий показатель по экономическим параметрам; Цпа – цена потребления анализируемого изделия; Цпк – цена потребления товара-конкурента
При рассмотрении вопросов охраны труда большое внимание уделяется производственному освещению, оздоровлению воздушной среды, защите от шума, электробезопасности, пожарной безопасности и др
Свечение со стороны экрана, а также частая смена заставок на экране при большой продолжительности трудовой деятельности может отрицательно воздействовать на зрение
Кроме того, любой монитор, работающий не на ЭЛТ, имеет то преимущество, что не излучает переменных компонент, связанных с наличием систем вертикального и горизонтального отклонения электронного луча
) прокладки; - применение на рабочих местах звукогасящих экранов; - отделение помещений с высоким уровнем шума от других помещений звукоизолирующими перегородками
м/час на одного работника, а в помещениях объемом 20 - 40 кубометров на одного работающего - не менее 20 куб
Программа согласуется с инженерными программами на языках C++ и Fortran и может быть использована как на этапе отладки, так и на этапе демонстрации
Москва

заработать

Закачай файл и получай деньги