Главная » Просмотр файлов » Лекции по информатике

Лекции по информатике (984119), страница 34

Файл №984119 Лекции по информатике (Лекции по информатике) 34 страницаЛекции по информатике (984119) страница 342015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Например, понятие объекта сходно с понятием фрейма, одним из основных понятий в теории представления знаний. ° Интеграция понятий и средств информатики. Об"ьектно-ориентированное программирование знаменует очередной этап сближения (интеграции) понятий и средств информатики, характерный для нее в послсдние годы. ° Целостность языков.

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

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

1'!оскольку в обьектно-ориентированном подходе выделено понятие операции, то обычно это естественным образом приводит к прекрасной модульной структуре программы. Структурный подход весьма слабо поддерживает процесс декомпозиции программы на процедуры, а для оолыпих программ проолсма их декомпозиции на модули очень непроста. При обьектно-ориентированном подходе также упрощается использование модулей заимствования. После того как выделены обьскты и операции над ними, программисту не составляет труда определить дальнейшую полезность разработанного программного обеспечения.

В результате обьектно-ориентированного программирования основной алгоритм легко читается и понимается, так как запрограммирован в терминах процедур, похожих на абстрактные операции. Операми короткие и понятные, поскольку связаны с независимыми четко определенными задачами. Упрощение внесения изменений — еще одно достоинство обьектно-ориентированного программирования. Операция проще идентифицируется и изменяется, если она реализована в виде отдельной процедуры. В заключение отметим, что наибольший эффект дает совокупное использование обоих методов: обьекты и операции должны выбираться в рамках обьектно-ориентированпого подхода, а реализацию операций луч|не всего проводить сверху-вниз. 410 Удобнее первые шаги разработки программы провести в соответствии с обьектпоориентированным подходом, выпо:шяя разбиение на модули.

Если подходящая структура данных без исследования алгоритма неясна, надо начать нисходящее проектирование. Если составление алгоритмов без предварительного выбора, структуры данных не получается, необходимо провести обьектно-ориентир<>ванное проектирование. 1'!осле каждого уровня детализации полезно выделить в алгоритме характерные обьекты. Каждун> операцию можно рассматривать как отдельнун> задачу для ни<'х<>дягцего проектирования. При выборе обьектов следует использовать заимствуемые компоненты. При проектировании обьектов и операций надо опглраться на абстрактные типы данных.

7.4.4 ООП в фон Неймановских языках Н. Вирт развивал Паскаль в сторону объектной технологии (Молула, Модула;2, Оберон, ... ) см., например, 1591. Фирма Вог!апс! уже в '!.'пгЬо Рааса! 5.5 предоставила возможность объектно-ориентированн<>го программирования на Паскале. Эти средства стали фактическим стандартом и, в частности, вошли в С".1ч с! Равса1. Однако, официального стандарта объектно-ориентированного Паскаля до сглх пор нет. 7.4.4.1 Полиморфная очередь с использованием механизмов ООП Очередь реализуется из объектов типов ТС>гс!е (о>сружность)> ТТг1апа1е (треугольник), ТЕхесг>СаЬ1е (выполняеь>ый объект, вызывающий процедуру саморисования) > которые являются наследниками ТОЬ1есС: 1' Яира!уорЗ: Сошников Д.

В. Т Суре ТОЬ1есС - оЬ1ес1, ргосе<1пге !Эгаъ"! упгпа1; !' Процедуры, к;схаюрые должны с>ь>зьсвапгься по ось~ <хе на ТОЦесС обьяс>ляются виртуольньм<и. 1Три обри<цен>и< к такс>й процедура как к члену базового класса будет вызвана процедура конь>Т>егпного класса — наследника, Зкзс>мп.лярве обстрактиого клас>еа не бь<вает, по апре<!елен>сю, возмоэ>сига т,олька указатели но, них, через когпорые моэ>оно вь звать обгцие для разнснпиппые потомков функции >с !' сопя!та>сСог Тг»С; —,'>с конкретна<их классов копструкгпор будет оп<<с<>н. Ковструк>тор абстрактного классп не имеегп смысла, п,аско.лькд абстрактньсе классы используются как исходная спецификац я для конкретных классов Т' с!езггггсгог Ропе: агапа!; !' Деструктор обаявлен виртуальным, поскольку унгечтоженгсе контейнера — очереди, потребует поочередного уни <тожения всех ее элементов, что приводит, к вызову их: деструкторосс Поскольку пииь злемепта очереди — абстрактпь<гь тс> в<язов абстраклпного деструкгпора будет заменен вызовом конкретного Т' епс1; 411 Суре РОЬ1ес1 — "ТОЬ)ес1; Суре ТРо1п1, -- оЬ)ес1(ТОЬ!ес!); х.

