Государственное образовательное учреждение

высшего профессионального образования

Ульяновский Государственный Университет

Факультет Математики и Информационных технологий

Кафедра информационных технологий

КУРСОВАЯ РАБОТА

Программирование действий над матрицами на языке С++.

Прикладная информатика 08.08.01

Проект выполнил студент

Русин Виктор Александрович

Ульяновск

2010 г.


Содержание

Введение

1. Теоретическая часть

1.1 Описание программы, матрицы

1.2 C++

1.3 Microsoft Visual Studio Express

1.4 Стандартная библиотека шаблонов (STL)

1.5 Vector

1.6 Перегрузка операторов

2. Проектирование и этапы разработки

2.1 Постановка задачи

2.2 Средства разработки

2.3 Описание процесса компиляции и запуска программы

3. Реализация

3.1 Структура программы

3.2 Структура класса

Заключение

Литература

Приложение. Исходный код программы. Заголовочные файлы

 


Введение

На сегодняшний день математическое программирование – важная составляющая всего программирования. Большие и сложные вычисления благодаря простым программам становятся простыми.

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

В качестве среды программирования выбрана MS Visual Studio 2008 и язык программирования C++.


1. Теоретическая часть   1.1 Описание программы, матрицы

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

Операции над матрицами

Пусть aij — элементы матрицы A, а bij — элементы матрицы B.

Линейные операции:

Умножение матрицы A на число λ (обозначение: λA) заключается в построении матрицы B, элементы которой получены путём умножения каждого элемента матрицы A на это число, то есть каждый элемент матрицы B равен

bij = λaij

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

cij = aij + bij

A+B=\begin{pmatrix} 2 & 0 & -1\\ 1 & 3 & 0\end{pmatrix}+\begin{pmatrix} 3 & 1 & 0\\ 8 & 2 & 3\end{pmatrix}=\begin{pmatrix}2+3 & 0+1 & -1+0\\1+8 & 3+2 & 0+3\end{pmatrix}=\begin{pmatrix}5 & 1 & -1\\9 & 5 & 3\end{pmatrix}

Вычитание матриц A − B определяется аналогично сложению, это операция нахождения матрицы C, элементы которой


cij = aij - bij

A-B=\begin{pmatrix} 2 & 0 & -1\\ 1 & 3 & 0\end{pmatrix}-\begin{pmatrix} 3 & 1 & 0\\ 8 & 2 & 3\end{pmatrix}=\begin{pmatrix}2-3 & 0-1 & -1-0\\1-8 & 3-2 & 0-3\end{pmatrix}=\begin{pmatrix}-1 & -1 & -1\\-7 & 1 & -3\end{pmatrix}

Сложение и вычитание допускается только для матриц одинакового размера.

Существует нулевая матрица Θ такая, что её прибавление к другой матрице A не изменяет A, то есть

A + Θ = A

Все элементы нулевой матрицы равны нулю.

Умножение матриц (обозначение: AB, реже со знаком умножения A\times B) — есть операция вычисления матрицы C, элементы которой равны сумме произведений элементов в соответствующей строке первого множителя и столбце второго.

\! c_{ij} = \sum^n_{k=1} a_{ik} b_{kj}

В первом множителе должно быть столько же столбцов, сколько строк во втором. Если матрица A имеет размерность m \times n, B — n \times k, то размерность их произведения AB = C есть m \times k.

F L= \begin{pmatrix}  a & d \\  b & e \\  c & f \\ \end{pmatrix}\times \begin{pmatrix}  g & i & k \\  h & j & l \\ \end{pmatrix}=  \begin{pmatrix}  (a \cdot g + d \cdot h) & (a \cdot i + d \cdot j) & (a \cdot k +  d \cdot l)\\  (b \cdot g + e \cdot h) & (b \cdot i + e \cdot j) & (b \cdot k +  e \cdot l)\\  (c \cdot g + f \cdot h) & (c \cdot i + f \cdot j) & (c \cdot k +  f \cdot l)\\ \end{pmatrix}

