Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 158

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 158 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 1582019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Переменные ссылочного типа, следовательно, могут указывать на объекты данных только одного типа. Все переменные ссылочного типа имеют по умолчанию в качестве начального значения указатель на несуществующий объект, М00 ~, если только при их об ья зле ни и им явно не присваивается указательь на какой-либо объект. Для размещения всех объектов данных конкретного ссылочного типа можно зарезервировать область памяти, используя следующий оператор: Гог инн ссыпанного типа чае аиранение Здесь вараяение задаст необходимый для резервирования размер области памяти. Любое последующее использование оператора пен для этого ссылочного типа выделяет память внутри отведенной области памяти. Структурированные типы данных Векторы и массивы. Объект данных пассие может быть любой размерности и иметь произвольпыс диапазоны изменения индексов и компоненты любого типа.

Напри- мер, слелующсе объявление; таЫе, аггау (1. 10.1 20) от Поа1 создает матрицу вещественных чисел размером 10 х 20. Для выбора компонентов используется операция >>идсксации (например, ТаЫ е(2. 3) ). Для объявления классов массивов можно использовать описание типов. В язы- ке А()а устранен недостаток языка Рааса! — границы массива не включаются в обо- значение типа. При определении массива как тина в языке А()а можно не задавать конкретный диапазон индексов для одной или нескольких размерностей.

Конк- ретная размерность задается при объявлении объекта данных, принадлежащего к этому типу. Например, определение типа массив может быть следующим; туре иатг1х н аггау (тп1езег ганзе >птерег ганзе <и) от П оат. где угловые скобки <х обозначак>т диапазон изменения ипдексоз, который необхо- димо задать при объявлении переменной типа Матс> х. Последующее об ьявленне пе- ременнойй задает конкретный диапазон индексов для объекта тип а Ма!пи, например: ТаЫе Матюк(1.

10.1 .20). Диапазон индексов не обязательно должен быть подмножеством целых чисел, он может быть объектом любого перечисляемого типа. Границы диапазонов изме- нения индексов также могут задаваться выражениями, которые содержат вычи- сленные результаты, например: Неи(там аггау (1 .Н) от Ь>а111ен, 570 Приложение. Обзоры языков где н — переменная с вычисленным значением. Каждый раз при входе в подпрограмму, содержащую данное объявление, в зависимости от значения переменной и в момент входа заново задается длина вектора ))еи1) 61. Индексацию можно использовать для выбора не только единичного элем ента массива, но и сечения массива — непрерывной последовательности компонентов исходного вектора.

Например, ссылка 14ен1пзС12. 4) возвршцает трех- компонентное сечение, содержащее компоненты вектора йен1)61 со второго по четвертый. Инициализация. При объявлении массива его компонентам можно присваивать начальные значения: Рочегоутчо аггау 11. 6) оу 1'пгезег ;- 12,4,8,16,32,64). Символьные строки. Символьные строки трактуются как предопределенный векторный тип, в определении которого используются Лва других предопределенных типа — роз)С) че (положительные целые) и с))агасСег (пере шсление символов, определенное в пакете 51апдагд): Суре 4Сгппр м аггау 1роеЛС)че гапце и ) от сьагастег: Таким образом, конкретпьп! строковый объект можно объявить, задав максимальную длину (диапазон изменения индекса) строки: Му51г;пп.

41юпр11 30); Файловый тип данных. Файлы и операции ввода-вывода в языке Ада определены как абстрактные типы данных, использующие некоторые стандартные л акеты. Кроме этих пакетов реализация, как правило, должна поддерживать дополнительные пакеты ввода-вывода, построенные с использованием основных типов данных и операций, определенных в стандартных пакетах (например, пакет графического вывода на экран), Определяемые пользователем типы В языке Ада объекты данных записи похожи на записи языка Рааса!.

Запись может иметь любое число компонентов произвольного типа. Если запись имеет несколько вариантов, варцаптные компоненты должны располагаться в конце. Однако в отличие от языка Рааса! зались с вариантами всегда должна иметь поле признака, называемое дискриминантом (тем самым устраняется еще один дефект языка Рааса!), которое во время выполнения программы указывает, какой из вариантов записи используется в настоящее время.

Попытки ссылки на компонент, который не содержится в текущем варианте записи, отслеживаются во время выполнения программы и воспринимаются как исключительные ситуации. В отличие от языка Разов! в языке Ада для определения записи нужно, во-первых, задать описание типа для определения структуры записи и затем объявить переменную, использующую имя этого типа. Аналогично если компонент записи сам является записью, то эта запись должна быть определена с помощью отдельного определения типа, причем определение второй записи не может быть вложено внутрь определения большей записи. Для любого компонента записи можно задать начальное значение по уиолчинию: суре В)гтьиау и гесого Мопсь: атюпц(1 .3) - "зап": Оау: ~псецег гапде 1.

31 .= 17. уеаг ~птецег гапде 1950. 2050 :- 1969; епц гесогсн Каждый объект данных типа 8)гЕМОау имеет начальное значение (тОап", 17. 1969), если только в объявлении не присваивается другое начальное значение. Если объявить переменную МуОау следуюшим образом: Муцау . В~гтьдау: то Му0ау будет иметь начальные значения по умолчанию для своих компонентов. Однако если переменную УоигОау объявить как уоигОау В~г(ьсау ;= ("МАК", 13, 1968); или Уоигцау : В~ггьиау .= (Мопть => "МАК".

Оау => 13. Уеаг -> 1968); то вместо начальных значений, присваиваемых но умолчанию, используются ука- занные значения. Для определения похожих объектов данных объявления пользовательских ти- пов могут содержать параметры, называемые дискримипанглами. Например, для определения типа записи, которая содержит ннформацию о каждом месяце, вклю- чающем вещественный вектор, имеющий свой элемент для каждого дня месяца, можно использовать следующее определение: туре Мопсь (Еепцть : )птедег гапце 1..31) аа гесоги Иаее . атгапц(1 .3): Оауа : аггау (1. (епцгп) ог и оас, епи гесоги.

Затем можно объявить конкретные записи типа Маптн: Оап . поить(31). Геь : ность(28): Для доступа к каждому компоненту вектора без знания явных границ каждого месяца можно использовать атрибуты Оауз'Г)гас и Оауа'еаа(. Второй способ использования одного определения типа записи для определе- нияя похожих, но не одинаковых об ьектов этого типа заключается в использовании структуры вариантной записи, похожей на такую же структуру языка Разсай Поле признака, используемоедля указания нужного варианта, всегда перечисляется как днскрнминант в о( редел е) и ш типа записи (в той же форме, что представлена выше). Например, запись о служащем может быть представлена как туре Иацетуре и [Поиг1у, аа1аг)еи); туре Еер)оуееяес (РауТуре ; Иадетуре) и гесогц Маее: агг~пц(1.,30), Аце; ~птедег гапце 15 100. сапе РауТуре )а иьеп Ноиг1у => норге Н оам Моиг)ура(е.

Т)оаг, ньен 5а)аггее => 522 Приложение. Обзоры языков Моптв1уйате: Г)сам епб гесогб: Затем можно объявить конкретные обьекты записи: Ргез>бепс. Епр1оуеейес15а)агтеб). Епзиттеог; Еяр1оуеейес(иоог)у). где выбранный вариант не изменяется во время выполнения программы (например, тип оплаты за работу Ргез>бепт никогда не изменится на йопг)у). Если необходимо изменить вариант записи во время выполнения программы, следует осуществить присваивание переменной всей записи — никаким другим способом не изменить значение дискриминанта. В результате такого присваивания в блок памяти, представляющий запись, записывается полный набор новых значений,вкли>чая новос значение дискриминанта.

Подтипы. Любой определенный тип дает имя классу объектов, имеющих определенные атрибуты, Подтип этого базового в>ива состоит из подмножества тех объектов дынных, которые удовлетч>оряют конкретным огранитте>тилм. Ограничением для базового типа >пге0ег может быть сужение множества целых чисел до некоторого подмножества; ограничением па базовый тип аггау, в определении которого ие указан диапазон изменения индексов ( ), может быть конкретный диапазон изменения индексов, Ограничением на базовый тип, определенный как запись с дпскр им и нантом, может быть кон кротпов значение дискриминанта (которое может опрелелять конкретный вариант записи).

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

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

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