Запись данных в файл

Для создания неструктурированных файлов используется две функции:

WRITE («Имя файла») : = «Данные»

APPEND («Имя файла») : = «Данные»

При использовании этих функций следует помнить:

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

· функция APPEND используется для добавления данных в конец существующего файла. Если файл не существует, то эта функция создает его, записывая туда данные;

· каждое обращение к функции APPEND добавляет в файл данные, начиная с новой строки (новую запись);

· ДАННЫЕ – это только один элемент из следующего списка:

Ø имя простой переменной;

Ø имя массива с указанием индексного выражения;

Ø значение числовой константы;

· для записи нескольких элементов необходимо вызов функции поставить в тело цикла, параметр которого индексируется выражением (см. пример 1.2.1).

Пример 1.2.1. Записать в файл следующую информацию:

· значение переменной ;

· значений случайных чисел из интервала [0, 99];

· значений целых чисел от 0 до .

Фрагмент документа, осуществляющий запись таких файловых данных, приведен на рис. 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 («Имя файла») := <данные>

 

При использовании этих функций необходимо помнить:

· если в функции WRITEPRN указано имя существующего файла, то этот файл заменяется новым файлом без предупреждения;

· функция APPENDРRN используется для добавления данных в конец существующего файла. При этом число столбцов добавляемого массива должно совпадать с числом столбцов массива, уже записанного в файл. Это правило позволяет добавлять в конец файла векторы с любым числом элементов;

· в качестве разделителя между числами записывается пробел, в конце каждой строки осуществляется переход на новую строку;

· ДАННЫЕ – это только один элемент из следующего списка:

Ø имя простой переменной;

Ø имя массива;

Ø значение числовой константы.

Если необходимо записать в файл несколько переменных, то из них нужно сформировать вектор, который затем записывается в файл.

Структура создаваемого файла определяется следующими системными переменными:

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. ●