Реферат по предмету "Программирование, Базы данных"


Моделирование движения объектов в Pascal

Министерство образования и наукиРеспублики КазахстанКостанайский государственный педагогический институтФизико-математический факультет
Кафедраинформатики и компьютерных технологий



Армаш ОлегПетрович





Моделирование
движенияобъектов
в Pascal




Курсоваяработа







 
Научныйруководитель
Старшийпреподаватель Цыганова А.Д.





Костанай
2005
Содержание:
1.     Понятие модели                                                                                …3
2.     Графические информационные модели.                                      …3
3.    Средства для моделирования и их сравнение                             …4
4. Языкипрограммирования                                                              … 7
5.     Технология программирования …                                                         …9  
5.1.                   Структурное программирование…                                          … 9  
5.2.                   Концепция модульного программирования…                       … 10
5.3.                   Объектно-ориентированное программирование(ООП)…    …11
5.4.                    Новые объектные концепции.                                                  …11
6.     Как появился Паскаль и что это.                                                  …13
7.     Введение в объектное программирование                                             …14
7.1.                   Машинная графика                                                                    …14
7.2.                   Графические спрайты                                                                 …15
8.     Заключение: Тенденции развития программных технологий.… 17
9.     Списокиспользованных источников                                           … 19
10.           приложение 1                                                                                … 20
11.           ПРИЛОЖЕНИЕ 2                                                                                … 21
12.           ПРИЛОЖЕНИЕ 3                                                                                …23Понятие моделиВо всевремена человек разумный отражал в своем мышлении объекты реальности в видеидеальных мысленных (вербальных) моделей и действовал исходя из ожидаемогоповедения их прототипов. Это этап первого отражения, отражения мира в мышлениичеловека. С появлением компьютера ситуация радикально меняется. Человек можеттеперь передать компьютеру свои знания, создав компьютерную модель реального объекта или процесса. Происходитвторое отражение природы, теперь уже из мышления человека в память компьютера.В этом смысле компьютерный мир является третьей реальностью: 1)              материя; 2)              сознание;3)              снованеживая материя (компьютер)Исходя извышесказанного, можно считать моделирование конечной целью информатики. И тогдапонятие компьютерной модели и вообще модели должно быть усвоено учащимисядостаточно прочно. Я предлагаю ознакомиться с тем, как трактуют этот вопросавторы учебников и учебных пособий.
Графическиеинформационные модели
Графические информационныемодели представляют собой рисунки, карты, чертежи и схемы, графики, диаграммы ит.д.
Графические модели болееинформативны, чем текстовые модели. Без рисунков, которые являютсяинформационными моделями различных представителей флоры и фауны, трудно себепредставить ботанику и биологию.
География, военное дело,судоходство и т.д. немыслимы без информационных моделей поверхности Земли ввиде карт. Различные типы географических карт (политические, физические и т.д.)строят информационные модели, отражающие различные особенности земнойповерхности, т.е. один объект отражают несколько моделей.
Современные технологии немогут обойтись без информационных моделей технических устройств, зданий  и т.д. в виде чертежей и схем. Даже расстановку мебели в помещениицелесообразно начинать с планировки её размещения в форме чертежа.
Физика, радиотехника иэлектротехника используют информационные модели в форме электрических ирадиосхем.
Графики являютсяинформационными моделями, которые в наглядной форме представляют числовыеданные: в математике это графики функций, в экономике отражение статистическихданных и т.д.
Диаграммы также являютсяинформационными моделями, представляющими числовые данные. Диаграммы различныхтипов применяются, прежде всего, для наглядного и сравнительного представлениястатистических данных.
На протяжении своей историичеловечество использовало различные способы и инструменты для созданияинформационных моделей. Эти способы постоянно совершенствовались, так какпервые графические информационные модели создавались в форме наскальныхрисунков. В настоящее время графические модели обычно строятся с использованиемсовременных компьютерных технологий.
Средствадля моделирования и их сравнение
Еслиговорить о программных средствах, для построения компьютерных моделей, то всеавторы рекомендуют использовать наиболее популярное средство компьютерного моделирования- электронные таблицы. СУБД не задумывалось как средство  моделирования, но создавать информационныемодели объектов с возможностью проводить при помощи таких моделей выборку информации,удовлетворяющей каким — либо условиям с целью дальнейшего анализа этого объектахорошо проводить с помощью баз данных.
Оченьинтересно сочетать возможности графического редактора и возможности редактора презентаций при моделированиикаких-то процессов. Так предложенные Н.А.Макаровой модели геометрическихопераций в задачах на построение, легко «оживить» используя редакторпрезентаций (как и любую понравившуюся теорему из курса геометрии).
Из своегоопыта хотелось бы упомянуть о таких продуктах фирмы Adobe как графический редактор AdobePhotoshop и редактор анимированных изображений ImageReady. При помощи этих средств можно создавать очень зрелищныединамические модели (например, движение космических тел, пре-
вращение гусеницы в бабочку и пр.)
При создании словесных моделей (например, словесный портрет) удобноиспользовать любой текстовый редактор.Конечно, можно составить портрет в тетради или устно, но на уроке информатики,по моему мнению, следует пользоваться компьютерными технологиями.
Алгоритмические языки программированияиздавна используются дляпостроения моделей. Если нет возможности использовать для построения моделейдругие средства, то с помощью языков программирования можно строить модели изсамых различных классов моделей (физические и логические, геометрические иэкологические и т.п.). У А. Г.Кушнеренко приводится пример построения модели зрительного зала. Здеськомпьютерная модель зрительного зала — это программа на учебном алгоритмическомязыке, которая затем должна быть реализована на языке программирования. Длятого чтобы ученик в 9-м классе построил такую модель (в ней множествовстроенных циклов) необходимо, чтобы он достаточно хорошо умел программировать.Но, к сожалению, процент девятиклассников, которые с легкостью используютвстроенные циклы совсем невелик.


Длясоздания логических моделей прекрасно подходит интерпретатор ЛОГО. Хотя такие модели можно строить и в средеэлектронных таблиц или на любом алгоритмическом языке и пр. 
И.Г.Семакин, Е.К.Хеннерпредлагаютстроить логические модели представления знаний с использованием языка Пролог.
Я предлагаю применить такой язык программирования как TurboPascalв создании моделей, а в частности в моделировании движения объектов. Адля того чтобы понять суть программирования на Pascalя предлагаю для начала узнать, как он появился, каково его назначение икак он работает с объектами.Языкипрограммирования
Проведем ассоциации компьютера счеловеком. У компьютера есть органы восприятия информации из внешнего мира — это клавиатура, мышь, накопители на магнитных дисках. У компьютера есть органы,«переваривающие» полученную информацию, — это центральный процессор иоперативная память. И, наконец, у компьютера есть органы речи, выдающиерезультаты переработки. Современным компьютерам, конечно далеко до человека. Ихможно сравнить с существами, взаимодействующими с внешним миром на уровнеограниченного набора безусловных рефлексов. Этот набор рефлексов образует систему машинных команд. На каком бывысоком уровне мы ни общались с компьютером, в конечном итоге все сводится кскучной и однообразной последовательности машинных команд. Каждая машинная командаявляется своего рода раздражителем для возбуждения того или иного безусловногорефлекса. Реакция на этот раздражитель всегда однозначная и «зашита»в блоке микрокоманд в виде микропрограммы. Эта микропрограмма и реализуетдействия по реализации машинной команды, но уже на уровне сигналов, подаваемыхна те или иные логические схемы компьютера, тем самым, управляя различнымиподсистемами компьютера. В этом состоит так называемый принцип микропрограммногоуправления. Продолжая аналогию с человеком, отметим: для того, чтобы компьютерправильно питался, придумано множество операционных систем, компиляторов сотенязыков программирования. Но все они являются по сути лишь блюдом, на котором поопределенным правилам доставляется пища (программы) желудку (компьютеру).Только желудок компьютера любит диетическую, однообразную пищу — подавай емуинформацию структурированную, в виде строго организованных последовательностейнулей и единиц, комбинации которых составляют машинный язык. Таким образом,внешне являясь полиглотом, компьютер понимает только один язык — язык машинныхкоманд.
Программистуне нужно пытаться постичь значения различных комбинаций двоичных чисел, т.к.еще в 50-е годы  программисты сталииспользовать для программирования символический аналог машинного языка, которыйназвали языком ассемблера. Этот язык точно отражает все особенности машинногоязыка. Именно поэтому язык ассемблера для каждого типа компьютера свой.
Языкпрограммирования — это специальный язык, на котором пишут команды для управлениякомпьютером. Языки программирования созданы для того, чтобы людям было прощечитать и писать для компьютера, но они затем должны транслироваться (трансляторомили интерпретатором) в машинный код, который только и может исполняться компьютером.Языки программирования можно разделить на языки высокого уровня и языки низкогоуровня.
         Языкнизкого уровня — это язык программирования, предназначенный для определенноготипа компьютера и отражающий его внутренний машинный код; языки низкого уровнячасто называют машинно-ориентированными языками. Их сложно конвертировать  для использования на компьютерах с разнымицентральными процессорами, а также довольно сложно изучать, поскольку для этоготребуется хорошо знать принципы внутренней работы компьютера.
         Языквысокого уровня — это язык программирования, предназначенный для удовлетворениятребований программиста; он не зависит от внутренних машинных кодов компьютералюбого типа. Языки высокого уровня используют для решения проблем и поэтому ихчасто называют проблемно-ориентированными языками. Каждая команда языкавысокого уровня эквивалентна нескольким командам в машинных кодах, поэтомупрограммы, написанные на языках высокого уровня, более компактны, чеманалогичные программы в машинных кодах.Технологии программирования
 В основе того или иного языка программированиялежит некоторая руководящая идея, оказывающая существенное влияние на стильсоответствующих программ.Структурное программирование
