Пользовательская компонента для расчета матриц — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Пользовательская компонента для расчета матриц

2021-04-19 68
Пользовательская компонента для расчета матриц 0.00 из 5.00 0 оценок
Заказать работу

Анализ предметной области

 

Матрицей называется прямоугольная таблица из чисел aij, где i=1,2,..,m, j=1,2,..,n

 

 

 

cостоящая из m строк и n столбцов.

Операции с матрицами.

Сложение и вычитание.

Складывать можно только матрицы одинакового размера. Сложение матриц A+B есть операция нахождения матрицы C, все элементы которой равны попарной сумме всех соответствующих элементов матриц A и B, то есть каждый элемент матрицы C равен

 

 

 

Разность двух матриц одинакового размера можно определить через операцию сложения матриц и через умножение матрицы на число:

 

 (3)

 

Свойства сложения матриц:

.   Коммутативность: A+B = B+A;

.   Ассоциативность: (A+B)+C =A+(B+C);

.   Сложение с нулевой матрицей: A + Θ = A;

.   Существование противоположной матрицы: A + (-A) = Θ.

Умножение.

Умножение матриц <https://ru.wikipedia.org/wiki/%D0%A3%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86> (обозначение AB, реже со знаком умножения AxB) - есть операция вычисления матрицы C, каждый элемент которой равен сумме произведений элементов в соответствующей строке первого множителя и столбце второго.

 

 

 

Количество столбцов в матрице A должно совпадать с количеством строк в матрице B, иными словами, матрица A обязана быть согласованной с матрицей B. Если матрица A имеет размерность mxn, B - nxk, то размерность их произведения AB=C есть mxk.

Свойства умножения матриц:

.   Ассоциативность <https://ru.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C> (AB)C = A(BC);

.   Некоммутативность <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C> (в общем случае): AB  BA;

.   Произведение коммутативно в случае умножения с единичной матрицей: AI = IA;

.   Дистрибутивность <https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C>: (A+B)C = AC + BC, A(B+C) = AB + AC;

5. Ассоциативность и коммутативность относительно умножения на число:

 

(λA)B = λ(AB) = A(λB);

 

Транспонирование.

Транспонированная матрица - матрица <http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)> AT, полученная из исходной матрицы A заменой строк на столбцы. Формально, транспонированная матрица для матрицы A размеров mxn - матрица AT размеров nxm, определённая как AT[i, j] = A[j, i].

Свойства транспонированных матриц:

1. Дважды транспонированная матрица А равна исходной матрице А:

 

(AT)T =A

 

.   Транспонированная сумма матриц равна сумме транспонированных матриц:

 

(A+B)T =AT +BT

 

.   Транспонированное произведение матриц равно произведению транспонированных матриц, взятых в обратном порядке:

 

(AB)T = BT AT

 

4. При транспонировании можно выносить скаляр:

 

(λA)T = λ AT

 

5. Определитель транспонированной матрицы равен определителю исходной матрицы:

AT = det AT

 

Определитель.

Определитель (или детерминант) - одно из основных понятий линейной алгебры. Определитель матрицы является многочленом от элементов квадратной матрицы (то есть такой, у которой количество строк и столбцов равно).

Для матрицы первого порядка детерминантом является сам единственный элемент этой матрицы:

 

 

 

Для матрицы 2x2 детерминант определяется как

 

 

 

Для матрицы nxn определитель задаётся рекурсивно:

 

 

 

где  - дополнительный минор к элементу .

Эта формула называется разложением по строке.

 

 

 

Минор матрицы A ― определитель такой квадратной матрицы B порядка k (который называется также порядком этого минора), элементы которой стоят в матрице A на пересечении строк с номерами  и столбцов с номерами .

В частности, формула вычисления определителя матрицы 3x3 такова:

 


 

 

 

Обратная матрица.

Обра́тная ма́трица - такая матрица A−1, при умножении на которую, исходная матрица A даёт в результате единичную матрицу E:

-1 =AA-1=E (9)

 

Квадратная матрица обратима тогда и только тогда, когда она невырожденная, то есть её определитель не равен нулю. Для неквадратных матриц и вырожденных матриц обратных матриц не существует.

 

 

 

