int RowCount,int ColCount,bool* _deleted,KMatrix *_BufMat); // конструктор для матрицы
// данные формы
String DataName; // имя тензора/матрицы
int NameIndex; // индекс имени тензора/матрицы
String FullDataName; // полное имя тензора/матрицы (имя+индекс)
// данные для матрицы-формы
KMatrix *Matrix;
// функции работы с формой
void OutData(); // вывести на экран данные и обновить все настройки
void InpData(double D); // ввести все значения которые есть в ячейках D-множитель
void OutCaption(); // вывести заголовок формы
int TypOfForm(); // возвращает FmTyp
bool FormTensor(); // 1 - если форма-тензор
bool FormMatrix(); // 1 - если форма-матрица
// для внешних обьектов
int ListNumber; // номер формы в списке
bool* deleted; // надо ли обновить список в форме калькулятора
// прочее
void SaveMatrix(); // сохранить имеющуюся матрицу в файл *.bin
void LoadMatrix(const char *FileName);// загрузить матрицу из двоичного файла
void ExportMatrix(); // эеспортировать матрицу в файл *.dat
void ImportMatrix(const char *FileName);// импортировать матрицу из файла *.dat
KMatrix *BufMat; // буферная матрица
double MN; // множитель вывода
int outForm; // формат вывода 0-обычный 1-треугольный
void setOutFormat(int typ); // установить формат вывода по outForm
bool showNull; // выводить нули
void setshowNull(bool typ); // установка вывода нулей
void EnterMnoj(); // установка множителя (ввод пользователем)
void OutMnoj(); // вывод состояния множителя
void OutRefresh(); // учесть изменения во внешних формах
…
Файл "CalcForm.h"(основные элементы)
…
public: // User declarations
__fastcall TfmCalc(TComponent* Owner);
// работа с данными
void NewMatrix(int RowCount,int ColCount,String Name); // создать новую форму-матрицу
TfmMatrix* MR; // последняя созданная матрица с помощью NewMatrix(операции)
bool* deleted; // удалена ли какая либо форма
String NewDataName; // стандартное имя новой формы
TfmMatrix** MF; //[maxtensors];
// выбор матриц из списка
TfmMatrix* MFinList(); // возвращает указатель на форму с матрицей, выделенной в списке
void DeleteDataForm(TfmMatrix* M); // удалить матрицу по ее указателю
// задает операцию
int err; // код ошибки
String OperName; // имя операции (строка)
int ARGS; // количество аргументов у операции(осталось ввести)(матричные)
int DARGS; // количество аргументов у операции(осталось ввести)(типа double)
String ANames[MAXARGS]; // имена аргументов (матриц)
String DANames[MAXARGS]; // имена аргументов (типа double)
TfmMatrix *MFA[MAXARGS]; // передаваемые аргументы матричные нумерация с 1
double DA[MAXARGS]; // аргументы типа double нумерация с 1
void ClearOperation(); // сброс операции
void AfterOperation(); // по завершению аперации
void OperList(); // формирует список операций
void InitOperation(); // инициализация операции
void exeOperation(); // выполнение операций
bool sizMatrix; // выставить размер окна размром матрицы
// служебное для операций
int NARG; // номер текущего вводимого аргумента
int DNARG; // номер текущего вводимого аргумента (типа double)
void ReList(TfmMatrix** _MF);
// прочее
KMatrix *BufMat; // буферная матрица
…
Математическое применение (несколько примеров):
Связь между координатами точки в одной системе отсчета X | x1, x2, x3 | и другой системы отсчета Y | y1, y2, y3 | может быть записана соотношением:
, или
; где A – матрица поворота осей координат;
X0 – вектор смещения начала координат (значения координат центра новой системы отсчета в старых координатах).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.