Нахождение суммы элементов, находящихся над главной диагональю
⇐ ПредыдущаяСтр 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.
Реализация программного модуля Программный код
Программа разработана в приложении 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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|