A B=\begin{pmatrix} 2 & 3\\ 5 & 7\end{pmatrix}\times\begin{pmatrix} -1 & 2\\ -2 & 3\end{pmatrix}=\begin{pmatrix}2 \cdot (-1) + 3 \cdot (-2) & 2 \cdot 2 + 3 \cdot 3\\5 \cdot (-1) + 7 \cdot (-2) & 5 \cdot 2 + 7 \cdot 3\end{pmatrix}=\begin{pmatrix}-8 & 13\\-19 & 31\end{pmatrix}

B A=\begin{pmatrix} -1 & 2\\ -2 & 3\end{pmatrix}\times\begin{pmatrix} 2 & 3\\ 5 & 7\end{pmatrix}=\begin{pmatrix}-1 \cdot 2 + 2 \cdot 5 & -1 \cdot 3 + 2 \cdot 7\\-2 \cdot 2 + 3 \cdot 5 & -2 \cdot 3 + 3 \cdot 7\end{pmatrix}=\begin{pmatrix}8 & 11\\11 & 15\end{pmatrix}


Возводить в степень можно только квадратные матрицы.

Транспонирование матрицы (обозначение: AT) — операция, при которой матрица отражается относительно главной диагонали, то есть

a^T_{ij} = a_{ji}

Если A — матрица размера m \times n, то AT — матрица размера n \times m.

1.2 C++

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

Название «C++» происходит от Си (C), в котором унарный оператор ++ обозначает инкремент переменной.

В 1990-х годах язык стал одним из наиболее широко применяемых языков программирования общего назначения.

При создании C++ стремились сохранить совместимость с языком Си. Большинство программ на Си будут исправно работать и с компилятором C++. C++ имеет синтаксис, основанный на синтаксисе Си.

  1.3 Microsoft Visual Studio Express

Microsoft Visual Studio Express — линейка бесплатных интегрированных сред разработки, облегчённая версия Microsoft Visual Studio, разработанной компанией Microsoft. Согласно утверждению Microsoft, «Express»-редакции предлагают отлаженную, простую в обучении и использовании среду разработки пользователям, не являющимся профессиональными разработчиками ПО, — любителям и студентам. Последняя версия была выпущена 19 ноября 2007, пакет обновления SP1 — 11 августа 2008. С апреля 2009 года Microsoft прекратила поддержку всех предыдущих версий Visual Studio Express. В апреле 2010 выпущена Visual Studio 2010 Express

 


Информация о работе «Программирование действий над матрицами на языке С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 19356
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
16502
1
7

... 2.0Ghz. Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске – порядка 1 Гбайт. 2. Разработка рабочего проекта 2.1 Разработка программы Проект программы содержит три окна: 1. Form1 – главное окно (выполнение операции над матрицами). 2. Form2 – справка о разработчике. Окно Form1. Главное окно программы – Form1 Ниже приведены описание ...

Скачать
21761
0
1

... волна распространяется по матрице по мере того, как обрабатываются входные данные, и затем результаты этой обработки передаются другим процессорам в матрице. АВТОМАТИЗАЦИЯ ПРОЕКТИРОВАНИЯ ЦИФРОВЫХ СБИС НА БАЗЕ МАТРИЦ ВАЙНБЕРГЕРА И ТРАНЗИСТОРНЫХ МАТРИЦВведение. Все большую долю в общем объеме ИС составляют заказные цифровые ИС, выполненные в основном, по МОП-технологии. Сокращение сроков ...

Скачать
235892
25
6

... работе в графическом режиме предназ­начается для обучения студентов младших курсов Санкт-Петербургской государственной Академии аэрокосмического приборостроения навыкам программирования, а именно работе в графическом режиме языка Turbo-Pascal . Для работы с настоящей программой необходимо знание стандарта языка, интегрированной среды и элементарным навыкам работы с персональным компьютером . ...

Скачать
112819
0
0

... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой --------------------------------------------------   Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...

0 комментариев


Наверх