Запись данных в файл
Для создания неструктурированных файлов используется две функции:
WRITE («Имя файла») : = «Данные»
APPEND («Имя файла») : = «Данные»
При использовании этих функций следует помнить:
- если в функции WRITE указано имя существующего файла, то он заменяется новым файлом без предупреждения. Следовательно, этой функцией нельзя пользоваться для добавления данных в конец существующего файла;
- функция APPEND используется для добавления данных в конец существующего файла. Если файл не существует, то эта функция создает его, записывая туда данные;
- каждое обращение к функции APPEND добавляет в файл данные, начиная с новой строки (новую запись);
- ДАННЫЕ – это только один элемент из следующего списка:
- для записи нескольких элементов необходимо вызов функции поставить в тело цикла, параметр которого индексируется выражением (см. пример 1.2.1).
- значение переменной ;
- значений случайных чисел из интервала [0, 99];
- значений целых чисел от 0 до .
- если в функции WRITEPRN указано имя существующего файла, то этот файл заменяется новым файлом без предупреждения;
- функция APPENDРRN используется для добавления данных в конец существующего файла. При этом число столбцов добавляемого массива должно совпадать с числом столбцов массива, уже записанного в файл. Это правило позволяет добавлять в конец файла векторы с любым числом элементов;
- в качестве разделителя между числами записывается пробел, в конце каждой строки осуществляется переход на новую строку;
- ДАННЫЕ – это только один элемент из следующего списка:
- первый столбец содержит значения определяемые по формуле:
- второй столбец содержит функции , где
Ø имя простой переменной;
Ø имя массива с указанием индексного выражения;
Ø значение числовой константы;
Пример 1.2.1. Записать в файл следующую информацию:
Фрагмент документа, осуществляющий запись таких файловых данных, приведен на рис. 1.2.1. Здесь функция rnd(a) генерирует случайные числа, равномерно распределенные в интервале [0, a], а функция floor(x) – вычисляет наибольшее целое число, меньшее или равное вещественному числу x. В окне программы Блокнот хорошо видна структура сформированного файла. ¦
Рис. 1.2.1. Запись неструктурированного файла
Замечание 1.2.1. Рассмотренные функции создания неструктурированного файла входили в состав более ранних версий пакета MathCAD (до версии MathCAD2000 включительно). В русифицированной версии MathCAD2001i обращение к этим функциям вызывает ошибку (см. рис. 1.2.2), поэтому рекомендуется работать только с функциями создания структурированных файлов.
Рис. 1.2.2. Ошибка при обращении к функции WRITE
Для создания структурированных файлов используются две функции:
WRITEPRN («Имя файла») := <данные>
appendPRN («Имя файла») := <данные>
При использовании этих функций необходимо помнить:
Ø имя простой переменной;
Ø имя массива;
Ø значение числовой константы.
Если необходимо записать в файл несколько переменных, то из них нужно сформировать вектор, который затем записывается в файл.
Структура создаваемого файла определяется следующими системными переменными:
PRNCOLWIDTH – количество позиций, отводимых под один столбец (по умолчанию равно 8);
PRNPRECISION – число задаваемых цифр после десятичной точки в записи числа (по умолчанию равно 4).
Значения этих параметров можно изменить, обратясь к пункту меню Математика, команда Опции, вкладка Встроенные переменные.
Пример 1.2.2. Записать в файл матрицу В, k-й столбец которой есть выборка из нормального распределения с математическим ожиданием и среднеквадратическим отклонением (дисперсия соответственно ).
Фрагмент документа, осуществляющий запись структурированного файла, приведен на рис. 1.2.3. В окне программы Блокнот хорошо видна структура сформированного файла (число строк n = 5, число столбцов m = 4). ¦
Рис. 1.2.3. Запись структурированного файла
Задание 1.2.1. Составить фрагмент документа MathCAD, формирующий файл, содержащий два столбца:
;
. ?
Задание 1.2.2. Составить фрагмент документа MathCAD, который формировал файл, содержащий кроме матрицы В, определяемой условиями примера 1.2.2, добавленную в конец файла матрицу С размерности , k-й столбец которой есть выборка из нормального распределения с математическим ожиданием и дисперсией . ?
Замечание 1.2.2. Создаваемый в MathCAD файл данных достаточно просто просмотреть и отредактировать в текстовом редакторе, отображающем ASCII-данные. Примерами таких редакторов может служить программа Блокнот, входящая в состав Windows (Программы Þ Стандартные), а также редакторы языков программирования – PASCAL, СИ и др.
Задание 1.2.3. Используя программу Блокнот, проверьте правильность формирования файла в задании 1.2.2. ?