47341 (Калькулятор для матриць)

2016-07-30СтудИзба

Описание файла

Документ из архива "Калькулятор для матриць", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47341"

Текст из документа "47341"

Міністерство освіти та науки України

Одеський національний політехнічний університет

Кафедра прикладної математики

Курсова робота

з дисципліни: «Програмування»

тема: «Калькулятор для матриць»

Одеса – 200

План

Вступ

1. Теоретичні відомості

2. Постановка задачі

3. Опис алгоритму

4. Опис програми

5. Лістинг програми

6 . Висновок

7.Використана література

Вступ

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

Результати цих досліджень необхідні практично в будь-якій області математики – будь це диференціальні рівняння, теорія ймовірностей і статистика чи теорія оптимізації – і практично у всіх додатках – назвемо хоча б додатки до теоретичної та прикладної економіки, інженерних дисциплін чи дослідження операцій.

Матриці являються особливим абстрактним класом, за допомогою якого розв’язується безліч задач комбінаторики та інших розділів математики, саме тому їхнє вивчення продовжується і нині. З іншого боку, матриці – вельми специфічна структура з неочевидними властивостями, які є важливими і корисними при розробці алгоритмів для розв’зання систем лінійних алгебраїчних рівнянь.

Теоретичні відомості

Квадратною матрицею будемо називати квадратну таблицю, що складається з чисел або алгебраїчних виразів, які розташовані в n – рядках та n – стовпцях, n – називається порядком квадратної матриці.

A =

Якщо порядок матриці n дорівнює одиниці, то ця матриця складається з одного елемента і визначником першого порядку , який відповідає такій матриці, ми назвемо величину цього елемента .

Головною діагоналлю матриці А називається діагональ , яка іде з лівого верхнього кута цієї матриці у правий нижній її кут .

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

Визначником другого порядку матриці називається число або алгебраїчний вираз, що дорівнює різниці добутку елементів головної діагоналі матриці та добутку елементів її побічної діагоналі .

Мінором будь - якого елемента матриці n - го порядку називається визначник порядку n-1, що складається з матриці А, які залишаються після вилучення i -того рядка та j - того стопця на перехресті яких цей елемент знаходиться . Мінор елемента будемо позначати .

Визначником порядку n матриці А , назвемо число , яке дорівнює , позначимо його символом

Δ = det А = = .

Алгебраїчним доповненням будь - якого елемента матриці А, називається його мінор, якщо сума номерів рядка та стовпця, в яких цей елемент знаходиться - парна і, мінор, що береться з протилежним знаком, якщо ця сума непарна .

Добутком матриці А = (n - го порядку) на дійсне число λ, називається інша матриця С тих же розмірів С = , елементи якої дорівнюють добуткам числа λ на відповідні елементи матриці А, тобто

= λ .

Сумою матриць А = і В = однакових розмірів, називається третя матриця С = тих же розмірів, елементи якої дорівнюють сумі відповідних елементів матриць А і В : = .

Різницею матриць А і В однакових розмірів, називається третя матриця С = тих же розмірів, яка в сумі з матрицею В дає А .

Добутком матиці А = на матрицю В = , називається третя матриця С = , кожен елемент якої дорівнює сумі добутків елементів відповідного (k - того) рядка матриці А на елементи відповідного (l - того) стовпця матриці В, тобто

.

Матриця називається транспонованою, якщо її рядки та стовпці переставити місцями і позначається А .

Квадратна матриця А називається оберненою до квадратної матриці А, якщо А *А = А *А = Е , де Е - одинична матриця.

Елементи матриці А обчислюються за формулою: А , де матриця С складається з алгебраїчних доповнень відповідних елементів матриці А.

Нормою квадратної матриці А, називається число, яке є сумою модулів елементів матриці А, тобто .

Слідом квадратної матриці будемо називати число, яке є сумою елементів цієї матриці, розташованих на головній діагоналі ( ) .

Числом обумовленості квадратної матриці А називається величина

Постановка задачі

Ціль роботи – продемонструвати можливості використання калькулятора для матриць.

Мета роботи – створення програми за допомогою якої можна розв’язувати деякі задачі лінійної алгебри.

Опис алгоритму

Алгоритм створення програми полягає у наступному :

Спочатку створюємо вікно форми, потім додаємо текстові вікна у які з клавіатури вводимо дані. Далі додаємо кнопки , кожна з яких відповідає за одну дію чи операцію над матрицями. Також додатково створюємо контекстне меню, пункти якого виконують ті ж функції, що і кнопки на формі. Результат виводиться у відповідне текстове вікно.