- транспонированная матрица алгебраических дополнений;

Алгебраическим дополнением элемента aij матрицы A называется число

 

,

 

где  - дополнительный минор, определитель матрицы, получающейся из исходной матрицы A путем вычёркивания i -й строки и j -го столбца.

Полученная матрица A−1 и будет обратной. Сложность алгоритма зависит от сложности алгоритма расчета определителя Odet и равна O(n²)·Odet. Иначе говоря, обратная матрица равна единице, делённой на определитель исходной матрицы и умноженной на транспонированную матрицу алгебраических дополнений элементов исходной матрицы.

Анализ

Матрица представляет собой систему взаимосвязанных элементов. Для этих элементов характерны сходства и различия, которые необходимо выявить на этапе разработки компоненты. Кроме того, важно определить взаимодействие элементов системы как части целого.

Исходя из рассмотрения составных частей матрицы, можно выделить следующие наиболее общие для любой матрицы типы элементов:

.   Ячейка

.   Ячейки с данными

.   Сетка

Представить матрицу можно разными способами, целесообразным будет сделать её в виде таблицы со значениями в каждой ячейке. Ячейка имеет свою ширину и высоту, как и сетка, состоящая из ячеек. Кроме того, таблицу нужно заполнить данными, для этого необходимо создать отдельный элемент, который будет представлять ячейки с данными. Также нужно принимать во внимание, что каждая сетка и таблица с данными имеет фиксированное количество строк и столбцов. Все перечисленные элементы являются основными для любых матриц.

К дополнительным элементам будут относиться:

. Надписи с нумерацией строк и столбцов (текст ячейки)

. Надпись перед матрицей (текст матрицы)

Чтобы организовать нумерацию по столбцам и строкам (начиная с нуля), необходимо напротив каждого элемента нулевого столбца и нулевой строки отобразить числовое значение, соответствующее столбцу или строке в которой находится элемент. Основой для нумерации будет ячейка. Текст, расположенный слева вертикально относительно положения ячейки будет обозначать номер строки, а текст расположенный сверху над ячейкой будет являться номером столбца.

Надпись перед матрицей используется для обозначения введенных матриц (к примеру - А, B), а также для результата выполненной операции. Основой для данного элемента будут ячейки со значениями.

Исходя из системного анализа матрицы можно составить следующую структурную схему системы:

 

 

1.2 Информация об openGL

 

OpenGL - это мощный программный интерфейс, применяемый для получения высококачественных, программно генерируемых изображений и интерактивных приложений, использующих двух- и трехмерные объекты, а также растровые изображения.OpenGL - это графический стандарт в области компьютерной графики. На данный момент он является одним из самых популярных графических стандартов во всём мире. Ещё в 1982 г. в Стенфордском университете была разработана концепция графической машины, на основе которой фирма Silicon Graphics в своей рабочей станции Silicon IRIS реализовала конвейер рендеринга. Таким образом была разработана графическая библиотека IRIS GL. На основе библиотеки IRIS GL, в 1992 году был разработан и утверждён графический стандарт OpenGL. Разработчики OpenGL - это крупнейшие фирмы разработчики как оборудования так и программного обеспечения: Silicon Graphics, Inc., Microsoft, IBM Corporation, Sun Microsystems, Inc., Digital Equipment Corporation (DEC), Evans & Sutherland, Hewlett-Packard Corporation, Intel Corporation и Intergraph Corporation.OpenGL переводится как Открытая Графическая Библиотека (Open Graphics Library), это означает, что OpenGL - это открытый и мобильный стандарт. Программы, написанные с помощью OpenGL можно переносить практически на любые платформы, получая при этом одинаковый результат, будь это графическая станция или суперкомпьютер. OpenGL освобождает программиста от написания программ для конкретного оборудования. Если устройство поддерживает какую-то функцию, то эта функция выполняется аппаратно, если нет, то библиотека выполняет её программно.Что же представляет из себя OpenGL? С точки зрения программиста OpenGL - это программный интерфейс для графических устройств, таких как графические ускорители. Он включает в себя около 150 различных команд, с помощью которых программист может определять различные объекты и производить рендеринг.

