Новые объектные концепции.
Современные технологии разработки программного обеспечения опираются в основном на идеи структурного программирования. К ним, в первую очередь, относятся: функциональная модульность, структурированность программ и данных, насыщенность текстов программ комментариями, открытость, надежность и т. д. Широко используемым примером такой технологии является технология «сверху-вниз». Ее суть заключается в постепенной пошаговой детализации функций, выполняемых программной системой. Серьезными недостатками технологии «сверху-вниз» являются недостаточное внимание к проектированию структур данных и слабая их связь с процедурами обработки. Гармоничное включение в структуру языка средств объектно-ориентированного программирования делает переход от традиционных технологий программирования к объектно-ориентированному для тех, кто программирует на Турбо Паскале, достсаточно безболезненным. А то, что такой переход назрел, сомнений не вызывает. Мощные пакеты инструментальных средств, такие как Turbo Vision и Object Toolkit, способствует внедрению объектно-ориентированных методов в процессе разработки программ. Кроме того, опрос американских программистов, проведенный осенью 1991 года, показал, что в 1992 году более половины из них планирует включить средства объектно-ориентированного программироваиня в свой арсенал, поскольку считают, что это будет способствовать ускорению разработки.[4] Понять основы объектного программирования вам поможет учебник по Delphi 5. Важнейшими понятиями объекта являются принцип наследования, полиморфизм, поля, методы, свойства и события объекта. В языке Turbo Pascal не полностью реализован данный подход к программированию. Наиболее важным понятием объектно-ориентированного программирования является понятие объекта. Объект представляет собой совокупность данных и подпрограмм, предназначенных для работы с этими данными. Главным достоинством объекта является то, что он позволяет моделировать абстрактные ситуации. Это делает объектный подход к программированию довольно удобным для большинства программистов, хотя очень трудно понять объектный подход тем, кто ранее программировал на структурных языках. Тем более, что найти какой-либо справочный материал по объектам очень сложно. Поэтому я приведу основы понятия объекта. Объект в Turbo Pascal состоит из имени, полей данных и методов. Поля данных это ете же переменные в программе, на которые опирается объект. Заголовки методов- названия процедур объекта, позволяющих работать с полями, поскольку прямой доступ к полям нежелателен. Объект объявляется следующим образом: Объект. Type <имя объекта>=object <поля данных> <заголовки методов> End; После объявления объекта к нему пишутся процедуры (методы). Название процедуры состоит из двух частей: имени объекта и имени процедуры: < Имя объекта >.< Имя процедуры > Объектная программа. Объектная программа- это последняя важная стадия разработки программы: в нее внедряется панель управления, что значительно облегчает диалог с системой и делает функции программы более доступными. Как видно из предыдущей главы, функции программы в структурном виде находятся в операторе варианта case, а выбор функции происходит нажатием клавиши. Создавая объектную программу, я лишь перенес функции из оператора варианта в процедуры объекта и связал их между собой. Новый объект- панель управления под именем panel имеет одно поле- координату синего прямоугольника, который перемещается по панели управления. На самом деле это окно синего цвета, а изменение цвета букв при перемещении создается засчет точного соответствия текста в окне и текста на панели управления. Панель имеет процедуры перемещения прямоугольника выбора, которые уменьшают и увеличивают его координату в соответствии с нажатыми клавишами. А также есть процедура выбора, при нажатии клавиши Enter управление передается ей. Она в свою очередь определяет по координате окна какую функцию необходимо запустить в данный момент. Этапы разработки объекта Панель Управления: 1. Определение ключевого поля перемещения окна 2. Определение процедур работы с окном 3. Определение пропорций окна панели управления 4. Рисование панели управления 5. Написание процедур работы с окном выбора 6. Установка связей между функциями и объектом 7. Отладка объекта Программный код. Program redactor; uses crt,printer,dos; type panel=object { объявление объекта } x:integer; {поле объекта} Procedure left(b:char); {описание процедуры сдвига влево окна выбора} Procedure right(b:char); { описание процедуры сдвига вправо окна выбора } Procedure choose; { описание процедуры выбора функции } End; Var a,f,f1,a2:string; {описание всех программных переменных} b,k:char; c,u,y,a1,b1:text; d,e,i,j,p,z,z1,z2:integer; c1:boolean; g:panel; g1,g2,g3,g4,h:word; Procedure panel.left; {процедура сдвига влево окна выбора} Begin Window(x,22,x+9,22); {закрашивание следующего окна} TextBackGround(green); clrscr; Закрашивание следующего окна- важная функция. Она закрашивает то синее окно, которое было выбрано перед обращением к процедуре. Window(10,22,69,22); {основное окно панели управления} TextBackGround(green); clrscr; TextColor(brown); {установка цвета текста} Write('Новый Открыть Править Результат Печать Выход'); {нанесение надписи на панель управления} If x>=20 Then x:=x-10; {проверка соответствия окна выбора границам панели управления} Этот оператор производит сравнение координат окна выбора с координатами начала панели управления. Если окно выбора “выехало” за границы панели управления, то изменений координат не производится, окно выбора остается на своем месте. Window(x,22,x+9,22); {рисование окна выбора} TextBackGround(blue); clrscr; case x of {выбор надписи на окне выбора} Данное ветвление распознает по координате окна выбора какое слово следует в него вписать. 10:Begin TextColor(green); Write('Новый'); End; 20:Begin TextColor(green); Write('Открыть'); End; 30:Begin TextColor(green); Write('Править'); End; 40:Begin TextColor(green); Write('Результат'); End; 50:Begin TextColor(green); Write('Печать'); End; 60:Begin TextColor(green); Write('Выход'); End; End; End; Procedure panel.right; {процедура сдвига окна выбора вправо} Begin Window(x,22,x+9,22); {закрашивание предыдущего окна} TextBackGround(green); clrscr; Window(10,22,69,22); {рисование окна панели управления} TextBackGround(green); clrscr; TextColor(brown); {изменение цвета текста} Write('Новый Открыть Править Результат Печать Выход'); {нанесение текста на панель управления} Вы, конечно, заметили, что операторы предыдущей и этой процедуры повторяются, поэтому их можно вынести в отдельную процедуру и запускать ее для обновления окна панели управления. If x<=50 Then x:=x+10; {сравнение координат окна выбора с координатами конца окна панели управления} Window(x,22,x+9,22); {рисование окна выбора} TextBackGround(blue); clrscr; case x of {нанесение соответствующего текста на окно выбора} 10:Begin TextColor(green); Write('Новый'); End; 20:Begin TextColor(green); Write('Открыть'); End; 30:Begin TextColor(green); Write('Править'); End; 40:Begin TextColor(green); Write('Результат'); End; 50:Begin TextColor(green); Write('Печать'); End; 60:Begin TextColor(green); Write('Выход'); End; End; End; Procedure pannel; {процедура рисования панели управления} Begin Window(10,22,69,22); TextBackGround(green); clrscr; TextColor(brown); Write('Новый Открыть Править Результат Печать Выход'); End; <Procedure NewF;> {функции тестового редактора} < Procedure OpenF; > < Procedure RedactF; > < Procedure SearchF; > < Procedure PrintF; > Procedure panel.choose; {процедура выбора функции} Begin case x of { по координате окна выбора определяет нужную функцию } 10:NewF; 20:OpenF; 30:RedactF; 40:SearchF; 50:PrintF; 60:b:='e'; End; End; Вывод : Как видно, основную функцию управления взял на себя объект. Благодаря этому действие программы значительно упростилось, программа стала быстрее работать. Схему действия объекта можно изобразить следующим образом
Оформление программы. В завершении работы с программой я приступил к оформлению работы. Создание титульной страницы не составило большого труда. Если вы ознакомитесь с программным кодом, то убедитесь, что все команды- из модуля crt. Они используют элементы работы с цветом фона и текста. Procedure oform; Begin TextBackGround(green); { установка цвета фона } clrscr; TextColor(red); {цвет текста} GoToXY(20,10); {перевод курсора в нужную позицию} Write('Редактор Тестов'); {вывод текста} TextColor(darkgray); {цвет текста} GoToXY(20,12); Writeln('автор: Цыбин Антон'); {вывод текста} GoToXY(20,14); Writeln('составлено 09.05.2000'); {вывод текста} TextColor(white); {цвет текста} GoToXY(20,16); Writeln('нажмите клавишу'); {вывод текста} Readln; TextBackGround(black); clrscr; End; Begin Программа рисует титульный лист разноцветными буквами. Основная программа. Реализует действие всей программы, здесь сходятся все процедуры, объекты, функции, но ее действие крайне просто: сначала запускается оформление, затем системное время, а затем управление передается объекту или его методам. По завершении работы программа закрывает все окна и «сворачивает» работу программы. g.x:=10; oform; { оформление } TextColor(green); GoToXY(30,1); Writeln('ТЕСТОВЫЙ РЕДАКТОР. V 1.01.'); {вывод информации} GoToXY(23,2); Writeln('составитель: Цыбин Антон (09.05.2000)'); pannel; repeat Window(60,24,70,24); TextBackGround(black); clrscr; repeat {время} h:=g3; GoToXY(50,22); GetTime(g1,g2,g3,g4); TextColor(yellow); Write(g1,':',g2,' ',g3); Delay(1000); clrscr; until keypressed; b:=readkey; {считывание клавиши} По нажатию клавиши программа определяет дальнейшие действия (передача управления объекту) case b of '1':g.left(b); '3':g.right(b); '0':Begin Window(10,10,53,15); TextBackGround(blue); clrscr; g.choose; End; End; until b='e'; Window(10,10,53,20); {закрытие всех окон} TextBackGround(black); clrscr; Window(10,10,80,15); TextBackGround(black); clrscr; Window(30,10,35,12); TextBackGround(red); clrscr; TextColor(blue); Writeln('конец!'); Readln; End. Программа запускает методы панели управления в соответствии с нажатой клавишей, повторный вызов происходит благодаря циклу.
Заключение: Тенденции развития программных технологий. Вы прочитали реферат и ознакомились с принципами действия отдельных процедур, функций и всей программы в целом. Кроме того, вы поняли разницу между структурным и объектным подходами к программированию. Что касается структурных языков, о них сказано и написано почти все, но немногие знакомы с объектами. Поэтому я посвящаю заключение этой теме. В последние несколько лет начал создаваться новый подход к программированию, названный объектным. Объекты стали вводиться и в язык Pascal, который позже был назван Object Pascal. Сам объект построен по принципу, объясняющемуся в главе «Объекты». Их преимущество заключается в принципе наследования, когда один созданный объект способен породить родственный ему объект-потомок. Многие объекты могут использовать друг друга при построении программы. Ввиду большого количества полей и методов, были созданы свойства, использующие методы. В частности, в Delphi свойства выносятся в Инспектор объектов, что делает работу с ними похожей на детскую игру. Теперь, чтобы написать программу, не надо возиться с кучей переменных и операторов. Программист может даже и не видеть текста самой программы, конструируя сразу ее внешний вид на форме. Таким образом, если на создание программы ранее уходили недели, то сейчас она создается за несколько часов. В связи с переходом на объектные концепции, новые программы возникают на основе уже имеющихся объектов. Некоторые языки программирования написаны на основе объектов. Расширяется и пространство применения объектов, если они возникли в среде MS-DOS, то теперь, используя объекты, можно с легкостью создать текстовый редактор типа WORD или СУБД типа ACCESS. И, естественно, в такой среде можно создать мощный и удобный редактор тестов. Но я только приступаю к изучению Delphi и не могу написать подобный редактор в той среде. Но и описанная здесь программа не останется в таком виде. В перспективе внедрение мышки и управление программой с ее помощью. Я уже знаю, как это осуществить, и использую мышь в ряде своих программ. К программе недавно мной был написан кодировщик информации. Он универсален в применении к файлам, т. е. можно зашифровать любой файл и ни одна программа не сможет его прочитать. Расшифровать файл вы сможете используя тот же редактор, совершая те же действия. Вам требуется лишь ввести полный путь к файлу, имя файла с указанием его расширения. Далее программа сделает все за вас, включая расчет времени, необходимого для шифрования. Используйте его по вашему усмотрению для шифрования текстов тестов.
Список использованной литературы: 1. Учебник по Turbo Pascal 7.0 1998г. 2. Учебник по Delphi 5 (Дарахвелидзе, Котенок, Марков) 2000г. 3. Журнал «Информатика и Образование» №1 1998г. статья Г. Н. Гутмана «Неисчерпаемый Фортран» 4. Журнал «Земля и Вселенная» №2 1998г. статья В. П. Дьяконова «Бейсик- язык программирования ПЭВМ» 5. Журнал «Информатика и Образование» №8 1999г. статья В. И. Курганского «Конструирование программ» 6. Интерактивный учебник по Delphi, аннотированные ссылки в Интернет [1] Примечание: данные из учебника по Turbo Pascal [2] Примечание: данные из статьи «Конструирование программ» [3] Примечание: данные из учебника по Turbo Pascal *Примечание автора [4] Примечание: данные из учебника по Delphi 5
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (207)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |