Разработка калькулятора, решающего системы уравнений с тремя неизвестными

 

Введение


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

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

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

В первом разделе рассмотрена математическая модель задачи нахождения решений матричного уравнения.

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

В третьем разделе рассмотрен тест программного модуля.


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


.1 Математическая модель задачи


Системой уравнений называют множество уравнений с n неизвестными(n ? 2), для которых требуется найти значения неизвестных, удовлетворяющих одновременно всем уравнениям системы.

Системой m линейных уравнений с n неизвестными , ,…, или линейной системой, называется система вида


++…+=,

++…+=,

. . . . . . . . . . . . . . . . .

++…+=, (1.1)


где , - числа. Числа (i = 1, 2, …,m; k = 1, 2, …, n) называются коэффициентами, (i = 1, 2, …, m) - свободными членами. Коэффициенты обозначены буквой c двумя индексами i и k : первый указывает номер уравнения, второй - номер неизвестной, к которой относится данный коэффициент.

Решением линейной системы (1.1) называется упорядоченная совокупность n чисел , , …, , (1.2)

Подстановка которых вместо , ,…, соответственно (=, =, …, =) обращает в тождество каждое из уравнений этой системы.

Линейную систему (1.1) можно записать в матричном виде. Матрица


=, (1.3)


составленная из коэффициентов линейных уравнений системы (1.1), называется основной матрицей системы. Матрица


=, (1.4)


полученная из основной присоединением столбца свободных членов, называется расширенной матрицей системы (1.1).

Рассмотрим столбцовые матрицы, составленные из неизвестных и свободных членов:


X =, B =. (1.5)


Поскольку матрица А согласована с матрицей Х (число столбцов матрицы А равно числу строк матрицы Х ), то можно найти произведение


АХ =.


Элементами этой столбцовой матрицы являются левые части уравнений системы (1.1), поэтому на основании определения равенства матриц


АХ = В. (1.6)


Таким образом, система линейных уравнений записана в виде одного матричного уравнения (1.6), где А, Х, В определяются формулами (1.3) и (1.5); эта запись системы называется матричной.

Каждой линейной системе соответствует единственная пара матриц А, В и обратно: каждой паре матриц - единственная система. Система (1.1) может быть записана в таком виде


…. (1.7)


Если ( , , …, ) - решение системы (1.1), то матрица


С = (1.8)


Называется вектор-решением этой системы. Матрица (1.8) удовлетворяет уравнению (1.6).

Определителем системы n линейных уравнений с n неизвестными , ,…,


++…++…+=,

++…++…+=,

. . . . . . . . . . . . . . . . . . (1.9)

++…++…+=


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


? =. (1.10)


Обозначим через определитель, полученный заменой в определителе ? столбца из коэффициентов при неизвестной столбцом свободных членов системы (6.9):


=, (1.11)


где k =1, 2,…, n.

Линейная система (1.9) называется невырожденной, если ее определитель отличен от нуля (? ? 0).

Теорема 1. Невырожденная линейная система (1.9) имеет единственное решение


, , …, , (1.12)


где ? и (k = 1, 2, …, n) определены соответственно формулами (1.10) и (1.11). Эта теорема называется теоремой Крамера, а формулы (1.12) - формулами Крамера.

Следствие из теоремы Крамера: Если однородная линейная система


++…+= 0,

++…+= 0,

. . . . . . . . . . . . . . . . .

++…+= 0


имеет ненулевое решение, то ее определитель ? равен нулю.

Систему (1.9) n линейных уравнений с n неизвестными можно записать в матричном виде АХ = В, (1.13)

Если система является невырожденной, т.е. det A ? 0, то она имеет единственное решение

, (1.15) где - матрица, обратная матрице А, а B определяется третьей из формул (1.14).


1.2 Входные данные


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


Таблица 1 - Входные данные

НазваниеОбозначениеДиапазон возможных значений123Пункт меню 1сh 21-5 3Значения коэффициентов матрицы А А[i][j]Ограничений нетЗначения коэффициентов матрицы ВB[i]Ограничений нетИндекс редактируемого элемента[i][j]1-3

1.3 Выходные данные


