Колледж информатизации и управления




Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

«Санкт-Петербургский государственный

Политехнический университет»

Колледж информатизации и управления

«Радиополитехникум»

 

 

на программный продукт на тему:

«РАСЧЕТ ПОЛЕТА ТЕЛА БРОШЕННОГО ПОД УГЛОМ К ГОРИЗОНТУ»

 

 

Руководитель проекта

/ Вимберг С.В /

 

Студент группы 4293/21

/ Джафаров Р./

 

2012 год

СОДЕРЖАНИЕ

Введение……………………………………………………………………………………3

1.Общая часть……………………………………………………………………………...4

1.1Описание предметной области………………………………………………………...4

1.2Анализ методов решения……………………………………………………………….7

1.2.1Ручной метод………………………………………………………………………….7

1.2.2Автоматизированный метод…………………………………………………………7

1.3 Обзор средств, программирования……………………………………………………7

1.3.1 Обзор языка программирования С++……………………………………………….7

1.3.2. Delphi………………………………………………………………………………….8

1.3.3 Pascal………………………………………………………………………………….8

1.4 Описание языка………………………………………………………………………….9

1.4.1.1 Delphi……………………………………………………………………………….9

1.4.1.2. Среда программирования Delphi………………………………………………..9

1.4.1.3. Классы Delphi……………………………………………………………………….9

1.4.1.4. Объекты Delphi…………………………………………………………………….10

1.4.1.5. Инкапсуляция в Delphi…………………………………………………………….10

1.4.1.6. Наследование в Delphi……………………………………………………………..11

1.4.1.7. Полиморфизм в Delphi……………………………………………………………..11

1.4.1.8. Абстракция в Delphi………………………………………………………………..11

1.4.2. Операторы Delphi…………………………………………………………………….12

1.4.3. Выражения в Delphi…………………………………………………………………..12

1.4.4. Структура программы написанной на Delphi……………………………………….12

1.4.5. Свойства объектов в Delphi…………………………………………………………..12

2.Специальная часть…………………………………………………………………………14

2.1 Постановка задачи……………………………………………………………………….14

2.1.1 Основание для разработки…………………………………………………………….14

2.1.2 Назначение программы………………………………………………………………..14

2.1.3 Требование к программе………………………………………………………………14

2.1.3.1. Требование к функциональным характеристикам………………………………..14

2.1.3.2 Требование к надежности……………………………………………………………14

2.1.3.3 Требование к условиям эксплуатации………………………………………………14

2.1.3.4 Требование к техническим средствам………………………………………………14

2.2 Описание схем…………………………………………………………………………….15

2.3. Текст программы……………………………………………………………………….15

2.4.2. Функциональное назначение………………………………………………………..15

2.4.3. Описание логической структуры……………………………………………………15

2.4.4. Используемые технические средства……………………………………………….16

2.4.5. Вызов и загрузка………………………………………………………………………16

2.4.6. Входные и выходные данные………………………………………………………..16

2.5. Описание процесса отладки……………………………………………………………17

2.6. Результат работы программы…………………………………………………………..17

ЗАКЛЮЧЕНИЕ………………………………………………………………………………..18

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

Приложение 2………………………………………………………………………………….20

 

ВВЕДЕНИЕ

 

 

Основной целью написания программы является: расчет полета тела над горизонтом.

 

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

 

1.ОБЩАЯ ЧАСТЬ

 

1.1. Описание предметной области

 

Снаряд пущен с Земли с начальной скоростью v0 под углом a к ее поверхности; требуется найти траекторию его движения (y), расстояние S между начальной и конечной точкой этой траектории, время движения (t) и максимальную высоту подъема снаряда (h).

 

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

 

Решение поставленной задачи

Движение тела, брошенного с некоторой начальной скоростью Vо под углом α к горизонту, представляет собой сложное движение: равномерное по горизонтальному направлению и одновременно происходящее под действием силы тяжести равноускоренное движение в вертикальном направлении. Так движется лыжник при прыжке с трамплина, струя воды из брандспойта (рис. 1) и т.д.

