Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вопросы и задачи для самостоятельного решения




Уровни абстракции

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

Например, можно рассматривать в качестве примера абстракции автомобиль. При проектировании автомобиля, он может рассматриваться на более детальном уровне как кузов, шасси, двигатель, салон. Проектировщики шасси будут оперировать терминами передняя подвеска, задняя подвеска, коробка передач, карданный вал и т.п. Хорошей абстракцией может быть подвеска автомобиля. Для разработчика шасси она определяется типом, набором рычагов, пружинами, амортизаторами, сайлент блоками, стабилизаторами и конечно их взаимным расположением. В этом случае полезной операцией будет расчет изменения положения и нагрузок при воздействии внешних сил. Такая абстракция полезна лишь при разработке самой подвески.

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

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

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

 


 

Внимание!

Абстрактный тип данных должен проектироваться абстрактно, т.е. безотносительно к реализации. Эта абстракция отражается в h-файле модуля. Только после этого следует приступать к самой реализации. Зачастую, реализация будет накладывать ограничения на абстракцию. Конечно, полностью избавиться от учета особенностей реализации порой не удаётся, но к этому надо стремиться. Например, использование динамической памяти может снимать ограничения на размеры, но обусловливать дополнительные проблемы при создании переменных.


 

Как используются абстрактные типы данных?

Что необходимо задать, чтобы полностью определить абстрактный тип данных?

Приведите основные классы операций, определяемых для абстрактного типа данных?

Определите набор операций и структуру данных для абстрактного типа данных «Дек».

Определите набор операций и структуру данных для абстрактного типа данных «Линейный список».

Определите набор операций и структуру данных для абстрактного типа данных «Множество печатных символов».

Определите набор операций и структуру данных для абстрактного типа данных «Разряженный вектор произвольной длины».

Напишите спецификацию на модуль, реализующий абстрактный тип данных: бинарное дерево.

 








Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 309; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.