Разработка калькулятора, решающего системы уравнений с тремя неизвестными
Определение системы m линейных уравнений с n неизвестными. Математическая модель задачи. Анализ входных и выходных данных. Требования к надежности разрабатываемой программы. Структурная диаграмма программного модуля. Разработка блок-схем и тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.08.2012 |
Размер файла | 162,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Введение
В настоящее время компьютеры способны облегчить работу человеку в любой сфере деятельности, так как с помощью вычислительных машин есть возможность автоматизировать многие задачи, тем самым сэкономить время на повторяющихся действиях. Компьютеры могут производить труднейшие для человека вычисления за секунды, а также исключают ошибки вычислений.
Огромное быстродействие вычислительных машин открывает новые широкие возможности для применения общих математических методов исследования в проблемах разных ветвей науки.
В данной курсовой работе рассматривается задача разработки программы, имитирующей работу калькулятора, где вид обрабатываемых данных: система уравнений с тремя неизвестными.
В первом разделе рассмотрена математическая модель задачи нахождения решений матричного уравнения.
Во втором разделе рассмотрено проектирование программного модуля, также описана схема модуля и рассмотрен пользовательский интерфейс.
В третьем разделе рассмотрен тест программного модуля.
1. Постановка задачи
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 - Входные данные
Название |
Обозначение |
Диапазон возможных значений |
|
1 |
2 |
3 |
|
Пункт меню1 |
сh2 |
1-53 |
|
Значения коэффициентов матрицы А |
А[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. Проектирование программного модуля
2.1 Структурная диаграмма программного модуля
Иерархическая структура алгоритма представлена на рисунке 1.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 1- Структурная диаграмма программного модуля
int main - основная функция программы.
int menu - вывод основного меню на экран и возврат номера выбранной функции.
double control - контроль формата вводимых значений.
float dop - вычисление алгебраического дополнения.
2.2 Разработка схемы программного модуля и ее описание
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 2- Блок- схема функции menu.
уравнение линейный программа тестирование
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 3.Лист 1- Блок-схема функции dop
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 3.Лист 2 - Блок- схема функции dop.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 1 - Блок-схема функции main
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 2 - Блок-схема функции main
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 3 - Блок-схема функции main
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 3 - Блок-схема функции main
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 4 - Блок-схема функции main
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4.Лист 5 - Блок-схема функции main
2.3 Разработка пользовательского интерфейса
Пользовательский интерфейс представлен в виде меню, в котором пункты выбираются с помощью нажатия соответствующей клавиши. При выборе первого пункта меню пользователь будет вводить исходные данные. При неверном вводе некоторых элементов можно отредактировать данные с помощью пункта меню «Редактирование данных» (рис.6).
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 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. Выполнены все пункты задания. В программе предусмотрена обработка большого количества ошибок ввода. Тестирование показало, что программа
Размещено на Allbest.ru
Подобные документы
Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.
курсовая работа [1,0 M], добавлен 27.09.2014Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.
дипломная работа [144,8 K], добавлен 25.04.2012Описание математической модели определения тока в электрической цепи с помощью решения системы алгебраических уравнений методом Гаусса. Описание и разработка блок-схемы программы. Ввод данных задачи, составление программы и анализ результатов решения.
контрольная работа [231,8 K], добавлен 15.08.2012Понятия систем линейных уравнений и матриц. Решение общей системы линейных уравнений по методу Гаусса. Системные требования, методы установки, удаления и работы с программой. Методы защиты от неверного ввода данных. Тестирование и опытная эксплуатация.
курсовая работа [751,0 K], добавлен 25.02.2011Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.
дипломная работа [1008,9 K], добавлен 13.10.2013Решение систем линейных уравнений на ЭВМ методом Крамера. Запуск Microsoft Visual Basic. Форма ввода размерности системы. Форма графика системы линейного уравнения. Матрица с неизвестными переменными. Программы построения графика и перехода между формами.
курсовая работа [743,7 K], добавлен 29.06.2011Разработка программного продукта на языке Delphi 7.0. Матричный метод решения однородных и неоднородных систем линейных уравнений. Разработка интерфейса. Тестирование и описание объектов программы. Описание процесса вычисления определителей матриц.
курсовая работа [366,1 K], добавлен 04.02.2015