Разработка программы для квадратной матрицы

Создание программы, позволяющей вводить квадратную матрицу и заменять значения ненулевых элементов и значения элементов главной диагонали на другие. Программа выполнена с использованием языка проектирования программ Visual Basic for Application.

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

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

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

Изм

Лист

№ докум.

Подп.

Дата

Лист

0601С.23.02.000 РР

Изм

Лист.

№ докум.

Подп.

Дата

Лит.

Лист Листов

2 16

Разработка программного модуля

02

Разраб.

Пров.

Н.контр.

Утв.

````ммММммиссааапрМмМПАНШгщнпщгнммарппррае

``

Содержание

Введение

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

1.1 Логическая модель

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

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

1.4 Обработка ошибок

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

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

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

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

3 Реализация программного модуля

3.1 Код программы

3.2 Описание используемых операторов и функций

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

Заключение

Список использованных источников

Введение

В курсовом проекте разработана программа, позволяющая пользователю вводить квадратную матрицу, и заменять значения ненулевых элементов А(i,j) на А(i,j)*N и значения элементов главной диагонали на i+N. Ввод исходных данных должен осуществляться с использованием пользовательской формы.

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

­ замена значений ненулевых элементов A(i,j) на A(i,j)*N;

­ замена значений элементов главной диагонали на i+N.

При разработке данного программного модуля используются программные модули, с использованием языка проектирования программ Visual Basic for Application .

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

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

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

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

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

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

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

или, сокращенно А=, где i=1,m (т.е. i=1,2,3,…,m) - номер строки, j=1,n (т.е. j=1,2,3,…,n) - номер столбца. Матрицу А называют матрицей размера m x n b и пишут. Числа , составляющие матрицу, называют ее элементами. Элементы, стоящие на диагонали, идущей из верхнего угла, образуют главную диагональ. Матрица, у которой число строк равно числу столбцов, называется квадратной

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

Входные данные: размерность матрицы.

Требования к входным данным:

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

Предусматривается проверка на допустимость исходных данных и повторение ввода при ошибочных данных.

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

Выводятся преобразованные матрицы.

Требования к выходным данным:

Все выходные данные выводятся на формы и лист Excel.

Ко всем выходным данным запрещен доступ со стороны пользователя, осуществлённый с помощью функции Enabled.

1.4 Обработка ошибок

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

Рисунок 1- Окно предупреждения пользователя

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

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

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

Изм

Лист

№ докум.

Подп.

Дата

Лист

0601С.23.02.000 РР

Изм

Лист.

№ докум.

Подп.

Дата

Лит.

Лист Листов

2 16

Разработка программного модуля

02

Разраб.

Пров.

Н.контр.

Утв.

````ммММммиссааапрМмМПАНШгщнпщгнммарппррае

``

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

Здесь CommandButton1_Click() - процедура, срабатывающая при нажатии кнопки «Расчет», которая считывает исходные данные и выводит результат работы программы.

CommandButton2_Click() - процедура, срабатывающая при нажатии кнопки «Вывести результат на лист Excel», используется для вывода результата на лист Excel.

CommandButton3_Click() - процедура, срабатывающая при нажатии кнопки «Заполнить матрицу», используется для ввода исходной матрицы.

CommandButton4_Click() - процедура, срабатывающая при нажатии кнопки «Обнулить матрицу», используется для обнуления матрицы.

CommandButton5_Click() - процедура, срабатывающая при нажатии кнопки «Выход», используется для выхода из программы.

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

На рисунке 3 показана блок-схема программы

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

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

На рисунке 4 разработан пользовательский интерфейс.

Рисунок 4-Пользовательский интерфейс

1. Поле для ввода размерности матрицы.

2. Кнопка для заполнения матрицы

3. Кнопка для обнуления матрицы.

4. Кнопка расчета программы.

5. Поле вывода правильного результата.

6. Переключатели для выбора условия задачи.

7. Кнопка вывода результата на лист Excel.

8. Кнопка для выхода из программы.

3 Реализация программного модуля

3.1 Код программы

3Public N_correct As Boolean

Private Sub CommandButton1_Click()

If Not N_correct Then

MsgBox ("Неверно указан размер матрицы")

TextBox1.SetFocus

Exit Sub

End If

N = Val(TextBox1.Value)

For i = 1 To N

For j = 1 To N

A(i, j) = Raschet(A(i, j), OptionButton1.Value, i, j, N)

Next j

Next i

ListBox1.List = A

End Sub

Private Sub CommandButton2_Click()

If Not N_correct Then

MsgBox ("Неверно указан размер матрицы ")

TextBox1.SetFocus

Exit Sub

End If

МатрицаФорма.Hide

Cells.Clear

N = Val(TextBox1.Value)

For i = 1 To N

For j = 1 To N

Cells(i, j) = Raschet(A(i, j), OptionButton1.Value, i, j, N)

Next j

Next i

МатриЛист.Show

Application.Visible = True

Rem Cells.Select

Rem Selection.ClearContents

End Sub

Private Sub CommandButton3_Click()

If Not N_correct Then

MsgBox ("Неверно указан размер матрицы ")

TextBox1.SetFocus

Exit Sub

End If

N = Val(TextBox1.Value)

For i = 1 To N

For j = 1 To N

A(i, j) = 0

Next j

Next i

ListBox1.List = A

End Sub

Private Sub CommandButton4_Click()

If Not N_correct Then

MsgBox ("Неверно указан размер матрицы ")

TextBox1.SetFocus

Exit Sub

End If

N = Val(TextBox1.Value)

For i = 1 To N

For j = 1 To N

A(i, j) = Abs(i - j)

