Алгоритм создания функции пользователя. 


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



ЗНАЕТЕ ЛИ ВЫ?

Алгоритм создания функции пользователя.



САРАНСК

 

 

УДК 004(075.8)

ББК З97

А67

Рецензент: кандидат педагогических наук, доцент С.В. Гордина

 

 

Печатается по решению научно-методического совета ГОУВПО «Мордовский государственный университет им. Н.П. Огарева»

 

А67 Практикум по информатике (программирование в среде VBA): Практикум. /Аникина Н.В., Соколова М.Ю., Петрова Е.С. – Саранск, 2009. – 60с.

 

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

УДК 004(075.8)

ББК З97

 

 

Аникина Наталья Васильевна

Соколова Марина Юрьевна

Петрова Елена Сергеевна

 

© Аникина Н.В., Соколова М.Ю., Петрова Е.С. 2009


Оглавление

Введение. 4

Структура редактора VBA.. 5

Задание 1. Создание функции пользователя линейной структуры.. 7

Задание 2. Создание функции пользователя циклической структуры.. 11

Задание 3. Встроенные диалоговые окна. 14

Задание 4. Создание форм пользователя. 18

Задание 5. Файлы последовательного доступа. 23

Задание 6. Обработка одномерных и двумерных массивов. 25

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

Приложения. 33

Индивидуальное задание по теме «Создание функции пользователя». 33

Индивидуальное задание по теме «Создание формы пользователя». 39

Индивидуальное задание по теме «Файлы последовательного доступа». 43

Индивидуальное задание по теме «Обработка массивов». 46

Элементы управления и их свойства. 48

Финансово-математические функции. 53

Функции преобразования типов. 54

Математические функции. 55

Типы данных. 56

Задания для студентов заочного отделения. 57


Введение

 

Предлагаемое учебно-методическое пособие предназначено для изучения и практического освоения приемов использования инструментальной среды Visual Basic for Application и Microsoft Excel, создания несложных программ для решения экономических задач на персональном компьютере.

В информационном обществе особое внимание следует обратить на формирование готовности и умения самостоятельно приобретать новые знания и постоянно творчески реализовываться. В этой связи обладание навыками создания проектов на языке программирования в среде Visual Basic for Application является важным инструментом творческой активности студента в процессе познания и самореализации. Кроме этого обучение основам работы в среде и на языке программирования формирует у студента алгоритмическое и логическое мышление, навыки выполнение заданной последовательности действий и многие другие полезные качества.

В пособии представлен теоретический материал, описывающий структуру редактора VBA и основные операторы языка, приведена система упражнений к занятиям, дан список литературы и индивидуальные задания.

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


Структура редактора VBA

Рассмотрим редактор VBA, реализованный в программе Microsoft Excel. Аналогичные редакторы есть также в программах Microsoft Word и Microsoft Access.

Чтобы запустить редактор, необходимо в программе Microsoft Excel выполнить команду Сервис ® Макрос ® Редактор Visual Basic… или нажать комбинацию клавиш Alt + F11. Можно также воспользоваться кнопкой на панели инструментов Visual Basic.

Рассмотрим вид экрана после загрузки редактора Visual Basic (Рис. 1).

 
 

 


Окно проекта (Project Explorer) содержит графическое представление содержимого проекта, т.е. дерево или список объектов, которые входят в проект. Это, прежде всего, рабочие листы книги, в которой проект создан, а также папка с пользовательскими формами, модулями и модулями классов. Вывести данное окно на экран можно одним из следующих способов: командой View ® Project Explorer, комбинацией клавиш Ctrl + R, кнопкой на панели инструментов.

Окно свойств (Properties Window) предназначено для отображения и настройки свойств формы и расположенных на ней объектов. Оно включает два столбца: в левом отображены имена свойств объектов, в правом – значения этих свойств. Вызвать это окно можно командой View ® Properties Window, клавишей F4 или кнопкой на панели инструментов.

 

 

В окне конструктора форм выполняется визуальное проектирование приложения: в нем располагаются все необходимые в проекте элементы управления. Новую форму можно добавить командой Insert ® UserForm или кнопкой .

