в методі для графічного відображення потрібно створити кількість осередків, відповідних даними значень. Відображення чисел для нумерації рядків і стовпців буде проводиться за допомогою класу тексту осередки. Відмінність сітки від матриці - це наявність даних в осередках, дані необхідно зберігати в масиві. Крім того, потрібно якось позначити введені матриці, для цього виділимо окремий клас написи матриці, що є спадкоємцем класу осередків з даними. Також знадобиться метод визначає чи потрапляє точка в об'єкт матриці. Виходячи з вищесказаного, випливає наступне дерево спадкування елементів матриці:
Розрахунок операцій.
Розрахунок операцій проводитися з використанням статичного класу, який містить в собі необхідні функції, реалізація яких була здійснена на основі теоритического матеріалу, представленого в розділі 2.1.1.
Введення даних
Основою для введення даних є форма Form1 має нащадків Form2 і Form3.необходіма для введення даних, якщо був обраний режим для двох матриць, а Form3 якщо для однієї.
При відображенні Form1 кнопка button прихована, тому що перехід на наступну форму здійснений після натискання на Enter, причому користувач оповіщається про це появою підказки toolTip, після того, як всі елементи введені в таблицю dataGridView. Перехід виробляється на Form2, де здійснюється введення другого матриці.
Особливістю Form3 є відображення тільки одного числового поля для введення розмірності матриці (при режимах зворотної матриці і знаходження визначника), а також не реагування на клавішу Enter, тому що в даному випадку немає необхідності вводити другу матрицю.
Клас Matrix
Базовим класом для всіх елементів матриць є клас Matrix. Він має наступний метод:
abstract public void Draw (int x, int y, Point resolution) - малювання елемента
Поля:
public int rowCount - кількість рядків
public int columnCount - кількість стовпців
public Point size - розмір елемента
Клас Cell
Являє собою клітинку з вказаними розмірами.
Додатковий метод: DrawLine (Point A, Point B) - малювання лінії
Клас matrixTable
Використовується для створення таблиці. Таблиця складається з об'єктів класу Cell.
Додатковий метод:
public void drawText (TextureFont texFont, Point resolution) - малює нумерацію рядків і стовпців
Клас matrix
Є матрицею.
Додаткове поле:
public double [,] mtx - масив значень матриці
Додаткові методи:
public void setMatrix (DataGridView dataGridView1) - записує значення з dataGridView в масив
public bool Contains (Point point, int x0, int y0) - перевіряє чи потрапляє точка в область матриці
Клас matrixText.
Є спадкоємцем класу matrix. Являє собою позначення матриці (A, B, A * B, A + B і т.д.)
Метод:
public void draw (int x, int y, TextureFont texFont, Point resolution) - малює текст
Поле:
public string text - текст операції
Клас cellText
Є спадкоємцем класу Cell. Служить для відображення нумерації рядків і стовпців.
Поле:
public string text - номер рядка або стовпця
public void drawVertical (int x, int y, TextureFont texFont, Point resolution) - малює тексту зліва від осередку по вертикалі (для позначення рядків)
public void drawHorizontal (int x, int y, TextureFont texFont, Point resolution) -
малює текст над осередком (для позначення стовпців)
Клас matrixOperations Містить статичні методи для розрахунку операцій:
public static multiplication (double [,] matrix1, double [,] matrix2) -умноженіе
public static addition (double [,] matrix1, double [,] matrix2) -сложеніе
public static subtraction (double [,] matrix1, double [,] matrix2) -вичітаніе
public static Transpose (double [,] mtx) -транспонірованіе
public static double Determinent (double [,] matrix) -определітель
public static double [,] Inverse (double [,] matrix) -зворотний матриця
Основні функції Form1: