В.Н. Пильщиков - Язык Плэнер, страница 12
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 12 - страница
При выводе онн всегда печатаются с фиксированным количеством цифр в дробной части. Узнать это количество или иэменить его можно с помощью следующей встроенной функции. Фуи>щия В161ТЯ«[0101ТЯ и?], ЯСВБ. 57 Если аргумент задан, то его аначением должно быть неотрицательное целое число М; это число укааывает то количество «дробных» цифр, с которым теперь (до следующего обращения к Р161ТЯ) будут печататься вещественные числа. Значением функции является число М.
Если же аргумента иет, то функция ничего не меняет, а в качестве своего аначения выдает текущее количество печатаемых «дробных» цифр. Например, при вычислении выражения 1ЬО Щ161ТБ 5] [РК1МТ вЂ” 9 25] ]РВ1МТ 2 718281828]] на печать будет выданы — 9.25000 и 2.71828, Мы описали функции ввода-вывода. Теперь рассмотрим, откуда они вводят информацию и куда ее выводят. В планере под «вводом-выводом» понимается считывание с перфокарт и печать на АЦПУ, обмен с терминалом и обмен с внешней памятью БВ51.
Для единообрааия мы будем'пользоваться термином файл для обозначения любого набора данных на любом внешнем носителе ЭВМ. В языке предполагается, что каждый файл состоит из плэнерских .выражений, считывать и записывать которые можно только последовательно, друг аа другом. Файлы, нз которых можно считывать, будем называть файлами ввода, а файлы, в которые можно записывать,— Файлами в»»«ода. Некоторые файлы можно испольаовать и как файлы ввода, и как файлы вывода. Предполагается, что файлы имеют имена, в роли которых выступают идентификаторы. За некоторыми, стандартными, файлами в яаыке закреплены фиксированные имена: САНИЯ вЂ” текст на перфокартах, РАРЕ — текст на бумаге АЦПУ, БСВЕЕМ вЂ” информация на экране терминала. Файл САВРБ испольауется только как файл ввода, РАРЕ — только как файл вывода, а' БСВЕЕМ вЂ” и как файл ввода, и как файл вывода.
Имена остальных, нестандартных, файлов в яаыке не фиксируются и определяются дополнительнымн, внеязыковыми соглашениями«Нестандартные файлы — это наборы данных на магнитных лентах л дисках, онн могут использоваться как файлы, ввода и как файлы вывода. Прежде чем файл может, быть использован в программе, его следует открыть. При открытии файла устанавливается его соответствие реальному набору данных и выполняются подготовительные операции по оргаииаации обмена с ним.
Стандартные файлы открываются автоматически перед началом выполнения программы, а нестандартные файлы должны быть открыты в самой программе. Для этого в распоряжение польаователя предоставлена Функция ОРЕМ: ]ОРЕМ П1«7 «уре], ЯПВК. Значением первого аргумента етой функции должен быть идентификатор — имя открываемого файла, а аначением второго аргумента может быть атом СЕТ, РОТ или АВВ. Если в обращении к ° функции указаны оба аргумента и,значением второго из ких является атом СЕТ, тогда функция открывает файл с указанным именем как файл ввода; тем самым теперь раарешено считывание иа етого файла (начиная с его первого выражения).
Если же значение второго аргумента равно РОТ или АВВ, то функция открывает указанный файл как файл вывода, т. е, с этого момента разрешена запись з пего. При этом, если файл открывается по АВВ, то новые выражения будут добавляться в конец файла, вслед за уже имеющимся текстом, а если файл открывается по РОТ, тогда файл'считается пустым и будет заполняться от начала. Значение функции ОРЕХ равно Т, если файл открыт, и равно (), если указанный файл не существует пли является одним из стандартных, которые аапрещено переоткрывать. Например, после вычисления [ОРЕМ ВАТА 6ЕТ] -~ Т файл с именем ВАТА будет открыт как файл ввода. К функции ОРЕМ можно обращаться и с одним (вторым) аргументом, аначением которого в таком случае должен быть атом СЕТ или РОТ. В етом случае функция ничего не открывает, а з качестве своего аначения выдает список из имен всех открытых в настоящий'момент файлов ввода (при аргументе 6ЕТ) или файлов вывода (при РОТ).
Ответ функции может быть, например, таким: (ОРЕМ РОТ) в. (РАРЕВ ЯСКЕЕХ Р!ЕЕ5) В программе одновременно может быть .отйрыто несколько файлов ввода и несколько файлов вывода. Однако в каждый момент функции ввода (вывода) настроены на работу только с одним иа открытых файлов ввода (вывода),.только иа него' они могут сейчас считывать (записывать в него).
Такие файлы называются активным файлом ввода и активным вдайлом вывода. Перед началом вычисления программы активные файлы устанавливаются автоматически. При работе с пленер-системой в пакетном режиме активными объявляются файл ввода САВВЯ и файл вывода РАРЕЕ, т. е, функции ввода первоначально настроены на .считывание с перфокарт, а функции вывода — на печать на,АЦПУ. В диалоговом же режиме в роли активных файлов ввода и вывода выступает файл ЯСВЕЕХ, т. е.
функции вводаввывода вначале настроены на обмен с терминалом. В дальнейшем, прл вычислении программы, активными могут быть объявлены и любые другие открытые файлы, Для зтого используется Функция АСТ1ЧЕ: [АСТ1ЧЕ уд«1 «уре), З()ВК. Значением первого аргумента должно быть имя файла, а значением второго — атом СЕТ нли РОТ. Если авданы оба аргумента, тогда функция объявляет указанный файл активным файлом вводе (при вначении 6ЕТ у второго аргумента) или активным файлом вывода (при Р()Т).
Если это удалось сделать, аначение функции равно Т, не удалось (файл ранее не был открыт) — равно (). В том случае, когда задан только один (второй) аргумент, функция выдает в качестве своего значения имя активного файла ввода (при аргументе 6ЕТ) или активного' файла вывода (при РУТ). Значением функции может быть и пустой список (), если в настоящий момент нет активного файла соответствующего типа.
Следует подчеркнуть, что функция АСТ1ЧЕ не открывает и не переоткрывает файлы, а лишь переключает «внимание» функций ввода (или вывода) с одного ив уже открытых файлов на другой, ааставляя эти функции работать с новым файлом. При етом, если такой файл ранее уже был активным файлом ввода (вывода), считывание (вались) из него будет продолжено с того места, яэ котором было приостановлено чтение (запись) в последний раа Отметим также, что если с помощью функции ОРЕМ (при аргументе СЕТ или Р()Т) нереоткрывается файл, явля«ощийся сейчас активным, то он по-прежнему остается активным, ио считывание (аапись) из него теперь будет происходить от его начала. Еще одна операция над файлами — это»аврыгие файла, в реаулыате которой файл становится недоступным программе.
Закрывает файлы Функция СЬОБЕ: (СЬОЗЕ П1« «уре), Я()ВВ. Если аначеннем 'второго аргумента является атом СЕТ, то функция закрывает укаэанный файл как файл ввода (если втот же файл был открыт и как файл вывода, то в таком качестве он не закрывается).
В противном случае второй аргумент должен иметь значение Р()Т, и тогда указанный файл закрывается как файл вывода. Значение функции равно Т, если файл удалось закрыть, и равно ( ) в противном случае.' Отметим, что если аакрывается активный файл, то новый активный файл не устанавливается. Попытка вычислить в этот момент функцию ввода или вывода приведет к ошибке, Ошибкой также является и выход (при записи) за. границы файла, имеющего ограниченные физические размеры (таковы, например, файлы во внешней памяти ЭВМ), ипи считывание иа файла, в котором не осталось ии одного выражения *). Любую иа этих ошибок мож- ') Прн переполнении файла вывода стого файла ввода сначала автоматически тем уже вырабатывается сигнал ошибки.
60 или считывании из пузакрывается файл, а ва- зо перехватить с помощью встроенной функции САТСН (см. 1 !Лб), а, кроме того, ошибки в последнем из указакпых случаев можио избежать, если воспользоваться встроенной функцией: Функция ЕОР: [ЕОР]. Это — фулкция-предикат, с помощью которой можно узнать, пуст или кет активный файл ввода. Если в текущий момент в этом файле есть хотя бы одно выражение «), тогда функция вырабатывает значение (), а если оп пуст или если сейчас яет активпого файла ввода, значение Функции равно Т.
Для иллюстрации работы с файлами и функциями ввода-вывода рассмотрим, как можно переписать все выражеиия файла А в конец файла В (вслед ва имеющимся там текстом). Предположим, что вначале файлы А и В пе были открыты и что в конце их надо закрыть, восстановив при этом исходные активные файлы ввода и вывода. Тогда решение атой задачи можно записать в виде следузошего блока: [РКОО (АФВВ АФВЫВ) [ЯЕТ АФВВ [АСТ1ЧЕ ОЕТ]] [ЯЕТ АФВЫВ [АСТ1ЧЕ РОТ]] [ОРЕМ А ОЕТ] [АСТ1ЧЕ А ОЕТ] [ОРЕ!Ч В АВВ] [АСТ1ЧЕ В РОТ] [4ЧНПЕ [г!ОТ. [ЕОР]] [РК1ХТ [КЕАВ]]] [ССОЯЕ А ОЕТ] [СВОЗЕ В РБТ] [СОМО (.АФВВ [АСТ1ЧЕ .АФВВ ОЕТ])] [СОЕП (.АФВЫВ [АСТ1ЧЕ .АФВЫВ Р1)Т])]] ' В заключение отметим одну особенность плэперсиого ввода.