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

 

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

Dim summa1 As Double

Dim summa2 As Double

Dim a() As Double

Dim m As Variant

‘задаём начальные параметры при инициализации формы:

Private Sub UserForm_Initialize()

Application.Visible = False

UserForm1.Caption = "Курсовой проект"

CommandButton1.Default = True

TextBox1.SetFocus

End Sub

‘процедура заполнения матрицы:

Private Sub CommandButton1_Click()

m = TextBox1.Text

If IsNumeric(TextBox1.Text) = False Then

MsgBox "Размерность матрицы должна задаваться числом", 16, "Ошибка ввода"

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

If m <= 0 Then

MsgBox "Размерность матрицы задаётся положительным числом отличным от нуля ", 16,

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

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

m = CDbl(m)

If m <> Int(m) Then

MsgBox " Размерность матрицы должна задаваться целым числом ", 16, " Ошибка ввода "

TextBox1.Text = ""

TextBox1.SetFocus

Exit Sub

End If

ReDim a(1 To m, 1 To m)

For i = 1 To m

For j = 1 To m

a(i, j) = Int((7 * Rnd) + 0)

Next j

Next i

With ListBox1

ColumnCount = m

List = a

End With

End Sub

'процедура очистки пользовательской формы:

Private Sub CommandButton2_Click()

OptionButton1.Value = False

OptionButton2.Value = False

TextBox1.Text = ""

TextBox2.Text = ""

ListBox1.Clear

TextBox1.SetFocus

End Sub

'процедура выхода из программы:

Private Sub CommandButton3_Click()

UserForm1.Hide

Application.Quit

End Sub

' вызов краткой информации о программе:

Private Sub CommandButton4_Click()

MsgBox "Программа для заполнения случайными числами" & Chr(13) & _

"от 0 до 6 квадратной матрицы, размерностью" & Chr(13) & _

"задаваемой пользователем, и вычисления суммы" & Chr(13) & _

"элементов матрицы, в зависимости от выбрано-" & Chr(13) & _

"го переключателя." & Chr(13) & _

" Разработчик: Логунов А.П..", 48, "О программе"

End Sub

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

Private Sub OptionButton1_Click()

summa1 = 0

f = 2

b = m - 1

For i = f To m

For j = 1 To m - b

summa1 = summa1 + a(i, j)

Next j

f = f + 1

b = b - 1

Next i

TextBox2.Text = summa1

End Sub

'процедура вычисления суммы элементов, составляющих главную диагональ:

Private Sub OptionButton2_Click()

summa2 = 0

For i = 1 To m

For j = 1 To m

If i = j Then

summa2 = summa2 + a(i, j)

End If

Next j

Next i

TextBox2.Text = summa2

End Sub

'процедура для работы с Excel:

Private Sub CommandButton5_Click()

Application.Visible = True

Cells.Select

Selection.ClearContents

Range("A1").Select

UserForm1.Hide

m = InputBox("Задайте размерность матрицы", "Окно ввода")

If IsNumeric(m) = False Then

MsgBox ""Размерность матрицы должна задаваться числом", 16, "Ошибка ввода"

Exit Sub

End If

If m <= 0 Then

MsgBox "Размерность матрицы задаётся положительным числом отличным от нуля ", 16,

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

Exit Sub

End If

m = CDbl(m)

If m <> Int(m) Then

MsgBox " Размерность матрицы должна задаваться целым числом ", 16, " Ошибка ввода "

Exit Sub

End If

Cells(5, 1) = "Матрица размерностью n=" & m & ":"

ReDim a(1 To m, 1 To m)

For i = 1 To m

For j = 1 To m

a(i, j) = Int((7 * Rnd) + 0)

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

Next j

Next i

summa1 = 0

f = 2

b = m - 1

For i = f To m

For j = 1 To m - b

summa1 = summa1 + a(i, j)

Next j

f = f + 1

b = b - 1

Next i

Cells(2, 1) = "Сумма элементов под главной диагональю =" & summa1

summa2 = 0

For i = 1 To m

For j = 1 To m

If i = j Then

summa2 = summa2 + a(i, j)

End If

Next j

Next i

Cells(3, 1) = " Сумма элементов составляющих главную диагональ =" & summa2

Select Case MsgBox("Вернуться к UserForm?", vbYesNo, "Окно возврата")

Case vbYes

Application.Visible = False

TextBox1.SetFocus

UserForm1.Show

Case vbNo

End Select

End Sub

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

Dim Имя_переменной As Тип_переменной – синтаксис описания типа переменной;

Private – указывает, что процедура Sub доступна для всех других процедур только того модуля, в котором она описана;

