Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 22

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 22 страницаН. Джехани - Язык Ада (1988) (1160771) страница 222019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Больше информации о различных представлениях множеств можно найти в книге «тле Резгйп алй Апа!упз о! сощрсгег А!Копгйгпз !АНО75!. Гвввв 3 1Ог ного описания. Личные типы, реализованные в виде записей, могут иметь дискриминанты. Реализация личного типа видима внутри соответствующего тела пакета так, что реализатор пакета имеет возможность определять операции над объектами личного типа. Эта реализация скрыта от пользователей личного типа; это вынуждает их оперировать над объектами личного типа, используя только операции, автоматически предоставленные вместе с личным типом, и операции, предоставленные реализатором этого личного типа.

Использование личных типов иллюстрируется на обсуждаемых ниже примерах. 3.4.1. Более подробно об упорядоченных множествах Реализация упорядоченного множества в пакете ОКРЕКЕР ЯЕТ, приведенная ранее, является негибкой, потому что в нем пользователю сделан доступным только один вариант множества. Это неудобство может быть исправлено с помощью определения типа ОКР ЯЕТ в спецификации пакета, который представляет собой запись, состоящую из двух компонент — массива с компонентами типа ВООЬЕАХ 1Х ВЕТ и массива КАХК с компонентами типа 1МЖАТ1ОХ (они были определены в теле пакета ОКРЕКЕР ВЕТ). Эти массивы будут использованы, как и раньше, для представления множества.

