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

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

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

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

Конечно, полное описание должно быть задано позднее. Тип ЕМР10УЕЕ не может быть описан как гуре ЕМР1.0УЕЕ Ь гесоп1 ХАМЕ: ЯТК1ХО (1 .. 30); 1рч1ХТЕОЕК; МАХАОЕК:ассекя ЕМР(.ОУЕЕ; -*"неверно епо гесоп1; так как язык Ада не допускает использования определения ссылочного типа прн описании объекта, как показано в приведенном выше описании компоненты МАХАОЕК именуемого типа ЕМР10УЕЕ. 2.8. Примеры Примеры этого раздела акцентируют внимание на дополнительных возможностях именуемых и ссылочных типов.

В первом примере вычисляется площадь геометрической фигуры, представленной записью с вариантами. Этот пример иллюстрирует удобства использования оператора саве для работы с записями с вариантами. Второй и третий примеры касаются печати н поиска в бинарном дереве, каждый узел которого представлен в виде рекурсивного именуемого типа. Рекурсивное программирование очень хорошо сочетается с рекурсивными типами. 93 Е о тинах 2.8.1. Использование записей с вариантами Функция АКЕА вычисляет площадь объекта типа ОЕОМЕТК)С-НО13КЕ (объявленного ранее в разделе, описывающем записи с вариантами): 1ппсйоп АКЕА (НОЕОМЕТК)С НОРКЕ) ге!пгп НОАТ Ь Р1 сопзгапг:= 3.!416; Ьей!п сане ЕБ !з — выбор основан на дискриминанте Е зч)геп КЕСТ = ) ге!пгп НОАТ (Е1.еКВ); — используется явное преобразование — в действительное значение зчйеп С1КС1.Е = > гегпгп Р1еЕКАРПЗБеККАРПЛ; згйеп РО1ХТ = > ге!игл 0.0; епй сане; епз) АКЕА; 2,8.2.

Печать дерева Задача состоит в распечатке значений узлов бинарного дерева с корнем К. Каждый узел представлен в виде ЧА1Л)Е ЬЕГТ и!ОВТ где компонента ЧАШЕ есть значение узла (типа 1ХТЕОЕК), а компоненты ЬЕЕТ и К1ОНТ указывают на левое и правое поддеревья. Наличие значения ппй в компонентах ЬЕЕТ и К1ОНТ означает пустое поддерево. Тип узла задан следующими описаниями, которые являются частью пакета ТКЕЕ: !уре ХОРЕ; — неполное объявление типа гуре ВКАХСН Ь ассека ХОРЕ; гуре ХОРЕ Ь вЂ” объявление типа становится полным гасо уз) ЧАШЕ: 1ХТЕОЕК; ЬЕЕТ, К1ОНТ: ВКАХСН; епе! гесогй; Отметим то, как в языке Ада описываются рекурсивные типы.

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

Глава 2 1уре ВКАХСН; '- неполное описание типа (уре ХОРЕ Ь гесоп1 ЧАШЕ: 1ХТЕОЕК; ЬЕРТ, К(ОНТ: ВКАХСН; — ошибочное использование неполного — типа ВКАХСН епо гесогг); 1уре ВКАХСН Ь ассеээ ХОРЕ; Процедура РК1ХТ для печати бинарного дерева основана на следующем аб- страктном алгоритме: Ы дерево не пусто (йеп печатать левое поддерево печатать корень печатать правое поддерево епб Ы; Алгоритм обеспечивает печать узлов в обратном порядке. В постановке задачи порядок печати узлов дерева не был определен, поэтому можно использовать любой порядок.

Процедура РК1ХТ имеет вид «з(й ТЕХТ 1О, ТКЕЕ; — эти пакеты подключаются к единице компиляции вяе ТЕХТ 1О, ТКЕЕ„ — их компоненты становятся непосредственно — видимыми ргосеопге РК1ХТ (К: )п ВКАХСН) Ь раскайе 1О 1ХТ Ь пезг 1ХТЕОЕК 10 (1ХТЕОЕК); пяе 10 1ХТ; Ьей)п Ы К/ = пп11 1)геп РК1ХТ (К.ЬЕРТ); Р()Т (К ЧАШЕ); — процедура РОТ из пакета„.10 1ХТ вЂ” имеет аргументы целого — типа ХЕ% Ь)ХЕ; РК1ХТ (К.К1СНТ); епг) Ы; епй РК1ХТ; 2.8.3. Поиск в бинарном дереве Задача состоит в написании двух эквивалентных функций: одна рекурсивная, а другая итеративная, которые осуществляют поиск значения Х в упорядоченном бинарном дереве с корнем К (типа ВКАХСН, который был определен ранее).

Функции возвращают значение ТЛЕ, если Х присутствует в дереве, и значение РАЬВЕ в противном случае. о гвиях Упорядоченные бинарные деревья — это бинарные деревья, упорядоченные в соответствии с некоторым правилом. Одним из определений упорядоченного бинарного дерева является следующее: упорядоченное бинарное дерево есть бинарное дерево, в котором левый сын узла всегда имеет значение меньшее, чем значение у его родительского узла, а правый сын узла всегда имеет значение большее, чем у его родительского узла. — рекурсивная версия функции поиска в — бинарном дереве 1ппс!!оп В1М БКСН КЕС (К: !п ВКА)чСН: Х: !п 1ХТЕОЕК) ге!вгп ВООЬЕАМ В Ьей!п И К = пп11 !!геп ге!пгп РАЬБЕ; е1яЫ Х = КЧАЬ1)Е !)геп ге!пгп ТКОЕ; е!яЫ Х < КУАРЕ гйеп гемгп В1Х БКСН КЕС (К.ЬЕРТ, Х); е!яе ге!пгп В1М БКСН КЕС (К.К1ОНТ, Х); епг! И; епй В1Н БКСН КЕС; — итеративная версия функции поиска в — бинарном дереве 1ппсбоп В1Х БКСН 1ТЕК (К: !пВКАХСН; Х: !и 11ЧТЕОЕК) ге!пгп ВООЬЕА)ч !я Т.

ВКАХСН; — промежуточная переменная для — прохождения по дереву Ьей!п Т:= К; !вор И Т = пп1! !пеп ге!пгп РАЬБЕ; е!яЫ Х = ТУАПСЕ !пеп ге!вгп ТКЫЕ; е!яИ Х < ТУАЬ()Е !)геп Т:= Т,ЬЕРТ; е1яе Т:= Т.К1ОНТ, епй И; епй 1оор; епг! В1Х БКСН 1ТЕК; В этом примере обе версии функции — рекурсивная и итеративная — просты и легки для понимания. Однако некоторые задачи лучше выражаются рекурсивно, например задача о ханойской башне и алгоритм быстрой сортировки, приведенные в гл.

1. Многие программисты избегают рекурсии и трактуют ее как новинку (ОК175). Такие языки, как Фортран и Кобол, не допускают рекурсии, поэтому для многих программистов, знающих эти языки, данное ограничение становится препятствием в понимании рекурсии. Примеры рекурсии, обычно приводимые в учебниках, такие как вычисление факториала и чисел Фибоначчи, часто лучше выражаются итеративно и поэтому являются неубедительными, показывающими неуместность рекурсии. Глава 3 Пакеты [7~ 3.1. Введение Пакеты, подпрограммы, задачи и настраиваемые модули представляют четыре вида программных модулей, из которых состоят программы на языке Ада. Пакеты, подобно подпрограммам, могут быть раздельно компилируемыми, тем самым допуская расчленение больших программ на небольшие и легко управляемые части.

Расчленение программ на маленькие фрагменты помогает в построении, понимании и поддержке больших программных систем [НОК79ь Пакет обычно представлен двумя частями — спецификацией пакета и телом пакета. Спецификация определяет возможности, обеспечиваемые пакетом. Тело пакета реализует эти возможности. Спецификации пакетов и тела пакетов могут быть раздельно компилируемыми. Однако компиляция спецификации пакета должна предшествовать компиляции соответствующего тела пакета.

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

Более того, только сущности, определенные в видимой части спецификации пакета, могут быть использованы пользователем пакета. Детали реализации пакета скрыты от пользователя пакета, поэтому он не может использовать эти знания в программе; таким образом, программа не может быть сделана зависимой от реализации пакета. Следовательно, если спецификация пакета была согласована заранее, то реализатор пакета свободен в выборе той или иной реализации пакета, согласующейся со спецификацией пакета. Реализация пакета может быть как угодно изменена при условии, что она останется согласованной со спецификациями пакета.

3.2. Спецификация пакета [7.21 Спецификация пакета имеет следующую форму: расМайе идентификатор !в основные элементы описания [рнчазе основные элементы описания1 епд идентификатор; Основной элемент описания является либо основным описанием, либо специауикатором использования, либо специЯикатором представления. Основное описание представляет собой любое описание, исключая тело подпрограммы, пакета, задачи, след тела (след тела обсуждается в гл. 7 «Структура программ и раздельная компиляция»). Тело подпрограммы, пакета (если оно существует), задачи или настраиваемого модуля, определенное в спецификации пакета, должно быть задано в теле пакета.

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

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

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

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