![](/img/CyberPedia.jpg)
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
![]() |
![]() |
5.00
из
|
Заказать работу |
|
|
Анализ предметной области
Матрицей называется прямоугольная таблица из чисел 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!