Операции сейчас будут переопределены с целью включения параметров типа ОКР-ВЕТ. Пользователь описывает упорядоченные множества путем описания объектов типа ОКР ВЕТ. Пользователь может теперь иметь столько упорядоченных множеств, сколько пожелает с помощью описания соответствующего числа объектов типа ОКР-ВЕТ. Операции над конкретным упорядоченным множеством выполняются за счет передачи упорядоченного множества как параметра операции. Спецификация пакета ОКРЕКЕР ВЕТ2 (пакет ОКРЕКЕР ВЕТ модифицирован в соответствии с обсуждением) имеет вид раскайе ОКРЕКЕР ЯЕТ2 Ь !уре ВЕТ АККАДА 1з апау (1Р) о1 В001.ЕАХ; 1уре КАХК АККАУ Ь апау (1Р) о1 Р1ЖАТ1ОХ; гуре ОКР ЯЕТ Ь гесогг( 1Х ВЕТ АККАДА:= (1Р = > ГАЬВЕ); КАХК: КАХК АККАУ; епг) гесоп); ргосег)пге 1ХВЕКТ(В: )п оц( ОКР ВЕТ; ЗОВ: 1п 1Р; Т: )п РЬЖАТ1ОХ); ргосег)цге ВМАЬ ЕВТ(Я: (п оцг ОКР ЯЕТ; ЗОВ: ощ 1Р); 1цпс(1оп ЕМРТг'(Я: )п ОКР ВЕТ) ге(цгп ВОО1.ЕАХ; епб ОКРЕКЕР ВЕТ2; Если предположить, что был задан спецификатор использования, то упорядочен- ные множества объявляются как А, В, С: ОКР ЗЕТ; — - три упорядоченных множества Хотя эта модификация разрешила проблему задания более чем одного упорядоченного множества, возникает ряд других проблем.

Пользователь пакета имеет Лаке ты возможность непосредственно использовать реализацию упорядоченных множеств. Такие действия со стороны пользователя возможны потому, что реализация типа ОКР БЕТ, т. е. запись, состоящая из двух массивов 1Х БЕТ и КАХК, является видимой извне спецификации пакета. Более того, типы БЕТ АККАг" и КАХК АККАУ также являются излишне видимыми для пользователя. Скрытие информации, предусмотренное в пакете ОКРЕКЕР-БЕТ, больше не существует. В ситуации, подобной данной, для скрытия деталей реализации бывает очень полезным использование личных типов. Реализация типа ОКР БЕТ может быть скрыта от пользователя за счет описания его как лимитируемого личного типа.

Пользователь даже не сможет сделать копии объектов типа ОКР БЕТ или сравнить их, так как тип ОКР БЕТ описан как лимитируемый личный тип. Спецификация модифицированного пакета ОКРЕКЕР БЕТ2 представляет собой рас)гаке ОКРЕКЕР БЕТ2 Ь гуре ОКР БЕТ Ь !!гп!!ег( рг!ча!е; ргосейпге 1ХБЕКТ(Б: !п ои! ОКР БЕЗ', ЮВ: !п 1Р; Т: !и Р()КАТ1ОХ); ргосейиге БМА(.ЬЕБТ(Б: !п оп! ОКР БЕТ, ЗОВ: оп! 1Р); !ппсйоп ЕМРТг'(Б: !п ОКР БЕТ) ге!вен ВООЬЕАХ; ргЬ'а!е гуре БЕТ АККАг' Ь аггау (1Р) о( ВОО1.ЕАХ; !уре КАХК-АККАДА !я аггау (1Р) о1 Р()КАТ10Х; гуре ОКР БЕТ Ь гесогй 1Х БЕТ. БЕТ АККАг':= (1Р = ) гА(.БЕ); КАХК: КАХК АККАг'; епд гесогд; епй ОКРЕКЕР БЕТ2; Тело пакета ОКРЕКЕР БЕТ2 выглядит следующим образом: рас)саяе Ьопу ОКРЕКЕР БЕТ2 Ь ргосеппге 1ХБЕКТ(Б: !п оп! ОКР БЕТ; ЮВ: !п 1Р; Т: !п 1И)КАТ1ОХ) Ь вЂ” упорядоченное множество использовано — в качестве формального параметра Ьея!п Б.1Х БЕТ(ЮВ): = ТК(ЗЕ; Б.КАХК(ЮВ):= Т; епв !ХБЕКТ', — тело процедуры БМАЫ.ЕБТ вЂ” подобно тому, что задано в — пакете ОКРЕКЕР БЕТ, за исключением того, что — упорядоченное множество использовано — в качестве параметра — тело функции ЕМРТУ вЂ” комментарии такие же, как — и для процедуры БМА1.1.ЕБТ епо ОКРЕКЕР БЕТ2; Глава 3 Отметим, что существовала возможность предусмотреть начальное значение по умолчанию для объектов типа ОКО БЕТ, так как тип Ой(Э БЕТ представляет собой именуемый тип.

Невозможно связать начальные значения по умолчанию с типами, которые не являются именуемыми. Можно, конечно, вставить любой тип в именуемый тип для того, чтобы получить эту возможность для инициализации. 3.4.2. Управление по ключу Другим примером, иллюстрирующим использование личных типов, является управление по ключу [РОО83).

Поставляются различные ключи по каждому запросу пользователя пакета. Все, что пользователь может сделать с ключами,— это присваивать им значения, сравнивать их на равенство и определять, какой из ключей меньше. Пользователь не может «подделать» объекты типа КЕУ: расйайе КЕУ МАХАОЕК Ь (уре КЕУ Ь ргна(е; Х(Л.Ь КЕУ: сопя(ап( КЕУ; — субконстанта личного — типа; ей будет задано значение в — личной части пакета ргосег)пге ОЕТ КЕУ(К; ои( КЕУ); — ОЕТ КЕУ не задана в виде функции, — потому что при каждом вызове — она возвращает различные значения. гипс(юп "<" (Х, У: !п КЕУ) ге(игп ВООЕЕАХ; ргЬа(е (уре КЕУ Ь пеа' ХАТ()КА); ХИЛ КЕУ: сопягапс КЕУ:= О; — задано полное определение субконстанты — для того, чтобы присвоить ей значение епй КЕУ МАХАОЕК; Над объектами типа КЕУ пользователь пакета КЕУ МАХАОЕК может осуществлять только операции присваивания, сравнения на равенство и неравенство, а также операцию сравнения на меньше (<), определенную в пакете.

Тело пакета КЕУ МАХАОЕК имеет вид расйайе Ьооу КЕУ МАХАОЕК Ь ).АКТ КЕУ: КЕУ:= О; — переменная (.АКТ КЕУ является — глобальной для подпрограмм — в пакете; это описание дает — такой же эффект, как и определение — собственных или статических — переменных в языке Ада ргосебнге ОЕТ КЕУ(К: онг КЕУ) 15 Пвквгы Ьея!и 1.АЗТ КЕУ:= 1.АКТ КЕУ + 1; К:= КАЕТ КЕУ; епа ОЕТ КЕУ; 1ппс!!оп "< "(Х, У: !и КЕУ) ге!пгп ВОО1ЕА)ч !з Ьек!п ге!пгп 1ЫТЕОЕК(Х) < 1Ь)ТЕОЕк(У); — если значения ключей Х н У не — преобразованы обратно в родительский — тип 1ЫТЕОЕй из типа КЕУ, — то Х < У рекурсивно — вызывало бы функцию "<", — определенную для типа КЕУ. — Тип КЕУ может быть преобразован — в тип 1ЫТЕОЕй, так как — он является производным типом — от типа 1НТЕОЕК ена "<"; епа КЕУ МА1ЧАОЕК; 3.5.

Абстрактные типы данных Пакеты могут быть использованы для реализации абстрактных тинов данных. Абстрактные типы данных представляют собой определенные пользователем типы, для которых он задает не только множество значений, но также и операции над ними. Абстрактные типы данных обеспечивают абстракцию данных в такой же степени, что и подпрограммы, обеспечивающие абстракцию управления. Детали реализации абстрактных типов данных скрыты от пользователя. Скрытие деталей реализации препятствует: 1) созданию зависимых от представления программ. Представление абстрактных типов данных может быть изменено без воздействия на остальную часть программы. Например, абстрактный тип данных множество изначально может быть реализован в виде логического массива, но это представление может быть позднее заменено на упорядоченный список с целью экономии памяти; 2) случайному и предумышленному нарушению целостности объекта абстрактного типа данных.

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

В языке Ада определяется пакет для скрытия информации, скажем РЕЫСЕ РОй Т, и внутри его указываются описание личного типа Т и операции над объектами типа Т: Глава 3 расФФайе РЕХСЕ РОК Т Ь Фуре Т Ь ргФчйе; — или лимитируемый — личный — операции над объектами типа Т ргпаФе Фуре Т Ь епФФ РЕгФСЕ РОК Т; расйайе поФФу РЕХСЕ РОК Т Ь епд РЕХСЕ РОК Т; Затем описываются объекты, как имеющие тип Т из пакета РЕгФСЕ РОК Т.

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

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

Список файлов книги

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