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

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

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

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

Операторы присоединения. Оператор присоединения обращается к каждой переменной-записи из его списка и устанавливает на иих «указатели», а затем выполняется входящий в него оператор. «Указатели» существуют до конца выполнения этого оператора-компоненты. Оператор присоединения = "»Л(Ь" Список переиеннмх-яиписео' "до" Оператор. Список переиеннит-ааписеи Переиеннин-аапись "," Переиенная- еипись.

Область действия (см. равд. 10.2) каждого имени поля из типа, относящегося к (единственной) переменной-записи, перечисленной в операторе присоединения, расширяется таким образом, что в нее включастсн оператор-компонента. Внутри этой расширенной области действия имя поля может встречаться в обозначении поля без указания переменной-записи н будет обозначать соответствующее поле переменной, на которую установлен «указатель». Запись ич!)! г1, г2,, гп до В представляет собою лишь сокращение такой записи: ньЬЬ г! 6о н(ЬЬ г1 6о и(ЬЬ гп 6о 3 Пример оператора присоединения: нтсп Оасе 6о И ИопЬЬ = 12 ЬЬеп Ьек(п МопЬЬ := 1; теаг:= аосс(теаг) еп6 е1ае Манси := аосс(МопЬЬ) Он эквивалентен такому оператору.

с( Оасе.ионой = 12 Ьиеп Ьек!и Оасе.иопап := 1; Оаае.теаг:= еисс(0аае.теаг) еп6 е1ее Оаае.иопЬЬ := аосс(0асе.ИопЬЬ) 1О. БЛОКИ, ОБЛАСТИ ДЕЙСТВИЯ И АКТИВАЦИИ Блока представляют собой основную «строительную» конструкцию для построения программ (см. равд. 13), процедур и функций (см. разд. 11). Правила области действия определяют, 186 Описание языка где можно использовать имя введенное в некотором конкретном месте; вги ггрншша основывагогсн на сгагнчсскои (геке!ун.!иной) структуре программы ))ранила же активации определяют, каким именем или меткой обозначается объект (напримср, переменная). Эти правила основываются на динамической структуре программы, т. е. на процессе ее выполнения. !О.!. БЛОКИ Блок состоит из нескольких разделов определений и описаний, любой из которых может быть пустым, и одного раздела операторов.

Раздел описания меток вводит одну или несколько меток, каждая из которых должна стоять перед каким-либо одним оператором в разделе операторов. Раздел описиния меток = !"!аьег' Ппследовательность цифр !'гП Пыледовательносгь цифр) ","!. Метка = Послсдовюслыикп, цифр. Значение (зре)))пп) метки — целое значение, описываемое последовательностью цифр по правилам обычной десятичной нотации; это значение не должно превышать 9999. !Окй ОБЛАСТЬ ДЕЙСТВИЯ Любое определение или описание вводит написание"' (зре!))пп) некоторых имен или меток и связывает с этим написанием какой- либо специфический смысл (например, имя переменной). Та часть программы, в которой под именем должно пониматься именно ' В стандарте ИСО такой термин отсутсгнует. Похоже, что его введение продиктовано желанием авторов иметь одно название и длв имен, и для меток.

Далее, если зто не будет приводить к неточностяи, мы будем все жс использовать термин «имя». — Призе«. пер. Блок = Раздел Раздел Раздел Раздел Раздел Раздел « описания леток определения констант определения типов описания переменныл описании процедур и функций операторов. 1Ц Блоки, оалапл действия и активации 189 это значение, называется областью деигталл соответствующего введения (1п(гобое!гоп) определения илн описания. Каждому появлению имени внутри области действия должно обязательно предшествовать соответствующее введение. Есть только одно исключение -- некоторое имя типа может появиться в качестве типа области в ссылочном типе (см.

разд. 6.3) в любом месте раздела определения типов, содержащего введение этого имени. Каждое введение, как описывается виже, действует внутри некоторой части программы. Область действия введения — это область программы, меньшая, чем любая вложенная область, в которой действует другое введение того же самого имени. Для блока, в котором встречается введение, действуют следующие введения: метки из раздела описания меток, имена констант из раздела определения констант или из каких-либо перечисляемых типов, имена типов из раздела определения типов, имена переменных из раздела описания переменных, имена процедур из описаний процедур (см.

разд. 11.1), имена функций из описаний функций (см. разд. 11.2). Про такие метки н имена говорят„что они локализованы в данном блоке (локальны). В области, окружающей любую программу, действует неявное введение стандартных' предопределенных и предописанных имен. Введение имени поля в записном типе действует в любой из сле дую щи х обл а с тей: а) в самом записном типе; б) в составляющем операторе из оператора присоединения, если переменная-запись оператора присоединения относится к данному записному типу; в) в части имени поля из обозначения поля, если часть переменной-записи относится к данному записному типу. В последнем случае часть имени поля исключается из всех.

объемлющих областей действия. Введение в списке параметров любого имени параметра (см. разд. 11.3.1) действует внутри списка параметров. Более того, если список параметров находится в заголовке процедуры из описания процедуры или в заголовке функции из описания функции, то нводятся и становятся действительными в блоке из описания функции или процедуры в соответствии с именами параметров имена переменных, имена границ, имена процедур или имена функций. 10.3. АктиВАции Активации программы (см. разд.

13) и программы или функции (см. разд. 11) представляет собою активацию блока этой программы, процедуры или функции. !90 Описание мамки Говорится, что в активацию входят следующие обьекты (сущности), которые су<цествуют до тех пор, пока, активации не закончится: а) Алгоритм — он определяется разделом операторов соответствующего блока; алгоритм начинает выполняться при активации блока, а при его окончании заканчивается и активация.

(Актива, цня может закончиться и через опера<ор псрсх<>да см равд. 9 (.3.) б) Точка лр<>грпмльс (алгоритма) соответствует метке, <тгоя<цси перел оператором в разделе операторов блока Любое появление этой 'метки в операторе перехода внутри активации обозначает данную точку программы. в) Пепел<ениад, соотвьгствуюьцая каждому имени переменной, локальному в данном блоке. В начале выполнения алгоритма персмснная полностью нс определена, если только имя переменной не параметр программы. Каждое поянленис внугри активации данного имени переменной обозначает эту переменную.

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

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

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

Каждое появлсние этого имени переменкой внутри активации обозначает указанную переменную, з) Ссылка на процедуру или функцию, соответствующая каждому имени из списка имен формальных параметров-процедур или параметров-функций в данном блоке: Ссылка в начале выполнения алгоритма указывает на процедуру иаи. функцию, !б. Блоки, области действия и активации 1У1 которая обозначается соответствующим фак~ическим параметром.

Каждое появление внутри активации этого имени процелуры или имени функции обозначает указанную процедуру или функцию. н) Если активированный блок есть блок функции„то в начале выполнения алгоритма результат не опрелелен. Считается, что любая активация блока некоторой процедуры или функции должна проводиться внутри активации, содержащей данную процедуру или функцию. Если активация А проводится внутри активации В, то говорят, что она проволится и внутри другой активации, солержашей активацию В. Оператор процедуры нли обозначение функции, содержащиеся в некотором алгоритме и задающие активацию некоторого блока, называется лля ланной активации точкой активации.