у: геа1; сопз1гпс1ог !г<!1(хх, у): геа1); << Теперь мооюно породить тпо <ку инструкцией ел<да р1;=- Тро1тгй!с<<1(1.0, 1.01; <Г ргосес1пге 1)га<ч; ч!г1<га!; !' У нового точкоооао типа есть своя процедура, в«зуалл<зацил< <г с1ез1гпс1ог Ропе; ч1г1па1; !' Может потребоваться для освобождения памяти, занятой членами класса в куче, различных ресурсов колгпьютера и ОС, как то объекты ОШ, порть<, сокеты... з) епс1; 1' тип точки, использУемый в описании геометРических фигУР зс РРога1 =- ТРо1п1; 1' для, сохранения, концептуальной совместимости с предыдугцил<и примерами ТС)тс1е наследуется отп ТО6)есй Для полной концептуальной законченности необходимо наследовать ТС1тс1е и Тро1п1 от ТТосаИотц который в свою очередь наследуется от ТО6)ес1 вместе с ТЕхеси1а61е.

у Суре ТСьгс1е - оЬ)есг(ТОЬ)ес1) сепсег: ТРоп<1; га<11пз: геа1; сопеггпс1ог 1п11 (хх, уу, гг: геа11; ргосес1пге 1)галч; ч!гспа1; <1слвсгп<1ог !)опе: ч1г1<га1; епс1:, РСггс1е = ТСпс1е; Суре ТТг1апп1е -- гесогс1 А, Н, С: т1ло1<л1; сопаьгпсгог 1п11 (ах,ау,Ьх,1зу,сх,су: геа1); ргосес1пге Вгалч; и!г1па1; с1ев1гпс1ог Г)опе; ч1гС<ла1; епс1; 1<1уре тесотд ТТт)апд1е) РТг1апа!е -- ТТг1ап 1е; Суре ТРгосес)пге Ргосес)пге; Рргосес1пге - Т1ъгосес!пге; Суре ТЕхесп1аЫе — оЬ)ес1(ТОЬ 1ес1 ) РгосРСг: РРгосес1пге; сопзсгпссог 1<<11(Р: РРгосес1пге); ргосес1пге 1)гаж; ч1г1па1; с1езсгпс1ог 1)опе; Ыг1па1; епс1; РЕхеспс а!э1е — "'ГЕхесяйаЫе; Тигс данных для элемента очереди ТУа1пе определяется как указатель на об ьект типа ТОЬ1ес1з что обеспечивает совместимость с УказателЯми на все его потомки: Суре ТУа1пе — РО1э1есй; Везде, где для печати элемента очереди вызывается процедура ип1е1п, необходимо заменить ее на вызов метода ГУгасг, например: шг11е1п(Р) — Р с .Вгаис(); ( где Р; РОЬ1ес1) При этом автоматически вызывается метод 1дгаи'(), соотвсстствующий объекту, указатель на которьпл содержится в данном элементе очереди.

ргосес1пге ГРо1гсС.ГУгам', и1 гспа1; 1' Процедура — мепсод Вгаис для обвекта 'ГРосп1 ~С Ьенш ът1Се1п('Х -- ', х, ', У -'; у):, епс1; ргосес1пге 'ГС1гс1е.1)гаст; т1ггпа1; 1' 1!роцедура — метод 1дгаис для обаектп ТСгс1е зг 1' осюбенности отрисовки на зкрпне 'плси вьсводп на экран опредсл„яются конкретнсхй реализацией с Ьеиш ъът1Се('ОКРУЖНОСТЬ('): СепСег.ГУгатс: жг1Се1п('В.- ',гас11пв,') '); епс1; ргосес1ш е ТТг1апя1е.ГУгаж; м1г1па1; Ьеиш ит1Се('ТРЕУГ('); ит1Се('А= '); А.ГУгаь-, тът1Се( В--'); В.ГУгаск; ит1Се('С -'): С.ГУгаж: исг1Се1п(')')1 епс1; ргосес1пге ТЕхеспгаЫе.