Результатом работы программы является нахождение коэффициентов матрицы Х. Выходные данные представлены в таблице 2.


Таблица 2 - Выходные данные

НазваниеВид представленияВыводИсходную матрицу системыА[0][0]…А[0][n] B[0] ………………………. A[n][0]…A[n][n] B[n]На экран, в файл log.txtОпределитель detКоэффициенты искомой матрицы Х, т. е. неизвестные коэффициенты системы уравненийХ[i]

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


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


Таблица 3 - Требования к надежности

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


2. Проектирование программного модуля


.1 Структурная диаграмма программного модуля


Иерархическая структура алгоритма представлена на рисунке 1.


Рисунок 1- Структурная диаграмма программного модуля


int main - основная функция программы.

int menu - вывод основного меню на экран и возврат номера выбранной функции.

double control - контроль формата вводимых значений.

float dop - вычисление алгебраического дополнения.


2.2 Разработка схемы программного модуля и ее описание


Рисунок 2- Блок- схема функции menu.

уравнение линейный программа тестирование

Рисунок 3.Лист 1- Блок-схема функции dop


Рисунок 3.Лист 2 - Блок- схема функции dop.


Рисунок 4.Лист 1 - Блок-схема функции main


Рисунок 4.Лист 2 - Блок-схема функции main


Рисунок 4.Лист 3 - Блок-схема функции main


Рисунок 4.Лист 3 - Блок-схема функции main


Рисунок 4.Лист 4 - Блок-схема функции main


Рисунок 4.Лист 5 - Блок-схема функции main


2.3 Разработка пользовательского интерфейса


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


Рисунок 5- Иерархия меню


Рисунок 6 - Ввод и редактирование данных


При выборе пункта меню Вывод решения, пользователь увидит содержимое файла log.txt.


Рисунок 7-Вывод решения



3. Тестирование программного модуля


Тестирование разработанной программы представлено в таблице 4.


Таблица 4 - Тестирование программного модуля

Описание тестаВходные данныеРеакция программыТребуемое действиеТест 1: Ввод несуществующего пункта меню.Ввод: 6Сообщение об ошибке ввода: Такого пункта нет! Введите от 1 до5.Повторить ввод пункта меню.Тест 2: Ввод пункта меню буквами или другими знаками, кроме цифр.Ввод: рСообщение об ошибке ввода: Такого пункта нет! Введите от 1до 5.Ввод пункта меню цифрами.Тест 3: Пункт меню не был введен.Ввод: (нет)Сообщение об ошибке ввода: Такого пункта нет! Введите от 1до 5.Ввести пункт меню.Тест 4: Ввод исходных данных (коэффициентов уравнения) другими знаками, кроме цифр.Запрос: Введите коэффициенты уравнений. Ввод: уСообщение об ошибке: ОШИБКА! Неверный формат числа. Введите значения заново.Ввод исходных данных цифрами.Тест 5: Ввод индекса редактируемого элемента другими знаками, кроме цифр.Запрос: Введите индекс редактируемого элемента <i, j> . Ввод: kСообщение об ошибке ввода: ОШИБКА! Неверный формат числа. Введите значения заново.Ввод редактируемого элемента цифрами.Тест 6: Исходные данные введены правильно ( в том числе и пункт меню). Проверка правильности вычислений.Запрос: Введите коэффициенты уравнений: Ввод: A[1][1]=1 A[1][2]=2 A[1][3]=3 B[1]=4 A[2][1]=5 A[2][2]=6 A[2][3]=7 B[2]=8 A[3][1]=9 A[3][2]=1 A[3][3]=2 B[3]=3Вывод результатов вычислений. Определитель=-36.00 Искомая матрица: Х=. При расчетах в Excel получены результаты -36.00 0 -1 2


Заключение


В данном курсовом проекте была рассмотрена задача разработки программы, имитирующей работу калькулятора, где вид обрабатываемых данных: система уравнений с тремя неизвестными. Алгоритм программы реализован в среде Visual C++ 6.0. Выполнены все пункты задания. В программе предусмотрена обработка большого количества ошибок ввода. Тестирование показало, что программа



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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2019 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