Смекни!
smekni.com

Разработка программного модуля который находит сумму угловых элементов матрицы и сумму элементов (стр. 1 из 2)

Содержание

Введение

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

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

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

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

Заключение

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


Введение

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

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


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

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

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

1. Элемент матрицы A=a(i,j) будет угловым, если i=n либо j=n

2. Элемент матрицы A=a(i,j) будет находится над главной диагональю, если j будет больше i. Т.е. число столбцов должно превышать число строк.

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

К вводным данным для данного курсового проекта относятся:

- ввод значения n – размерности матрицы;

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

-n должно быть целым числом

-n должно быть положительным числом

-n должно быть больше либо равно двум

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

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

К выходным данным для данного курсового проекта относятся:

- вывод на форму заполненной матрицы;

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

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


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

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

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

2. Обработка ошибок: в случае появления ошибки, программа замечает ее и пытается самостоятельно исправить ее, без ведома пользователя.

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

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


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

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

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

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

UserForm1_Initialize() – процедура начальной инициализации пользовательской формы.

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

ButtonClear_click() – процедура, срабатывающая при нажатии кнопки «Очистить», которая очищает форму.

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

BtnTask1_click() – процедура, срабатывающая при нажатии кнопки “задание 1”.

BtnTask2_click() – процедура, срабатывающая при нажатии кнопки “задание 2”.

BtnExcel_click() – поцедура, срабатывающая при нажатии кнопки “На лист Excel”, которая прячет пользовательскую форму и выводит данные, представленные на листе Excel.

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

2.2.1 Нахождение суммы угловых элементов

Схема программного модуля для нахождения угловых элементов представлена на рисунке 2.

Рисунок 2


2.2.2 Нахождение суммы элементов, находящихся над главной диагональю

Нахождение суммы элементов, находящихся над главной диагональю представлено на рисунке 3.

Рисунок 3 – Нахождение суммы элементов, расположенных выше главной диагонали

Описание блок-схемы 1:

Блок 1 – начало цикла;

Блок 2 – чтение размерности матрицы, заданной пользователем;

Блок 3-5 – цикл, в котором находится сумма угловых элементов;

Блок 4-5 – подцикл, в котором проверяется строка матрицы на наличие угловых элементов;

Блок 6 – записываем найденные данные в ячейку листа Excel;

Блок 7 – выводим найденное значение на экран.

Описание блок-схемы 2:

Блок 1 – начало цикла;

Блок 2 – чтение размерности матрицы, заданной пользователем;

Блок 3-5 – цикл, в котором находится сумма элементов над главной диагональю;

Блок 4-5 – подцикл, в котором проверяется строка матрицы на наличие элементов, расположенных над главной диагональю;

Блок 6 – записываем найденные данные в ячейку листа Excel;

Блок 7 – выводим найденное значение на экран.

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

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

1. соблюдать стандарты при выборе цветовой палитры и элементов ввода-вывода;

2. интерфейс является основным, а не процессы ввода-вывода;

3. состав и форма представления входных и выходных данных должны быть стандартными.

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

Интерфейс для программного модуля разработанного в данном курсовом проекте представлен на рисунке 5.


Рисунок 4 – Пользовательская форма: 1 – TextBoxInput - поле для ввода значения n, размерности матрицы; 2 – ButtonCreate - кнопка, при нажатии которой осуществляется заполнение матрицы; 3 – ButtonClear-кнопка, при нажатии которой осуществляется очистка всех полей формы; 4 – BtnTask1 - кнопка, при нажатии которой программа находит сумму угловых элементов матрицы; 5 – BtnTask2 - кнопка, при нажатии которой программа находит сумму элементов матрицы, находящихся над верхней диагональю; 6 – BtnExcel – кнопка, при нажатии которой пользовательская форма скрывается, и отображаются данные на листе Excel; 7 – Кнопка, при нажатии которой осуществляется выход из программного модуля; 8 – Поле для вывода заполненной матрицы

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

3.1 Программный код

Программа разработана в приложении Microsoft Excel на языке программирования Visual Basic For Application.

Private Sub BtbTask2_Click()

Dim a(1 To 100, 1 To 100) As Variant

Dim summ As Integer

n = TextBoxInput.Value

For i = 1 To n

For j = 1 To n

a(i, j) = Cells(i, j)

summ = summ + Check_Top_Elements(a(i, j), i, j)

Next j

Next i

m = Application.CountA(Range("A:A"))

Cells(m + 3, 1) = "Сумма элементов над главной диагональю: " + CStr(summ)

TextBoxOutput2.Value = CStr(summ)

End Sub

Private Sub BtnTask1_Click()

Dim a(1 To 100, 1 To 100) As Variant

Dim summ As Integer

n = TextBoxInput.Value

For i = 1 To n

For j = 1 To n

a(i, j) = Cells(i, j)

summ = summ + Check_Angular_Elements(a(i, j), i, j)

Next j

Next i

m = Application.CountA(Range("A:A"))

Cells(m + 2, 1) = "Сумма угловх элементов: " + CStr(summ)

TextBoxOutput.Value = summ

End Sub

Private Sub ButtonClear_Click()

ListBoxOutput.Clear

End Sub

Private Sub ButtonCreate_Click()

Dim n As Variant

Dim m As Variant

Dim strng(100) As String

Dim a(100, 100) As Variant

Dim space As String 'пробел, который разделяет матрицу

If IsNumeric(TextBoxInput.Value) = False Then

MsgBox "Вы ввели неправильные данные Подсказка: данные должны быть представленны числом.", _

vblnformation, "Ошибка ввода"