If Условие Then [Инструкция] [Else Инструкции_else] – оператор условного перехода. Если условие принимает значение True, то выполняется инструкция Then, если False, то выполняется инструкция_else. Ветвь Else является необязательной;

IsNumeric(переменная) – функция, проверяющая является ли переменная числовым значением;

MsgBox (сообщение, [кнопка], [заголовок])- выводит на экран диалоговое окно, содержащее сообщение;

CDbl() – функция преобразования считываемых данных в числовой формат типа Double, т.к. числа, вводимые в текстовую область формы, воспринимаются как текст, а не как число.

Int() – функция, которая возвращает целые числовые значения;

ReDim <имя массива>(<задаётся размерность массива>) – функция задания динамического массива;

 For Счетчик = Начало To Конец [Step Шаг]

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

 Next Счетчик – повторяет выполнение группы инструкций, пока Счетчик изменяется от начального значения до конечного с указанным шагом. Если шаг не указан, то он полагается равным 1;

Rnd – функция, которая служит для генерации случайных чисел;

With Объект

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

End With – позволяет выполнить последовательность инструкций над Объектом не повторяя его имени;

ColumCount – устанавливает число столбцов в списке;

Clear – очистка;

SetFocus – возвращает курсор в указанное поле;

InputBox () – выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа String, содержащее текст, введенный в поле;

Select Case Выражение

Case список выражений

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

Case Else

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

End Select – выполняет одну из нескольких групп инструкций в зависимости от некоторого выражения.


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

Ниже приведён пример работы программного модуля. Для этого ввели в поле ввода размерность матрицы равную 5. При нажатии кнопки «Заполнить матрицу» в окне вывода появилось квадратная матрица пятого порядка, заполненная случайными числами от 0 до 6, что представлено на рисунке 10:


Рисунок 10 - Вид пользовательской формы с заполненной матрицей

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


При нажатии кнопки «о программе» появляется сообщение с краткой информацией о программе.

При нажатии кнопки «Работать с Excel» появляется диалоговое окно, в котором задаётся размерность матрицы.

При нажатии кнопки «Оk» на листе Excel появляется результат, который представлен на рисунке 11:

Рисунок 11 – Лист Excel с результатом

Диалоговое окно «окно возврата» позволяет пользователю вернуться к работе с пользовательской формой.

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


Заключение

В данном курсовом проекте с помощью языка программирования Visual Basic for Application был разработан программный модуль, который позволяет: задавать квадратную матрицу и программно заполнять её случайными числами от 0 до 6; вычислять сумму элементов находящихся под главной диагональю; вычислять сумму элементов составляющих главную диагональ. Был предусмотрен режим работы с листом Excel.

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

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


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

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

2. Гарнаев А.Ю. Самоучитель VBA. – СПб, БХВ – Санкт-Петербург, 2002.

3. MS OfficeXP: Разработка приложений / Под редакцией Ф.А. Новикова. СПб.: БХВ – Санкт-Петербург, 2003.


Информация о работе «Разработка программного модуля»
Раздел: Информатика, программирование
Количество знаков с пробелами: 18034
Количество таблиц: 1
Количество изображений: 14

Похожие работы

Скачать
96043
2
4

... решения экстремальных задач. М: Наука, 1980.-518с. Вспомогательные указатели Перечень сокращений ЗВ - загрязняющее (вредное) вещество ИЗА - источник загрязнения атмосферы ПДВ - предельно допустимый выброс (допустимый выброс) СЗЗ - санитарно-защитная зона ПДКр - максимальная разовая предельно допустимая концентрация загрязняющего вещества в атмосферном воздухе населенных мест ...

Скачать
19586
0
16

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

Скачать
7017
0
0

... программы : ; = 234.4 чел.-ч. Трудозатраты на отладку программы на ЭВМ : ; = 1 171.8 чел.-ч. Трудозатраты на подготовку документации по задаче : ; = 312.5 чел.-ч. Таким образом : = 2 503.1чел.-ч . 2. Расчет единовременных и текущих затрат на разработку программных модулей. Стоимостная оценка осуществляется на февраль 1996 г. Стоимостная оценка проекта определяется следующим образом : ...

Скачать
147348
16
12

... недостаточно). Возможно включение комплекса в план учебного процесса, для обучения студентов. 2. Специальная часть разработка программного обеспечения для организации интерфейса программно-методического комплекса   2.1 Разработка технического задания на реализацию специальной части дипломного проекта Наименование программного изделия - "Интерфейс программно - методического комплекса для ...

0 комментариев


Наверх