Структурное программирование — методология программирования, базирующаяся на системном подходе к анализу,проектированию и реализации программного обеспечения.  Эта методология родилась в начале 70-х годови оказалась настолько жизнеспособной, что и до сих пор является основной вбольшом количестве проектов. Основу этой технологии составляют следующиеположения:
·      Сложная задача разбивается на более мелкие,функционально лучше управляемые задачи. Каждая задача имеет один вход и одинвыход. В этом случае управляющий поток программы состоит из совокупности элементарныхподзадач с ясным функциональным назначением.
·      Простота управляющих структур, используемых в задаче.Это положение означает, что логически задача должна состоять из минимальной,функционально полной совокупности достаточно простых управляющих структур. Вкачестве примера такой системы можно привести алгебру логики, в которой каждаяфункция может быть выражена через функционально полную систему: дизъюнкцию,конъюнкцию и отрицание.
·      Разработка программы должна вестись поэтапно. Накаждом этапе должно решаться ограниченное число четко поставленных задач сясным пониманием их значения и роли в контексте всей задачи. Если такое пониманиене достигается, это говорит о том, что данный этап слишком велик и его нужноразделить на более элементарные шаги.Концепция модульного программирования
Так же каки для структурной технологии программирования, концепцию модульногопрограммирования можно сформулировать в виде нескольких понятий и положений:
·      Функциональная декомпозиция задачи — разбиение большойзадачи на ряд более мелких, функционально самостоятельных подзадач — модулей.Модули связаны между собой только по входным и выходным данным.
·      Модуль — основа концепции модульного программирования.Каждый модуль в функциональной декомпозиции представляет собой «черныйящик» с одним входом и одним выходам. Модульный подход позволяетбезболезненно производить модернизацию программы в процессе ее эксплуатации иоблегчает ее сопровождение. Дополнительно модульный подход позволяетразрабатывать части программ одного проекта на разных языках программирования,после чего с помощью компоновочных средств объединять их в единый загрузочныймодуль.
·      Реализуемые решения должны быть простыми и ясными.Если назначение модуля непонятно, то это говорит о том, что декомпозиция начальнойили промежуточной задачи была проведена недостаточно качественно. В этом случаенеобходимо еще раз проанализировать задачу и, возможно, провести дополнительноеразбиение на подзадачи. При наличии сложных мест в проекте их нужно подробнеедокументировать с помощью продуманной системы комментариев. Этот процесс нужнопродолжать до тех пор, пока вы действительно не добьетесь ясного пониманияназначения всех модулей задачи и их оптимального сочетания.
·      Назначение всех переменных модуля должно быть описанос помощью комментариев по мере их определения.
Объектно-ориентированноепрограммирование (ООП)
Идея ООПзаключается в стремлении связать данные с обрабатывающими эти данныепроцедурами в единое целое — объект. ООП основано на трех важнейших принципах,придающих объектам новыих объектам новыи принципами являются инкапсуляция, наследованиеи полиморфизм.
·      Инкапсуляция — объединение в единое целое данных иалгоритмов обработки этих данных. В рамках ООП данные называются полямиобъекта, а алгоритмы — объектными методами.
·      Наследование — свойство объектов порождать своихпотомков. Объект — потомок автоматически наследует от родителей все поля иметоды, может дополнять объекты новыми полями и заменять (перекрывать) методы родителяили дополнять их.
·      Полиморфизм — свойство родственных объектов (т.е.объектов, имеющих одного общего родителя) решать схожие по смыслу проблемыразными способами.
Новые объектные концепции.
Современныетехнологии разработки программного обеспечения опираются в основном на идеиструктурного программирования. К ним, в первую очередь, относятся: функциональнаямодульность, структурированность программ и данных, насыщенность текстовпрограмм комментариями, открытость, надежность и т. д. Широко используемым примеромтакой технологии является технология «сверху-вниз». Ее суть заключается в постепеннойпошаговой детализации функций, выполняемых программной системой. Серьезныминедостатками технологии «сверху-вниз» являются недостаточное внимание к проектированиюструктур данных и слабая их связь с процедурами обработки.
Гармоничноевключение в структуру языка средств объектно-ориентированного программированияделает переход от традиционных технологий программирования к объектно-ориентированномудля тех, кто программирует на Турбо Паскале, достаточно безболезненным. А то,что такой переход назрел, сомнений не вызывает. Мощные пакеты инструментальныхсредств, такие как TurboVisionи ObjectToolkit, способствует внедрениюобъектно-ориентированных методов в процессе разработки программ. Кроме того, опрос американскихпрограммистов, проведенный осенью 1991 года, показал, что в 1992 году болееполовины из них планирует включить средства объектно-ориентированногопрограммирования в свой арсенал, поскольку считают, что это будетспособствовать ускорению разработки.
   Понять основы объектного программированиявам поможет учебник по Delphi5. Важнейшимипонятиями объекта являются принципнаследования, полиморфизм, поля, методы, свойства и события объекта.В языке TurboPascalне полностью реализован данный подход к программированию.
Наиболееважным понятием объектно-ориентированного программирования является понятиеобъекта. Объект представляет собой совокупность данных и подпрограмм, предназначенныхдля работы с этими данными. Главнымдостоинством объекта является то, что он позволяет моделировать абстрактныеситуации. Это делает объектный подход к программированию довольно удобным длябольшинства программистов, хотя очень трудно понять объектный подход тем, кторанее программировал на структурных языках. Тем более что найти какой-либосправочный материал по объектам очень сложно.Как появился Паскаль и что это
Перваяверсия языка Паскаль была разработана швейцарским ученым Никлаусом Виртом в1968 году. Первоначально язык предназначался для целей обучения, поскольку онявляется достаточно детерминированным, т.е. все подчиняется определеннымправилам, исключений из которых не так много. Основные характеристики:относительно небольшое количество базовых понятий, простой синтаксис, быстрыйкомпилятор для перевода исходных текстов в машинный код.
В 1992 годуфирма BorlandInternationalвыпустила два пакетапрограммирования на использовании языка Паскаль, — BorlandPascal7.0 и TurboPascal7.0.
Пакет BorlandPascal7.0 учитывает многие новейшие достижения в программированиии практике создания программ и включает в себя три режима работы: в обычномрежиме операционной системы MSDOS, в защищенном режиме MSDOSи в среде Windows. Обладаярасширенными возможностями, пакет BorlandPascal7.0, тем не менее, требуетдля использования всех своих возможностей довольно большую память – примерно 30Мбайт на жестком диске и не менее 2 Мбайт оперативной памяти.
Пакет TurboPascal7.0 обладает ограниченными возможностями и позволяетработать только в обычном режиме MSDOS. Начинающему программисту,по-видимому,  целесообразно начатьизучение языка и среды именно с этого пакета.
Языкхарактеризуется расширенными возможностями по сравнению со стандартом, хорошоразвитой библиотекой модулей, позволяющих использовать возможности операционнойсистемы, создавать оверлейные структуры, организовывать ввод-вывод, формироватьграфическое изображение и т.д.
Средапрограммирования позволяет создавать тексты программ, компилировать их, находитьошибки и оперативно их исправлять, компоновать программы из отдельных частей,включая стандартные модули, отлаживать и выполнять отлаженную программу.
В даннойработе будут описаны основные возможности языка, работа в интегрированнойсреде, набор стандартных модулей.
Паскаль -замечательный языкпрограммирования, который относительно прост в изучении, довольно ясен илогичен и, будучи первым изучаемым языком программирования, приучает к хорошемустилю. Паскаль воспитывает дисциплину структурного программирования ипрограммирования вообще лучше, чем другие языки программирования, такие, как,например Бейсик.
Паскаль –гибкий и развитый в отношении типов данных язык. Привлекательны его рекурсивныевозможности, а также поддержка технологии объектно-ориентрованного программирования.Введение в объектное программированиеМашинная графика
Достижениясовременных мультимедийных технологий активно проявляются в компьютерных играх,в рекламе на многочисленных Internet-сайтах, внаучно-фантастических и приключенческих фильмах, в телевизионных роликах и т.п.И наиболее важной программной компонентой во всем этом разнообразии являетсякомпьютерная графика. Рассматриваемая мною система программированияпоявилась  12 – 15 лет тому назад и ееизобразительные средства весьма ограничены. Но все же объектно-ориентированноепрограммирование на Pascalприменяюти в наши дни.
До версии TurboPascal3.0 фирма Borlandиспользовала «черепашью» графику, как в QBasic, но впоследующих реализациях системы отказалась ль нее. Графические средства системыTurboPascalпостроены на базе общего подхода, сокращенноименуемого BGI– BorlandGraphicsInterface(графическийинтерфейс фирмы Borland). Они внесеныв системные библиотеки, содержащие почти одинаковый набор процедур и функций сполностью совпадающими именами и аналогичным набором аргументов. Состав этих библиотекдовольно внушителен – 83 графические программы и более 60 системных констант.Графические спрайты
Спрайты(от англ. Sprite– «дух, привидение») представляют собой небольшие графическиеизображения, перемещаемые по экрану для имитации движущихся фигур или предметов.Без спрайтов не обходится ни одна динамическая игра. Для некоторых изображенийдостаточно единственного спрайта, который просто перемещается по заданной траектории.Таким спрайтом, например, может быть изображение летящего самолета. В другихслучаях приходится манипулировать цепочкой спрайтов, на которых зафиксированы отдельныекадры, соответствующие разным фазам движения.
Основнаяидея простейших программ анимации заключается в организации быстрой сменыкадров на экране, при котором отображаются последовательные фазы изменения состоянияфигур, и производится ее перемещение. При этом крайне нежелательно, чтобыспрайты «затирали» находящийся под ними интерьер. Последнее достигается за счетразумного подбора цветовых оттенков, как спрайта, так и фона, и вывода спрайтовв режиме XOR.
Я хочу рассмотретьприменение спрайта на примере «Летающей тарелки».
Эта демонстрациятехники перемещения единственного спрайта «Летающей тарелки» на фоне «Звездногонеба». Увеличенное изображение «тарелки» нарисовано на миллиметровой бумаге впрямоугольной области размером 43*24 мм и представляет собой эллипс с полуосями20 и 8 мм, внутри которого проходит эллиптический поясок (дуга эллипса со смещенномцентром). Из «корпуса» тарелки под небольшими углами расходятся отрезки прямых– стойки локаторов, на концах которых размещены две круговые «антенны» — кружочки небольшого радиуса (2 мм). Контуры тарелки рисуются белым цветом, авнутренность корпуса заливается красным цветом.
Для создания образаспрайта в оперативной памяти поступаю следующим образом. Сначала воспроизвожуспрайт в любом месте экрана и запоминаю содержимое соответствующего участкавидеопамяти в массиве соответствующего размера (процедура getimage). Затем повторно вывожу спрайт на то же место экранав режиме XOR для стирания статичного изображения.

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