Гсгач', м1гСпа1; Ьенш 11 РгосРСг<>п11 СЬеп РгосРСг: 1' вытсолнссние процедуръс по указателю 1' епс1; Для создания нового объекта и помещения его в очередь используются функциикопструкторы: сопвсгпсгог ТРопй.1ЫС(хх, уу: геа1); Ьеиш пйегйсс1 1ш1: ( вызов То1т1стс1.1нгГ ) х: — хх; у: — уу; ( х,у — метнодьт обаекта, хэ:, уу — нарамстртя конструктора ) епс1; соггаггпгйог ТС1гс1е.1шг(хх, уу, гг: геа1); Ьефп 1пЬег11ес1 1шГ; ( Вызов конотрукгтора базового класса 3 сепгсн.

1шГ (хх, уу); ( Пгт1тоэтсдетггтст точки — центра окруэтсноспит! ) гас1тггг: епс1; сопаггпсгог ТТг1апа1е.1шг(ах, ау, Ьх, Ьу, сх, су: геа1); Ьеиш пгЬег11сс1 1шг,; А.1пЫ(ах, ау); ( Создание точек — вершин треугольника ) В. 1п11 (Ьх Ьу)- С.1п11(сх, су): епс1; сопгггпсГог ТЕхесп1аЬ1е.1п11(Р: РРгосес!пге): Ьеиш ш Ьег1'гес1 1ш1, РгосРгг: - Р; епс1; Правильное уничтожение объектов очереди обеспечивается виртуальным деструктором Рогге, который автоматически вызывается при вызове расширенной функции Вгзрозст(Р, ьтотге): с1ев$гпсгот ТРопгг.Етогге; кпгпа1; Ьеиш ( Здесь не требгтегася, уттглчпгоэгспть то тку сттегтитгльтто, погкольку ни одна из ее компонент, (згс.т) не размещатетпся при помощи пеит() в куче., поэтому и не. требует удаления.

Отта, будет уничптстжена, автполтаплтчески нри выгоде гез блока 3 епс1; с1сгаггпггог '1'С1гг1е.1допе: г1гггггг1; Ьеиш сепгег. Попе: ( В уничтоэтсении нуждается только точка,— цетттр окружности, пороэтсденаая при ее создании ) епс1; Пример добавления объекта в очередь: ргосес1пге Ехагпр!еВгагг; Ьеиш ътЫе1п('ВЬШОЛНЯЕ.'г1ЫЙ'): ( Здесь могла бьипь ваша вгтзуалгтзаиг~я ( РозгБст грг, Яоитгт1сотуе...) ) епс1; маг Ч: Чпепе: РцвЬ(ч, пеъ.(РС1гс1е, 1пй(10, 10, 5))); Рпй(ч, пеж(Р 111ащ,1е, 1п11(1, 2, 3., 4, .5., 6))); Рпй Я, .пеж(РЕхесп1аЫе, .1шг(йЕхап~р3е1)гаът))); 1)1ар!ау(ф; ~г Эта чисть програлсмы остаппсл неинмвнной у' 7.4.4.2 С++ В С-;+ все вышеописанное выглядит короче и яснее. Во-первых, в силу краткости и выразительности языка, а во-вторых все конструкторы и деструкторы вызываются автоматически при об"ьявлении переменных-экземпляров класса и выходе из блока, в котором они были обьявлены.

Так, все объекты Ре1р1п' размещаются только в куче и при этом синтаксис инструкций различается. 11апример, дкя размещения в куче переменной типа 1п$енег необходимо написать пеъь (р1); А чтобы разместить некоторый класс Х, необходимо писать совершенно другие инструк- ции в духе ро:== Х.1шг; или ро:--пеж(Х,1ш1); В С-'+ эти инструкции выглядят более однообразно и логично 1пС* р1 — пен 1пт; Х* рх пен Х; Благодаря этому использование переменной типа класс ничем не отличается от использования переменной любого встроенного типа. 7.4.4.3 Лача Синтаксис языка Лага очень похож на, синтаксис С!С+-.

Характеристики

Тип файла
DJVU-файл
Размер
675,15 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6314
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее