Создание приложения по перемножение матриц NM и MN

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    119,53 Кб
  • Опубликовано:
    2013-07-23
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание приложения по перемножение матриц NM и MN

Введение

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

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

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

Теоретические основы разработки

Описание предметной области и анализ методов решения.

Решение системы линейных уравнений может быть реализовано следующими способами:

Ручным - этот способ является трудоёмким и требует больших затрат времени.

Автоматизированным - исходные данные вводятся вручную, а результат рассчитывается программой на компьютере.

Автоматическим - исходные данные автоматически считываются с внешнего устройства (например, файла на диске) и обрабатываются программой.

Метод решения задачи - умножение матриц по правилу умножения. Это правило состоит в следующем:

Операция умножения двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором; в этом случае говорят, что форма матриц согласована. В частности, умножение всегда выполнимо, если оба сомножителя - квадратные матрицы одного и того же порядка. Произведение матриц AB состоит из всех возможных комбинаций скалярных произведений строк матрицы A и столбцов матрицы B. Элемент матрицы AB с индексами i,j есть скалярное произведение i-ой строки матрицы A и j-го столбца матрицы B.

второй пункт правила позволяет ввести формулу, по которой можно вычислять элементы матрицы

Исходные матрицы


Результирующая матрица


Таким образом, если выполняется условие о размерах матриц, то можно поэлементно вычислить матрицу.

Обзор средств программирования

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

Из современных языков программирования, многие подходили под выполняемую задачу:

С/С++

C#

и другие. Самым простым для решения задачи является С/С++, как один из основных и широко распространенных.

В качестве среды разработки я использовал Microsoft Visual Studio 2008.

Описание языка С++

Язык C++ один из самым распространенных языков в мире.

Он является высокоуровневым, т.е. основными элементами являются переменные и структуры и классы, а не машинные команды.

Переменные на языке С++ описываются следующим образом:

sizecolumns=1;//число столбцов**elements;//содержимое матрицы

Тип данных, имя переменной, и начальное значение. После двойного слеша идет описание переменной в комментариях (не обязательная часть). Язык является типизированным.

Функции описываются следующим образом:

Multiply(Matrix *MultMatrix)

{

Тело функции

}

Тип возвращаемого значения, имя функции, и в круглых скобках принимаемые параметры функции.

Очень важное значение имеют классы. Класс - абстрактный тип данных, содержащий набор методов и переменных.

В этой работе создавался класс Matrix (Матрица), содержащий помимо самой матрицы, ее параметры - размеры, минимально и максимально допустимые значения.

Практическая часть

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

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

Основания для разработки

Основанием для разработки является задания преподавателя в соответствии с программой курса “Технология разработки программных продуктов”.

Назначение программы

Разрабатываемая программа предназначена для перемножения заданных матриц.

Требования к программе.

Требования к функциональным характеристикам.

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

Подготовку исходных данных.

Ввод исходных данных с клавиатуры.

Просмотр исходных данных на экране.

перемножение заданных матриц.

Вывод результатов на экран.

Запись результатов в файл.

Требования к надёжности.

Требования к надёжности программы отсутствуют, так как при отказе программы её можно выполнить повторно.

Требования к условиям эксплуатации

Программа должна эксплуатироваться в условиях вычислительного центра при температуре от +15 до +35 С и относительной влажности воздуха от 25 до 85%.

Программа не требует специального обслуживания, а её сопровождение выполняется самим автором.

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

Требования к техническим средствам

Программа должна работать на IBM PC- совместимых компьютерах с процессором 80386 и выше, объёмом оперативной памяти 1 Мбайт и выше, цветным монитором EGA/VGA, наличием жёсткого диска и дисковода для гибких магнитных дисков 3,5, наличие CD-ROM для лазерных дисков. Принтер необходим в тех случаях, когда предусмотрен вывод результатов на печать.

Требования к информационной и программной совместимости

Программа должна работать под управлением операционной системы MS DOS версии 3.2 и выше или Windows 3.11 и выше.

Текст программы может быть просмотрен с помощью текстовых редакторов, совместимых с редактором Edit.

Требования к маркировке и упаковке

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

Требования к транспортировке и хранению

Программа должна поставляться на CD-RW диске (700 Мбайт). Диск должен быть упакован и храниться вдали от электромагнитных полей и не подвергаться механической деформации. Место и условия хранения должны соответствовать санитарным нормам требованиям отрасли. Срок хранения данной программы 10 лет.

Требования к программной документации

Должны быть разработаны следующие программные документы:

Текст программы (ГОСТ 19.401-78)

Описание программы (ГОСТ 19.402-78)

Руководство оператора (ГОСТ 19.505-79)

Программа и методика испытаний (ГОСТ 19.301-79)

Описание языка (ГОСТ 19.507-79)

