Реферат по предмету "Информатика, программирование"


Движение по эллиптическому маршруту с регулируемой скоростью и графической визуализацией процесса

Федеральноеагентство по образованию
Государственноеобразовательное учреждение высшего профессионального образования
Кузбасскийгосударственный технический университет
Кафедраинформационных и автоматизированных производственных систем
Пояснительнаязаписка
к курсовойработе по курсу “Технология программирования”

Содержание
 
1. Задание
2. Математическаяпостановка
2.1  Уточнениеформулировки задачи
2.2  Математическоеописание процесса
2.3  Спецификацияпеременных (обозначения, типы, назначение, классификация)
2.4  Спецификацияобъектов (назначение, свойства)
2.5  Организацияпроцесса и расчетные формулы
3. Разработкаблок-схемы
4. Текст программына VB
5. Контрольныйпример
6. Инструкцияпользователя
Список использованной литературы

1. Задание
Разработать проектпрограммного средства «Движение по эллиптическому маршруту с регулируемойскоростью и графической визуализацией процесса».
Параметры маршрутазадаются в м. или км. Скорость движения в м/с или км/час. Образ движущегосяобъекта – цветное пятнышко, перемещающееся по линии эллипса.
По ходу движенияотображаются координаты объекта, пройденный путь от места старта />, время движения, числополных пройденных кругов. По каждому кругу фиксируется средняя скорость и времяпрохождения.

2. Математическаяпостановка
 
2.1 Уточнениеформулировки задачи и выбор языка программирования
 
Для решения задачинеобходимо в первую очередь выбрать язык программирования и с помощью егосредств и возможностей, решать поставленную задачу.
Для решения задачивоспользуемся языком программирования Visual Basic, посколькуон является идеальным средством для быстрого создания небольших проектов. Средстваинтегрированной среды разработки языка Visual Basic позволяют использовать Форму, для созданияграфического интерфейса проекта, что удобно для решения поставленной задачи.
Параметры эллипса,вращающегося тела, используемые объекты, а также их свойства в условии задачине оговорены, и задаются произвольно, таким образом, чтобы отвечать всемусловиям задачи, а также обеспечивать лёгкость применения программы, еёфункциональность, эффективность, мобильность, надёжность, эстетичность.
2.2  Математическоеописание процесса
программныйматематический пользователь
Параметрически эллипсзадаётся в виде: x=a*cos(fi) y=b*cos(fi), где fi– угол в промежутке [0; 2π]. Эти формулы используются дляорганизации движения объекта по траектории эллипса. Параметры a и b задаются произвольно, подбираются опытным путём, взависимости от размера формы.
Длина эллипсарассчитывается с помощью эллиптического интеграла, вида />, таким образом,достаточно рассчитать длину дуги эллипса при t € [0; π/2] и умножить на 4.

2.3  Спецификацияпеременных (обозначения, типы, назначение, классификация)
 
x– текущая координата объекта, тип Single.
y – текущая координата объекта, тип Single.
x2 – предыдущая координата объекта, тип Single.
y2 – предыдущая координата объекта, тип Single.
v – мгновенная скорость объекта, тип Single.
fi – угол в радианах, которыйизменяется во время работы программы, тип Double.
k – переменная, хранящая количествокругов, пройденных объектом, тип Integer.
S – переменная, хранящая путь,пройденный телом, тип Single.
Исходные данные: переменных, хранящих исходныеданные, нет.
Результаты: x, y, v, k, S.
Промежуточныерезультаты: fi, x2, y2.
2.4 Спецификацияобъектов (назначение, используемые свойства)
 
Form Form1 – форма, на которой расположены другиеобъекты управления.
AutoRedraw= -1 'True (рисунки, выполненные графическимиметодами, автоматически восстанавливаются после изменения размера формы илипосле того как форма была закрыта другим окном)
Caption = «Движениепо эллиптическому маршруту с регулируемой скоростью и визуализацией» (надпись в заголовке формы)
PictureBox Picture1 – внутри объекта происходит графическаявизуализация процесса.
AutoRedraw = -1 'True
ScaleMode = 3 'Pixel (единицы измерения, используемые всистеме координат, связанной с объектом)
Height = 3975 (высотаобъекта)
Width = 6255 (ширинаобъекта)
LineLine1 ­– объект, используемый для изображенияоси ординат.
X1 = 20
X2 = 20
Y1 = 8
Y2 = 256
 
LineLine2 – объект, используемый для изображенияоси абсцисс.
X1 = 408
X2 = 8
Y1 = 240
Y2 = 240
 