Рис. 1

 

Изучение особенностей такого движения началось довольно давно, еще в XVI веке и было связано с появлением и совершенствованием артиллерийских орудий.

 

Представления о траектории движения артиллерийских снарядов в те времена были довольно забавными. Считалось, что траектория эта состоит из трех участков: А - насильственного движения, В - смешанного движения и С - естественного движения, при котором ядро падает на солдат противника сверху (рис. 2).

Рис. 2

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

 

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

 

Близко к правильному решению о полете пушечных ядер подошел итальянский математик

 

Тарталья, он сумел показать, что наибольшей дальности полета снарядов можно достичь при направлении выстрела под углом 45° к горизонту. В его книге "Новая наука" были сформулированы правила стрельбы, которыми артиллеристы руководствовались до середины ХVII века.

 

Однако, полное решение проблем, связанных с движением тел брошенных горизонтально или под углом к горизонту, осуществил все тот же Галилей.

 

В своих рассуждениях он исходил из двух основных идей: тела, движущиеся горизонтально и не подвергающиеся воздействию других сил будут сохранять свою скорость; появление внешних воздействий изменит скорость движущегося тела независимо от того, покоилось или двигалось оно до начала их действия.

 

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

 

Галилей указывал, что при реальном движении снарядов, вследствие сопротивления воздуха, их траектория уже не будет напоминать параболу: нисходящая ветвь траектории будет идти несколько круче, чем расчетная кривая.

 

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

 

Появилась и новая наука – баллистика. Прошло много-много лет, и теперь снаряды движутся столь быстро, что даже простое сравнение вида траекторий их движения подтверждает возросшее влияние сопротивления воздуха.

 

На нашем рисунке 3 идеальная траектория движения тяжелого снаряда, вылетевшего из ствола пушки с большой начальной скоростью, показана пунктиром, а сплошной линией - действительная траектория полета снаряда при тех же условиях выстрела.

 

Рис. 3

В современной баллистике для решения подобных задач используется электронно-вычислительная техника - компьютеры, а мы пока ограничимся простым случаем - изучением такого движения, при котором сопротивлением воздуха можно пренебречь. Это позволит нам повторить рассуждения Галилея почти без всяких изменений.

 

Полет пуль и снарядов представляет собой пример движения тел, брошенных под углом к горизонту. Точное описание характера такого движения возможно только при рассмотрении некоторой идеальной ситуации. Посмотрим, как меняется скорость тела, брошенного под углом α к горизонту, в отсутствие сопротивления воздуха. В течение всего времени полета на тело действует сила тяжести. На первом участке траектории (рис. 4) от точки А до точки В скорость тела уменьшается по величине и изменяется по направлению.

Рис. 4

В наивысшей точке траектории – в точке С - скорость движения тела будет наименьшей, она направлена горизонтально, под углом 90° к линии действия силы тяжести. На второй части траектории полет тела происходит аналогично движению тела, брошенному горизонтально. Время движения от точки А до точки С будет равно времени движения по второй части траектории в отсутствие сил сопротивления воздуха.

 

Если точки "бросания" и "приземления" лежат на одной горизонтали, то тоже самое можно сказать и о скоростях "бросания" и "приземления". Углы между поверхностью Земли и направлением скорости движения в точках "бросания" и "приземления" будут в этом случае тоже равны.

 

Дальность полета АВ тела, брошенного под углом к горизонту, зависит от величины начальной скорости и угла бросания. При неизменной скорости бросания V0 с увеличением угла, между направлением скорости бросания и горизонтальной поверхностью от 0 до 45°, дальность полета возрастает, а при дальнейшем росте угла бросания - уменьшается. В этом легко убедиться, направляя струю воды под разными углами к горизонту или следя за движением шарика, выпущенного из пружинного "пистолета" (такие опыты легко проделать самому).

 