Для интеграции openGL в среду разработки Visual Studio была выбрана свободно распространяемая библиотека OpenTK. Также для отображения текста была использована библиотека TexLib, основанная на OpenTK и также являющаяся свободно распространяемой.

Основные функции OpenTK, использованные в курсовой работе:

1. GL.Clear(ClearBufferMask.ColorBufferBit|ClearBufferMask.DepthBufferit)

Установка режима отображения буфера цветов и глубины.

2. GL.Viewport(0, 0, glControl1.Width, glControl1.Height)

Установка порта вывода.

3. GL.ClearColor(Color.SkyBlue)

Очистка экрана выбранным цветом

. GL.MatrixMode(MatrixMode.Modelview)

Установка матрицы проекций

. GL.LoadIdentity()

Замена текущей матрицы единичной.

6. GL.Ortho(0, resolution.X, resolution.Y, 0, -1, 1)

Настройка ортогональной проекции.

Фукнции библиотеки TexLib:

1. TexUtil.CreateTextureFromFile("F:\\font1.png")

Создание текстуры из файла.

2. texFont.WriteStringAt("A=", 20, 8, resolution.Y -10, 0, resolution)

Рисование текста по указанным координатам

 

1.3 Формирование требований к компоненте

 

Основные функции, которыми должна обладать компонента:

.   Ввод данных

.   Расчет операций

.   Сохранение и воспроизведение данных.

Поскольку одной из целей данной курсовой работы является создание пользовательского элемента управления, то архитектура приложения будет строиться на основе компонентного подхода разработки приложений, что позволяет упростить его в целом, а также обеспечить повторное использование программного кода, разрабатываемой компоненты.

Следовательно, за реализацию всех вышеназванных функций должна будет отвечать разрабатываемая компонента, скрывая от остального приложения подробности работы с матрицами. Вся работа с графикой должна быть выполнена с использованием технологии OpenGL и отображение данных будет производиться с помощью шрифтов, считываемых из bmp файла. Для некоторого дополнительного удобства интерфейс приложения будет реализован с использованием многодокументного интерфейса (MDI). Это позволит пользователю одновременно работать с несколькими операциями для матриц.


 

2. Специальная часть

 

.1 Структура приложения

 

Разрабатываемое приложение будет выполнено с использованием многодокументного интерфейса(MDI). Следовательно, оно будет иметь:

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

.   множество дочерних форм, содержащих компоненту для расчёта матриц.

Поверхностью для расчета матриц является разрабатываемая в данной курсовой работе графическая пользовательская компонента (matrixCalc).

 

 

Родительская и дочерняя форма.

Родительская форма содержит пункты меню:

Добавить форму

Добавляет дочернюю форму с пользовательской компонентой

Расположение: вертикально, горизонтально.

Упорядочивает дочерние окна.

Файл

Открыть (открывает.txt или. mtx)

Сохранить как подразделяется на.txt (сохраняет матрицы в txt файл) и.mtx (сохраняет в двоичный файл)

Приложения

Анализ предметной области

 

Матрицей называется прямоугольная таблица из чисел aij, где i=1,2,..,m, j=1,2,..,n

 

 

 

cостоящая из m строк и n столбцов.

Операции с матрицами.

Сложение и вычитание.

Складывать можно только матрицы одинакового размера. Сложение матриц A+B есть операция нахождения матрицы C, все элементы которой равны попарной сумме всех соответствующих элементов матриц A и B, то есть каждый элемент матрицы C равен

 

 

 

Разность двух матриц одинакового размера можно определить через операцию сложения матриц и через умножение матрицы на число:

 

 (3)

 

Свойства сложения матриц:

.   Коммутативность: A+B = B+A;

.   Ассоциативность: (A+B)+C =A+(B+C);

.   Сложение с нулевой матрицей: A + Θ = A;

.   Существование противоположной матрицы: A + (-A) = Θ.

Умножение.

Умножение матриц <https://ru.wikipedia.org/wiki/%D0%A3%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86> (обозначение AB, реже со знаком умножения AxB) - есть операция вычисления матрицы C, каждый элемент которой равен сумме произведений элементов в соответствующей строке первого множителя и столбце второго.

 

 

 

Количество столбцов в матрице A должно совпадать с количеством строк в матрице B, иными словами, матрица A обязана быть согласованной с матрицей B. Если матрица A имеет размерность mxn, B - nxk, то размерность их произведения AB=C есть mxk.

Свойства умножения матриц:

.   Ассоциативность <https://ru.wikipedia.org/wiki/%D0%90%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C> (AB)C = A(BC);

.   Некоммутативность <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C> (в общем случае): AB  BA;

.   Произведение коммутативно в случае умножения с единичной матрицей: AI = IA;

.   Дистрибутивность <https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C>: (A+B)C = AC + BC, A(B+C) = AB + AC;

5. Ассоциативность и коммутативность относительно умножения на число:

 

(λA)B = λ(AB) = A(λB);

 

Транспонирование.

Транспонированная матрица - матрица <http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)> AT, полученная из исходной матрицы A заменой строк на столбцы. Формально, транспонированная матрица для матрицы A размеров mxn - матрица AT размеров nxm, определённая как AT[i, j] = A[j, i].

Свойства транспонированных матриц:

1. Дважды транспонированная матрица А равна исходной матрице А:

 

(AT)T =A

 

.   Транспонированная сумма матриц равна сумме транспонированных матриц:

 

(A+B)T =AT +BT

 

.   Транспонированное произведение матриц равно произведению транспонированных матриц, взятых в обратном порядке:

 

(AB)T = BT AT

 

4. При транспонировании можно выносить скаляр:

 

(λA)T = λ AT

 

5. Определитель транспонированной матрицы равен определителю исходной матрицы:

AT = det AT

 

Определитель.

Определитель (или детерминант) - одно из основных понятий линейной алгебры. Определитель матрицы является многочленом от элементов квадратной матрицы (то есть такой, у которой количество строк и столбцов равно).

Для матрицы первого порядка детерминантом является сам единственный элемент этой матрицы:

 

 

 

Для матрицы 2x2 детерминант определяется как

 

 

 

Для матрицы nxn определитель задаётся рекурсивно:

 

 

 

где  - дополнительный минор к элементу .

Эта формула называется разложением по строке.

 

 

 

Минор матрицы A ― определитель такой квадратной матрицы B порядка k (который называется также порядком этого минора), элементы которой стоят в матрице A на пересечении строк с номерами  и столбцов с номерами .

В частности, формула вычисления определителя матрицы 3x3 такова:

 


 

 

 

Обратная матрица.

Обра́тная ма́трица - такая матрица A−1, при умножении на которую, исходная матрица A даёт в результате единичную матрицу E:

-1 =AA-1=E (9)

 

Квадратная матрица обратима тогда и только тогда, когда она невырожденная, то есть её определитель не равен нулю. Для неквадратных матриц и вырожденных матриц обратных матриц не существует.

 

 

 

- транспонированная матрица алгебраических дополнений;

Алгебраическим дополнением элемента aij матрицы A называется число

 

,

 

где  - дополнительный минор, определитель матрицы, получающейся из исходной матрицы A путем вычёркивания i -й строки и j -го столбца.

Полученная матрица A−1 и будет обратной. Сложность алгоритма зависит от сложности алгоритма расчета определителя Odet и равна O(n²)·Odet. Иначе говоря, обратная матрица равна единице, делённой на определитель исходной матрицы и умноженной на транспонированную матрицу алгебраических дополнений элементов исходной матрицы.

Анализ

Матрица представляет собой систему взаимосвязанных элементов. Для этих элементов характерны сходства и различия, которые необходимо выявить на этапе разработки компоненты. Кроме того, важно определить взаимодействие элементов системы как части целого.

Исходя из рассмотрения составных частей матрицы, можно выделить следующие наиболее общие для любой матрицы типы элементов:

.   Ячейка

.   Ячейки с данными

.   Сетка

Представить матрицу можно разными способами, целесообразным будет сделать её в виде таблицы со значениями в каждой ячейке. Ячейка имеет свою ширину и высоту, как и сетка, состоящая из ячеек. Кроме того, таблицу нужно заполнить данными, для этого необходимо создать отдельный элемент, который будет представлять ячейки с данными. Также нужно принимать во внимание, что каждая сетка и таблица с данными имеет фиксированное количество строк и столбцов. Все перечисленные элементы являются основными для любых матриц.

К дополнительным элементам будут относиться:

. Надписи с нумерацией строк и столбцов (текст ячейки)

. Надпись перед матрицей (текст матрицы)

Чтобы организовать нумерацию по столбцам и строкам (начиная с нуля), необходимо напротив каждого элемента нулевого столбца и нулевой строки отобразить числовое значение, соответствующее столбцу или строке в которой находится элемент. Основой для нумерации будет ячейка. Текст, расположенный слева вертикально относительно положения ячейки будет обозначать номер строки, а текст расположенный сверху над ячейкой будет являться номером столбца.

Надпись перед матрицей используется для обозначения введенных матриц (к примеру - А, B), а также для результата выполненной операции. Основой для данного элемента будут ячейки со значениями.

Исходя из системного анализа матрицы можно составить следующую структурную схему системы:

 

 

1.2 Информация об openGL

 

OpenGL - это мощный программный интерфейс, применяемый для получения высококачественных, программно генерируемых изображений и интерактивных приложений, использующих двух- и трехмерные объекты, а также растровые изображения.OpenGL - это графический стандарт в области компьютерной графики. На данный момент он является одним из самых популярных графических стандартов во всём мире. Ещё в 1982 г. в Стенфордском университете была разработана концепция графической машины, на основе которой фирма Silicon Graphics в своей рабочей станции Silicon IRIS реализовала конвейер рендеринга. Таким образом была разработана графическая библиотека IRIS GL. На основе библиотеки IRIS GL, в 1992 году был разработан и утверждён графический стандарт OpenGL. Разработчики OpenGL - это крупнейшие фирмы разработчики как оборудования так и программного обеспечения: Silicon Graphics, Inc., Microsoft, IBM Corporation, Sun Microsystems, Inc., Digital Equipment Corporation (DEC), Evans & Sutherland, Hewlett-Packard Corporation, Intel Corporation и Intergraph Corporation.OpenGL переводится как Открытая Графическая Библиотека (Open Graphics Library), это означает, что OpenGL - это открытый и мобильный стандарт. Программы, написанные с помощью OpenGL можно переносить практически на любые платформы, получая при этом одинаковый результат, будь это графическая станция или суперкомпьютер. OpenGL освобождает программиста от написания программ для конкретного оборудования. Если устройство поддерживает какую-то функцию, то эта функция выполняется аппаратно, если нет, то библиотека выполняет её программно.Что же представляет из себя OpenGL? С точки зрения программиста OpenGL - это программный интерфейс для графических устройств, таких как графические ускорители. Он включает в себя около 150 различных команд, с помощью которых программист может определять различные объекты и производить рендеринг.

Для интеграции openGL в среду разработки Visual Studio была выбрана свободно распространяемая библиотека OpenTK. Также для отображения текста была использована библиотека TexLib, основанная на OpenTK и также являющаяся свободно распространяемой.

Основные функции OpenTK, использованные в курсовой работе:

1. GL.Clear(ClearBufferMask.ColorBufferBit|ClearBufferMask.DepthBufferit)

Установка режима отображения буфера цветов и глубины.

2. GL.Viewport(0, 0, glControl1.Width, glControl1.Height)

Установка порта вывода.

3. GL.ClearColor(Color.SkyBlue)

Очистка экрана выбранным цветом

. GL.MatrixMode(MatrixMode.Modelview)

Установка матрицы проекций

. GL.LoadIdentity()

Замена текущей матрицы единичной.

6. GL.Ortho(0, resolution.X, resolution.Y, 0, -1, 1)

Настройка ортогональной проекции.

Фукнции библиотеки TexLib:

1. TexUtil.CreateTextureFromFile("F:\\font1.png")