Организовал бесконечныйцикл, в котором изображение тарелки на небольшое время (порядка 0,6 сек)появляется в некоторой точке с координатами(х, у), а затем  стирается.После этого точка (х, у)смещается на случайныеперемещения(dх, dу), и цикл повторяется до нажатиякакой-нибудьклавиши пользователем.Для того чтобы перемещения из текущей точки в следующую выглядели случайнымиможно менять знаки приращений dх и dу, когда они оказываются четными или нечетными. Кроме того,необходимо организовать проверку очередной точки на принадлежность экрану изапретить ее выход из допустимого интервала.
В программномотображении «Летающая тарелка» вы можете посмотреть в «приложение 1».
Еще одним неплохим примероммоделирования движения может быть программа электронных часов. Программаотображает текущее время (часы, минуты, секунды). Программа проста и элегантна.Каждый желающий может быстро понять алгоритм записи. А саму программу можнопосмотреть в «ПРИЛОЖЕНИЕ 2»
 
Заключение:
Тенденцииразвития программных технологий
Выпрочитали курсовую работу и ознакомились с принципами действия  программы в целом. Кроме того, вы понялиразницу между структурным и объектным подходами к программированию. Чтокасается структурных языков, о них сказано и написано почти все, но немногиезнакомы с объектами. Поэтому я посвящаю заключение этой теме.
В последниенесколько лет начал создаваться новый подход к программированию, названныйобъектным. Объекты стали вводиться и в язык Pascal, который позже был назван ObjectPascal. Самобъект построен по принципу, объясняющемуся в главе «Объекты». Их преимуществозаключается в принципе наследования, когда один созданный объект способенпородить родственный ему объект-потомок. Многие объекты могут использовать другдруга при построении программы. Ввиду большого количества полей и методов, былисозданы свойства, использующие методы. В частности, в Delphiсвойства выносятся в Инспектор объектов, что делает работу сними похожей на детскую игру. Теперь, чтобы написать программу, не надовозиться с кучей переменных и операторов. Программист может даже и не видеть текстасамой программы, конструируя сразу ее внешний вид на форме. Таким образом, еслина создание программы ранее уходили недели, то сейчас она создается занесколько часов.
В связи спереходом на объектные концепции, новые программы возникают на основе ужеимеющихся объектов. Некоторые языки программирования написаны на основе объектов.Расширяется и пространство применения объектов, если они возникли в среде MS-DOS,то теперь,используя объекты, можно с легкостью создать текстовый редактор типа WORDили СУБД типа ACCESS. И, естественно, в такой среде можно создать мощный иудобный редактор тестов.
Но я толькоприступаю к изучению Delphiи не могунаписать подобную программу в той среде.
Список использованныхисточников:
1.     Динамические структурыданных языка Паскаль, М., издательство МАИ, 1988.
2.     Абрамов С.А., Зима Е.В.Начала программирования на языке Паскаль. — М.: Наука, 1987.


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

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

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

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