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

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

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

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

Отсутствие этого ограничения является главной лазейкой в механизме типизации языка Паскаль. вв Глава 2 Примеры именуемых типов с днскриминантамн: гуре КЕСТАХОЬЕ(Ь, В: 1ХТЕОЕК:= 10)  — именуемый тип КЕСТАХОЬЕ параметризован с — помощью дискриминантов Ь и В, которые — представляют стороны прямоугольника. — Для Ь и В заданы начальные значения по — умолчанию, которые могут быть подавлены — явным указанием начальных значений гесоп3 К: МАТК1Х(1 ..

Ь, 1 .. В) — тнп МАТК1Х был объявлен в гл. 1 как двумерный — массив с элементами типа Р1.ОАТ епо гесоп1; гуре БРАКЕ(Б13)Е: РОБ1Т1ЧЕ) 3а — БЮŠ— это дискриминант. Он не имеет — начального значения по умолчанию; дискриминанту БЮŠ— должно быть задано значение во время — описания объекта типа БО()АКЕ гесоп3 БО: КЕСТАХО1.Е(БП)Е, Б13)Е); епг3 гесоп3; гуре В~1РРЕК(Б1УЕ: ВО)РЕК Б1УЕ:= 128) 1з — тип ВУРРЕК Б1УЕ был объявлен ранее как подтнп — целого типа со значениями в диапазоне О..МАХ соп3 РОБ: В1)РЕЕК Б1УЕ; ЧАШЕ: БТК1ХО(1 .. Б1ЕЕ); епг3 гесоп3; гуре 1ТЕМ(Х()МВЕК: РОБ1Т1ЧЕ) 1в — дискриминант не используется внутри — определения записи гесоп3 СОХТЕХТ: 1ХТЕОЕК; епд гесоп3; Объекты именуемых типов с дискрнминантамн описываются как К1: КЕСТАХО1.Š— имеет размер по умолчанию — 10 на 10 К2: КЕСТАХОЬЕ (50, 50); — начальные значения по умолчанию подавляются.

— Начальные значения задаются в позиционной нотации КЗ: КЕСТАХО1.Е(Ь = > 10, В = > 50); — для задания начальных значений — используется именная нотация Б: БЯ()АКЕ(Б1РЕ = > 10); — дискриминанту должно быть явно задано — начальное значение, если не было — определено начальное значение по умолчанию Е о тяпая вй В1: В1ЭРРЕК(З1УЕ = > 64, РОЗ = > О, ЧАШЕ = > (1..64 = > '')); — начальные значения задаются для всех — компонент записи, включая дискриминант В2: В15РГЕК(64, О, (1..64 = > '')); — это описание использует позиционную — нотацию. Оно эквивалентно объявле— нию для В1. Дискриминант предшествует — лругим компонентам. Дискриминанты подобны другим компонентам записи, за тем исключением, что им нельзя непосредственно присвоить значения.

Дискрнмннанты Ь и В переменной К1 модифицируются при помощи присваивания: К1: = (Ь = > 15, В = > 20, К = > (1 ..15 = > (1 .. 20 = > 75.0))); Однако следующая последовательность присваиваний, кажущаяся эквивалентной приведенному выше присваиванию, вызывает ошибку, потому что непосредственное присваивание дискриминантам недопустимо: К1.1.:= 15; К1.В:= 20; К1.К: = (1 .. 15) = > ) (1 .. 20 = > 75.0)); 2.7.4.2. Записи с вариантами 13.7.3~ Программы часто содержат объекты, которые концептуально очень похожи друг на друга н различаются только в незначительных деталях. Было бы неплохо иметь возможность определять их в рамках одного типа.

Например, все величины, представляющие информацию о моторизованных средствах передвижения, можно было определить в одном типе ЧЕН1СЬЕ. Описание различных средств передвижения, таких как автомобиль, автобус и грузовик, имеет общую информацию, такую как имена владельца и завода, модель н год выпуска средства передвижения. Однако некоторые виды информации не используются при описании отдельных средств передвижения. Например, такой вид информации, как тоннаж (максимально допустимый вес), уместен только лишь в характеристике грузовиков, в то время как максимальное число посадочных мест относится только к описанию автобусов. Другим примером является представление геометрических фигур.

Информация, общая для всех геометрических фигур, может включать такие данные, как плошадь и периметр. Однако информация, необходимая для установления размеров геометрических фигур различной формы, — различна. Записи с вариантамип используются для реализации именуемых типов, таких как ЧЕН1С1.Е, имеющих в основном одинаковые характеристики, но различающиеся в некоторых незначительных деталях. Записи с вариантами представляют собой особый случай записей с дискриминантами.

Запись может иметь вариантную часть, которая определяет альтернативные списки компонент. Список компонент может быть пустым, и в этом случае он должен быть определен как ппй. Каждый вариант начинается со списка выборов. Среди списка компонент выбирается тот, который имеет выбор, равный значению дискриминанта. Только ком- "Концепция записей с вариантами была впервые введена в языке Паскаль. маваг поненты выбранного списка могут быть использованы; использование компонент других списков в варианте ведет к ошибке в результате. Общая форма определения записи следующая: гесвгп объявление компонейт 1вариантная часть) ~ пп11 епй гесогд Вариантная часть записи имеет форму саве имя дискриминанта Ь згйеп выбор 1~выбор) =) список компонент ( згйеп выбор 1 ~выбор ) = ) список компонент) епй саве; где выбор может быть только статическим выражением, статическим дискретным диапазоном либо ключевым словом огйегв.

Конкретный список компонент соответствует выбору, который имеет значение, равное значению дискрнминанта. Выбор, который является дискретным диапазоном, есть сокращение для списка выборов, представляющего все значения диапазона.

Ключевое слово огпегв может встречаться только как выбор для последней альтернативы. Оно появляется отдельно и означает все возможные значения дискриминанта, не заданные в выборах предыдущих альтернатив. Следующие два примера иллюстрируют использование записей с вариантами. Первый именуемый тип, ОЕОМЕТК1С НОЫКЕ, использует тип БНАРЕ, который описан как гуре БНАРЕ Ь (КЕСТ, С1КСЬЕ, РО1ХТ); ОЕОМЕТК1С НО1)КЕ имеет три или четыре компоненты в зависимости от значения дискриминанта Б: гуре ОЕОМЕТК1С Р101ЖЕ (Б: БНАРЕ) Ь гесоп1 РЕК1МЕТЕК:РЬОАТ, — периметр точки равен 0.0 саве Б Ь згйеп КЕСТ =) 1., В: 1ХТЕОЕК гапйе 0..1ХТЕОЕК'ЬАБТ, згйеп С1КСЬЕ = ) КАШ1)БгЕЬОАТ:= 1.0; запев РО1ХТ => Р: РОБ1Т10Х; епг) саве; епг) гесоп1; Первая компонента, дискриминант Б, используется для указания типа геометрической фигуры, которая является либо прямоугольником, либо кругом, либо точкой.

Второй компонентой является РЕК1МЕТЕК. Если Б есть КЕСТ„то тогда объект типа ОЕОМЕТК1С НО1)КЕ будет иметь еще две компоненты Ь н В. В остальных случаях он имеет только одну компоненту КА1)ШБ или Р. Примеры описания переменных типа ОЕОМЕТК1С НО1)КЕ: С: ОЕОМЕТК1С НО1)КЕ (С1КСЬЕ); — С имеет компоненты Б, РЕК1МЕТЕК, КАР11)Б К: ОЕОМЕТК1С НОЫКЕ (КЕСТ); — К имеет компоненты Б, РЕК1МЕТЕК, Ь и В Е о гипвк эз Радиус окружности С имеет начальное значение по умолчанию 1.0, тогда как прямоугольник К не имеет начальных значений по умолчанию. Второй пример (РО1)831 показывает, как используется именуемый тип РЕК1- РНЕКАЬ для представления различных типов периферийных устройств.