Next j

Next i

ListBox1.List = A

End Sub

Private Sub CommandButton5_Click()

ThisWorkbook.Close

End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

N = Val(TextBox1.Value)

If Not IsNumeric(N) Or N < 1 Or N <> Int(N) Then

MsgBox ("Ошибка. Необходимо ввести натуральное число")

N_correct = False

Else

ReDim A(1 To N, 1 To N)

With МатрицаФорма.ListBox1

.ColumnCount = N

.List = A

End With

N_correct = True

End If

End Sub

Private Sub UserForm_Initialize()

Application.Visible = False

TextBox1.SetFocus

End Sub

Private Sub UserForm_Terminate()

Application.Visible = True

N_correct = False

End Sub.

3.2 Описание использованных операторов

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

Оператор условного перехода If Then Else. Синтаксис:

If Условие Then [Инструкции] [Else Инструкции else]

Если условие принимает значение True, то выполняется инструкция (или инструкции) после Then, если False, то выполняется инструкция (или инструкции) после Else. Ветвь Else является необязательной. Допускается также использование формы синтаксиса в виде блока:

If Условие Then

[Инструкции]

[ElseIf Условие-n Then

[Инструкции elseif] …

[Else

[Инструкции else]]

End If

Оператор цикла For…Next позволяет повторять группу операторов заданное число раз.

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

Dim Имя переменной Аs Тип переменной [ Имя переменной Аs Тип переменной ]

Типы переменных: Integer, Double.

Double-числовой тип двойной точности. Если переменная не была объявлена, то она получает тип Variant.

В курсовой работе матрицы задавались при помощи массивов. Массив-совокупность однотипных данных объединённых общим именем. Синтаксис:

Dim Имя массива (Индексы [Аs тип])

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

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

Функция IsNumeric( x ) проверяет, является ли переменная числовым значением.

Функция CDbl возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа

Цикл с предусловием While…Wend позволяет повторять группу операторов до тех пор пока условие будет принимать значение истина.

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

>, <, =, >=, <=, <> - операторы сравнения.

*, /, *, -, + -- математические операторы

Функция Fix(x) округляет число до ближайшего меньшего целого

Unload Me - осуществляет выход из процедуры.

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

Тестирование программы приведено на рисунках 5,6,7.

Рисунок 5 - Заполнение матрицы

Рисунок 6 - Результат полученный программой при выполнении следующей операции: заменить значения ненулевых элементов A(i,j) на A(i,j)*N.

Рисунок 7 - Результат полученный программой при выполнении замены элементов главной диагонали на i+N.

Как видим, если сравнить первоначальную матрицу (Рисунок 5) и полученные данные, приведенные на рисунках 6 и 7, можно сказать что программа работает верно .

Заключение

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

Таким образом, можно сделать вывод о том, что поставленная задача выполнена:

- на языке программирования VBA создана программа, с помощью которой можно преобразовать матрицы.

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

Программный модуль позволяет:

- вводить значения в пользовательскую форму в ручном режиме;

- позволяет быстро определить верный ответ и проверить себя.

- результат выводится как в окно пользовательской формы, так и на лист Excel.

Список использованных источников

1 Гарнаев А.Ю Самоучитель VВА. - СПБ.: БХВ- Санкт-Петербург, 1999.-512 с.: ил.

2 Додж М., Стинсон К Д60 Эффективная работа с Мiсrosoft Excel.

3 Браун С. Б87 Visual Basic 6: учебный курс- СПб: ЗАО Издательство “Питер”, 1999.-576 с.: ил.

4 Мантуров О.В. Курс высшей математики, учеб. Для вузов.- М.: Высш. шк., 1991.- 448с.: ил.

5 А.Д. Мышкин Лекции по высшей математике.- М. 1969 -640с.


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

  • Формирование матрицы и выполнение заданий: вычисление сумы четных элементов; максимума из нечетных элементов в строке; произведение элементов в нечетных столбцах; количество четных элементов выше главной диагонали. Создание программы в Visual Basic.

    контрольная работа [12,0 K], добавлен 07.10.2012

  • GetMatrDop как процедура определяет значение элемента транспонированной матрицы дополнений. Знакомство с этапами разработки в среде Turbo Pascal программы сортировки элементов, находящихся на главной диагонали матрицы. Особенности тестирования программы.

    курсовая работа [780,4 K], добавлен 20.11.2014

  • Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.

    курсовая работа [2,9 M], добавлен 09.04.2012

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

    курсовая работа [280,4 K], добавлен 30.05.2012

  • Решение экономических задач с помощью Microsoft Excel и инструментария Visual Basic For Application. Способы запуска редактора Visual Basic, правила его синтаксиса. Создание автоматических макросов по сортировке и выборке. Создание управляющих кнопок.

    курсовая работа [852,0 K], добавлен 24.09.2010

  • Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.

    контрольная работа [12,3 K], добавлен 07.10.2012

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

    лабораторная работа [1,1 M], добавлен 10.12.2014

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

    контрольная работа [989,9 K], добавлен 29.03.2011

  • Разработка программы "Виселица" с использованием программной среды Visual Basic и средств объектно-ориентированного программирования: программные требования, описание алгоритма, блок-схема программы и дополнительной процедуры. Листинг программы.

    курсовая работа [188,2 K], добавлен 28.06.2009

  • Написание тестирующей программы для проверки знаний учащихся с помощью языка программирования Visual Basic for Applications (VBA), встроенного в пакет Microsoft Office. Общие сведения о программе, условия ее выполнения, настройка, проверка, выполнение.

    контрольная работа [25,2 K], добавлен 07.06.2010

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