11. ПРОЦЕДУРЫ И ФУНКЦИИ Процедура и функция — поименованная часть программы, активируемая с помощью оператора процедуры (разд. 9. !.2! или соответственно обозначения функции (равд. 8.1). Если необходимо, то программист может описать новые процедуры или функции. Описания процедур и описания функций объединяются вместе и образуют раздел описания процедур и функций.

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

11.1. ОПИСАНИЯ ПРОПГЦУР Описание процедуры предназначено для введения имени процелуры, сопоставления с этим именем некоторого блока н, возможно, списка формальных параметров. Имя процедуры и список формальных параметров вводятся с помо1цью заголовка процедуры нз описания процелуры. 1У2 Оггисанив языка. Процедура может быть описана с помощью одного-единственного описания процедуры, состоягцего из заголовка процедуры и блока. Это наиболее распространенный способ.

Однако есть и другой способ — процедуру можно описывать с помощью копережающего описания»: первое описание процедуры состоит из заголовка процедуры и директивы 1огччагг(, а второе описание, находящееся в том жс разделе описания процедур и функций, лишь идентифицирует процедуру и содержит ее блок. Процедура должна идентифицироваться тем же именем процедуры, которое было введено в первом описании. Заметим, что список формальных параметров (если он есть) во втором описании не указывается. Описания процедуры = Заголовок процедуры "-," Блок) Заголовок процедуры ";" Директива) Идентификация процедурьг ";" Блок.

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

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

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

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