Разработка класса "Матрица"

Изучение особенностей понятия матрица. Рассмотрение областей применения матричного аппарата. Исследование аспектов структуры данных. Характеристики класса Матрица. Основы разработки алгоритма для осуществления функций вычитания, умножения и суммирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.02.2014
Размер файла 47,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Тверской государственный технический университет

Кафедра программного обеспечения

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

на тему: "Разработка класса "Матрица"

Выполнил студент ИДПО ИСТ 236

Божков Дмитрий Игоревич

Проверил Мальков Александр Анатольевич

Тверь 2014 год

Содержание

Введение

1. Требования к курсовой работе

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

2.1 Основные термины и положения ООП

2.2 Структура данных

2.3 Характеристики класса Матрица

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

3. Разработка алгоритма

4. Реализация проекта

Заключение

Список литературы

матрица алгоритм суммирование

Введение

Понятие Матрица в европейской науке было введено в работах У. Гамильтона и А. Кэли в середине XIX века.

Матричные обозначения широко распространены в современной математике и её приложениях. Матрица - полезный аппарат для исследования многих задач теоретической и прикладной математики. Так, одной из важнейших является задача нахождения решения систем линейных алгебраических уравнений.

Следствием разнообразия областей применения матричного аппарата в современной науке является наличие в любом из больших математических программных комплексов (Mathcad, Mathematica, Derive, Mapple) подсистем, выполняющих операции над матрицами, а также существование специальных программных библиотек (ScalaPack, PlaPack), рассчитанных на обработку огромных (десятки и сотни тысяч строк) матриц, в том числе с использованием распределенных (параллельных) вычислений.

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

1. Требования к курсовой работе

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

Реализовать консольное приложение, демонстрирующее работоспособность разработанного класса.

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

2.1 Основные термины и положения ООП

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

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

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

Множество объектов с одинаковым набором свойств и поведением называется классом.

Инкапсуляция данных

Этот термин включает в себя логическое связывание данных с конкретной операцией. Она так же означает, что они являются не -глобальными доступными всей программе, а локальными - доступными только малой ее части. Инкапсуляция также автоматически подразумевает защиту данных. Именно для этого предназначена структура class в С++. В классе управление функциональными деталями объекта осуществляется при помощи спецификаторов private, public, protected. Для создания объектов класса служат специальные методы, которые называют конструкторами. Они необходимы для корректной инициализации объекта. Например, при создании матрицы заданных размеров конструктор должен выделить память для хранения элементов этой матрицы. Уничтожением объекта также занимается специальный метод класса, который называют деструктором. Его задача - освободить ресурсы, занимаемые объектом (закрыть используемые файлы, соединения с базами данных и пр.). Одним из принципов объектно-ориентированного программирования (ООП) - инкапсуляция. Этот термин характеризует сокрытие отдельных деталей внутреннего устройства класса от внешних по отношению к нему объектов или пользователей.

Класс «Матрица» (Matrix) содержит переменные, доступ к которым может быть осуществлен только из методов класса. Такой подход используется для того, чтобы защитить переменные от несанкционированного доступа. Например, если дать возможность программисту, который будет работать с объектом класса Matrix, изменять напрямую значения переменных для хранения размера матрицы, то эти значения могут стать некорректными (отрицательными, очень большими, или не соответствующими действительным размерам). А, выполняя то же самое с помощью методов класса, можно включить в них проверку корректности введенных значений. Для нашего класса таким методом может быть метод ввода матрицы.

Иерархия классов

В общем случае можно представить себе иерархию классов как родословную в генеалогическом древе, где класс С++ представляет собой шаблон для создания классов-потомков. Объекты, полученные из описания класса, называют экземплярами этого класса. Можно создать иерархию классов с классом-родителем и несколькими классами-потомками. Основой для этого являются производные классы.

Наследование

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

Полиморфизм

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

Виртуальные функции

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

Конструктор вызывается каждый раз, когда создается объект его класса. Задача конструктора в данном случае состоит в связывании виртуальной функции с таблицей адресной информации. Во время компиляции адрес виртуальной функции неизвестен; вместо этого ей отводится позиция в таблице адресов. Эта позиция будет содержать адрес функции [5].

Помимо структурных характеристик класса сокрытию подлежит и реализация операций класса. Для пользователя нет необходимости знать, как реализован тот или иной метод. Надо знать только то, что метод выполняет, как к нему обратиться и как воспользоваться результатом его работы. Например, определитель квадратной матрицы можно вычислить различными способами: методом исключений Гаусса или по формуле Лапласа - разложение по строке или столбцу. Для пользователя не имеет значения, какой алгоритм заложен в методе класса.

2.2 Структура данных

Как известно, Структура данных есть модель данных в виде Математической структуры

S = (M1, …, Mk, p1,…,pn).

В соответствии с этим можно привести следующие определения:

Структура данных Матрицы

A = (aij),

где i = 1..n; j = 1..n есть

Sa = (Ma, p1a, p2a),

Где Ma = {a11, a12, …, ann-1,ann} - базисное множество,

- отношения следования.

Для структуры данных Матрица предлагается реализовать следующие операции:

сравнение:

сложение/вычитание матриц:

умножение матриц.

Пусть aij -- элементы матрицы A, а bij -- элементы матрицы B. Линейные операции:

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

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

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

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

Основные характеристики матриц:

-количество строк

-количество столбцов

-массив элементов

2.3 Характеристики класса Матрица

Класс имеет приватные и общедоступные члены-данные и члены-функции (методы). Для хранения компонентов матрицы используется одномерный динамический массив элементов типа параметра шаблона. Для создания объекта предусмотрены три конструктора: конструктор по умолчанию, конструктор с параметрами, конструктор копирования и деструктор. Для выполнения множества матричных операций созданы перегруженные операции: присваивания (=), сложения (+), вычитания (-), умножения(*) и т.п. На базе операторов ввода/вывода С++ разработаны функции ввода матриц из потока и вывода их в поток, предусматривающие в случае файлового ввода/вывода как текстовую форму хранения, так и бинарную.

Доступ к членам-данным класса - числу строк и столбцов матрицы осуществляется с помощью методов size_row( ) и size_col( ). Для доступа к элементам матрицы создан перегруженный оператор вызова функции operator( ) (dim x, dim x), где dim - переопределенный тип unsigned char. Вызов функции используется как оператор индексирования, принимающий два аргумента. Аналогично создан оператор вызова функции с одним аргументом operator( ) (dim x). Для данного класса - это очень важные перегруженные операторы, т.к. они используются во всех функциях и операторах, в которых происходит обращение к элементам матрицы.

Описание функций, конструкторов и деструкторов класса:

Конструктор по умолчанию Matrix( ):

Конструктор по умолчанию создает матрицу нулевого

размера. В дальнейшем размер этой матрицы можно изменить с помощью функции newsize(i, j).

Конструктор с параметрами Matrix(dim, dim=1):

Это обычный конструктор с параметрами, который принимает в качестве параметров размеры матрицы и создает одномерный динамический массив размером m*n, где m - число строк, а n - число столбцов матрицы. С целью возможности использовать его для создания векторов, второй параметр конструктора задан как умалчиваемый со значением 1. Для первоначальной “инициализации” элементов матрицы нулями используется функция setmem( ).

Конструктор копирования Matrix(const Matrix &):

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

Деструктор ~Matrix( ):

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

Функция операции присваивания "=" Matrix& operator= (Matrix&):

Данная функция сравнивает адрес передаваемого по ссылке объекта с адресом собственного класса, чтобы не предпринялась попытка присвоит объект самому себе. После этого создается новый массив с числом элементов, равным числу элементов массива принимаемого по ссылке, и в этот массив заносится содержимое принимаемого массива. Возвращается разыменованный указатель this (return *this;).

Функции операций суммирования, вычитания, умножения матриц и умножения матрицы на число:

Эти функции реализованы как дружественные функции и алгоритмы этих функций аналогичны по своему составу. Общий вид прототипа этих функций: friend Matrix operator @(const Matrix&, const Matrix&). Применение дружественных функций в данном случае целесообразно для того, чтобы иметь возможность передавать в оператор функцию объекты в любой последовательности. В этих операторах-функциях вначале создается временный объект типа матрица (с помощью конструктора копирования), в который копируется первая матрица и который при выходе из функции является возвращаемым объектом. Затем эта матрица суммируется (вычитается, умножается) с матрицей, стоящей после знака оператора по соответствующим правилам матричных операций. При этом для доступа к элементам матрицы и индексирования используются перегруженные операторы вызова функции operator( ) (dim x, dim x) и operator( ) (dim x).

Функция - оператор Matrix operator^ (int):

Этот оператор-функция реализован как член класса и предназначен для возведения матрицы в степень. В случае, когда значение входного параметра равно минус единице осуществляется вызов функции вычисления обратной матрицы методом преобразований Гаусса, для чего разработана отдельная функция Matrix & Gauss(dim, dim). Таким образом, использование этого оператора позволяет решать систему линейных алгебраических уравнений в представлении X = (A^-1)*B, где X и B -вектора неизвестных и правых частей соответственно.

Функция - оператор Matrix operator ! ( ):

Оператор для определения транспонированной матрицы.

Функция - оператор friend VARTYPE operator %(const Matrix&, const Matrix&):

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

