Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ГЛАВА 1. СОСТОЯНИЕ ИССЛЕДОВАНИЙ И АКТУАЛЬНОСТЬ РАБОТЫ



СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ. 3

ГЛАВА 1. СОСТОЯНИЕ ИССЛЕДОВАНИЙ И АКТУАЛЬНОСТЬ РАБОТЫ.. 4

1.1 Матрица, её история и применение. 4

1.2 Основные операции над матрицами. 5

1.2.1 Сумма матриц. 5

1.2.2 Разность матриц. 6

1.2.3 Произведение матриц. 6

1.2.4 Деление Матриц. 7

1.3 Программы для расчета матриц. 7

1.3.1 Онлайновые матричные калькуляторы.. 7

1.3.2 Программные матричные калькуляторы.. 7

1.4 Цель работы.. 8

Вывод. 8

ГЛАВА 2. ИДЕЯ РЕШЕНИЯ ЗАДАЧИ.. 9

2.1 Способы решения. 9

2.1.1 PHP - Personal Home Page. 9

2.1.2 Delphi 10

2.1.3 C++. 11

2.1.4 C#. 12

2.2 C# как средство для решения задачи. 13

Вывод. 13

 

ГЛАВА 3. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ. 14

3.1 Модуль сложения. 14

3.2 Модуль вычитания. 14

3.3 Модуль умножения. 15

3.4 Модуль определителя. 15

3.5 Модуль обратной матрицы.. 16

3.6 Модуль деления. 16

Вывод. 17

ГЛАВА 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ.. 18

4.1 Модуль сложения размерности 3x3. 18

4.2 Модуль вычитания. 18

4.3 Модуль умножения. 18

4.4 Модуль определителя. 19

4.5 Модуль обратной матрицы.. 20

4.6 Модуль деления. 21

Вывод. 23

ГЛАВА 5. ОЦЕНКА ЭФФЕКТИВНОСТИ.. 24

5.1 Интерфейс программы.. 24

5.2 Руководство пользователя. 24

Вывод. 24

ЗАКЛЮЧЕНИЕ. 25

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 26

 


ВВЕДЕНИЕ

В настоящее время матричное исчисление широко применяется в различных областях математики, механики, теоретической физики, теоретической электротехники и так далее. Впервые матрица появилась еще в древнем Китае. Теория матриц начала своё существование в середине XIX века, огромный вклад в становление и развитие этого раздела науки внесли: Габриэль Крамер, Карл Фридрих Гаусс, Уильям Гамильтон, Артур Кэли, Карл Вейерштрассу, Мари Энмон Камиль Жордан, Фердинанд Георг Фробениус и Джеймс Сильвестр.

Затем, в конце XX и в начале XXI века создавались первые матричные калькуляторы в виде программ для персональных компьютеров, а после 2011 года уже появились первые онлайновые матричные калькуляторы, что дает выбрать пользователю удобный способ работы с матрицами и дает возможность использовать для решения и самопроверки.

Тема курсовой работы является разработка программного обеспечения «Матричный калькулятор», которая предназначена для решения матриц размерностей 2х2 и 3х3 и которую могут применять студенты СФЮК (Сочинский финансово-юридический колледж).

В ходе работы будут рассмотрены четыре способа решения задачи, из которых будет выбрана среда программирования MS Visual Studio 2015 и язык программирования C#. «Матричный калькулятор» будет выполнять операции: сложения, вычитания, умножения, деления, нахождения определителя и обратной матрицы. На каждую операцию будут созданы соответствующие модули, которые будут описаны в виде блок-схем. А также будет описан интерфейс программы и руководство пользователя.


 

ГЛАВА 1. СОСТОЯНИЕ ИССЛЕДОВАНИЙ И АКТУАЛЬНОСТЬ РАБОТЫ

Матрица, её история и применение

Впервые матрицы упоминались ещё в древнем Китае, называясь тогда «волшебным квадратом». Основным применением матриц было решение линейных уравнений. Так же, волшебные квадраты были известны чуть позднее у арабских математиков, примерно тогда появился принцип сложения матриц. После развития теории определителей в конце 17-го века, Габриэль Крамер начал разрабатывать свою теорию в 18-ом столетии и опубликовал «правило Крамера» в 1751 году. Примерно в этом же промежутке времени появился «метод Гаусса». Теория матриц начала своё существование в середине XIX века в работах Уильяма Гамильтона и Артура Кэли. Фундаментальные результаты в теории матриц принадлежат Вейерштрассу, Жордану, Фробениусу. Термин «матрица» ввел Джеймс Сильвестр в 1850 г.