Окно просмотра объектов (Object Browser) содержит список всех возможных объектов (левая панель), а также список всех свойств и методов, присущих выбранному объекту (правая панель). Открывается командой View ® Object Browser, нажатием кнопки F2 или кнопкой на панели инструментов.

Панель элементов (Toolbox) – основной рабочий инструмент при визуальной разработке форм. Она содержит пиктограммы элементов управления. Добавить это окно на экран можно командой View ® ToolBox или кнопкой .

Окно редактирования кода (Code) служит для ввода и изменения кода процедур и функций проекта. В нем можно просмотреть код отдельной процедуры или код всего модуля. Менять режимы просмотра следует кнопками, расположенными в левом нижнем углу окна редактирования кода. В верхней части окна размещены два раскрывающихся списка. Левый содержит имена объектов, а правый – перечень событий, допустимых для объекта, выбранного в левом списке. Вывести окно редактирования кода на экран можно одним из следующих действий: выполнением команды View ® Code, нажатием клавиши F7, двойным щелчком мыши по нужному объекту или кнопкой .

 

 

Задание 1. Создание функции пользователя линейной структуры

Теоретический материал к занятию:

1) переменная; ее имя, тип, значение;

2) оператор присваивания;

3) встроенные типы данных;

4) математические операции;

5) алгоритм создания функции пользователя;

6) условный оператор;

7) операции отношения;

8) логические операции.

End Function

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

Создайте функцию пользователя Треугольник. Отметим, что проверить правильность ее работы нужно дважды: для случая, когда можно построить треугольник (например, a = 3, b = 4, c = 5) и когда треугольник построить нельзя (a = 1, b = 1, c = 2).

 

 

Задание 2. Создание функции пользователя циклической структуры

Теоретический материал к занятию:

1) комментарии в программе;

2) циклический оператор;

3) массив данных;

4) тип данных Variant и его отличие от других типов данных;

5) описание вспомогательных переменных.

 

Задача 2.1. Разработать функцию пользователя для расчета накопленной стоимости S по неравномерным непериодическим платежам по формуле

где Pj – сумма вклада,

i – годовая процентная ставка,

dt – разность между двумя соседними платежами,

К – количество платежей.

Решение.

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

Пункт 4. Напомним, что имя функции не может содержать пробелов и должно быть информативно. В поле ввода Name в окне «Вставка процедуры» введите имя НакСумма. Установите также нужные переключатели (Рис. 8) и нажмите кнопку ОК.

Пункт 5. Появился заголовок окна:

Public Function НакСумма()

End Function

Рассмотрим конкретную ситуацию. Предположим, что в 2008 году были сделаны четыре вклада по 1 тысяче рублей 1 января, 1 апреля, 1 июля, 1 октября. А 31 декабря деньги были сняты со счета. Определить какая сумма была снята. Занесем наши данные в ячейки электронной таблицы, как показано на рисунке 11.

В нашей задаче – 3 исходных данных: сумма вклада (назовем ее ВеличинаВклада), годовая процентная ставка (Ставка) и даты (Дата). При этом накопленная сумма – вещественное число (тип Double), ставка – вещественное число до 1 (тип Single), а величины вкладов и даты их поступления являются индексированными переменными (тип Variant). То есть в нашей задаче фигурирует не одна сумма вклада и не одна дата, а их определенная последовательность. Элементы этого массива данных отличаются друг от друга номерами или индексами. В этом случае и используют тип данных Variant, который может хранить данные любого типа и работать с индексированными переменными.

В итоге получаем следующую строку заголовка:

Dim K As Integer

Dim I As Integer

Dim Разность As Integer

или одним оператором

Next I

End Function

 

Пункт 7. Перейдите на лист с исходными данными. В ячейке С2 выполните команду ВставкаФункция, выберите категорию Определенные пользователем, функцию НакСумма и нажмите ОК. Введите в поля следующие данные: ВеличинаВклада – A2:A6, Ставка – 60%, Дата – B2:B6. Должен появиться результат 5743,46.

Задача 2.1. Разработайте функцию пользователя для расчета средней гармонической величины x по формуле:

где – средняя гармоническая величины x;

xi – i-е значение величины Х.

Решение.

Выполните три первых пункта алгоритма создания функции пользователя.

Пункт 4. В поле Name введите заголовок СредняяГармоническая нажмите кнопку ОК.