Функции-члены VARTYPE determ( ) и VARTYPE vmodule( ):

Первая функция вычисляет определитель собственного объекта (матрицы). При этом используются функция Matrix & Gauss(dim, dim). Функция VARTYPE vmodule( ) вычисляет длину (модуль) вектора

Функция операции вывода friend ostream& operator<<(ostream&, Matrix&):

Данная функция не может быть членом класса, поэтому чтобы иметь доступ к приватным элементам класса, она объявлена "дружественной" функцией. Она имеет два параметра: ссылку на поток, который находится слева от знака операции <<, и ссылку на объект, который находится слева от знака операции, данные этого объекта и будут выводиться. Затем следует форматированный вывод в поток всех элементов массива и возвращается поток. Если требуется вывести данные в файл, нужно открыть его присоединением к потоку ofstream.

Функция операции ввода friend istream& operator>>(istream&, Matrix&):

Так же как и предыдущая, данная функция не может быть членом класса, а поэтому для доступа к приватным элементам класса объявлена "дружественной" функцией класса. Она так же имеет два параметра: ссылку на поток, который находится слева от знака >>, и ссылку объект, который находится слева от знака операции, в него и будут вводиться данные из потока. Затем следует ввод данных из потока в элементы массива и возвращается поток. Для ввода данных из файла, нужно открыть его присоединением к потоку ifstream.

Функции-члены dim write(ofstream&) и dim read(ifstream&):

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

Функция void ERROR_MATRIX(dim):

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

реализация конструкторов и деструктора;

реализация методов ввода/вывода;

объявление матрицы в программе тестирования, вызов метода вывода матрицы, запуск тестирующей программы;

создание интерфейсного приложения

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

Задача заключается в создании динамического класса для работы с матрицами.

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

Интерфейс.

Интерфейс представлен примитивным меню в котором пользователь выбирает действие. При не открытии одного из файлов выводится ошибка, при успешное выполнение выводится сообщение об успехе.

3. Разработка алгоритма

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

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

Алгоритм работы программы заключается в следующем:

1) Ввод размерности матрицы m1a и значений её элементов

2) Ввод размерности матрицы m2a и значений её элементов

3) Складываем матрицы (m1a+m2a)

4)Вычитаем матрицы (m1a-m2a)

5)Умножаем матрицы (m1a*m2a)

4. Реализация проекта

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

Свою программу я буду писать в среде Microsoft Visual Studio Express 2013.

Microsoft Visual Studio - это новая разработка компании Microsoft, позволяющая создавать приложения, работающие на платформе .net. Особенность этой платформы заключается в широком наборе сервисов, которые доступны в различных языках программирования. При этом сервисы реализуются в виде промежуточного кода, который не зависит от базовой архитектуры. Едва ли не главной целью создания такой платформы было оснащение разработчиков специальными сервисно-ориентированными приложениями, которые могли бы работать на любой платформе, начиная от персонального компьютера и заканчивая мобильным устройством.

Microsoft Visual Studio объединяет в себе огромное количество функций, позволяющих осуществлять разработки для Windows всех версий, в том числе и 8, Интернета, SharePoint, различных мобильных устройств и облачных технологий. В Visual Studio реализуется новая среда разработчика, благодаря которой создавать приложения стало проще. Microsoft Visual Studio - это обновленная и упрощенная программная среда, для которой характерна высокая производительность, причем она не зависит от особенностей оборудования.

Каждая новая версия программы состоит из новейших инструментов и технологий, позволяющих разрабатывать приложения с учетом особенностей и положительных моментов современных платформ. Например, Visual Studio 2012 может поддерживать более ранние версии, в том числе Windows XP и Windows Server 2003. При этом разработчикам открыта дорога к созданию новых и модернизации уже существующих приложений, предназначенных для ранних версий ОС Windows. Стоит отметить, что в процессе использования поддерживаемых системой вариантов исходные файлы, проекты и решения в программе Visual Studio будут работоспособными, но исходный код может нуждаться в изменениях.

Visual Studio Ultimate 2012 представляет собой передовую программу, которая дает возможность любым по размеру командам осуществлять проектирование и создание привлекательных приложений. Благодаря инструментам гибкого планирования можно внедрять методы последовательной разработки и применяться гибкие методологии в темпе, удобном для пользователя.

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

C# (произносится си шарп) -- объектно-ориентированный язык программирования. Разработан в 1998--2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

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

Название «Си шарп» (от англ. sharp - диез) происходит от музыкальной нотации, где знак диез, прибавляемый к основному обозначению ноты, означает повышение соответствующего этой ноте звука на полутон, что аналогично названию языка C++, где «++» обозначает инкремент переменной.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int N = 5;

Random r = new Random();

