Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Нахождение суммы элементов, находящихся над главной диагональю представлено на рисунке 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.


7
6
5
4

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


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

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

 

Программа разработана в приложении 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, "Ошибка ввода"

Else

n = CInt(TextBoxInput.Value) 'если пользователь ввел дробное число, то округляем до целого

If n = 1 Then

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

End If

If n <= 0 Then

If n < 0 Then

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

TextBoxInput.Value = Abs(n)

End If

If n = 0 Then

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

End If

End If

For i = 1 To 100

For j = 1 To 100

Cells(i, j) = ""

Next j

Next i

ListBoxOutput.Clear

For i = 1 To n

For j = 1 To n

a(i, j) = Int((20 - 0 + 1) * Rnd + 0) 'генерируем случайное число от 1 до 20

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

If a(i, j) <= 9 Then

'если число представлено одной цифрой, то пробел между ним и след.числом больше

space = " "

Else

'в противном случае пробел меньше. Это делается, чтобы числа располагались одно под одним

space = " "

End If

strng(i) = strng(i) + CStr(a(i, j)) + space 'скливаем все значения в i строку

Next j

ListBoxOutput.AddItem (strng(i)) 'добавляем строку на поле вывода

Next i

End If

End Sub

Private Sub ButtonExit_Click() 'при нажатии на кнопку выхода, закрываем программу

Application.Quit

End Sub

Private Sub BtnExcel_Click()

UserForm1.Hide

Application.Visible = True

End Sub

Private Sub UserForm_Initialize()

Application.Visible = False

Dim a(1 To 100, 1 To 100)

Dim space As String

Dim strng(10) As String

End Sub

Function Check_Angular_Elements(a, i, j)

'проверяет, является ли элемент матрицы угловым, если да, то возвращает его

If (i = 1) And (j = 1) Then

Check_Angular_Elements = a

End If

If (i = 1) And (j = Int(TextBoxInput.Value)) Then

Check_Angular_Elements = a

End If

If (i = Int(TextBoxInput.Value)) And (j = 1) Then

Check_Angular_Elements = a

End If

If (i = Int(TextBoxInput.Value)) And (j = Int(TextBoxInput.Value)) Then

Check_Angular_Elements = a

End If

End Function

Function Check_Top_Elements(a, i, j) 'проверяет, находится ли элемент над гл. диагональю

If j > i Then

Check_Top_Elements = a

End If

End Function

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...