Пункт 5. Появился заголовок функции:

End Function

В нашей задаче исходными данными являются значения величины Х. Так как величина Х – это последовательность вещественных чисел, то определим переменную Х как переменную типа Variant.

Введите строку заголовка:

Next I

7) СредняяГармоническая = K / Сумма

Пункт 7. Проверьте работу функции на контрольном примере (Рис. 12), вызвав нужную функцию в ячейке В2.

 

 

 

 

Задание 3. Встроенные диалоговые окна

Теоретический материал к занятию:

1) окно ввода;

2) окно сообщений.

Окно ввода

InputBox (prompt [,title] [,default] [,xpos] [ypos])

 

prompt – текст в окне ввода

title – заголовок окна

default – текст в поле ввода

xpos – расстояние от левой границы экрана до левой границы окна

ypos – расстояние от верхней границы экрана до верхней границы окна

Окно ввода включает в себя: заголовок, текст, поле ввода и две кнопки (ОК и Отмена) (Рис. 13)

Значением функции является строка, набранная в поле ввода, если нажата кнопка ОК и пустая строка, если нажата кнопка Отмена.

Окно сообщения

MsgBox (prompt [,buttons] [,title])

 

prompt – текст в окне сообщения

buttons – настройки окна сообщения

title – заголовок окна

Значения функции MsgBox

1 – ОК

2 – Отмена (Cancel)

3 – Прервать (Abort)

4 – Повторить (Retry)

5 – Пропустить (Ignore)

6 – Да (Yes)

7 – Нет (No)

Константы для определения параметра buttons

Константа Значение Описание
Наборы кнопок окна сообщения
VbOKOnly VbOKCancel vbAbortRetryIgnore   vbYesNoCancel vbYesNo vbRetryCancel   Окно содержит только кнопку ОК Окно содержит кнопки ОК и Отмена Окно содержит кнопки Прервать, Повторить и Пропустить Окно содержит кнопки Да, Нет и Отмена Окно содержит кнопки Да и Нет Окно содержит кнопки Повторить и Отмена
Пиктограммы окна сообщения
vbCritical       Добавляет пиктограмму «Критическое сообщение». Часто после такого сообщения программа прекращает работу.

 

Константа Значение Описание
vbQestion   vbExclamation vbInformation   Добавляет пиктограмму «Запрос». Обычно используется, когда для продолжения работы программы требуется дополнительная информация. Добавляет пиктограмму «Предупреждение». Добавляет пиктограмму «Информация». Чаще всего используется для сообщения о завершении выполнения некоторой задачи.
Кнопка по умолчанию
vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4   Первая Вторая Третья Четвертая
Модальность окна
vbApplicationModal     vbSystemModal     Модальность уровня приложения. Пока вы не нажмете одну из кнопок окна, вы не сможете вернуться в приложение, породившее это окно. При этом можно переключиться на другое приложение. Модальность системного уровня. Пока не будет закрыто это окно, никакие приложения не доступны.

Задача 3.1. Составить программу, последовательно выводящую следующие диалоговые окна (Рис. 15).

Решение.

Откройте рабочую книгу, на панели инструментов Формы выберите элемент кнопка и поместите его на рабочий лист. Появится диалоговое окно Назначить макрос объекту. Нажмите кнопку Создать. В появившемся окне нужно и набирать программный код.

Окна ввода и сообщения могут быть реализованы в виде функций или в виде операторов InputBox и MsgBox. Если при решении задачи требуется запомнить текст, вводимый в поле ввода, то используется функция InputBox (). Если этот текст в дальнейшем не нужен, то – оператор InputBox. Если дальнейший ход решения зависит от того, какая кнопка нажата в окне сообщения, то используется функция MsgBox(). В противном случае оператор MsgBox. Напомним, что аргументы функции помещаются в скобках. В задаче 3.1 окна с номерами 1 и 2 реализуются функциями, а окна 3 и 4 операторами.

 

 

 

 

Наберите программный код:

Номер = MsgBox("Продолжить работу?", vbYesNo + vbQuestion, "Запрос")

If Номер = 6 Then

Строка = InputBox("Введите имя", "Да", "Иванов")

MsgBox Строка, vbOKOnly + vbExclamation