Траектория такого движения симметрична относительно наивысшей точки полета и при небольших начальных скоростях, как уже говорилось раньше, представляет собой параболу.

 

Максимальная дальность полета при данной скорости вылета достигается при угле бросания 45°. Когда угол бросания составляет 30 или 60°, то дальность полета тел для обоих углов оказывается одинаковой. Для углов бросания 75 и 15° дальность полета будет опять одна и та же, но меньше, чем при углах бросания 30 и 60°. Значит, наиболее "выгодным" для дальнего броска углом является угол в 45°, при любых других значениях угла бросания дальность полета будет меньше.

 

Если бросить тело с некоторой начальной скоростью Vо под углом 45° к горизонту, то его дальность полета будет в два раза больше максимальной высоты подъема тела, брошенного вертикально вверх с такой же начальной скоростью.

 

Пренебрегая размерами снаряда, будем считать его материальной точкой. Введем систему координат xOy, совместив ее начало O с исходной точкой, из которой пущен снаряд, ось x направим горизонтально, а ось y — вертикально (рис. 5).

 

Рис. 5

Тогда, как это известно из школьного курса физики, движение снаряда описывается формулами:

(1)

 

 

где t — время, g = 10 м/с2 — ускорение свободного падения. Эти формулы и дают математическую модель поставленной задачи. Выражая t через x из первого уравнения и подставляя во второе, получим уравнение траектории движения снаряда:

(2)

 

 

Эта кривая (парабола) пересекает ось x в двух точках: x1 = 0 (начало траектории)

 

и (место падения снаряда). (3)

 

1.2 Анализ методов решения

 

Существует 2 метода решения задачи: ручной и автоматизированный.

 

 

1.2.1 Ручной метод

 

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

 

 

1.2.2 Автоматизированный метод

 

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

 

 

1.3 Обзор средств, программирования

 

 

1.3.1 Обзор языка программирования С++

 

 

Если требуется обеспечить хорошую скорость работы приложения и экономию ресурсов памяти и процессора традиционно считается, что лучше использовать C++. Однако, в последнее время разница в скорости работы программ, собранных различными компиляторами, становится всё менее и менее заметной. Почему? Потому что большинство сред разработки имеет встроенный конвертор кода в ассемблер, а он — как ни крути самый быстрый. Delphi2007 например имеет опцию работы компилятора {$PUREPASCAL}. Когда она включена — компилятор компилирует классический паскалевский код, когда выключена — используются функции и процедуры, написанные в ассемблере. По умолчанию, кстати, она выключена.

 

Единственное преимущество C++ — мощная модель работы с указателями. В общем случае это очень полезно, так как переменные в памяти не дублируются. Но, если проект сложный, всегда приводит к ошибкам доступа к памяти.

 

В качестве очевидного преимущества C++ зачастую называют его модель работы с классами и шаблонами. Но, весь функционал C++ реализуем и в любом другом языке программирования. Да, в С++ можно например переопределить действие операторов + — / *, правда зачем, можно просто написать доп. функцию. Что же касается шаблонов функций и процедур С++, которые очень часто ставятся в достоинство — на это в Delphi есть вариантные типы. То есть просто не указываете тип переменной в Delphi, по сути — та же шаблонная функция.

 

 

1.3.2. Delphi

 

В Противоположном случае, когда требуется разработать ПО в максимально сжатые сроки обеспечить хороший рефакторинг (читабельность, модифицируемость, удобство и оптимизацию) кода приложения. Тут Delphi просто нет равных. Код хорошо структурируется, названия всех функций по сути есть сокращения английских слов (IntToStr — целое в строку; Now — возвращает дату и время сейчас; UpperCase — приводит к верхнему регистру и тд), хорошая модульность и видимость кода — все это способствует скорости разработки, а также позволяет производить ее в командном режиме более эффективно.

 

Еще одно очевидное преимущество Delphi — компоненты, число которых исчисляется миллионами. В Delphi есть возможность скомпилировать участок кода и предоставить его в свободное пользование как компонент. Что получается? Гигантское количество энтузиастов и организаций предоставляют в свободное пользование готовые решения. Фтп клиент? Скачал компонент, кинул на форму и всё готово! Дело двух кликов.

 

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

 

 

1.3.3 Pascal

 

Нельзя забывать и про Pascal, среди его достоинств:

 

1) Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы.

2) Достаточно низкие аппаратные и системные требования, как самого компилятора, так и программ, написанных на Паскале.

3) Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.

4) Поддержка структурного программирования, программирования "сверху вниз", а также объектно-ориентированного программирования.

 

Но поскольку организовать визуальное оформление и построить графики на этом языке достаточно проблематично от возможности его использования пришлось отказаться.

 

Таблица - Сравнительные характеристики

Характеристика С++ Delphi
Сложность изучения большая (-) маленькая (+)
Количество специалистов-профессионалов много (+) мало (-)
Восприятие кода плохое (-) хорошее (+)
Рефакторинг средний (+-) хороший (+)
Скорость работы приложения отличная (++) хорошая (+)

Продолжение таблицы

Скорость разработки решения маленькая (-) очень высокая (++)
Наличие документации много (+) MSDN не содержит примеров кода на pascal (+-)
Необходимость в будущем, ввиду конкуренции с языками C#,VB, Java маленькая (—) средняя (-)
Итого 5+/5- 7+/3-

 

1.4 Описание языка

 

1.4.1.1 Delphi

 

