Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Dim Зарплата(10, 12) As Double

Поиск

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

Программный код для кнопки «Средняя зарплата по предприятию за год»:

Dim i, j As Integer

Dim S, СрЗарплата As Double

For i = 1 To 10

For j = 1 To 12

S = S + Зарплата(i, j)

Next j

Next i

СрЗарплата = S / 120

MsgBox "Средняя зарплата по предприятию за год - " + CStr(СрЗарплата), vbExclamation, "Средняя зарплата"

Вывод результатов осуществляется с помощью окна сообщения. Так как параметр Prompt – символьная величина, то используем функцию CStr для преобразования средней зарплаты в текст.

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

Программный код для кнопки «Средняя зарплата по предприятию за март».

Dim i, j As Integer

Dim S, СрЗарплатаЗаМарт As Double

For i = 1 To 10

S = S + Зарплата(i, 3)

Next i

СрЗарплатаЗаМарт = S / 10

MsgBox "Средняя зарплата по предприятию за март - " + CStr(СрЗарплатаЗаМарт), vbExclamation, "Средняя зарплата"

Для решения следующих задач воспользуемся алгоритмом нахождения максимального элемента массива. Возьмем вспомогательную переменную max, в которой и будет храниться максимальный элемент. Присвоим этой переменной значение первого элемента. Затем, начиная со второго элемента и до конца массива, будем сравнивать значение переменной max и очередного элемента. Если значение элемента больше max, то далее max будет равен этому элементу.

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

В итоге программа для кнопки «Максимальная зарплата указанного сотрудника» имеет вид:

Dim Сотрудник As String

Dim n, i, j As Integer

Dim max As Double

n = 0 ‘Номер нужного сотрудника

Rem Вводим фамилию нужного сотрудника

Сотрудник = InputBox("Введите фамилию сотрудника", "Ввод данных")

Rem Проверяем, есть ли такая фамилия в списке

For i = 1 To 10

If Сотрудник = Фамилия(i) Then n = i: Exit For

Next i

If n = 0 Then MsgBox "Нет сотрудника с заданной фамилией", vbCritical, "Ошибка при вводе данных": Exit Sub

Rem Находим максимальный элемент массива

max = Зарплата(n, 1)

For j = 2 To 12

If Зарплата(n, j) > max Then max = Зарплата(n, j)

Next j

Rem Выводим результат в окно сообщения

MsgBox "Максимальная зарплата - " + CStr(max), vbExclamation, Фамилия(n)

Сложность последней задачи заключается в том, что сразу несколько человек могли получить в определенном месяце максимальную зарплату. Поэтому сначала находим максимальную зарплату для каждого месяца, а затем (в новом цикле) определяем фамилии сотрудников, ее получивших. Вывод осуществим в ячейки электронной таблицы.

Dim i, j As Integer

Dim max(12) As Double

Dim b(12) As Integer

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

For j = 1 To 12

max(j) = Зарплата(1, j)

For i = 2 To 10

If Зарплата(i, j) > max(j) Then max(j) = Зарплата(i, j)

Next i

Next j

Rem b(j) – номер первой свободной строки в каждом столбце

For j = 1 To 12

b(j) = 12

Next j

Rem Сравниваем зарплаты с максимальной в каждом месяце

For i = 1 To 10

For j = 1 To 12

If Зарплата(i, j) = max(j) Then b(j) = b(j) + 1: Cells(b(j), j + 1) = Фамилия(i)

Next j

Next i

Наберите все программные коды и проверьте работу программы.

 

 

Задание 7. Формы пользователя сложной структуры

Задача 7.1. Известны: цена приобретаемого имущества; величина первоначального взноса, выраженная в процентах; годовая ставка (в процентах); срок погашения ссуды (в месяцах или годах).

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

Решение. Создайте форму пользователя и разместите на ней указанные элементы управления (Рис. 24).

 

Настройте свойства элементов управления (Рис. 25).

При запуске формы должны начать работу некоторые из элементов управления: список (ListBox), счетчик (SpinButton), выключатель (ToggleButton). Для этого используйте следующий программный код:

Private Sub UserForm_Initialize()



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 314; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.239.0 (0.005 с.)