Else: MsgBox "Завершение работы", vbOKOnly + vbCritical, "Нет"

End If

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

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

 

Задание 4. Создание форм пользователя

Теоретический материал к занятию:

1) структура редактора VBA;

2) элементы управления: свойства и методы;

3) оператор выбора;

4) область видимости переменных.

 

Задача 4.1. Разработать форму пользователя для вычисления годовой процентной ставки контракта по кредиту, взятого на определенный срок при известных сумме долга и сумме, подлежащей возврату. Используйте формулу:

где Р – сумма кредита;

S – сумма, подлежащая возврату;

Т – срок кредита.

Решение. Создание проекта на языке VBA предполагает конструирование интерфейсной части (чаще всего форм пользователя) и разработку программного кода.

Откройте редактор VBA и вставьте форму пользователя командой Insert ® UserForm.

В окне свойств найдите в левой колонке свойство Caption, а в правой введите значение Расчет годовой процентной ставки. Значением данного свойства является символьная константа, отображающаяся в заголовке данной формы. Найдите в левом столбце свойство BackColor, в правом столбце откройте список, перейдите на вкладку Palette и выберите цвет формы. Можно также разместить на форме рисунок с помощью свойства Picture.

Добавьте на форму элемент надпись. Для этого на панели элементов управления Toolbox нажмите кнопку (Label), наведите указатель мыши на форму и, не отпуская левой кнопки, растяните объект до нужного размера (Рис. 16).

Введите значение свойства Caption – Сумма кредита. Настройте цвет надписи с помощью свойства BackColor, цвет букв с помощью свойства ForeColor, шрифт, начертание и размер букв – Font.

Разместите на форме все остальные элементы управления (Рис. 17). Это четыре надписи (Label), четыре текстовых поля (TextBox) и три кноп ки (CommandButton). Настройте свойства.

После настройки интерфейсной части приступаем к созданию программного кода.

Программный код для кнопки Выход состоит всего из одного оператора End (конец программы). Откройте окно редактирования кода (например, двойным щелчком по этой кнопке) и введите оператор (Рис. 18).

 

 

 

При нажатии кнопки Очистить все текстовые поля должны стать пустыми. Для этого изменим значение свойства Text элемента TextBox. Значение любого свойства в программе можно поменять строкой вида:

Объект.Свойство = Значение

 

В итоге программный код для кнопки Очистить будет иметь следующий вид:

TextBox1.Text = “”

TextBox2.Text = “”

TextBox3.Text = “”

TextBox4.Text = “”

TextBox1.SetFocus

Метод SetFocus делает элемент управления активным. В нашем случае после того, как все поля станут пустыми, курсор будет установлен в первое текстовое поле.

Наберите полученную программу в окне редактирования кода для кнопки Очистить.

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

Но прежде чем считывать исходные данные, необходимо проверить, правильно ли они введены. Ошибка возникает, когда текстовое поле остается пустым или в него введено не число. Проверить правильность можно с помощью логической функции IsNumeric, которая принимает значение True (Истина), если аргументом является число и значение False (Ложь) в противном случае.

Блок проверки правильности введенных данных для текстового поля TextBox1 будет иметь вид:

If IsNumeric(TextBox1.Text) = False Then

TextBox1.SetFocus

Exit Sub

End If

Обратите внимание, что условный оператор используется в блочной форме.

Аналогичные блоки нужно использовать и для проверки правильности других введенных данных.

Далее считываем исходные данные и преобразуем их в нужный тип:

ИсходнаяСумма = CDbl(TextBox1.Text)

ВыплаченнаяСумма = CDbl(TextBox2.Text)

Срок = CInt (TextBox3.Text)

Затем находим по формуле нужную величину и выводим результат в текстовое поле TextBox4.

ГодоваяСтавка = (ВыплаченнаяСумма – ИсходнаяСумма) / (ИсходнаяСумма * Срок / 12)*100

TextBox4.Text = ГодоваяСтавка

Если результат нужно вывести на элементе надпись, то строка имела бы вид:

Label4.Caption = ГодоваяСтавка

Для форматированного вывода можно воспользоваться также функцией Format:

TextBox4.Text = Format (ГодоваяСтавка, "####.##")

В итоге программа для кнопки Вычислить будет иметь вид:

TextBox1.SetFocus