ShapeShape1 – объект, выводит изображениегеометрических фигур, в программе это круг, перемещающийся по лини эллипса.
Shape = 3 'Circle
Width = 240
Height = 240
LabelLabel9 – метка, выводит на экран надпись.Располагается на объекте Picture1. Указывает начало координат.
Caption = «0»
LabelLabel8 – метка, выводит на экран надпись.Располагается на объекте Picture1. Подпись к оси ординат.
Caption = «Y, м»
LabelLabel7 – метка, выводит на экран надпись.Располагается на объекте Picture1. Подпись к оси абсцисс.
Caption = «X, м»
LabelLabel13 – метка, выводит на экран надпись.Располагается на объекте Picture1. Подпись к оси ординат.
Caption = «100»
LabelLabel14 – метка, выводит на экран надпись.Располагается на объекте Picture1. Подпись к оси абсцисс.
Caption = «50»
TimerTimer1 – позволяет организовать циклическоеповторение группы команд, отвечающих за движение объекта Shape1, расчёт значений переменных x, y, k, S и их вывод в соответсвующие метки
Enabled = 0 'False (при загрузке формы выключен)
Interval = 1 (промежуток времени вмиллисекундах, через который повторяется выполнение команд)
TimerTimer2 – позволяет организовать циклическоеповторение группы команд, отвечающих за движение объекта Shape1, расчёт значений переменных x2, y2, v и их вывод в соответсвующие метки
Enabled = 0 'False (при загрузке формы выключен)
Interval = 100 (промежуток времени вмиллисекундах, через который повторяется выполнение команд)
CommandButtonCommand1 – объект управления командная кнопка.Нажатие на кнопку начинает выпонение действий, программный код которых связан сней, объект Shape1 начинает движение.
Caption = «Старт»
Height = 495 (высота)
Width = 1455 (ширина)
CommandButtonCommand2 – объект управления командная кнопка.Нажатие на кнопку начинает выпонение действий, программный код которых связан сней, объект Shape1 прекращает движение.
Caption = «Стоп»
Height = 495 (высота)
Width = 1455 (ширина)
LabelLabel12 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кобъекту выводящему время с начала движения объекта Shape1.
Caption = «Общее время, с»
Left = 6720 (положение объекта, координатах верхнего левого угла объекта)
Top = 2880 (положение объекта, координатаy верхнего левого угла объекта)
LabelLabel5 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кобъекту, выводящему путь, пройденный объектом Shape1.
Caption = «Общий путь, м»
Left = 6720
Top = 2400
LabelLabelY– метка, в которую выводится координата Y. Располагается на объекте Form1.
BorderStyle = 1'Fixed Single (задаёт рамку вокруг метки)
Left = 8880
Top = 1800
LabelLabelX
BorderStyle = 1'Fixed Single
Left = 8160
Top = 1800
LabelLabel10 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кметкам, выводящим текущие координаты объекта Shape1.
Caption = «Координаты»
Left = 6720
Top = 1800
LabelLabel6 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кметке, выводящей мгновенную скорость объекта Shape1.
Caption = «Скорость:»
Left = 480
Top = 5040
LabelK– метка, в которую выводится количество полных кругов.Располагается на объекте Form1.
Caption = «0»
Left = 8640
Top = 1200
LabelLabelVLabelK– метка, в которую выводится количество полных кругов,пройденных объектом Shape1.Располагается на объекте Form1.
Caption = «0» (изначальноколичество кругов считается равным 0)
Left = 8400
Top = 3360
LabelLabel3 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кметке, выводящей число кругов, пройденных объектом Shape1.
BorderStyle = 1'Fixed Single
Caption = «Пройдено кругов»
Left = 6720
Top = 1200
LabelLabel2 – метка, выводит на экран надпись.Располагается на объекте Form1. Подпись кметке, выводящей скорость объекта Shape1.
Caption = «Скорость м/c»
Left = 6720
Top = 3360
LabelLabel1 – метка, выводит на экран надпись.Располагается на объекте Form1.
 Caption = «Движениепо эллиптическому маршруту с регулируемой скоростью и графической визуализациейпроцесса»
SliderSlider1 – объект управления, с помощью которогорегулируется скорость движения объекта Shape1.
Max = 30 (максимальное число делений)
Value = 2 (деление накотором располагается бегунок по умолчанию)
2.5 Организацияпроцесса и расчетные формулы
 