Создание текстуры из файла.

2. texFont.WriteStringAt("A=", 20, 8, resolution.Y -10, 0, resolution)

Рисование текста по указанным координатам

 

1.3 Формирование требований к компоненте

 

Основные функции, которыми должна обладать компонента:

.   Ввод данных

.   Расчет операций

.   Сохранение и воспроизведение данных.

Поскольку одной из целей данной курсовой работы является создание пользовательского элемента управления, то архитектура приложения будет строиться на основе компонентного подхода разработки приложений, что позволяет упростить его в целом, а также обеспечить повторное использование программного кода, разрабатываемой компоненты.

Следовательно, за реализацию всех вышеназванных функций должна будет отвечать разрабатываемая компонента, скрывая от остального приложения подробности работы с матрицами. Вся работа с графикой должна быть выполнена с использованием технологии OpenGL и отображение данных будет производиться с помощью шрифтов, считываемых из bmp файла. Для некоторого дополнительного удобства интерфейс приложения будет реализован с использованием многодокументного интерфейса (MDI). Это позволит пользователю одновременно работать с несколькими операциями для матриц.


 

2. Специальная часть

 

.1 Структура приложения

 

Разрабатываемое приложение будет выполнено с использованием многодокументного интерфейса(MDI). Следовательно, оно будет иметь:

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

.   множество дочерних форм, содержащих компоненту для расчёта матриц.

Поверхностью для расчета матриц является разрабатываемая в данной курсовой работе графическая пользовательская компонента (matrixCalc).

 

 

Родительская и дочерняя форма.

Родительская форма содержит пункты меню:

Добавить форму

Добавляет дочернюю форму с пользовательской компонентой

Расположение: вертикально, горизонтально.

Упорядочивает дочерние окна.

Файл

Открыть (открывает.txt или. mtx)

Сохранить как подразделяется на.txt (сохраняет матрицы в txt файл) и.mtx (сохраняет в двоичный файл)

Пользовательская компонента для расчета матриц

Общее описание компоненты (matrixCalc)

Компонента разделяется на три взаимосвязанных части:

.Меню menustip

.Компонента glControl

.Формы для ввода данных

Meню

С помощью него задается операция и отображается нужная форма.

Пункт:

Операции:

Две матрицы(умножение, сложение, вычитание)

Одна матрица(обратная, транспонирование, определитель)

Компонента glControl

Представляет из себя область для отображения данных.

Формы для ввода данных

Состоит из 3 форм, одна из которых является родительской, остальные 2 формы являются потомками.

Родительская форма(Form1) состоит из 2 числовых полей(myTextBox) и таблицы для ввода данных(myDataGridView), а также кнопки button.

Элемент формы myTextbox является пользовательской компонентой, унаследованной от элемента textbox и является числовым полем, в которое можно вводить только целочисленные значения.

Элемент формы myDataGridView также является пользовательской компонентой, унаследованной от элемента DataGridView и является таблицей, в которую пользователь может вводить только целые числа или числа с плавающей запятой.

Ввод данных осуществлен таким образом: пользователь выбирает операцию, открывается форма, вводит количество строк и столбцов, вводит данные в таблицу, если режим умножение, сложение или вычитание, то после ввода данных и нажатии на клавишу Enter открывается вторая форма и вводятся данные в таблицу для матрицы 2, после нажатии на кнопку OK второй формы происходит расчет операции для введенных матриц и результат отображается на компоненте glControl. Если же выбрана операция для одной матрицы (определитель, обратная, транспонирование) открытие второй формы не происходит, пользователь вводит количество строк и столбцов и нажимает на кнопку OK, после этого производится расчет и отображение. Также производится обработка некорректных значений, о чем пользователь извещается с помощью сообщений.

Основные элементы поля компоненты:

public static List<matrix> matrixList

Список матриц

public static Mode operationMode

Текущая операция

public static Point resolution

Максимальное значение осей x и у

TextureFont texFont

Объект, содержащий в себе шрифты для отображения текста

Дополнительные поля для хранения данных, используемых алгоритмами (loaded, check, det)


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.167 с.