Термин «матрица» имеет много значений. Например, в математике матрицей называется система элементов, имеющая вид прямоугольной таблицы, в программировании матрица – это двумерный массив, в электронике – набор проводников, которые можно замкнуть в точках их пересечений. Покерные фишки также имеют непосредственное отношение к матрице. Фишки для покера изготавливаются из высококачественного композиционного материала, зачастую с металлической сердцевиной. В свою очередь композиционный материал или композит имеет матрицу и включенные в нее армирующие элементы (исключение составляют слоистые композиты).

Матрица в фотографии – это интегральная микросхема (аналоговая или цифро-аналоговая), которая состоит из фотодиодов (светочувствительных элементов). Благодаря светочувствительной матрице происходит преобразование спроецированного на нее оптического изображения в электрический сигнал аналогового типа, а при наличии в составе матрицы АЦП, то преобразование происходит в поток цифровых данных.

Матрица – основной элемент цифровых фотоаппаратов, всех современных видео- и телекамер, фотокамер, встроенных в мобильный телефон и системы видеонаблюдения.

Основное значение термин «матрица» имеет в математике.

Матрица — математический объект, записываемый в виде прямоугольной таблицы элементов кольца или поля (например, целых или комплексных чисел), которая представляет собой совокупность строк и столбцов, на пересечении которых находятся её элементы. Количество строк и столбцов матрицы задают размер матрицы. Хотя исторически рассматривались, например, треугольные матрицы, в настоящее время говорят исключительно о матрицах прямоугольной формы, так как они являются наиболее удобными и общими.

Матрицы широко применяются в математике для компактной записи систем линейных алгебраических или дифференциальных уравнений. В этом случае, количество строк матрицы соответствует числу уравнений, а количество столбцов — количеству неизвестных. В результате решение систем линейных уравнений сводится к операциям над матрицами.

Основные операции над матрицами

Сумма матриц

Суммой двух матриц, например: A и B, имеющих одинаковое количество строк и столбцов, иными словами, одних и тех же порядков m и n называется матрица С=( С[i, j] ) ( i = 1, 2, …m; j = 1, 2, …n ) тех же порядков m и n, элементы C[i, j] которой равны.

C [i, j] = A [i, j] + B [i, j] (i = 1, 2, …, m; j = 1, 2, …, n)

Для обозначения суммы двух матриц используется запись C = A + B. Операция составления суммы матриц называется их сложением

Итак, по определению имеем:

=

=

Рисунок 1.1 Операция суммы

Пример: + =

Разность матриц

Разностью двух матриц A и B одинаковых порядков естественно называется такая матрица C тех же порядков, которая в сумме с матрицей B дает матрицу A. Для обозначения разности двух матриц используется естественная запись: C = A – B.

Пример: - =

Произведение матриц

Произведением матриц A и B будет матрица C такая, что элемент матрицы C, стоящий в i-той строке и j-том столбце (C[i, j]), равен сумме произведений элементов i-той строки матрицы A на соответствующие элементы j-того столбца матрицы B:

C [i, j] =A [i, 1] * B [1, j] + A [i, 2] * B [2, j] + … + A [i, n] * B [n, j]

Для обозначения произведения матрицы A на матрицу B используют запись C = AB.

Пример: * =

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

Деление Матриц

В теории матриц нет понятия «деления матрицы», матрицы можно только умножать. Чтобы «разделить матрицу A на матрицу B » говорят, что нужно умножить на матрицу A, где B-1 – обратная матрица к матрице B.

Цель работы

Разработать программу для проведения основных операций над матрицами размерности 2х2 и 3х3:

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

- Умножение и деление;

- Нахождение определителя;

- Обратная матрица;

Главное отличие этого матричного калькулятора это то, что она будет разработана для студентов СФЮК (Сочинский финансово-юридический колледж), которые в основном проводят операции с матрицами 2х2 и 3х3.

Вывод

В данной главе было рассмотрено:

1. Что собой представляет матрица.