Стадии разработки

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

Технический проектсрок сдачи.

Рабочий проектсрок сдачи.

Виды испытаний

Приемо-сдаточные испытания проводятся преподавателем.

Описание схем

Описание схемы основного модуля

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

Сценарий 1. Загрузка данных из файлов

Сценарий 2. Ввод данных с клавиатуры

Сценарий 3. Ввод из файла или клавиатуры(с возможностью записи данных в файл)

Сценарий 4.Ввод из файла(возможность редактирования), или с клавиатуры.


Текст программы

Текст программы в соответствии с ГОСТ 19.101-77 (СТ СЭВ 1626-79) и ГОСТ 19.401-79 (СТ СЭВ 3746-82) представляет собой запись программы на исходном языке программирования с необходимыми комментариями. Текст программы представляет собой документ, выполненный машинным способом, и приведен в приложении 1.

Описание программы

Общие сведения

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

Функциональное назначение

Программа предназначена для нахождения матрицы, являющейся результатом умножения заданных матриц

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

Программа может работать на Windows XP и выше. Наличие принтера необходимо, если пользователь желает выводить на него ответ.

Вызов и загрузка

Программа может храниться на компакт диске. Исполняемым файлом программы является файл Multiply.exe.

Входные и выходные данные

Входными данными программы являются матрицы целых чисел, задаваемых вручную, или загружаемых из файла.

Выходными данными является матрица, полученная путем умножения исходных матриц. Выходные данные выводятся и на экран и в файл.

Руководство оператора

Назначение программы

Программа предназначена для умножения матриц с помощью правила перемножения матриц.

Условия выполнения

Программа работает на IBM PC совместимых компьютерах с процессором 80386 и выше, объёмом оперативной памяти 1 Мбайт и выше, CD-ROM для дисков под управлением операционной системы DOS 3.2 и выше или Windows 3.11 и выше.

Выполнения программы и сообщения оператору

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

Программа и методика испытаний

Объект испытаний

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

Цель испытаний

Целью испытаний является проверка соответствия программы требованиям технического задания.

Требования к программе

В процессе испытаний подлежат проверке следующие требования к программе:

Требования к функциональным характеристикам

Программа должна:

) Вычислять произведение матриц

)предоставлять пользователю удобный графический интерфейс;

)выводить результат по желанию пользователя на экран или в файл.

Требования к информационной и программной совместимости

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

Требования к маркировке и упаковке

Программа должна поставляться на компакт диске.

Средства и порядок испытаний

Для проведения испытаний необходимы следующие технические средства:

Windows XP или 7

Для проведения испытаний необходимы следующие программные средства:

Windows XP

Текстовый редактор блокнот

Испытания проводятся в следующем порядке

) проверяется наличие и комплектность программной документации

) проверяется соответствие требованиям к маркировке и упаковке

) проверяется соответствие требованиям к функциональным характеристикам

способность программы обеспечивать ввод исходных данных

способность выводить результаты по желанию пользователя на экран, принтер или в файл.

)проверяется соответствие требованиям к информационной и программной совместимости

Для проверки способности обеспечивать ввод исходных данных

необходимо:

запустить программу;

запустить первый и второй сценарии работы

Для проверки способности программы правильно находить матрицу.

открыть программу;

запустить любой из сценариев

ввести исходные данные

вывести результат на экран, в файл;

проверить результат перемножения с помощью калькулятора

Для проверки способности выводить результат на экран или в файл необходимо:

запустить программу;

запустить любой из 4 модулей

выбрать вывод результата на экран или файл

Протокол испытаний

Результаты испытаний программы представлены в таблице 1.

Результаты испытаний программы

программирование язык загрузка испытание

Таблица 1

Проверяемые требования

Сообщения программы и вводимые значения

Результаты

Способность программы обеспечивать ввод исходных данных

Вводились исходные данные - имена файлов. Программа их приняла и вывела введенные таблицы.

Успешное создание таблиц из файла

Способность программы обеспечивать вывод данных.

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

Успешная запись в файл

Способность программы правильно рассчитывать данные

В приложении представлена проверка правильности расчета результатов

Правильные результаты



Заключение

Разработанная в ходе выполнения курсового проекта программа удовлетворяет всем требованиям задания, что подтверждается протоколом испытаний.

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

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

1.   Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. - 4-е издание. - М: Наука, 1978. - С. 392-394.

2.      ГОСТ 19.105-78 Общие требования к программным документам.

.        ГОСТ 19.106-78 Требования к программным документам, выполненным печатным способом.

.        ГОСТ 19.201-78 Техническое задание. Требования к содержанию и оформлению.

.        ГОСТ 19.301-78 Программа и методика испытаний. Требования к содержанию и оформлению.

.        ГОСТ 19.401-78 Текст программы. Требования к содержанию и оформлению.

.        ГОСТ 19.402-78 Описание программы. Требования к содержанию и оформлению.

.        ГОСТ 19.505-79 Руководство оператора. Требования к содержанию и оформлению.

.        ГОСТ 19.701-90 Схемы алгоритмов программ, данных и систем. Условные обозначения и правила выполнения.

Приложение 1

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

#include "iostream"namespace std;

class Matrix

{:

//два конструктора();//создание пустой матрицы, без каких-либо параметров(int newsizeL,int newsizeC,int newmine,int newmaxe);//создание матрицы с параметрами

//деструктор~Matrix();//удаление матрицы

//ввод/вывод данныхgenerateMatrix();//генерирование матрицыmanualInput();//ввод матрицы вручнуюLoadFromFile(char[255]);//загрузка матрицы из файла

bool SaveToFile(char[255]);//запись в файлPrintOnDisplay();//вывод на экранModify(int line,int col,int newcapt);//изменить элемент матрицы

//перемножениеCheckMultiply(Matrix *MultMatrix);//проверить возможность умножения матрицMultiply(Matrix *MultMatrix);//произвести умножение этой матрицы (A) на другую матрицу(B) - A*B

private:sizelines;//число строкsizecolumns;//число столбцов

int **elements;//содержимое матрицыmine;//минимально допустимый по значению элемент матрицыmaxe;//максимально допустимый по значению элемент матрицыi,j,k;//счетчики(для совместимости с VS2006)

};

Основной код программы

// Multiply.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "Matrix.h"ChooseOutput(Matrix *RES)

{OutN=-1;

//bool Correct=true;*filename=new char[255];(OutN<1||OutN>3)

{("print result on:\n");("1. Display\n");("2. File\n");("3. Printer\n");>>OutN;(OutN)

{1:>PrintOnDisplay();;2:("input filename:\n");>>filename;>SaveToFile(filename);;3:;

}

}("pause");

}*LoadFromFile(bool needMenuFile,int MaxSize,int Mine,int Maxe)

{("input filename:\n");*filename=new char[255];>>filename;*A=new Matrix();

if(needMenuFile)

{ChL=-1;Cl,Cc,Nc;(ChL!=2)

{("Correction\n");("1.correction matrix\n");("2.save to file and continue\n");>>ChL;(ChL)

{1:("line of correction:\n");>>Cl;("column of correction:\n");>>Cc;("new value\n");>>Nc;>Modify(Cl,Cc,Nc);;2:("input new filename:\n");(filename,0,255);>>filename;>SaveToFile(filename);;

}

}

}A;

}*LoadFromKeyboard(bool NeedMenuKeyboard,int MaxSize,int Mine,int Maxe)

{*A=new Matrix();>manualInput();(NeedMenuKeyboard)

{*filename=new char[255];ChK=-1;("Correction\n");("1. Save matrix to file\n");("other. continue\n");(ChK)

{1:("input new filename:\n");(filename,0,255);>>filename;>SaveToFile(filename);;:;

}

}A;

}*ChooseInput(bool NeedMenuKeyboard,bool needMenuFile,int MaxSize,int Mine,int Maxe)

{*InM;ChM=-1;(ChM!=1 &&ChM!=2)

{("Input method:\n");("1.Keyboard\n");("2.File\n");>>ChM;

}(ChM)

{1:=LoadFromKeyboard(NeedMenuKeyboard,MaxSize,Mine,Maxe);;2:=LoadFromFile(needMenuFile,MaxSize,Mine,Maxe);

вreak;

}InM;

}scenario1()

{*A=new Matrix();=LoadFromFile(0,100,-9999,9999);>PrintOnDisplay();*B=new Matrix();=LoadFromFile(0,100,-9999,9999);>PrintOnDisplay();*MM=A->Multiply(B);(MM);

}scenario2()

{*A=new Matrix();>manualInput();*B=new Matrix();>manualInput();*MM=A->Multiply(B);(MM);

}scenario3()

{(true,false,1000,-999999,999999);

}scenario4()

{(false,true,1000,-999999,999999);

}main(int argc, char* argv[])

{ScN=-1;//номер задачи(ScN!=0)

{("cls");("input task\n");("1. m,n<=100 Mij>=-100 Mij<=100 load from files\n");("2. m,n<=10 Mij>=0 Mij<=1000 keyboard\n");("3. m,n<=20 keyboard|file\n");("4. m,n<=20 keyboard|file|modify\n");("0. Exit\n");>>ScN;(ScN)

{1:();;2:();;3:();;4:();;5:(SUCCESS);;

}

}0;

}

Приложение 2

Пример 1.Решение системы


Проверка:


Результаты сошлись

Похожие работы на - Создание приложения по перемножение матриц NM и MN

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!