Опис програми

Точка входу в саму програму знаходиться таким чином: відкриваємо папку MATRIXcalculator, запускаємо файл nn.sln , у вікні зліва обираємо папку Header Files і файл Form1.h, з’являється вікно форми, де з клавіатури вводять розмірність матриці, елементи матриць, над якими необхідно виконати відповідні дії, далі можемо або натиснути кнопку безпосередньо у вікні форми або в меню Operations обрати відповідний пункт меню, чи за допомогою комбінації так званих „гарячих клавіш”. Кінцевий результат виводиться у текстовому вікні.

Запуск програми на виконання здійснюємо за допомогою комбінації клавіш Ctrl + F5.

Програма використовує ряд функцій :

void GET_ARRAY(String *text,double **X,int n)

за допомогою даної функції отримуємо масиви – поки симол не є розширеним символьним типом і не є переходом на нову строку, нарощуємо лічильник; далі виділяємо у строці підстроку і перетворюємо її на дійсне число подвійної точності (тип double).

double DET(double **X,int n)

- ця функція обчислює визначник матриці.

Функція double DET(double **X,int n)

повертає алгебраїчні доповнення елементів масива.

void TRANSP_ARRAY(double **X,int n)

- транспонує елементи двомірного масива:

перший елемент залишає на своєму місці, а далі іде по рядках, переставляючи елементи рядків і стовпців місцями.

double TRACE(double **X,int n)

- повертає значення сліду матриці.

Функція працює таким чином:

Крокуючи елементами матриці, перевіряє: якщо індекс рядка та стовпця співпадають (це елементи головної діагоналі), присвоюємо значення першого елемента головної діагоналі деякій змінній, на наступному кроці, якщо елемент задовольняє вище названій умові, додаємо до сталої наступний елемент головної діагоналі і так далі (поки індекс не буде дорівнювати порядку матриці) .

Функція String* CNV_ARRAY(double **X,int n) необхідна для того, щоб після виконання дій (операцій) над матрицями отриманий результат перетворити на строку. Повертає строку .

Cловник понять використаних в програмі:

Button – кнопка .

Label – надпис .

TextBox – текстове вікно .

Length – розмір, довжина масиву .

MainMenu – головне меню .

MenuItem – пункт меню .

Лістинг програми

#pragma once

namespace nn

{

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

///

/// Summary for Form1

///

/// WARNING: If you change the name of this class, you will need to change the

/// 'Resource File Name' property for the managed resource compiler tool

/// associated with all .resx files this class depends on. Otherwise,

/// the designers will not be able to interact properly with localized

/// resources associated with this form.

///

public __gc class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

}

protected:

void Dispose(Boolean disposing)

{

if (disposing && components)

{

components->Dispose();

}

__super::Dispose(disposing);

}

private: System::Windows::Forms::Label * label1;

private: System::Windows::Forms::Label * label2;

private: System::Windows::Forms::Label * label3;

private: System::Windows::Forms::Label * label4;

private: System::Windows::Forms::Label * label5;

private: System::Windows::Forms::Label * label6;

private: System::Windows::Forms::TextBox * textBox1;

private: System::Windows::Forms::TextBox * textBox2;

private: System::Windows::Forms::TextBox * textBox3;

private: System::Windows::Forms::TextBox * textBox4;

private: System::Windows::Forms::TextBox * textBox5;

private: System::Windows::Forms::TextBox * textBox6;

private: System::Windows::Forms::Button * button1;

private: System::Windows::Forms::Button * button2;

private: System::Windows::Forms::Button * button3;

private: System::Windows::Forms::Button * button4;

private: System::Windows::Forms::Button * button5;

private: System::Windows::Forms::Button * button6;

private: System::Windows::Forms::Button * button7;

private: System::Windows::Forms::Button * button8;

private: System::Windows::Forms::MainMenu * mainMenu1;

private: System::Windows::Forms::MenuItem * menuItem1;

private: System::Windows::Forms::MenuItem * menuItem2;

private: System::Windows::Forms::MenuItem * menuItem3;

private: System::Windows::Forms::MenuItem * menuItem4;

private: System::Windows::Forms::MenuItem * menuItem5;

private: System::Windows::Forms::MenuItem * menuItem6;

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее