В.Н. Пильщиков - Язык Плэнер, страница 10

DJVU-файл В.Н. Пильщиков - Язык Плэнер, страница 10 Искусственный интеллект (3181): Книга - 7 семестрВ.Н. Пильщиков - Язык Плэнер: Искусственный интеллект - DJVU, страница 10 (3181) - СтудИзба2019-09-18СтудИзба

Описание файла

DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 10 - страница

Затем ато выражение вычисляется. Полученное вначение также выводится на АЦПУ или терминал Далее все ати действия повторяются по отношению ко второму„ третьему и остальным выражениям верхнего уровня программы. После вычисления последнега выражения выполнение программы прекращается. Например, при вычислении программы, состоящей на выражений [ВЕЯТ 1 (А В СЦ [ПЕР!г)Е МАТОМ (ЬАМВЛА (Х) [НОТ [АТОМ,Х))Ц [МАТОМ е5) будет напечатано следующее: [ВЕЕТ 1 (А В С)) (В С) [РЕР1НЕ ПАТОМ (1АМВВА (Х) [)»(ОТ [АТОМ .Х)]Ц МАТОМ [ЕАТОМ е5) () Из каких выражений составлять программу — это решает польаовател»н но обычно структура плвнерской программы таиова.

Сначала выписываются обращения к функции ВЕР11»Е — определяются 'новые фуницни, необходимые для решения вадачи, поставленной перед нрограммой, а затем выписывается одно или кесколькгь обращений к втим функциям. Более того, в программе, как 4 н. Н. Пильщиков правило, выделяется одна функция, которая называется основной (или главной, ведущей) и которая решает всю задачу. Остальные же функции являются вспомогательными, оии решают какие-то подзадачи и используются основной функцией. В конце программы в таком случае. ставится одно обращение к ее основной функции, в качестве аргументов для которой задаются исходные данные программы. В качестве небольшого примера планерской программы рассмотрим программу, которая преобразует запись арифметических выражений из инфиксной формы в префиксную.

Инфиксная форма записи — зто обычная форма записи формул, когда знак операции размещается между операндами: х+ у, з Х у+» Х ю Х ш В префиксной же записи знак операции ставится перед операндами; например, укааанлые выше формулы записываются в префикспой форме так: (+ в у), (+ (Х х у) (Х з(Х ю и))).

Префиксная форма записи арифметических выражений более удобна для обработки, поатому часто до обработки выражений их преобразуют ив привычной инфиксной формы в префиксную, Именно . вта задача перевода нвс и будет интересовать, прячем для простоты мы рассматриваем преобразование ме любых арифметических .выражений, а только тех, которые содержат переменные, соединенные анаками + и Х Назовем условно такие выражения «многочленами». Более точ-- но их можно определить так.

«Переменная» — вто любой планерский идентификатор, «одночлен» вЂ” это либо одна переменная, Либо последовательность переменных, соединенных анаком Х, а «многочлен» вЂ” зто » список из одного одночлена или иа нескольких одночленов, соединенных анаком +. Примеры таких многочлеиов: (Х) (Х + У Х Е) (Х Х У + Е Х Иг Х Ч) Для решения поставленной задачи мы введем три новых функции: основную функцию ТВАИЯЬ и две вспомогательные функции МО)»(0 и РО1 г. Функция .МОНО от одного аргумента решает такую вадачу: она преобразует одночлен М (точнее, одночлен, заключенный в скобки) из илфиксной формы м префиксную. Если М вЂ” список из одной переменной, тогда функция в качестве своего аначеиия выдает зту же переменную но без скобок. Иначе М имеет вид (х Х у), где з — переменная, а у — одночлен.

В данном случае функция в качестве ответа выдает список (Х х у), где у — префиксная форма ааписи одночлена у, полученная в результате рекурсивного применения функции МОНО. Определение функции МО)»(Π— это первое выражение нашей программы: [ВЕР1ХЕ МОХО (КАМЕРА (М) [СОХО ([ЕО [ЬЕХСТН .М] 1] [1 .М]) (Т (Х [1 .М] [МОХО [ВКЯТ 2 .М]]))]Ц Вторым выражением программы является определение функции РОБУ от одного аргумента — многочлеиа Р: [ОКР1ХЕ РОБУ (САМВОА (Р) [РВОО (К) [ЯКТ К [МЕМЕ + .Р]] [СОХО ([ХОТ .К] [ВКТСВХ [МОХО .Р]])] (+ [МОХО [НКАО [ — .К 1] .Р]] [РОСУ [ВКЯТ .К .Р]])1)] Данная функция преобразует иификсную форму записи миогочлена Р в префиксную.

Для этого функция прежде всего определяет, есть ли в Р хотя бы один знак +. Если нет, тогда Р является одночленом, поэтому функция РО1Х применяет к нему функцию МОХО и с ее аначением заканчивает свою работу. Иначе значение переменной К укааывает номер первого атома + в списке Р Этот знак делит многочлен на две части: слева от него находится одночлен, справа — многочлен. Обе эти части преобразуются в префиксиую форму, для чего к многочлену рекурсивно применяется функция РОЮ', а к одночлеиу — функция МОХО.

Далее ив знака + и полученных реаультатов составляется список с круглыми скобками, который и представляет собой префиксную форму записи исходного многсчлена Р. Этот список объявляется значением функцил РОСУ. Фуикцмя РОСУ фактически полностью решает нашу задачу за одним исключением: если исходный многочлен является списком нз одной переменной, скажем (Х), то функция выдает в качестве ответа не (Х), а просто Х. Чтобы устранить этот дефект, мы вводим еще одну функцию ТВАХЯ1„ которая и будет тканной функцией программы. Определение данной функции — это третье выражение программы [ОКР1ХЕ ТКАНЯМ (ЕАМВОА Щ [СОХО ([К(] [1КХСТН .Ц 1] .Ц (Т [РО1У .Ц)])] Указанные три выражения составляют, можно сказать, описание программы.

Теперь, чтобы применить программу к каким-то исходным данным, надо вставить в программу еще одно выражение — 'обращение к функции ТВАХЯЕ, задав в качестве аргумента тот многочлен, который мы хотим преобразовать. Так: [ТВАХЯ (Х Х У + Е Х УР Х У + О)] В результате вычисления этого выражения мы пояучим ртвет (+ (Х Х У) (+ (Х К (Х 17 У)) Щ) бй 1 14.

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

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

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

Если переменная Х не описана и в 6, тогда рассматривается процедура, вызвавшая процедуру 0,и т. д. Такое правило называется правилом динамической идентификации верелезкыз, так как смьгсл переменных определяется динамикой выполнения программы и может меняться в зависимости от того, по какому пути идет вычисление программы.

В самом деле, процедура Р может быть вызвана из разных процедур: е одном случае, скажем,ив процедуры 01, а в другом — пз 02. Поэтому в первом случае под переменной Х, используемой, но не описанной в Р, понимается переменная из 01, а во втором —. из 02. В предыдущих параграфах уже был рассмотрен ряд встроенных функций языка (ЯЕТ, РВч', АВВ1 и ЯПВ1), используемых при работе с переменными. Сейчас мы опишем еще несколько подобных функций. Э~ ц Вои)ЦВ: [КОПОВ 1), ЭПИК. Это — функция-предикат, которая позволяет уанаттч описана ли в одной иэ объемлющих процедур переменная с именем й Если описана, то значение функции равно Т, не описана — (). 52 Например, если следующий блок [РВОО (Х (У Х)) ([ВООНО У] [ВООНВ .У] [ВОПЛО Е]Ц является выражением верхнего уровня программы, то его вычи- сление дает результат (Т Т ()).

Функции НАЯЧА)л [НАБЧА1. 1], БОВЕ. .Значением аргумента этой функции-предиката должно быть имя описанной переменной. Если в текущий момент данная переменная имеет какое-либо значение, то функция в качестве своего значения выдает атом Т, а если яе имеет — пустой список (). Например, еслл функция Р определена следующим образом: [ОЕР15)Е'Р (ЬАМВВА (Х) [РВОО (У (Х У)) ([НАЗЧА1 Х] [НАБЧА1 З] [НАЯЧАЕ .Е])])] тогда аначепием выражения [Р 5] будет список (Т Т ()). Функция П)ЧАЯБ161Ч: [УНАЯБ1СХ «], БАЕВЕ. Значением аргумента данной Функции таюие должно быть имя описанной переменной. Функции «отнимаетз значение у этой перемелной, т. е.

после вычисления функции у переменной не будет никакого значению Значение самой функции — ндептификатор й Фущщия ЧА1Л)Е [ЧА(Л)Е 1], ЗОВЕ. И адесь значением аргумента должен быть идентификатор — пмя описанной переменной, причем переменная обязана иметь значение. Именно ато значение и является результатом вычисления данной функции. Если,,например, значением переменной У является идентификатор Х, а значением переменной Х вЂ чис 5, то [ЧА)Л)Е Л] -+. 5 Отметим, что выражение [ЧАЕСЕ У] эквивалентно выражению Ч, поэтому явно указывать имя переменной при обращеиин к функции ЧАЕУЕ невыгодно.

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