Реализация программного модуля
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

 

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

 

Дата: 2019-07-24, просмотров: 139.