Exit Sub

End If

If IsNumeric(TextBox2.Text) = False Then

MsgBox "Проверьте правильность введенного данного"

TextBox2.SetFocus

Exit Sub

End If

If IsNumeric(TextBox3.Text) = False Then

MsgBox "Проверьте правильность введенного данного"

TextBox3.SetFocus

Exit Sub

End If

ИсходнаяСумма = CDbl(TextBox1.Text)

ВыплаченнаяСумма = CDbl(TextBox2.Text)

Срок = CInt(TextBox3.Text)

ГодоваяСтавка=(ВыплаченнаяСумма–ИсходнаяСумма)/(ИсходнаяСумма*Срок/12)*100

TextBox4.Text = Format (ГодоваяСтавка, "####.##")

Наберите этот программный код.

Выполним проверку. Для этого запустим форму командой Run →Run Sub / UserForm, нажав F5 или кнопку на панели инструментов. Введите исходные данные: сумма кредита – 1000; сумма, подлежащая возврату – 1100; срок кредита – 12. Должен появиться результат 10.

Для удобства вызова формы можно использовать командную кнопку на рабочем листе, как показано в задаче 3.1. Программный код для вызова формы кнопкой будет иметь вид:

UserForm1.Show

Задача 4.2. Разработать форму пользователя, имитирующую работу калькулятора.

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

При нажатии на кнопки «+»,«-», «*», «/» должны быть выполнены следующие действия: считано число из текстового поля, сохранено, запомнена нажатая кнопка и очищено текстовое поле.

Программные коды соответственно имеют вид:

кнопка «+»

a = CDbl(TextBox1.Text)

n = 1

TextBox1.Text = “”

TextBox1.SetFocus

кнопка «-»

a = CDbl(TextBox1.Text)

n = 2

TextBox1.Text = “”

TextBox1.SetFocus

кнопка «*»

a = CDbl(TextBox1.Text)

n = 3

TextBox1.Text = “”

TextBox1.SetFocus

кнопка «/»

a = CDbl(TextBox1.Text)

n = 4

TextBox1.Text = “”

TextBox1.SetFocus

При нажатии на кнопку «=» должен быть считан второй операнд, выполнено действие и выведен результат в текстовое поле. При этом для выбора действия будет использован оператор выбора Select Case.

b = CDbl(TextBox1.Text)

Select Case n

Case 1

c = a + b

Case 2

c = a - b

Case 3

c = a * b

Case 4

If b = o Then c = "ERROR" Else c = a / b

End Select

TextBox1.Text = c

При делении двух чисел следует обратить внимание на делитель (он должне быть отличен от нуля, в противном случае выводится сообщение об ошибке).

Чтобы данная форма работала корректно, необходимо глобально описать переменные (они будут принимать одинаковые значения для всех подпрограмм, а значит для всех кнопок). Делается это строками:

Dim a, b As Double

Dim c As Variant

Dim n As Integer,

которые следует разместить в области описания глобальных переменных (над самой первой строкой заголовка процедуры). (Рис. 20)

 

 

Настройте кнопку, вызывающую форму с рабочего листа и проверьте работу формы для всех действий. Самостоятельно разработайте программные коды для кнопок Очистить и Корень, причем для последней предусмотреть случай отрицательного подкоренного выражения.

 

 

Задание 5. Файлы последовательного доступа

Теоретический материал к занятию:

1) файлы последовательного и прямого доступа;

2) три режима работы с файлом последовательного доступа (создание, добавление, чтение).

 

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

Наименование Цена Количество Стоимость
      ?

Решение.

Создаем форму пользователя (Рис. 21).

При этом обращаем внимание, что Наименование, Цена и Количество – это исходные данные, а Стоимость – это вычисляемое данное.

Стоимость = Цена * Количество

Наша задача сводится к тому, что нужно

1) создать файл последовательного доступа «Ведомость.txt»;

2) считать введенные в поля формы данные, просчитать стоимость и все эти данные занести в файл последовательного доступа;

3) вывести информацию из файла на лист электронной таблицы;

4) назначить макросы для вспомогательных кнопок Очистить и Выход.

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

Close #1

Программный код для кнопки «Добавить в файл»:

Close #1

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

Программный код для кнопки «Печать из файла»

Лист1.Activate

TextBox1.SetFocus

Программный код для кнопки «Выход»

End

Проверьте работу программы.

 

 

Задание 6. Обработка одномерных и двумерных массивов

Теоретический материал к занятию:

1) массивы и их виды;

2) алгоритмы нахождения суммы, произведения, количества элементов массива, удовлетворяющих определенному условию;

3) алгоритмы нахождения максимального и минимального элементов массива и их номеров;

4) вывод элементов массива.

 

Задача 6.1. На предприятии работают 10 сотрудников. Даны одномерный символьный массив, содержащий фамилии, и двумерный вещественный массив, содержащий заработную плату всех сотрудников за каждый месяц прошлого года. Все данные размещены в ячейках электронной таблицы. Требуется найти:

1) среднюю зарплату по предприятию за год;

2) среднюю зарплату по предприятию за март;

3) максимальную зарплату указанного сотрудника;

4) фамилии сотрудников, получивших самую высокую зарплату в каждом месяце.

Решение.

Создайте файл с исходными данными. Для этого введите информацию в ячейки электронной таблицы, как показано на рисунке (Рис. 22).

Разработайте следующую форму пользователя (Рис. 23).

 

 

 

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

Private Sub UserForm_Initialize()

Dim i, j As Integer

For i = 1 To 10

Фамилия(i) = Cells(i + 1, 1)

For j = 1 To 12

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

Next j

Next i

End Sub

Обратите внимание на то, что для формы используется событие Initialize (его выбираем в окне редактирования кода в правом списке).

Также в программе используются вложенные циклы. В этом случае сначала закрывается внутренний цикл, а затем внешний. Ключевое слово Cells означает ссылку на ячейку электронной таблицы, но в отличие от адресации в Excel первым указывается номер строки, а затем номер столбца. Таким образом, будут заполнены два массива: массив фамилий и массив зарплат. Для того чтобы эти данные были видны во всех процедурах, опишем их как глобальные (первой строкой в окне редактирования кода):

Dim Фамилия(10) As String

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

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 ‘Номер нужного сотрудника

Next i

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

Next j

Dim i, j As Integer

Dim max(12) As Double

Dim b(12) As Integer

Next i

Next j

Next j

Next j

Next i

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

 

 

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

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

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

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

 

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

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

Private Sub UserForm_Initialize()

End Sub

Для процедуры обработки события Change элемента SpinButton1 запишите программный код, который выводит в текстовое поле значение Счетчика.

Private Sub SpinButton1_Change()

TextBox3.Value = SpinButton1.Value

End Sub

Для расчета величины постоянных периодических выплат в Visual Basic есть специальная функция Pmt, которая имеет следующий синтаксис:

Pmt (Ставка, Кпер, Нз, [Бз [, Тип]]),

где Ставка – процентная ставка за период;

Кпер – количество периодов выплат для погашения кредита;

Нз – сумма, которую нужно погасить;

Бз – баланс наличности, который нужно достичь после последней выплаты;

Тип – признак того, когда производится выплата (0 – в конце периода, 1 – в начале периода платежа).

Процедура обработки события Click элемента CommandButton1 имеет следующий код:

Private Sub CommandButton1_Click()

Dim Ставка, Нз As Double

Dim Кпер As Integer

Dim Тип As Byte

End Sub

Параметр Нз берется со знаком минус, так как эта сумма была отдана банком.

Для процедуры обработки события Click элемента CommandButton2 наберите следующий код:

End

Введите данные для расчета и проверьте, правильно ли выполняются вычисления (Рис. 26).

 

 


Приложения

Индивидуальное задание по теме «Создание функции пользователя»

Вариант 1

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

где П1, П0 – платежи населения соответственно в планируемом и отчетном годах;

Сд – скорость обращения, дни.

2. Разработайте функцию пользователя для расчета общей стоимости товаров по формуле:


где C – общая стоимость товаров;

Ki – количество i-го товара;

Цi – цена i-го товара.

Вариант 2

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

где Q – план выпуска продукции;

Н – дневная норма выработки продукции;

Т – число рабочих дней в году на одного рабочего.

2. Разработайте функцию пользователя для расчета средней арифметической взвешенной величины x по формуле:



Поделиться:


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

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