Разработка программного модуля.




Этапы выполненные для решения задачи

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

 

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

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

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

 

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

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

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

 

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

Заключение

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

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

Дана целочисленная прямоугольная матрица. Вычислить:

- Максимальный по модулю элемент массива.

- Сформировать одномерный массив содержащий значения минимальных элементов в столбцах матрицы.

 

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

Размерность матрицы, вводится пользователем.

Значения элементов массива.

 

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

Значение максимального элемента массива.

Одномерный массив, содержащий значения минимальных элементов в столбцах матрицы.

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

При создание проекта VBA

Решение задачи включает этапы:

- Задание размерности двухмерного массива.

- Формирование двухмерного массива (матрицы).

- Определение максимального по модулю элемента массива.

- Определение минимальных значений элементов в каждом столбце и занесение этих значений в одномерный массив.

 

При формировании массива необходимо предусмотреть ввод в диалоговом режиме размер массива.

Возможны различные варианты передачи значений элементов массива в программу:

- использование функции InputBox:

- считывание данных с листа Excel, на котором предварительно сформирован диапазон ячеек с задаваемыми значениями элементов массива;

- использование объекта UserForm.

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

Базовой программной единицей кодов VBA является процедура.

Процедуры могут быть размещены во всех доступных объектах проекта.

После создания нового Excel-файла, после открытия окна VBE (редактор VBA) по умолчанию в проект входят объекты: открытые листы (Лист1…), объект Эта книга.

Пользователь, как правило, добавляет, используя команду Insert (Вставка) необходимое количество модулей (Molule) и пользовательских форм (UserForm).

В объектe UserForm, как правило, размещаются процедуры обработки событий.

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

Но, как правило, для функционально обособленных этапов создаются самостоятельные процедуры.

Для реализации каждого из этапов (перечислены в начале раздела) поставленной задачи создаются отдельные процедуры.

Процедуры размещены в двух модулях. В проекте VBA, фрагмент которого показан на рис.1, это модули General и Solve.

Рис 1.

В модуле General размещены процедуры, имеющие универсальное применение при работе с массивами. Далее приведены листинги процедур и необходимые пояснения.

Public M(), k, n

'Задание переменных видимых во всех процедурах проекта

'k - число строк массива M(i,j)

___________________________________________________________

Public Sub Размер()

 

k = CInt(InputBox("Введите количество строк к= "))

n = CInt(InputBox("Введите количество столбцов n= "))

 

End Sub

 

Public Sub Массив()

'Процедура формирования массива

 

ReDim M(1 To k, 1 To n)

For i = 1 To k

'n - количество столбцов

For j = 1 To n

M(i, j) = Worksheets(1).Cells(i, j).Value

Worksheets(1).Cells(i + k + 4, j).Value = M(i, j)

Next j

Next i

End Sub

 

 

Пояснения

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

Функция InputBox используется для ввода пользователем в вызывающую программу значения. После завершения ввода переменные n и k видны во всех процедурах проекта.

В процедуре формирования массива, который объявлен как динамический

В процедуре формирования массива, который объявлен как динамический для конкретизации размера массива M(), объявленного как динамический, используется инструкция ReDim().

 

Источником данных для формирования массива используются значения внесенные пользователем на лист Excel.

Синтаксис ссылки на значения конкретного элемента массива M(i, j) = Worksheets(1).Cells(i, j).Value. В данном случае указывается порядковый номер листа в коллекции объектов Sheets. Объект Cells(i,j) для обращения

к конкретной ячейке,

 

В модуле Solve размещены процедуры, предназначенные для решения конкретных задач данного индивидуального задания.

Далее приведены листинги процедур и необходимые пояснения

Public Sub Max_element

‘Нахождение максимального элемента массива

Max = M(1, 1)

Ind_i = 1

Ind_j = 1

For i = 1 To k

For j = 1 To n

If M(i, j) > Max Then

Max = M(i, j)

Ind_i = i

Ind_j = j

End If

Next j

Next i

MsgBox "Максимальный элемент = " & Max & Chr(10) & "Строка " & Ind_i & Chr(10) & "Столбец " & Ind_j

End Sub

Пояснения

В процедуре для прохождения по строкам и столбцам используется цикл For..Next, который допускает использование вложенных циклов.

При прохождении по элементам массива для поиска максимального используется оператор If («если»).

Для вывода результатов используется функция MsgBox отображающая в диалоговом окне текст "Максимальный элемент = ", значение максимального элемента и в следующих строках индексы этого элемента. Для перехода на следующую строку используется Chr(10).

Public Sub Max_colum()

'Создание одномерного массива содержащего максимальные элементы в столбцах

 

ReDim B(1 To n)

st = "Максимальные значения в столбцах" & Chr(10)

 

'Инициализация массива значениями элементов первой строки

For i = 1 To n

B(i) = M(1, i)

Next

 

For i = 1 To n

For j = 2 To k

If M(j, i) > M(j - 1, i) Then

B(i) = M(j, i)

End If

Next j

st = st & " " & B(i)

Next i

MsgBox st

End Sub

 

Public Sub Main()

 

Размерность

Массив

Max_element

Max_colum

 

End Sub

Пояснения

 

 

Процедура Main после запуска последовательно вызывает процедуры, назначение которых описано выше.

Процедура Размерность выводит диалоговые окна для указания количества строк и столбцов формируемого массива (достаточно 4…5).

Процедура Массив формирует массив считывая заранее внесенные данные с листа Excel/
Список литературы

1 Царев, Р. Ю. Информатика и программирование. - Красноярск: Сибирский федеральный университет, 2014. - 132 с. - ISBN 978-5-7638-3008-8.

 

2 Информатика. Базовый курс: учеб. пособие / под ред. С. В. Симоновича. - 3-е изд. - СПб.: Питер, 2012. - 640с.: ил. - (Стандарт третьего поколения).

 

3 Гуриков, С.Р.. Информатика: Учебник. - Москва; Москва: Издательство "ФОРУМ": ООО "Научно-издательский центр ИНФРА-М", 2014. - 464 с. - ISBN 978-5-91134-794-9.

 

4 Каймин. В. А. Информатика: Учебник. - - Москва; Москва: ООО "Научно-издательский центр ИНФРА-М": Издательский Дом "ИНФРА-М", 2015. - 285 с.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: