Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 37
Текст из файла (страница 37)
Для ввода информации из файла с именем пап1е и расширением ехт применяется команда геад "пане.ехт Для считывания строки из файла можно использовать команду геао1!пе Г'пане,ехт")! Эту команду можно применять и для организации интерактивного ввода„указав в качестве имени файла тетпипа1. После этого Мар1е будет ожидать ввода строки с клавиатуры. Например: > а:-геаа1!пе(тегн!па!)! > Это припер интерантиеного ввода а:и "Эте врнмер интеамитнеиеге пеева" Понятно, что после набора вводимой строки следует нажать клавишу Ептет, Для записи результвтов работы в файл имеются команды Команды ввода/вывода 195 нг!Сете (" паве.ехС") арреппго ("паев.ехС") После выполнения этих команд все вводимое и результаты работы команд будут записаны в файл с именем паше.ехС. Тип файла но-прежнему зависит от указь)ваемого расширения ехС.
По команде !хг)СеСо информация записывается с начала нового файла, а использование арреппго означает запись в конец уже существующего файла. Для восстановления вывода на экран нужно повторно обратиться к команде !хг! СеСо, указав в качестве имени файла Сепп)па1 (то есть после команды нг1 СеСо("Саге) па1" ) все результаты снова выводятся на экран). Существует также возможность записи результатов в файл при помощи следующих команд: (Э хг(Себугез (г11е, ехрг1) — записать выражение ехрг1 в файл с именем )1! е в байтовом виде; Ш иг! Се! ! пе ("пзее.
ехС" ЗСг) — запись строки ЗСг в файл с именем пап)е ехС. Естественно, перед тем как файл использовать, его нужно открыть, а по завершении работы закрыть при помощи команд: О преп ("паее, ехС" . ео()е) — открыть файл пап)е.ехС. В качестве параметра ео()е могут выступать Их!ТЕ (открыть на запись) и РЕЯ0 (открыть на чтение): О с!озе ("паее,ехС" ) — закрыть файл пап)е.ехС.
Часто при написании программы необходимо выводить информацию о ходе решения, результаты, аварийные сообщен)гя н пр. Для этих целей в пакете предусмотрен ряд команд печати. Наиболее простой является команда рг1 пС, обращение к которой имеет вид: рг!пС(ехрг1.ехрг2,....ехргп) Здесь ехрг1, ехрг2,..., ехргп — любые Мар1е-выражения. Если переменной ничего не присвоено, то печатается просто имя переменной, в противном случае печатается ее содержимое.
Приведем пример обращения к команде печати: > х:-у 2: рг!пС(х."1птопва2зоп",у.тасгог(х-З"у)): у~, (пуоппа)(оп, у, у (у — 3 ) В отличие от команды рг1пС, которая печатает выражения через запятую в естественном математическом виде, команда ! рг1 пС выводит информацию в стиле строки ввода и разные выражения отделяются друг от друга пробелами. Например: > х:-у"2, !рг!пС(х,"1птогеаС!оп".у,(асгог(х-З"у)): у"2. 1п(огеаС!оп, у. у*(у-3) Помимо бесформатного вывода в Мар!е есть команда рг1 пС)(теС, ехрг1.ехрг2,...
). Здесь теС вЂ” спецификация формата вывода, и другие команды печати, полностью идентичные аналогичным командам языка С и МАТ1.АВ. Более подробно о них можно прочитать в главе 16 «Программирование в МАТЕАВ». Пакет Мар!е можно использовать для анализа и графической интерпретации числовой информации, находящейся в текстЬвом файле и полученной При помощи как самого пакета, так и др)угих программ; ч:)бычио 'в текстовом файле числ» запи- 496 Глава 7. Программирование в Мар!е саны в строки, по несколько чисел в строке. Для считывания числовой информа- ции из файла используется команда геащащ (паве,ор(1опз,роз1пг) здесь паве — имя файла, ор(1опз — тип переменных (! пседег/л па(), роз1пс — счет- чик чисел (сколько считывать чисел нз строки).
Прочитанная информация пред- ставляется в виде переменной типа 115С)15Ц Например, пусть в текстовом файле а.(х(в первой строке находятся числа: 0, 1, 2, 3, 4, а во второй — 5, б, 7, 8, 9. Считаем данную информацию из файла и занесем ее в пе- ременную баСа: > бам:-геаббага("а. Схг ",1п(еде г. 5); Жиа;= [[О, 1, 2, 3,41, [5, 6, 7, 8,9П Двойная индексация у переменной бата связана с тем, что числа записываются в пе- ременную типа 115с11зс, так что первая размерность переменной равна числу счи- танных строк, а вторая определяется параметром роз1пц Табулированную информацию в текстовый файл можно записать командой ню(ебыа (Г11е10.
баса. Гогва(. бегеа1Г) Здесь Г11е! 0 является именем файла, переменная баса содержит записываемую ин- формацию, необязательный параметр Гогвз2 указывает формат записи (~ пседег/ Г)оас/зсг1пд), а в качестве бейщ1с можно указывать процедуру форматирования вывода (см. справку?игпсеба(а). Приведем пример записи г)(льбертовой матрицы третьего порядка в файл: > нг1(еба2а(чн1ь.гхг",11па1д[ь)1ьег()(3),Г1оа() В результате в файле ЬПЬ.[хс будет содержаться следующая информация: 1 .5 .3333333333 .5 .3333333333 .25 .3333333333 .25 .2 Для считывания строки из файла пагпе ех[ применяется команда геаб) 1пе("паве.
ехт" ), а для записи — ггг)те!1пе(Г11е, зтг). Результат действия первой команды присваива- ется переменной типа зтгюд. Если в качестве имени файла указать Сегв1 па1, то про- грамма будет ожидать ввода с клавиатуры. Кроме того, в пакете зтатз имеются команды геабзСат и иг1 Сезгат для ввода н выво- да статистической информации, а пакет Ипеагй[деЬга включает две команды для импорта и экспорта матриц: 1арогтмасг1х (г, з. Гп, б, бе. (г) Ехрогьнз(г)х (Г, И. С, бе, сг) Здесь à — строка символов с именем файла, М вЂ” имя переменной, содержащей мат- рицу, з — параметр, имеющий вид зонгсе-паве и определяющий формат считыва- ния из файла, параметр С имеет вид се где с-паве н определяет формат записи в файл. В качестве термина паве у последних двух параметров могут выступать Мат1аЬ, Масг1 хнагхеС или бе11в1 себ.
Параметр Го имеет вид Гоппас-паве (здесь паве одно из имен гессапди1аг/епсг1ез/чессогз) и управляет методом сохранения информа- ции, б имеет вид басасуре суре и определяет тип данных, с помощью параметра бе (бег1в! сег; секс) можнозадатьрааделительмежду числами, а[гараметрсг (Фгдв/ Отладка лротраяя 197 Та)зе) указывает на необходимость транспонирования матрицы. Обязательными являются только параметры Т, )(, з. В заключение коснемся возможностей записи рисунков в файл. при работе в Жшт)очгзверсии зто легко сделать, отметив рисунок, затем нажав на правую кнопку мыши и выбрав в появившемся меню пункт ехрогт. Другую воэможность предоставляет команда)птеггасе с параметрами р1асйечтсе=ча1.
Здесь строковой переменной ча1 можно указать тип вывода графики (ой т — в формате д1 т, )ззегдег — в формате нР (лзег) ег принтера и т. д.). Задать имя файла для вывода графики можно при помощи конструкции: р1 осоосрос-"пакет))е. ехг". Например, после выполнения команд > )птегтасе(р1оШеч)се-д)т.р1атоо(рот="ддд.д) Г'): р)о(Зо(и о(х>у)"у.х--4..4.у--4..4); на диске появится файл ддд.д(1 с графической копией рисунка в формате д(б Обратим внимание на то, что, пока значение р1 осоисрис не переопределено, результаты всех команд графики будут записываться в один файл, замещая предыдущий следующим.
Следует отметить, что копия рисунка в файле не всегда будет идентична варианту на экране, что, по-видимому, объясняется спецификой реализации. Вместо команды )о(еггасе можно использовать: р1огке(ор (деч1сетуре. тегпппа)туре. орыопт...) Здесь ()еч1сеТуре указывает графический формат (д(Т, рз, Ьл)р), а необязательный параметр Те гоп па1Туре определяет тип устройства (имя файла). Информацию о наборе параметров смотрите в справке пакета.
Например, для того, чтобы рисунки сохранялись в файле с именем а.Ьл)р с портретной ориентацией страницы, нужно выполнить следующую команду: > р1о(зетор(сэр.р)отоотрит"Чь Ьар".р)о(ощтопк-"рог(га!Ч"); Возможности работы с файлами не ограничиваются перечисленными командами, информацию о других командах можно найти в справке пакета. Отладка программ В этом пункте мы рассмотрим возможности отладчика программ и коснемся получения более подробной информации о стандартных Мар1е-командах, ходе вычислений, используемых ресурсах компьютера и ошибках, а также перечислим команды управления выводом результатов. Информация о переменных и объектах Чтобы выяснить, присвоено ли переменной с именем пзяе какое-либо значение, существует команда аззтдле()(паве).