В этом примере использованы два перечислимых типа ОЕЧ1СЕ и ШТАТЕ, определенные как гуре ОЕЧ1СЕ )а (РК1ХТЕК, О)БК, ОК(ЗМ); гуре ШТАТЕ (я (ОРЕХ, СЬОБЕО); Каждое периферийное устройство имеет компоненту ШТАТ()Я, показывающую состояние устройства: Гуре РЕИРНЕКАЬ (1)Х1Т:ОЕЧ1СЕ:= О1БК) (з — ()Х1Т имеет значение по умолчанию О1БК гесогй ШТАТ()Б: ШТАТЕ; сазе НХ1Т (в тгйеп РК1ХТЕК = > 1.1ХЕ СО1)ХТ:1ХТЕОЕК гапйе 1 .. РАОЕ 81УЕ; ю)зеп оЖегз = > СУЫХОЕК:СУЫХ1ЭЕК 1ХОЕХ; ТКАСК:ТКАСК Х13МВЕК; епг) саве; епд гесоп); В этом примере магнитный барабан трактуется как устройство, логически подобное магнитному диску, но имеющее только один цилиндр, в то время как магнитный диск имеет их много.

Примеры подтипов типа РЕК1РНЕКАЬ: звыуре ОК()М 1ЛЧ1Т 1з РЕК1РНЕКАЬ (РК()М); япЫуре Р1БК ()Х1Т 1з РЕК1РНЕКАЬ (1)13К); Примеры периферийных устройств, которые являются ограниченными объектами именуемого типа РЕИРНЕКА1с ВАСК1)Р 1)1БК:РЕК1РНЕКА1.; %К!ТЕК:РЕК1РНЕКАЬ (()Х1Т => РК1ХТЕК); — начальное значение по умолчанию ()Х1Т подавляется АКСН1ЧЕ: Р1БК вЂ” 1)Х1Т; Дискриминант может быть использован подобно любой другой компоненте; он предшествует всем другим компонентам записи, как показано в примере присваивания агрегата: АКСН1ЧЕ:= (Э1БК, СЬОБЕО, 9, 1); 2.7.5. Ссылочные типы — рекурсивные и взаимозависимые Прямая рекурсия в описаниях именуемого типа не допускается.

Косвенная рекурсия допускается и достигается посредством ссылочных типов. Для определения рекурсивных и взаимозависимых ссылочных типов должны быть использованы неполные объявления типов. 92 Глава 2 Рассмотрим описание именуемого типа ЕМР(.ОУЕЕ, которое содержит три компоненты, представляющие имя, идентификационный номер и руководителя служащего — ХАМЕ, 1Р и МАХАОЕК.

Так как руководитель также является служащим„компонента МАХАОЕК должна быть описана как имеющая тип ЕМР(ОУЕЕ, что приводит к рекурсивному описанию типа ЕМР1.0УЕЕ. Так как прямая рекурсия в языке Ада недопустима, необходимо использовать промежуточный ссылочный тип, скажем МОК. Тип ЕМР1.0УЕЕ описывается сначала с помощью задания неполного описания: (уре ЕМР1.0УЕЕ; — неполное описание типа Тип МОК описывается затем как (уре МОК Ь ассезя ЕМР1.0УЕЕ; Наконец, тип ЕМР1.0УЕЕ описывается полностью: (уре ЕМР1.0УЕЕ Ь гесаб ХАМЕ:БТК1ХО (1 ..ЗО); 10:1ХТЕОЕК; МАХАОЕ К: МОК; епо гесоп1; Неполное описание типа необходимо из-за того, что в языке Ада каждый объект и тип должны быть описаны (неполного описания вполне достаточно) прежде, чем использованы.

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

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

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

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