Delphi— императивный, структурированный, объектно-ориентированныйязык программирования, диалект ObjectPascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка ObjectPascal. Начиная с 2007 года уже язык Delphi (производный от ObjectPascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились classhelpers, перегрузки операторов и другое.

 

ObjectPascal — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в ObjectPascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

 

Также отличительным свойством ObjectPascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу — там и буду лежать». Соответственно организуется и «многокучность».

 

 

1.4.1.2. Среда программирования Delphi

 

Embarcadero Delphi, ранее Borland Delphi и CodeGear Delphi, — интегрированная среда разработки ПО для Microsoft Windows на языке Delphi (ранее носившем название Object Pascal),созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая EmbarcaderoTechnologies. Embarcadero Delphi является частью пакета Embarcadero RAD Studio и поставляется в четырёх редакциях: Starter, Professional, Enterprise и Architect.

 

 

1.4.1.3. Классы Delphi

 

TMyClass=class(TObject)

· TMyClass — имя класса;

· class — ключевое слово, начинающее определение класса;

· TObject — класс-предок, если есть наследование;

· Private — Описанные в этой секции элементы не доступны извне (за пределами класса, но доступны в пределах модуля).

· Protected — Описанные в этой секции элементы доступны только классу и всем его потомкам.

· Public — Описанные в этой секции элементы доступны всем.

· Published — Описанные в этой секции элементы доступны всем и отображаются в ObjectInspector'e.

 

 

1.4.1.4. Объекты Delphi

 

В программе представители класса — объекты, объявляются в разделе var. Следует обратить особое внимание на то, что в ObjectPascal объект — динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных и задании для них начальных значений.

 

Выделение памяти и инициализация объекта осуществляются с помощью специального метода класса — конструктора, которому обычно присваивают имя create (создать). Чтобы подчеркнуть особую роль и поведение конструктора, вместо ключевого слова procedure в заголовке конструктора используется слово constructor. Выделение памяти для данных объекта происходит присваиванием результата применения метода-конструктора к типу (классу) объекта. Помимо выделения памяти, конструктор, как отмечено выше, решает задачу присваивания полям объекта начальных значений, т. е. осуществляет инициализацию объекта. Реализация конструктора несколько необычна. Во-первых, в теле конструктора нет привычных операторов New, обеспечивающих выделение динамической памяти (всю необходимую работу по выделению памяти выполняет компилятор). Во-вторых, формально конструктор не возвращает значения, хотя в программе обращение к конструктору осуществляется как к методу-функции.

 

После объявления и инициализации объект можно использовать, например установить значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой. Хотя объект является ссылкой, однако правило доступа к данным с помощью ссылки, согласно которому после имени переменной, являющейся ссылкой, надо ставить значок ^, на объекты не распространяется. Если в программе некоторый объект больше не используется, то можно освободить память, занимаемую полями этого объекта. Для выполнения этого действия используют метод-деструктор free.

 

 

1.4.1.5. Инкапсуляция в Delphi

 

 

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

- языковой механизм ограничения доступа к определённым компонентам объекта;

- языковая конструкция, способствующая объединению данных с методами (или другими функциями), обрабатывающими эти данные.

В Delphi для создания скрытых полей или методов их достаточно объявить в секции private.

Для создания интерфейса доступа к скрытым полям в Delphi введены свойства. Для описания свойства в Delphi служит слово property.

 

 

1.4.1.6. Наследование в Delphi

 

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

Для использования механизма наследования в Delphi необходимо в объявлении класса справа от слова class указать класс предок. Абсолютно все классы в Delphi являются потомками класса TObject. Если класс-предок не указан, то подразумевается, что новый класс является прямым потомком класса TObject.

Множественное наследование в Delphi частично поддерживается за счёт использования классов-помощников (СlassHelpers).

 

 

1.4.1.7. Полиморфизм в Delphi

 

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

Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.

Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

В объектно-ориентированных языках класс является абстрактным типом данных. Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка. Другие функции могут работать с объектом как с экземпляром класса-родителя, но если при этом объект на самом деле является экземпляром класса-потомка, то во время исполнения будет вызван метод, переопределенный в классе-потомке.

 

1.4.1.8. Абстракция в Delphi

 

 

Абстракция в объектно-ориентированном программировании — это придание объекту характеристик, которые чётко определяют его концептуальные границы, отличая от всех других объектов. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.

Абстракция является основой объектно-ориентированного программирования и позволяет работать с объектами, не вдаваясь в особенности их реализации.

 

 

1.4.2. Операторы Delphi

 

Список операторов через пробел:

: = + — * / div mod not and or with xor shl shr ^ = <>>= <= <> @ in is as

 

 

1.4.3. Выражения в Delphi

 

Выражения в ObjectPascal (Delphi) бывают арифметическими, логическими и строковыми.

Логические выражения в основном употребляются в условных операторах. К логическим выражениям относятся такие операции как:

· not — «НЕ», отрицание логического выражения (NOT <логическое_выражение>)

· and — «И», умножение (пересечение) логических выражений (<логическое_выражение1> AND <логическое_выражение2>)

· or — «ИЛИ», объединение логических выражений (<логическое_выражение1> OR <логическое_выражение2>)

· xor — «Исключающее ИЛИ», отрицание ИЛИ, все что не попадает под ИЛИ (<логическое_выражение1> XOR <логическое_выражение2>)

 

 

1.4.4. Структура программы написанной на Delphi

 

Каждая написанная программа на языке Delphi состоит из заголовка программы (programNewApplication;), поля используемых модулей Uses (к примеру, UsesWindows, Messages, SysUtils и т. д.), который может не входить в саму структуру, а также блоков описания и исполнения (начинаются составным оператором begin и заканчиваются end.).

 


1.4.5. Свойства объектов в Delphi

 

 

Каждый компонент, который помещается на форму, имеет свое отражение в окне Инспектора Объектов (ObjectInspector). ObjectInspector имеет две "странички" - "Properties" (Свойства) и "Events" (События). Создание программы в Delphi сводится к "нанесению" компонент на форму (которая, кстати, также является компонентом) и настройке взаимодействия между ними путем:

· изменения значения свойств этих компонент

· написания адекватных реакций на события.

Существует несколько типов свойств, в зависимости от их "природы", т.е. внутреннего устройства.

Простые свойства - это те, значения которых являются числами или строками. Например, свойства Leftи Top принимают целые значения, определяющие положение левого верхнего угла компонента или формы. Свойства Caption и Name представляют собой строки и определяют заголовок и имя компонента или формы.

Перечислимые свойства - это те, которые могут принимать значения из предопределенного набора (списка). Простейший пример - это свойство типа Boolean, которое может принимать значения True или False.

Вложенные свойства - это те, которые поддерживают вложенные значения (или объекты). ObjectInspector изображает знак "+" слева от названия таких свойств. Имеется два вида таких свойств: множества и комбинированные значения. ObjectInspector изображает множества в квадратных скобках. Если множество пусто, оно отображается как. Установки для вложенных свойств вида "множество" обычно имеют значения типа Boolean. Наиболее распространенным примером такого свойства является свойство Style с вложенным множеством булевых значений. Комбинированные значения отображаются в Инспекторе Объектов как коллекция некоторых величин, каждый со своим типом данных. Некоторые свойства, например, Font, для изменения своих значений имеют возможность вызвать диалоговое окно. Для этого достаточно щелкнуть маленькую кнопку с тремя точками в правой части строки Инспектора Объектов, показывающей данное свойство.

Delphi позволяет легко манипулировать свойствами компонент как в режиме проектирования (designtime), так и в режиме выполнения программы (runtime).

В режиме проектирования манипулирование свойствами осуществляется с помощью Дизайнера Форм (FormsDesigner) или, как Вы уже видели, на страничке "Properties" Инспектора Объектов. Например, для того чтобы изменить свойства Height (высоту) и Width (ширину) кнопки, достаточно "зацепить" мышкой за любой ее угол и раздвинуть до нужного представления. Того же результата можно добиться, просто подставив новые значения свойств Height и Width в окне ObjectInspector.

С другой стороны, в режиме выполнения пользователь (программист) имеет возможность не только манипулировать всеми свойствами, отображаемыми в Инспекторе Объектов, но и управлять более обширным их списком. В следующем разделе мы рассмотрим, как это делается.

 

Нумерация страниц выполнена некорректно!


 

2.СПЕЦИАЛЬНАЯ ЧАСТЬ

 

 

2.1 Постановка задачи

 

Постановка задачи выполнена в соответствии с ГОСТ 24.204-80, ГОСТ 23.501.2-79, ГОСТ 19.201-78.

 

 

2.1.1 Основание для разработки

 

Основанием для разработки служит тема, предложенная руководителем.

 

 

2.1.2 Назначение программы

 

Целью создания программы является продемонстрировать полет объекта.

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

 

 

2.1.3 Требование к программе

 

Требования к программе определены по ГОСТ 19.201-78.

 

2.1.3.1. Требование к функциональным характеристикам

 

Программа должна выстраивать четкую траекторию движения объекта, на графике.

Для этого необходимо ввести входные данные: Угол α, начальную скорость, ускорение свободного падения(g) и масштаб. На выходе рисуется график и автоматически находится высота и ширина полета.

 

 

2.1.3.2 Требование к надежности

 

Программа должна нормально функционировать при бесперебойной работе ЭВМ. При возникновении сбоя в работе аппаратуры, восстановление нормальной работы программы должно производиться после: перезагрузки операционной системы; запуска исполняемого файла программы; повторного выполнения действий, потерянных до последнего сохранения информации в файл на магнитном диске.

Уровень надежности программы должен соответствовать технологии про­граммирования, предусматривающей: инспекцию исходных текстов программы; автономное тестирование модулей (методов) программы; тестирование сопря­жения модулей (методов) программы; комплексное тестирование программы.

Время восстановления после отказа должно состоять из: времени переза­пуска пользователем операционной системы; времени запуска пользователем исполняемого файла программы; времени повторного ввода потерянных дан­ных.

 

 

2.1.3.3 Требование к условиям эксплуатации

 

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

Программа должна эксплуатироваться на IBM совместимых компьютерах при температуре от 15ºC до 35ºC и относительной влажности от 25% до 80%.

2.1.3.4 Требование к техническим средствам.

 

Минимальные требования, предъявляемые к техническим средствам:

Программа работает на компьютере со следующими техническими характеристиками:

- Процессор Intel Pentium I(166 MHz);

- Оперативная память 32 Mb;

-Жесткий диск 20 Мб свободного пространства

-Видеокарта и монитор Количество цветов: 256; Разрешение экрана: 640 x 480

-Периферия: мышь, клавиатура;

-Операционная система Microsoft Windows 98.

 

 

2.2 Описание схемы

Схема работы программы выполнена в соответствии с ГОСТ 19.701-90 (ИСО 5807-85) и приведена в приложении 1 на рис.

 

При открытии главной формы производится ввод начальной скорости и ускорения тела (блок 1).

 

По нажатию кнопки «Button1» включается таймер (блок 1) и происходит полет тела (блоки 4-5) и вывод на форму (блок 6).

 

По нажатию кнопки «Button2» таймер выключается, и расчет параметров прекращается.

2.3. Текст программы

Текст программы выполнен в соответствии с ГОСТ 19.101-77 и ГОСТ 19.401-78 и приведен в приложении 2.

 

 

2.4. Описание программы

 

 

2.4.1. Общие сведения

 

Программа вызывается по имени «Project1.exe».

 

Программа написана на языке программирования «Delphi».

 

Работает под управлением операционной системы Windows XP/7.

 

 

2.4.2. Функциональное назначение

Программа предназначена для расчета полета тела над горизонтом.

 

 

2.4.3. Описание логической структуры

 

В procedure FormCreate заполняется начальные значения, следующие поля: Угол альфа, начальная скорость тела, гравитационная постоянная, масштаб. Затем производит имитацию нажатия на кнопку Button2. (строки 45-52).

 

В procedure Button1Click вызывается подпрограмма InitParams. Затем происходит имитация нажатия на Button2, если ускорение не равно 0, тогда рассчитывается расстояние, которое пролетит объект, и максимальная высота, на котором этот объект окажется во время своего полета. Устанавливаем перо в координаты [0;0] в Затем запускается анимация прорисовки траектории полета объекта. (строки 53-63).

 

В procedure InitParams инициализируется параметры. Формат входных параметров таких как (Угол альфа, начальная скорость тела, гравитационная постоянная, масштаб) может быть как с точкой так и с запятой. (строки 64-71).

 

С каждой итерацией Timer1 обрисовывает часть параболы(состоящий из линий) отображающую траекторию полета объекта. В процедуре Timer1 используется подпрограмма Calculation. (строки 72-89).

 

procedure Calculation просчитывает координаты x,y для построения параболы из прямых. В procedure Calculation вызывается подпрограмма draw. (строки 90-101).

 

procedure Draw обрисовывает очередную линию на холсте в определенном масштабе. (строки 102-110).

 

В procedure Button2Click загружается изображение из файла back.bmp на котором изображены оси координат на холсте, а также подписывает оси (строки 111-116).

 

 

2.4.4. Используемые технические средства

Персональный компьютер со следующими техническими характеристиками:

- Частота процессора – 3.2Ггц;

- Оперативная память – 24Гб;

- Видеокарта – 1536Мб;

- Жёсткие диски – 8Тб;

- Клавиатура;

- Мышь;

- Windows 7 x64.

 

 

2.4.5. Вызов и загрузка

 

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

Исполняемым файлом является «Project1.exe», для его запуска необходимо два раза кликнуть по нему левой клавишей мыши или выделить его и нажать “Enter” на клавиатуре.

 

 

2.4.6. Входные и выходные данные

 

Входными данными являются:

- Угол альфа;

- Начальная скорость тела;

- Гравитационная постоянная;

- Масштаб.

 

Выходными данными являются:

- Высота полета;

- Ширина полета;



Поделиться:




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

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


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