int[,] A = new int[5, 5];

int iNumbersCount = 100;

int[] aNumbers = new int[iNumbersCount];

for (int i = 0; i < aNumbers.Length; i++)

aNumbers[i] = i;

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

int iIndex = r.Next(iNumbersCount);

A[i, j] = aNumbers[iIndex];

aNumbers[iIndex] = aNumbers[iNumbersCount - 1];

iNumbersCount--;

Console.Write(" \t " + A[i, j]);

}

}

Console.WriteLine();

int iMax = 1; int jMax = 1;

// проход по главной диагонали

for (int i = 0; i < N; i++)

{

if (A[i, i] > A[iMax, jMax])

{

iMax = i; jMax = i;

}

}

// проход по побочной диагонали

for (int i = 0; i < N; i++)

{

if (A[i, N - 1 - i] > A[iMax, jMax])

{

iMax = i; jMax = N - 1 - i;

}

Console.ReadKey();

}

}

}

}

Заключение

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

В процессе выполнения курсовой работы было выполнено:

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

- разработка алгоритма разрабатываемой программы;

- разработка программы и пользовательского интерфейса;

- произведена отладка программы.

Список литературы

1. Герберт Шилдт.C#4.0 полное руководство.: -М.: .ооо"И.Д.Вильямс", 2011.- 1056с

2. Эндрю Троелсен. C# и платформа NET 3.0.; ООО" И.Д.Вильямс", 2011.- 1392с

3. Беллман Р. Введение в теорию матриц. - М.: Мир, 1969.

4. Нейгег К., Ивьен Б., Глинн Дж., Уотсон К. C# 4.0 и платформа .NET 4 для профессионалов.: -М.: Диалектика, 2011.-1440

5. Вирт, Н. Алгоритмы и структуры данных [Текст]: пер. с англ. / Никлаус Вирт. - СПб: Невский Диалект, 2008. - 352 с.

6. Иан Грэхем. Объектно-ориентированные методы. Принципы и практика. -- 3-е изд. -- М.: «Вильямс», 2004. -- С. 880.

Размещено на Allbest.ru


Подобные документы

  • Этапы реализации класса "вещественная матрица", позволяющего осуществлять основные операции с вещественными прямоугольными и транспонированными матрицами. Листинг программы, которая реализует тип данных "вещественная матрица" и принципы работы с ними.

    лабораторная работа [85,6 K], добавлен 07.05.2011

  • Создание приложения на языке C Windows Form. Характеристика особенностей интерфейса GDI+. Композиция преобразований. Матрица A, поворот на 90 градусов. Матрица B, масштабирование по оси X с коэффициентом 2. Матрица C, сдвиг на три единицы по оси Y.

    лабораторная работа [88,8 K], добавлен 12.06.2015

  • Ортонормированная матрица – матрица, столбцы и строки которой образуют системы ортонормированных векторов. Решения задачи для матрицы, которая является и не является ортонормированной. Разработка структур данных и алгоритмов. Код программы на языке С++.

    курсовая работа [429,1 K], добавлен 09.03.2012

  • Основные типы модулей, использующиеся в среде программирования Delphi 6. Концепция объектно-ориентированного программирования. Разработка эскизного и технического проектов программы. Алгоритм выполнения операций сложения, вычитания и умножения матриц.

    курсовая работа [559,1 K], добавлен 03.01.2011

  • Определение понятия квадротомического дерева. Рассмотрение основных примеров квадродерева, его достоинств и недостатков. Визуализация квадротомированного изображения. Создание программы разбора бинарной, заполненной случайным образом, матрицы N на M.

    курсовая работа [392,3 K], добавлен 09.08.2015

  • Основные действия над матрицами. Последовательность умножения вектора на матрицу. Спецификаторы доступа, которые используют для ограничения доступа к элементам класса. Перегрузка операций. Создание программы, реализующей работу с классом Matrix.

    курсовая работа [321,7 K], добавлен 26.01.2013

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

    курсовая работа [273,7 K], добавлен 16.05.2009

  • Модели вычислительных процессов, оценка трудоемкости алгоритма методами теории марковских цепей. Модели мультиплексного и селекторного каналов. Экспоненциальные стохастические сети и их параметры. Матрица вероятностей передач, элементы автоматики.

    курсовая работа [673,7 K], добавлен 08.11.2012

  • Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.

    курсовая работа [702,6 K], добавлен 22.03.2015

  • Содержание исходного набора данных. Основные причины возникновения выбросов. Главные алгоритмы кластеризации. Обработка и очистка файла. Описание его полей. Прямоугольная вещественнозначная матрица. Метрика Минковского. Математическое определение объекта.

    курсовая работа [1,4 M], добавлен 25.10.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.