Главная » Просмотр файлов » К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя

К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя (1109480), страница 11

Файл №1109480 К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя (К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя) 11 страницаК. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя (1109480) страница 112019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Перед списком находятся одна или несколько констант, а перед всей группой списков стоит заголовок варианта, где указывается тип этих констант (т. е. тнп, на основании значений которого мы различаем варианты). а! Г аанант Р н с. 7.5. Еннтакснческая диаграмма дая Вариантной чисти Р н г. 7ХФ Енитакснчсская анаграмма д.а Вириинти Предположим, что есть, например, такое описание: 1уре Мап1а!Яа(из = (Магг(ео, %Ыотиес), Рлуогсег), Япд!е) В этом случае человека можно описать с помощью данных следующего типа: Фуре Регаоп = гесого здесь поля общие для всех Регеоп сазе ИагтФа1$ФаФиз о( Иагг1ед: ( ( полятолько для семейных ) ). 31ад1е: ( ( полятолько для одиноких ) ); еяд Обратите внимание, что каждому значению, относящемуся к типу, на основании которого идет различение вариантов (типу признака), должен соответствовать один из вариантов.

(Это означает, что перед вариантами должны появляться все значения типа 80 Руководство олл пользователя признака.) Скажем, в нашем примере, кроме констант МагНед и Япд!е, должны появиться и константы Ъ(оохиед и Р!уогсег). Обычно некоторая компонента (поле) записи сама указывает, о каком варианте идет речь. Например, в приведенном выше описании типа следовало бы иметь общее для всех вариантов поле. МБ: Маг)(а!Яа(пз Это частная ситуация, и для нее существует сокращение: описание определяющей вариант компоненты, называемой полем признака, включается в сам заголовок варианта. Например: сазе МВ: Маг(!а1Яа!нз о! Прежде чем начать определять структуру записи с вариантами; соответствующую, например, типу Регзоп, полезно бывает «выписать» всю необходимую информацию.

1. Человек А. Имя (пагпе) — первое, последнее (!(гз(, 1аз!) В. Рост (Ье(иЬ() — целое число С. Пол (зех) муж., жен (гпа!е, !егпа1е) Р. Дата рождения (ба(а о! Ь1г(Ь) — год, месяц, день (уеаг, гпоп(Ь, свау) Е. Число иждивенцев (дерепбеп(з) — целое число Г.

Семейное положение (гпагйа! з(а!пз): если в браке (гпагг(ес)) или вдов (хви)ох»ей): а) дата свадьбы (да(е о! гпагг(аае) — год„месяц, день (уеаг, гпопи1, свау) если разведен (б(уогсеб): а) дата развода (да!е о! б(чогсе) — год, месяц, день (уеаг, гпоп(Ь, дау) б) первый развод (!)гз( б)вогсе) — нет, да (!а!зе, !гпе) если одинокий (з!пи1е) На рис. 7.7 приведены «образы» двух «простых» людей с различными атрибутами.

Э (в) [ 3 (с) ( З ((у) ~ З (н) С ( Р и с. 7.7. !(Риисср описания двух людей у. Записные типы 81 Теперь определение записного типа Регьоп можно сформулировать так: Суре Зсг(пВ15 = расхеб аггау [1..151 о1 СЬаг; ЗСасив = (Магг1еб, И(боиеб, 0(иогсеб, З(пВ1е); Оасе = расйеб гесагб Уеаг.; 1900..2100; Ио: (Лап, ГеЬ, Иаг, йрг, Мау, бнп, бн1, йнй, Зер; Осс, йан, Оес); Оау: 1..31; епб; Иасига1 = О..Мах1пС; Регвоп = гесогб йаае: гесогб Г1гвс, Савс: ЗСг!пВ15 епб; Не(ВЬС: Иасига1 ( сепС(аеСегв ); Зех: (Ма1е, Гееа1е); В1гСЬ: Васе; Оербсв: йаснга1 сазе МЗ: Зсаенв а( Магг(еб, И(баиеб: (ИОасе: ОаСе); 0(иогсеб: (00аСе: Оасе; ГсгвСО: Воо1еап); З(пй1е: () епб ( Регзап ); Замечания.

1. Все имена полей должны быть различными, даже если они встречаются в разных вариантах. 2. Если вариант пустой (т. е. поля нет), то он записывается так: С:(). 3. Любой список полей может иметь только одну вариантную часть, которая должна следовать за фиксированной частью записи. 4. Каждый вариант может содержать в себе вариантную часть, следовательно, допускаются вложенные варианты. б. Область действия имен констант перечисляемого типа, вводимых в записном типе, расширяется на вложенные блоки. При обращении к компонентам записи их имена, по существу, представляют простую линейную последовательность всех имен, Если, например, Р— переменная типа Регзоп, то второй, приведенный на рис.

7.7 «образ» порождается такими присваиваниями: 88 Руководство ден аоеевовате.ее Р.йово.ЕааЬ:= ейпгосовЬ Р.йово.Р1гаЬ := 'й1111ав Р.НЕ18ЬС := 186; Р.бах := Ма1а; Р.В1гЬЬ.Уааг := 1951; Р.В1гсп.йо := 5ор; Р.В1гЬЬ.Вау:= 12; Р.Вордоа:= 1; Р.М5 := 51п81а; 7.3. ОПЕРАТОР ПРИСОЕДИНЕНИЯ .Приведенные выше действия, возможно, немного «утомительны», и вы можете сократить нх, обратившись к оператору присоединения.

Фактически такой оператор открывает область действия, содер1кащую имена полей указанной переменной-записи, так что теперь эти имена могут фигурировать как имена обычных переменных. (~ем самым и транслятору дается возможность оптимизировать уточненный (с)па(1йео)) оператор). Оператор строится по такой схеме: Р и с. 7.8. Синтаксическая диаграмма дия Оператора присоединена» Внутри оператора, входящего в оператор присоединения, поля переменной-записи обозначаются с помощью только имен полей (имя переменной-записи перед ними не указывается).

Приведенный ниже оператор присоединения эквивалентен всей серии предыдущих присваиваний. и1ЬЬ Р до Ьо81п и1ЬЬ йаво до Ьо81п Ьааб := 'НЬ1ЬсовЬ Р1гаЬ := 'Н1111ав опд; На18ЬЬ : 188; 7. Записном гипь~ йз 5ех:= Ма1е; нгСЬ 9[гСЛ 6о Ье91п Уеаг := 1951; Мо := 5ер; Оау:= 12 еп6; переса:= 1; М5:= 51п91е; еп6 Аналогично фрагмент: уаг СоггепСРасе: ОаСе; нгСЬ СоггепеааСе 6о Н Ма = Оес СЛеп Ьеа[п Мо : Зап; Уеаг := Уеаг + 1 еп6 е1ее Мо:= посс(Мо) эквивалентен: оаг СоггепСРаСе: Расе 11 СоггепСРасе.Мо = Рес СЛеп Ьеа!и СоггепСРасе.ио := 3ап; СоггепСОасе.теаг := СоггепСОасе.теаг + 1 еп6 е1ее СоггепСОаСе.Мо := посс(СоггепСОасе.Мо) Пример с вакцинацией теперь может быть записан так: н[СЛ расс)паС[опОасе[СЛ1163) 6о Ье91п Уеаг:= 1973, 'Мо:= Арг; Рау:= 23 еп6 При выполнении оператора присоединения ссылки на переменную-запись устанавливаются еще до выполнения внутреннего оператора.

Поэтому выполняемые внутри его какие-либо присваивания элементам списка переменных-записей не будут изменять выделенную заранее запись. Например; наг ппо: Гаа11уМеаЬег ИЛо:= ГаСЛег; и(СЛ расс(пас(опОаСе[ИЛо) 6о Ьеа(п 'пЛо := МоСЛег; Мо:= 3о1; Оау:= 7; Уеаг:= 1947 еп6 84 Руководство длл пользователя Оператор присоединения установит поле Ъ'асс!па1!оп11а1е 1Ра1- йег] . Вложенные операторы присоединения допускают сокращенную запись.

Оператор такого вида ху11И К!, К2, ..., Кп с!о Б зквивалеитен: и!ЬЬ 81 до и!ЬЬ 82 до и!СЬ Вп дв 3 Таким образом, предыдущий пример с определением человека Р можно переписать следующим образом: игЬЬ Р, Иаае, В!гЬЬ до Ьек!п Еаза ;= 'ИЬ!СсоеЬ А!гас := 'И!111аа Не!ВЬЬ := 186; Зех := Иа1е; аеас := 1851; Ие := Зер; Рау := 12; Рердса;= 1; ИЗ := 3!п81е; епд ( и11Ь ) А теперь рассмотрим пример, иллюстрирующий правило областей действия для имен полей.

Хотя описания: еаг А: аггау 12..81 о! 1псекег; А: 2..8; недопустимы, так как определение А двусмысленно, тем ие менее описание: хат А: 1псезег; В: гесагд А: Кеа1; В: Вее1еап епд; вполне корректно, поскольку обозначение для целого А легко отличить от обозначения для вещественного В.А. Аналогично и переменная-запись В легко отличается от логического В.В. Внутри уточнениого оператора В из в11п В бо Б имена А и В теперь соответственно обозначают компоненты В.А и В.В, а целая переменная с именем А недоступна.

МНОЖЕСТВЕННЪ|Е ТИПЫ Множественные типы обеспечивают компактную структуру, в которой сохраняется информация о группах значений, относящихся к ординальному типу; можно узнать„есть ли элемент в группе и какова комбинация этих элементов. Более точно множественный тип определяет множество значений, которое представляет собою множество-степень базового типа, т. е. множество всех подмножеств базового типа, включая и пустое множество.

Поэтому одиночное значение множественного типа есть множество, причем элементы этого множества — элементы базового типа. Множество — структура со случайным доступом„все ее элементы относятся к одному базовому типу, который должен быть ординальным типом*. Р и с. 8рн Синтаксическая диаграмма для Мнсосестаенного тило Для полных значений-множеств применяются такие операции: присваивания, традиционные операции над множествами (например, объединение), проверка на равенство и выборка компоненты, позволяющая проверить присутствие элемента в множестве (см.

ниже). Реализация Паскаля обычно определяет предельный Размер множеств, причем он может быть достаточно небольшим (например, число разрядов в «слове» машины). Этот предел непосредственно связан с диапазоном значений базового типа данного множественного типа. Последнее выскакивание не имеет смысла, так как достуяа к отлельиым клементам множества нет, Онн даже аначення не имеют.

— Примеч. пер. 86 Руководство для пользователя 8 1. КОНСТРУКТОРЫ МНОЖЕСТВ ! Множественное значение можно задать с помощью конструктора множества, в котором содержатся описания элементов множества, отделенные друг от друга запятыми и заключенные в квадратные скобки. Описанием элемента может быть выражение, значение которого и есть элемент, или диапазон вида !ото.:11!уй, где'значения выражений !ож и !пд!т представляют собою нижнюю и верхнюю границы группы элементов.

Если нижняя граница больше верхней границы группы (т. е. !оти !т1д!т), то никакой элемент не описывается. Все выражения должны относиться к одному ординальному типу, представляющему собой базовый тип для множественного типа данного конструктора. Конструктор множества ~] обозначает пустое множество для любого множественного типа. В конструкторе множества нет полной информации о типе (см. [10)), например, такой как, упаковано множество или нет. Поэтому тип конструктора множества одновременно относится и к упакованному, и неупакованному и выбирается так, чтобы быть совместимым с другими множествами в данном множественном выражении.

Р и с. 8лв Синтаксимеская диаграмма Иля Конструктора множества Примеры конструкторов множеств: 113! 0+1 з! 8. Множественные типы В? Вта ОПЕРАЦИИ НАД )ЫНОЖЕСТВАМИ Если Х вЂ” переменная-множество„а Š— множественное выражение, то присванвание: Х:= Е допустимо только в том случае, есри все элементы Е относятся к базовому типу Х, и, кроме того, типы Х и Е либо оба упаКованы, либо не упакованы. К любым объектам со структурой множества применимы такие операции, Если предположить, что А и В— выражения одного типа, то: А+В А'В А — В множество нз элементов А н В (объеднненне) множество обшад длн А н В элементов (пересеченне) множество элементов А, не входнщнх в В (разносп) вхожденне в множество; результат 1гпе, если е элемент А, иначе— !а1зе равенство множестп неравенство множеств включение; результат (гпе, если А в собственное ' нлн несоб- ственное подмножество В включение; результат !гпе, если  — собственное нлн несобствен- ное подмножество А е !пА А=В А(~ В Л<= В А>=В Примеры описаний: зуре Рг1аагу = (йеб, Уе11он, 81пе); Со!ог = зет о( Рг[аагу; таг Нне1, Нне2: Со1ог; Чоне!з, Сопзепапзз, Сепзегз: зеЗ о! Сваг; Орсебе: зез о( О..У; А66: Воо1еап; Срп Спас; Примеры присваиваний: Нне1:= [йеб); Нне2 := [); Нне2 := Нне2 + [зосс(йеб)) К множественным операндам применимы пять операций отношения.

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

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

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

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