Организовывается процессработы программы следующим образом. При запуске программы появляется форма, накоторой отображаются объекты управления. Для объекта Picture1 свойство DrawWidth = 8, это толщина точек, при помощикоторых на объекте изображается эллипс, прорисовка точек с использованиемметода PSet происходит в теле цикла For…Next следующим образом: Picture1.PSet(180 * Cos(i) + 200, 100 * Sin(i) + 140)
В результате выполненияцикла получаем изображение эллипса, у которого большая полуось равна 90, а малая50, и смещённым относительно левого верхнего угла объекта Picture1 на 200 пикселей влево и 140 – вниз.
С помощью метода PSetрисуются точки на осях абсцисс и ординат, задающие единичный отрезок. Масштабзадан следующий 360 пикселей = 100 метров. Таким образом, для пользователя большая полуось будет составлять 45 метров, а меньшая – 50 метров.
При нажатии на команднуюкнопку Command1 проверяется условие если Slider1.Value = 0, таймер,организующий движение объекта не включается (Timer1.Enabled = False) так какэто означает, что скорость равна нулю. Во всех остальных случаях таймервключается (Timer1.Enabled = True).
При нажатии на команднуюкнопку Command2 таймеры Timer1 иTimer2 выключаются Timer1.Enabled = False: Timer2.Enabled =False, что приводит к остановке движения тела и остановке отсчёта времени.
Теперь последовательно рассмотримпрограммный код процедур Timer1_Timer() и Timer2_Timer().
С помощью объекта Timer1,организуется движение объекта. В первую очередь активируется Timer1. Затем рассчитываются координаты объекта Shape1 по формулам
x = 180 * Cos(fi) +200
y = 100 * Sin(fi) +140
Формулы совпадают сформулами, по которым происходила прорисовка эллипса, это обеспечивает то, чтообъект движется по траектории, совпадающей с эллипсом. После того каккоординаты рассчитаны, они присваиваются свойствам Left и Topобъекта Shape1, определяющих положение объекта на объекте Picture1. Также координаты выводятся в соответствующие метки наформе LabelX.Caption = (x — 20) \ 4: LabelY.Caption = (240 — y) \ 4.
Переменная fi изменяетсяпо закону fi = fi + (Slider1.Value / 2) * 3.1415 / 180, т.е. угол разбиения, аследовательно и скорость объекта Shape1,зависит от свойства Value, объекта Slider1, иначе говоря от положения бегунка.
Число полных кругов,пройденных объектом Shape1, рассчитываетсяпо формуле k = Int(fi / 6.28), и после расчёта выводится в соответствующуюметку LabelK.Caption = k.
Пройденный телом путь,рассчитывается по формуле S = Round(223.112 / 6.28 * fi).
Число 223.112 – это длинаэллипса в метрах, рассчитана с помощью определённого интеграла:
4*/>.
После расчёта значениевыводится в соответствующую метку LabelS.Caption = S.
Свойство Interval объекта Timer1, равно 1, это значит, что все описанные выше действияповторяются 1 раз в миллисекунду. Величина интервала подобрана опытным путём.
В программном кодепроцедуры Timer2_Timer() осуществляется подсчёт времени, по формулеLabelTime.Caption = LabelTime.Caption + 0.1, а свойство Interval объекта Timer2 равно 100, чтообеспечивает отсчёт времени в секундах, с точностью до десятых.
Скорость объекта Shape1, рассчитывается по формуле v = (Sqr((x2 — x) ^ 2 +(y2 — y) ^ 2)) / (Timer2.Interval) * 1000. Расстояние между двумя соседнимиточками определяется как корень квадратный из суммы квадратов разностей координатэтих точек, и делится на время, т.е интервал таймера Timer1.

3. Разработкаблок-схемы
 
Представим графическийалгоритм, в виде блок-схемы, для процедуры PrivateSub Timer1_Timer(),отвечающей за передвижение тела по эллиптической траектории.
/>

4. Текст программына VB
Dim fi As Double 'угол'
Dim x As Integer 'текущая координата Х
Dim y As Integer'текущая координата Y
Dim x2 As Integer
Dim y2 AsInteger
Dim v AsSingle 'скорость тела
Private SubCommand1_Click()
IfSlider1.Value = 0 Then Timer1.Enabled = False Else Timer1.Enabled = True 'при нажатии на СТАРТ если скорость установлена 0, тело не движется
End Sub
Private SubCommand2_Click()
Timer1.Enabled = False'кнопка СТОП.Движение тела и отсчёт времени прекращается.
Timer2.Enabled= False
End Sub
Private SubForm_Load()
Picture1.DrawWidth = 8'устанавливается толщина линии 8 пикселей
For i = 0 To360
Picture1.PSet(180 * Cos(i) + 200, 100 * Sin(i) + 140) 'при помощи методаPSet рисуется эллипс
Next
Shape1.Left = -20'координаты объекта при загрузке формы, таковы, что объект отсутствует на форме
Shape1.Top = -20
fi = 0
Picture1.PSet (380, 240)'точки на осях x и y, единичный отрезок
Picture1.PSet(20, 40)
End Sub
Private SubTimer1_Timer()
If NotTimer2.Enabled Then Timer2.Enabled = True
x = 45 * 4 * Cos(fi) + 48* 4 'траектория движения тела, координаиа Х
y = 25 * 4 *Sin(fi) + 33 * 4 'Y
Shape1.Left =x
Shape1.Top = y
LabelV.Caption = Round(v,3) 'вывод значения скорости в метку, точность до тысячных
LabelX.Caption = x 'выводкоординат в метки
LabelY.Caption= y
LabelK.Caption= Int(fi / 6.28) 'количество кругов
LabelS.Caption= Round(223.112 / 6.28 * fi) 'пройденный путь
fi = fi + (Slider1.Value/ 2) * 3.1415 / 180 'закон изменения угла разбиения
End Sub
Private SubTimer2_Timer()
LabelTime.Caption= LabelTime.Caption + 0.1 'время
v = (Sqr((x2 — x) ^ 2 + (y2 — y) ^ 2)) / (Timer2.Interval) * 1000 'скорость
x2 = x
y2 = y
End Sub

5.Контрольный пример
 
/>
/>

6. Инструкция пользователя
 
Данная программа являетсяграфической визуализацией движения объекта по эллиптическому маршруту, срегулируемой скоростью.
Запустите файл ”Project1.exe”. На экране появится форма, большую её часть занимаетрамка с изображением прямоугольной системы координат и изображённого в нейэллипса. При нажатии на кнопку «Старт», появляется объект в виде небольшогокруга, движущегося по траектории, обозначенной эллипсом. В окошках,расположенных на форме слева указываются параметры движения тела: координаты,количество полных пройденных кругов, общий пройденный путь и скорость. Скоростьтела регулируется с помощью бегунка, расположенного внизу формы. Процессдвижения можно остановить, нажав на кнопку «Стоп», при повторном нажатии на«Старт» тело продолжит движение при этом характеристики движения не обнулятся,и их отсчёт будет продолжен с момента остановки. Для выхода из программы нажмитена кнопку с крестиком в верхнем правом углу окна.

Списокиспользованной литературы
 
1. А.Г. Паутова. Visual Basic Творческое проектирование. В 3 ч. – М.: КлассиксСтиль, 2003. – 128 с.
2. Марченко А.Л.«Введение в программирование»: Учебное пособие. — Московский университет, 2005.– 258 с.
3. Либерти Д.«Программирование на VB»:Пер. с англ. – 2-ое изд.- Сивол-Плюс, 2004. – 688 с.
4. Мультимедийноепособие «Программирование для студентов», Alex Soft.


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

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

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Априорная модель данных в реляционных базах
Реферат Статистическая обработка земельно-кадастровой информации
Реферат Статистические модели макроэкономики
Реферат Некоторые вопросы проведения судебной реформы в Сибири в 60-е - 80-е гг. XIX в.
Реферат Языкознание в системе наук
Реферат Fate Essay Research Paper Webster defines fate
Реферат Жизнедеятельность П.А. Кропоткина и ее место в развитии мировой общественной мысли
Реферат Зависимость свободы героя от его привязанности к миру к месту к вещам - в произведениях СДовлатова
Реферат Функциональное обследование предприятия. Разработка маркетингового плана предприятия.Проектирование, размещение и продвижение web-сайта предприятия
Реферат Ресурсы производства
Реферат Ахматова а. - Пушкинская тема в творчестве а. ахматовой
Реферат G gilmanova@mail ru Вопросы к олимпиаде школьников по региональному туризму «Время отдыхать в Башкортостане!»
Реферат Физическое, психомоторное развитие и состояние иммунной реактивности у детей, в зависимости от характера вскармливания на первом году жизни
Реферат Граф А. А. Аракчеев. Современный взгляд на личность на основе анализа и сравнительной характеристики исторических источников и литературы
Реферат Сегментирование рынка 4