Главная » Просмотр файлов » Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s)

Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (522393), страница 7

Файл №522393 Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (Алгоритмы + структуры данных = программы) 7 страницаVirt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (522393) страница 72013-09-14СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

1.3); х:= Сотр!ех (1.О, — 1.0) 11:=Оп!е(1, 4, 1973) р:= — Регзоп ('%1ЙТН','СНЙ18', Оа!е(18, 1, 1966), та!е, и!пй!е) Идентификаторы зь ..., з„, которые вводятся при определении комбинированного типа, являются именами отдельных пате д Сотр1ек т Репоп Р— ио Рис, !.3. Записи твпов Со»»»р1ел, Ваге, Регзон. компонент переменных этого типа, они употребляются в селекторах записи, где нх добавляют к переменной, обозначающей всю запись. Если имеется переменная х: Т, то ее ") В языке Паскаль такие ковструкторы также отсутствуют.— Прил. 1тед. П7. Заииеи зз (!.21) Если такой сслектор стоит в левой части оператора присваи- вания, то происходит выборочное изменение х: Х.е~ .— — Х7 где х; — значение выражения типа Ти Если даны переменные: г: Сотр1ех д: Ва1е р: Регзоп то нк можно использовать, например, со следующими селек- торами: На примере типа Регеоп мы видим, что компоненты записи могут в свою очередь быть составными.

Таким образом, селекторы могут добавляться одни к другому. Кроме того, разные составные типы могут комбинироваться различными способами. Например, 1-я компонента массива а, который является компонентой записи г, обозначается как г.а (1) а компонента с селектором г, входящая в 1-ю компопенту- запись массива записей а, обозначается как а !1),з Декартово произведение в принципе содержит есе комбинации значений типов компонент. Однако следует заметить, что на практике не все такие комбинации могут быть «законными», т. е.

иметь смысл. Например, тип Ваге, определенный выше, включает значения (31, 4, 1973) и (29, 2, !815) котя дней с такимн датами ие существует. Таким образом, определение зтого типа не отражает реального положения 1-я компонента обозначается как а.(т д.топй р.пагпе р.йг1ййа1е р.(пг1йг(а(ел)ау (типа геа1) (типа 1..12) (типа а1)а) (типа Ва1е) (типа 1..31) и Фундаментальные структуры данных 34 вещей.

Все же оно достаточно близко к практическим целям, и ответственность за то, чтобы при выполнении программы не возникалн подобные бессмысленные значения, возлагается на программиста. В следующем небольшом фрагменте программы показано использование записей. Его задача — сосчитать число «людей» в массиве а, которые одновременно прннадлежат жен. скому полу и одиноки: тат а: аггау(1 .. М) оЧРегзоп1 соиле: 1пгелег; соипг: = 0; Гог);= 14о)удо Ы(а(1).тех = Хета1е) 1~ (аи.пгагегагие = е1пя1е) 4аеи соипг:= соипг+1 (1.22] Инвариант цикла здесь соилг = С (1) где С(1) — число одиноких женщин в подмножестве аь ..., ар В другом варианте записи этого оператора используется конструкция, которая называется оператором присоединения: йн 1: = 1 то йг йо нв1й аи йо Г(еех = Хета1е) Л (тагегагие = егпя1е) 1йен соиле:= соип1+1 Выражение в11Ьгбоз означает, что внутри оператора з селекторы переменной г можно использовать без префикса: считается, что все они ссылаются на переменную г.

Таким образом, оператор присоединения позволяет сократить текст программы, а также предотвращает повторное вычисление адреса индексированной компоненты а (1). В следующем примере мы предполагаем, что некоторые группы людей в массиве а чем-то объединены (возможно, чтобы их можно было быстрее находить). Связующая информация выражается дополнительной компонентой записи Регзоп, называемой 1(пп (связь). Эти компоненты соединяют записи в линейный список, так что для каждого человека легко можно найти предшествующую и последующую записи. Интересно, что прн таком методе связывания можно легко просматривать список в обоих направлениях, используя только одно число, хранящееся в каждой записи.

Это делается следующим образом. 1.8. Записи с еариангаии Предположим, что индексы трех последовательных элементов списка есть 1а г, га, га+~ Значение 1гви для Й-го элемента берется равнылг гл г — ге ь При проходе по списку вперед 1а+г определяется двумя текущими индексными переменными х = гл г и ц = г» по формуле га, = х+ а 1р11ти а прн проходе по списку в обратном направлении га ~ опре- деляется с помошью х = 1атг и р = 1а по формуле га, = х — и 1р1.11пй Пример объединения при помощи 11пя всех лиц одного пола показан в табл. П2, Ф таблица 1Дч Массив ааемеитов типа Реглан Гйлг Наале хех 1Ыс Запись и массив имеют обшее свойство: оба являются структурами со «случайным доступомв.

Запись — более универсальная структура, поскольку не требуется, чтобы типы всех ее компонент были одинаковы. С другой стороны, массив предоставляет большие возможности, так как селекторы его компонент могут вычисляться (если они представлены выражениями), тогда как селекторы компонент записи — зто фиксированные идентификаторы, задаваемые в описании типа. ка. зАписи с ВАРиАнтАми ла практической работе часто кажется удобным и естественным рассматривать два типа как варианты одного и того же типа, Например, тип СоогЖпа1е, введенный в предыдущем разделе, можно рассматривать как объединение двух 1 2 5 5 б 7 9 10 Саго!уп СЬПа Тгаа коьеге 1опагнап Хепппег Каупкеоп Магу Лапе Манйаа 2 2 5 3 3 5 5 .3 1 3 !. Фундаментальные структуры данных вариантов: декартовых и полярных координат, компонентами которых являются соответственно (а) две длины и (Ь) длина и угол. Для того чтобы определить, какой вариант принят в данный момент, вводится третья компонента. Она называется дискриминантом типа или полем признака.

суре Соогй!пасе = гесогй саве к!гта': (Сагсевсап, росаг) оГ Сагселап: (х, у: геа1); ро!агс (г: геа1; р: геа1) Здесь имя поля признака — Ыпй, а имена координат — либо х и у в случае значения СагСевсап (декартовы), либо г и ср в случае значения ро!аг (полярные). Множество значений типа Соотг!спасе есть объединение двух типов; Т, =(х, йч геа1) Тв = (г: геа1; ср; геа1) а его кардинальное число равно сумме кардинальных чисел Тс и Тт. Однако чаще всего приходится объединять не два полностью различных типа, а два типа с частично совпадающвмн компонентами. Для такой ситуации применяется термин «запись с вариантами», Примером может служить тип Регвоп определенный в предыдущем разделе, если существенные характеристики должны записываться в файл в зависимости от пола.

Например, для мужчины могут считаться в какой-то определенной ситуации существенными такие признаки, как вес и наличие бороды, а для женщины можно считать важными три ее основных размера (тогда как вес она может хранить в тайне). Исходя из зтих допущений, получим следующее описание типа: Суре Регютс = гесогй пате, Ягясате. 'асса; ЬСгс!тс!осе с Васе; гтсгсгвсассссп (тстту1е, пгастЫ, и !с(ни еьст а1гогееа) ," сазе,тех: (пса!о, .сесна!е) ог та1е: (несу!тс: геа1; Ьеагйей: Воо1еаст); уесста(ес (в!ге: аггау(! ..

3) о1 сттсеуег) евй 37 ПЗ. Записи с аариантаии Общий вид описания составного типа с вариантами: (1.24) Эдесь з; и зп — селекторы компонент, принадлежащих к типам компонент Т; и Т;„а з.— имя различающего поля признака типа Т„. Переменная х типа Т состоит из компонент х.зо х.з„, х.з„, х,зм о ..., х.зм „ в том и только том случае, когда текущее значение хл„= с„. Компоненты жзь ... „х.з, составляют оби1ую часть т вариантов. Таким обРазом, использование селектоРа х,за ь (1~ л ~ е- и,) при хл, Ф сн следует рассматривать как серьезную ошибку программирования. Это может, например, означать (для типа Регзоп, определенного выше,) проверку, является лп некая леди бородатой, или (в случае выборочного присваивания) приписывание ей этого свойства! Поэтому при использовании записей с вариантами требуется особое внимание. Лучше всего действия, связанные с каждым из вариантов, группировать в выбирающем селекторе, так называемом операторе варианта; его с~руктура отражает структуру описания типа записи с вариантами: сазе х.з„и( с,: Я,, с,: Я„.

(1.25) с„: Я евй Оператор Ян выполняется в случае, когда для х выбирается й-й вариант, т. е. поле признака х,з„принимает значение с,. Следовательно, для того чтобы предотвратить неправильное использование селекторов, нужно следить, чтобы каждый бн содержал только селекторы х.з„, х.за л и х зь о ° ° ° х зь „ Л Фундаментальные структуры донных за В следующем небольшом фрагменте программы вычисляется расстояние между двумя точками А и В, заданными переменными а и Ь типа Соогс!!па!а (запись с вариантами).

Способ вычисленяя выбирается в зависимости от четырех воз- Рис Ь4. Декартовы и полярные коораинаты. можных комбинаций декартовых и полярных координат (см. рпс. ?.4). саяе а.!с!пИ оГ Саггея1ап: саяе Ь.Ипс! о$ Саггея!ап: е1: =- лдгг(яс1г(а.х — Ьл)+яаг(а.у — Б.у)); Ро!аг: д:= яаг!(яаг(а.х — Ь.гьсоя(Ьлр) + тт!г(а. у — Ьг е я!а(Ь р)) ева; сане Б,к!па( от Саггел!ап; а(: = луг!(ят!г(а.г еооя(а~р) — Ьст? +наг(а.ге я!п(а.гр) — Ь.у)); Ро1аг: Ы: = а!г!(яг!г(а.г)+яг!г(Ь.г) — 2" а.гей.гесоя(ар — Ь.гр)) Ро!аг: евй евй 1.9. МНОЖЕСТВО Кроме массива н записи имеется третья фундаментальная структура данных — множество. Соответствующий тип описывается следующим образом: Туре Т= яе! о!Т, 1 (!.26? Значениями переменной х типа Т являются множества элементов типа То.

Множество всех подмножеств множества Та называется мпожестволт-степенью Та. Таким образом, тип Т вЂ” это множество-степень своего базового типа Тм 1.9, Мяоасестао Пригнеры: (уре 1пувег = зеФ о$ О .. 30 туре сйагзег =- вес оу сваг туре сарехсасие =- вег оГ ехсер11оп Во втором примере базовым типом является стандартное подмножество символов — тип сйаг, в третьем примере — тип исключительных состояний магнитных лент, описанный как скалярный тип: $уре ексер11ол = (ип)оайесу, пгапиа1, раг11у, гкелн) значения которого соответствуют различным состояниям устройства лентопротяжек. Если даны переменные; 1е .' 1псгес св: сугагсес ; аггау[1 .. 6) о! 1арез(а1иг то формировать и присваивать значения переменных-множеств можно, скажем, так: лч 1г: = [1, 4, 9, 16, 25) 1[3): = [псапиа1) 1[5):=. [) 1[б): =- [ип!оас(есу .. гкенг) Здесь значение, присваиваемое 1]3],— это множество, состоящее из одного элемента тапиа1, 1[5] присваивается пустое множество, что соответствует рабочему состоянию 5 лснтопротяжки (какие-либо исключительныс состояния отсутствуют), а 1[б] присваивается значение множества, включающего все четыре исключительных состояния.

Кардинальное число множества типа Т равно саус(1па11(у(Т) =2'"а""н" ~~'. (1.27) Это следует из того, что каждый из элементов сагб1па]йу (Те) представляется в Множестве одним из двух значений: «присутствует» или «отсутствует», и эти элементы входят в множество независимо друг от друга, Очевидно, что для эффективной и экономной реализации не только базовый тнп ') В отличие от принятой ногацин лгы используем для множества не фигурные, а квадратные скобки. В фигурные скобки закл~очаготся комментарии в программах. 40 д Фундаментальные структуры данник множества должен быть конечным, но н его кардинальное число †достаточ небольшим. На всех множествах определены следующие элементарные операции: ь пересечение множеств + объединение множеств — разность множеств 1п принадлежность множеству Пересечение и объединение двух множеств часто называют соответственно умножением и сложением множеств; соответствующим образом определены приоритеты операций: операция пересечения имеет приоритет перед операциямн объединения и разности, а они в свою очередь имеют приоритет перед операцией принадлежности.

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

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

Список файлов учебной работы

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