2. Какую роль она играет в математике и в других сферах.

3. Какие наработки уже имеются.

4. С помощью матриц, что будет разработано.

Способы решения

Имеется несколько способов решения – это (PHP, Delphi, C++, C#), которые будут рассмотрены в данной работы.

PHP - Personal Home Page

PHP — это скриптовый язык общего назначения для разработки серверных частей веб-приложений.

Программы, написанные на PHP, исполняются на сервере. Сам движок компилирует текст программы в байт-код, который затем исполняется. Обычно генерация байт-кода происходит каждый раз при запуске скрипта. Современный движок PHP состоит из двух частей: транслятора в байт-код и интерпретатора байт-кода.

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

Достоинства:

- Самая высокая скорость работы скриптов, по сравнению с другими методами;

- Простота работы, сервер сам обрабатывает скрипты;

- Общий конфигурационный файл для всех скриптов (php.ini);

- Возможность задания переменных конфигурации PHP в конфигурационном файле веб-сервера или средствами файла.htaccess;

Недостатки:

- Все скрипты запускаются с правами, с которыми работает web-сервер, тем самым, если есть необходимость записи в какую либо директорию права доступа необходимо дать на нее всем;

- В случае запуска сторонних приложений скриптами (например, почтовая рассылка), нет возможности идентифицировать пользователя, который запустил процесс;

- Излишняя нагрузка на web-сервер, Apache занятый обработкой скриптов может медленно отдавать другие статические данные;

- Ошибки в скриптах могут привести к неработоспособности всего web-сервера;

Delphi

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

Первоначально носил название Object Pascal и исторически восходит к одноимённому диалекту языка, разработанному в фирме Apple в 1986 году группой Ларри Теслера. Однако в настоящее время термин Object Pascal чаще всего употребляется в значении языка среды программирования Delphi. Начиная с Delphi 7, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Достоинства:

- Удобная среда разработки, включающая функциональный отладчик, доступный в любой момент;

- Контекстная справочная система, по которой можно изучать язык без обращения к сторонним источникам;

- Высокая скорость компиляции, высокая скорость выполнения откомпилированных программ;

- Встроенная возможность использовать вставки на языке ассемблера;

Недостатки:

- Больший размер результирующих exe-файлов по сравнению с другими системами разработки;

- Некоторая сложность при использовании Windows API, связанная с необходимостью преобразования между типами данных языков C и Pascal (особенно при использовании строк и указателей);

2.1.3 C++

C++ — это компилируемый, статически типизированный язык программирования общего назначения.

Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

Достоинства:

- Высокая совместимость с языком Си;

- Вычислительная производительность;

- Автоматический вызов деструкторов объектов в адекватном порядке (обратном вызову конструкторов) упрощает и повышает надёжность управления памятью и другими ресурсами;

Недостатки:

- Плохо продуманный синтаксис сужает спектр применимости языка;

- Язык не содержит многих важных возможностей;

- Унаследованные от Си низкоуровневые свойства существенно тормозят и затрудняют прикладную разработку;

2.1.4 C#

C# — объектно-ориентированный язык программирования.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Достоинства:

- Подлинная объектная ориентированность;

- Компонентно-ориентированное программирование;

- Безопасный (по сравнению с языками C и C++) код;

- Унифицированная система типизации;

- Поддержка событийно-ориентированного программирования;

- Объединение лучших идей современных языков программирования (Java, C++, Visual Basic и другие);

Недостатки:

- На компьютере должна быть установлена среда выполнения программ Microsoft.NET Framework;

- Требуется больше оперативной памяти;

- Заметно снижается скорость работы программ;


 

Вывод

В данной главе было рассмотрено:

1. Четыре варианта для разработки программного обеспечения.

2. Что собой эти языки представляют.

3. Их достоинства и недостатки.

4. С помощью какого языка будет осуществлена данная задача.


 

Модуль сложения

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

Начало
A и B
А+В=Х
Ответ: Х
Конец

Рисунок 3.1 Модуль сложения

Модуль вычитания

Модуль вычитания идентичен модулю сложения.

Начало
A и B
А-В=Х
Ответ: Х
Конец

Рисунок 3.2 Модуль вычитания

Модуль умножения

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

Начало
A и B  
А*В=Х
Ответ: Х
Конец

Рисунок 3.3 Модуль вычитания

Модуль определителя

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

Начало
А
Ответ: Х
Конец

Рисунок 3.4 Модуль определителя

Модуль обратной матрицы

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

Начало
А
Ответ: A-1
Конец
если ∆ =0
ДА
*A*T
A*T
НЕТ

Рисунок 3.5 Модуль обратной матрицы

Модуль деления

Модуль деления производится умножением матрицы A на обратную матрицу В-1, то есть сначала находим обратную матрицу B-1, а потом производим умножение B-1 * A.

Начало
A и B
Ответ: X
Конец
если ∆ =0
ДА
*B*T
B*T
НЕТ
А/В=X
A*B-1

Рисунок 3.6 Модуль деления

Вывод

В данной главе было рассмотрено шесть основных модулей программы, их описание и блок-схемы.


 

Модуль вычитания

Вычитание матриц A и B, все идентично модулю сложения

double otvet1 = ma1[0, 0] - mb1[0, 0]; //X11

double otvet2 = ma1[0, 1] - mb1[0, 1]; //X12

double otvet3 = ma1[0, 2] - mb1[0, 2]; //X13

double otvet4 = ma1[1, 0] - mb1[1, 0]; //X21

double otvet5 = ma1[1, 1] - mb1[1, 1]; //X22

double otvet6 = ma1[1, 2] - mb1[1, 2]; //X23

double otvet7 = ma1[2, 0] - mb1[2, 0]; //X31

double otvet8 = ma1[2, 1] - mb1[2, 1]; //X32

double otvet9 = ma1[2, 2] - mb1[2, 2]; //X33

Модуль умножения

Умножение матрицы A на матрицу B, умножение происходит по правилу строчку на столбик.

double otvet1 = ma1[0, 0] * mb1[0, 0] + ma1[0, 1] * mb1[1, 0] + ma1[0, 2] * mb1[2, 0]; //X11

double otvet2 = ma1[0, 0] * mb1[0, 1] + ma1[0, 1] * mb1[1, 1] + ma1[0, 2] * mb1[2, 1]; //X12

double otvet3 = ma1[0, 0] * mb1[0, 2] + ma1[0, 1] * mb1[1, 2] + ma1[0, 2] * mb1[2, 2]; //X13

double otvet4 = ma1[1, 0] * mb1[0, 0] + ma1[1, 1] * mb1[1, 0] + ma1[1, 2] * mb1[2, 0]; //X21

double otvet5 = ma1[1, 0] * mb1[0, 1] + ma1[1, 1] * mb1[1, 1] + ma1[1, 2] * mb1[2, 1]; //X22

double otvet6 = ma1[1, 0] * mb1[0, 2] + ma1[1, 1] * mb1[1, 2] + ma1[1, 2] * mb1[2, 2]; //X23

double otvet7 = ma1[2, 0] * mb1[0, 0] + ma1[2, 1] * mb1[1, 0] + ma1[2, 2] * mb1[2, 0]; //X31

double otvet8 = ma1[2, 0] * mb1[0, 1] + ma1[2, 1] * mb1[1, 1] + ma1[2, 2] * mb1[2, 1]; //X32

double otvet9 = ma1[2, 0] * mb1[0, 2] + ma1[2, 1] * mb1[1, 2] + ma1[2, 2] * mb1[2, 2]; //X33

Модуль определителя

Определитель матрицы A 3х3 методом треугольника.

double ch1 = ma1[0, 0] * ma1[1, 1] * ma1[2, 2]; //произведен. главной диагон.

double ch2 = ma1[0, 1] * ma1[1, 2] * ma1[2, 0]; //произведения 1 треугольника

double ch3 = ma1[1, 0] * ma1[2, 1] * ma1[0, 2]; //произведения 2 треугольника

double ch4 = ma1[0, 2] * ma1[1, 1] * ma1[2, 0]; //произведен. побочной диагон.

double ch5 = ma1[1, 2] * ma1[2, 1] * ma1[0, 0]; //произведения 1 треугольника

double ch6 = ma1[0, 1] * ma1[1, 0] * ma1[2, 2]; //произведения 2 треугольника

double detma1 = ch1 + ch2 + ch3 - ch4 - ch5 - ch6; //ответ


 

Модуль обратной матрицы

Определитель матрицы A 3х3

double ch1 = ma1[0, 0] * ma1[1, 1] * ma1[2, 2];

double ch2 = ma1[0, 1] * ma1[1, 2] * ma1[2, 0];

double ch3 = ma1[1, 0] * ma1[2, 1] * ma1[0, 2];

double ch4 = ma1[0, 2] * ma1[1, 1] * ma1[2, 0];

double ch5 = ma1[1, 2] * ma1[2, 1] * ma1[0, 0];

double ch6 = ma1[0, 1] * ma1[1, 0] * ma1[2, 2];

double detma1 = ch1 + ch2 + ch3 - ch4 - ch5 - ch6;

 

if (detma1 == 0) //Если определитель матрицы A равен 0, то выводится окно сообщение

{

MessageBox.Show(" Определитель матрицы A равен: " + detma1 + ", значит обратной матрицы не существует! ", " Внимание! " );

}

else //Иначе продолжаем действия

{

Получение дополнительных миноров и алгебраических дополнений

double a11 = ma1[1, 1] * ma1[2, 2] - ma1[2, 1] * ma1[1, 2];

double a12 = -(ma1[1, 0] * ma1[2, 2] - ma1[2, 0] * ma1[1, 2]);

double a13 = ma1[1, 0] * ma1[2, 1] - ma1[2, 0] * ma1[1, 1];

double a21 = -(ma1[0, 1] * ma1[2, 2] - ma1[2, 1] * ma1[0, 2]);

double a22 = ma1[0, 0] * ma1[2, 2] - ma1[2, 0] * ma1[0, 2];

double a23 = -(ma1[0, 0] * ma1[2, 1] - ma1[2, 0] * ma1[0, 1]);

double a31 = ma1[0, 1] * ma1[1, 2] - ma1[1, 1] * ma1[0, 2];

double a32 = -(ma1[0, 0] * ma1[1, 2] - ma1[1, 0] * ma1[0, 2]);

double a33 = ma1[0, 0] * ma1[1, 1] - ma1[1, 0] * ma1[0, 1];

double kek = 1 / (Convert.ToDouble(detma1)); //Получаем 1 деленное на определитель

Получение обратной матрицы A

double obr1 = kek * (a11); double obr2 = kek * (a21); double obr3 = kek * (a31);

double obr4 = kek * (a12); double obr5 = kek * (a22); double obr6 = kek * (a32);

double obr7 = kek * (a13); double obr8 = kek * (a23); double obr9 = kek * (a33);

Модуль деления

Определитель матрицы B 3х3

double ch1 = mb1[0, 0] * mb1[1, 1] * mb1[2, 2];

double ch4 = mb1[0, 2] * mb1[1, 1] * mb1[2, 0];

double ch2 = mb1[0, 1] * mb1[1, 2] * mb1[2, 0];

double ch5 = mb1[1, 2] * mb1[2, 1] * mb1[0, 0];

double ch3 = mb1[1, 0] * mb1[2, 1] * mb1[0, 2];

double ch6 = mb1[0, 1] * mb1[1, 0] * mb1[2, 2];

double detmb1 = ch1 + ch2 + ch3 - ch4 - ch5 - ch6;

 

if (detmb1 == 0) // Если определитель матрицы В равен 0, то выводится окно сообщение

{

MessageBox.Show(" Определитель матрицы B равен: " + detmb1 + ", значит обратной матрицы не существует и деление невозможно! ", " Внимание! " );

}

else //Иначе продолжаем действия

{

Получение дополнительных миноров и алгебраических дополнений

double b11 = mb1[1, 1] * mb1[2, 2] - mb1[2, 1] * mb1[1, 2];

double b12 = -(mb1[1, 0] * mb1[2, 2] - mb1[2, 0] * mb1[1, 2]);

double b13 = mb1[1, 0] * mb1[2, 1] - mb1[2, 0] * mb1[1, 1];

double b21 = -(mb1[0, 1] * mb1[2, 2] - mb1[2, 1] * mb1[0, 2]);

double b22 = mb1[0, 0] * mb1[2, 2] - mb1[2, 0] * mb1[0, 2];

double b23 = -(mb1[0, 0] * mb1[2, 1] - mb1[2, 0] * mb1[0, 1]);

double b31 = mb1[0, 1] * mb1[1, 2] - mb1[1, 1] * mb1[0, 2];

double b32 = -(mb1[0, 0] * mb1[1, 2] - mb1[1, 0] * mb1[0, 2]);

double b33 = mb1[0, 0] * mb1[1, 1] - mb1[1, 0] * mb1[0, 1];

double kek = 1 / (Convert.ToDouble(detmb1)); //Получаем 1 деленное на определитель

 

Получение обратной матрицы B 3х3

double obr1 = kek * (b11); double obr2 = kek * (b21); double obr3 = kek * (b31);

double obr4 = kek * (b12); double obr5 = kek * (b22); double obr6 = kek * (b32);

double obr7 = kek * (b13); double obr8 = kek * (b23); double obr9 = kek * (b33);

 

Присваиваем значения буферной матрице

textBox44.Text = obr1.ToString();

textBox45.Text = obr2.ToString();

textBox46.Text = obr3.ToString();

textBox47.Text = obr4.ToString();

textBox48.Text = obr5.ToString();

textBox49.Text = obr6.ToString();

textBox50.Text = obr7.ToString();

textBox51.Text = obr8.ToString();

textBox52.Text = obr9.ToString();

 

Буферная матрица 3х3

bufer2[0, 0] = double.Parse(textBox44.Text);

bufer2[0, 1] = double.Parse(textBox45.Text);

bufer2[0, 2] = double.Parse(textBox46.Text);

bufer2[1, 0] = double.Parse(textBox47.Text);

bufer2[1, 1] = double.Parse(textBox48.Text);

bufer2[1, 2] = double.Parse(textBox49.Text);

bufer2[2, 0] = double.Parse(textBox50.Text);

bufer2[2, 1] = double.Parse(textBox51.Text);

bufer2[2, 2] = double.Parse(textBox52.Text);

}

Умножение матрицы A на обратную матрицу В-1

double otvet1 = ma1[0, 0] * bufer2[0, 0] + ma1[0, 1] * bufer2[1, 0] + ma1[0, 2] * bufer2[2, 0];

double otvet2 = ma1[0, 0] * bufer2[0, 1] + ma1[0, 1] * bufer2[1, 1] + ma1[0, 2] * bufer2[2, 1];

double otvet3 = ma1[0, 0] * bufer2[0, 2] + ma1[0, 1] * bufer2[1, 2] + ma1[0, 2] * bufer2[2, 2];

double otvet4 = ma1[1, 0] * bufer2[0, 0] + ma1[1, 1] * bufer2[1, 0] + ma1[1, 2] * bufer2[2, 0];

double otvet5 = ma1[1, 0] * bufer2[0, 1] + ma1[1, 1] * bufer2[1, 1] + ma1[1, 2] * bufer2[2, 1];

double otvet6 = ma1[1, 0] * bufer2[0, 2] + ma1[1, 1] * bufer2[1, 2] + ma1[1, 2] * bufer2[2, 2];

double otvet7 = ma1[2, 0] * bufer2[0, 0] + ma1[2, 1] * bufer2[1, 0] + ma1[2, 2] * bufer2[2, 0];

double otvet8 = ma1[2, 0] * bufer2[0, 1] + ma1[2, 1] * bufer2[1, 1] + ma1[2, 2] * bufer2[2, 1];

double otvet9 = ma1[2, 0] * bufer2[0, 2] + ma1[2, 1] * bufer2[1, 2] + ma1[2, 2] * bufer2[2, 2];

Вывод

В данной главе было рассмотрено программный код шести модулей с их описанием.


 

Интерфейс программы

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

Интерфейс программы разделен на две панели, то есть для работы с матрицами 2х2 и 3х3. У каждой матрицы можно отдельно найти определитель или обратную матрицу. Матрицы «Ответ» выключено редактирование, чтобы избежать ошибок.

Рисунок 5.1 Интерфейс программы

Руководство пользователя

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

Вывод

В данной главе был рассмотрен интерфейс программы и руководство.

ЗАКЛЮЧЕНИЕ

В ходе курсовой работы было рассмотрено, что такое матрица, как и кем, была создана. Было описано, где применяется, основные операции, программы, имеющиеся на сегодняшний день и цели работы. Рассмотрены четыре способа решения данной задачи, и каким способом будет решена эта задача. В качестве средства была выбрана среда программирования MS Visual Studio 2015 и язык программирования C#. А также были описаны шесть модулей программы в виде блок-схем и программного кода. В конце данной работы был описан интерфейс программы и руководство пользователя.

В результате данной работы было получено работоспособное программное обеспечение «Матричный калькулятор», которое планировалось вначале данной работы. Теперь программа выполняет все функции, которые упоминались в цели работы. Данное программное обеспечение могут использовать студенты СФЮК для решения своих задач.

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ. 3

ГЛАВА 1. СОСТОЯНИЕ ИССЛЕДОВАНИЙ И АКТУАЛЬНОСТЬ РАБОТЫ.. 4

1.1 Матрица, её история и применение. 4

1.2 Основные операции над матрицами. 5

1.2.1 Сумма матриц. 5

1.2.2 Разность матриц. 6

1.2.3 Произведение матриц. 6

1.2.4 Деление Матриц. 7

1.3 Программы для расчета матриц. 7

1.3.1 Онлайновые матричные калькуляторы.. 7

1.3.2 Программные матричные калькуляторы.. 7

1.4 Цель работы.. 8

Вывод. 8

ГЛАВА 2. ИДЕЯ РЕШЕНИЯ ЗАДАЧИ.. 9

2.1 Способы решения. 9

2.1.1 PHP - Personal Home Page. 9

2.1.2 Delphi 10

2.1.3 C++. 11

2.1.4 C#. 12

2.2 C# как средство для решения задачи. 13

Вывод. 13

 

ГЛАВА 3. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ. 14

3.1 Модуль сложения. 14

3.2 Модуль вычитания. 14

3.3 Модуль умножения. 15

3.4 Модуль определителя. 15

3.5 Модуль обратной матрицы.. 16

3.6 Модуль деления. 16

Вывод. 17

ГЛАВА 4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ.. 18

4.1 Модуль сложения размерности 3x3. 18

4.2 Модуль вычитания. 18

4.3 Модуль умножения. 18

4.4 Модуль определителя. 19

4.5 Модуль обратной матрицы.. 20

4.6 Модуль деления. 21

Вывод. 23

ГЛАВА 5. ОЦЕНКА ЭФФЕКТИВНОСТИ.. 24

5.1 Интерфейс программы.. 24

5.2 Руководство пользователя. 24

Вывод. 24

ЗАКЛЮЧЕНИЕ. 25

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 26

 


ВВЕДЕНИЕ

В настоящее время матричное исчисление широко применяется в различных областях математики, механики, теоретической физики, теоретической электротехники и так далее. Впервые матрица появилась еще в древнем Китае. Теория матриц начала своё существование в середине XIX века, огромный вклад в становление и развитие этого раздела науки внесли: Габриэль Крамер, Карл Фридрих Гаусс, Уильям Гамильтон, Артур Кэли, Карл Вейерштрассу, Мари Энмон Камиль Жордан, Фердинанд Георг Фробениус и Джеймс Сильвестр.

Затем, в конце XX и в начале XXI века создавались первые матричные калькуляторы в виде программ для персональных компьютеров, а после 2011 года уже появились первые онлайновые матричные калькуляторы, что дает выбрать пользователю удобный способ работы с матрицами и дает возможность использовать для решения и самопроверки.

Тема курсовой работы является разработка программного обеспечения «Матричный калькулятор», которая предназначена для решения матриц размерностей 2х2 и 3х3 и которую могут применять студенты СФЮК (Сочинский финансово-юридический колледж).

В ходе работы будут рассмотрены четыре способа решения задачи, из которых будет выбрана среда программирования MS Visual Studio 2015 и язык программирования C#. «Матричный калькулятор» будет выполнять операции: сложения, вычитания, умножения, деления, нахождения определителя и обратной матрицы. На каждую операцию будут созданы соответствующие модули, которые будут описаны в виде блок-схем. А также будет описан интерфейс программы и руководство пользователя.


 

ГЛАВА 1. СОСТОЯНИЕ ИССЛЕДОВАНИЙ И АКТУАЛЬНОСТЬ РАБОТЫ


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 963; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.237 с.)
Главная | Случайная страница | Обратная связь