Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание программ обработки символьной информацииСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Цель работы – изучение основ создания программ обработки символьной информации средствами языка программирования VBA. После выполнения работы студент должен знать основы разработки программ обработки символьной информации, уметь создавать и отлаживать программы обработки символьной информации средствами VBA. Справочная информация Символьная информация постоянно присутствует во всех программах, как средство ведения диалога с пользователем, а также для отображения входных и выходных данных. Для ее описания используются типы данных String, Variant, а также символьные константы. При обработке символьной информации часто применяются функции обработки строк Asc(), Chr(), Lcase(), Ucase(), Left(), Rigt(), Mid(), Len(), Ltrim(), Rtrim(), Trim(), Spaсe(), String(), StrComp(), StrReverse(), InStr(), InStrRev(), Replace() (см. прилож. 14). Пример программы 1. Требуется создать программу, позволяющую преобразовать начальную букву строковой переменной в заглавную, если это не пробел.
‘ Пример 3.1 ‘Лабораторная работа №3 Sub Lab_rab_3_1() Dim p, v As String 'объявляем переменные р (входная) и v (выходная) - строковыми M1: p = InputBox("Введите строку символов", _ "Ввод данных", " абвгдежзе") 'Метка М1: переменной р присваиваем значение строки символов, 'вводимой с клавиатуры If p = Empty Then Exit Sub 'если нажата кнопка Cancel, тогда завершаем процедуру If Asc(Left(p, 1)) = 32 Then 'если ASCII код первого символа строки есть "пробел", тогда MsgBox "Первый символ - пробел. Повторите ввод", _ vbInformation + vbOKOnly, "Внимание!" 'вывод на экран сообщения GoTo M1 'и переход на метку М1 Else 'иначе v = UCase(Left(p, 1)) & Right(p, Len(p) - 1) 'Формирование выходной переменной MsgBox v, vbOKOnly, "Результат" 'Вывод результата End If 'закрывающая операторная скобка End Sub 2. Требуется создать программу вывода на экран очередного символа строки. Реализовать режим повтора работы программы по запросу пользователя.
‘ Пример 3.2 ‘Лабораторная работа №3 Sub Lab_rab_3_2() Dim p As String, i, n, k As Integer met: p = InputBox("Введите строку символов", _ "Ввод данных", "абвгдеж") If p = Empty Then Exit Sub For i = 1 To Len(p) 'Цикл по I от 1 до количества символов строки MsgBox Str(i) & " – тый символ строки - " & Mid(p, i, 1) Next i k = MsgBox("Продолжить работу программы", _ vbYesNo + vbQuestion) 'Переменной к присваивается значение, возвращаемое 'функцией MsgBox() в зависимости от нажатой пользователем 'кнопки Да или Нет If k = vbYes Then GoTo met End Sub Задание 1. Выполните постановку задачи, опишите экономико-математическую модель и метод решения, составьте алгоритм решения и представьте их преподавателю. 2. В соответствии с вариантом задания (см. табл.4) создайте процедуру обработки символьной информации (см. Пример 3). 3. Отладьте программу, проверьте ее работоспособность, в том числе с критическими и недопустимыми значениями параметров. 4. Создайте в Кнопочной_форме кнопку для запуска созданной процедуры и проверьте ее работу. 5. Сохраните созданный модуль и представьте работу преподавателю. Таблица 4 Варианты заданий
13.4. Контрольные вопросы 1. Для каких целей применяется каждая из функций обработки строк: Asc(), Chr(), Lcase(), Ucase(), Left(), Rigt(), Mid(), Len(), Ltrim(), Rtrim(), Trim(), Spaсe(), String(), StrComp(), StrReverse(), InStr(), InStrRev(), Replace()? 2. Объясните смысл использованного в примере программы выражения v = UCase(Left(p, 1)) & Right(p, Len(p) - 1) 3. Объясните назначение параметров функции InputBox() и процедуры MsgBox, использованных в примере 3. 4. Каково отличие функции и процедуры? 5. *В профессиональном программировании использование оператора <Goto Метка> считается некорректным. Предложите вариант программы без использования перехода на метку.
Создание финансовых функций Цель работы – изучение основ создания пользовательских финансовых функций средствами языка программирования VBA. После выполнения работы студент должен знать основы создания финансовых функций, уметь создавать и отлаживать программы обработки финансово-экономической информации средствами VBA.
Справочная информация При выполнении финансово-экономических расчетов часто приходится рассчитывать одни и те же финансовые показатели. Средством автоматизации выполняемых расчетов могут служить финансовые функции. Различают стандартные и пользовательские финансовые функции. Стандартные или встроенные финансовые функции уже присутствуют в составе приложения как готовые подпрограммы. Их основной перечень приведен в соответствующей литературе, справочной системе VBA и в прилож. 14. Пользовательские финансовые функции создаются в дополнение к существующим стандартным функциям. Обращение к ним осуществляется таким же образом. При разработке пользовательских функций следует предусмотреть логическую проверку корректности типов данных и значений входных параметров.
Пример программы Требуется создать пользовательскую функцию расчета процентной ставки для полностью инвестированных ценных бумаг. Расчет выполняется по следующей формуле (%):
где: погашение – объем инвестиции в ценные бумаги, руб; инвестиция – объем средств, которые должны быть получены на дату вступления ценных бумаг, руб; B – число дней в рассматриваемом году; дата_вступ — дата погашения ценных бумаг. Эта дата определяет истечение срока действия ценных бумаг; дата_согл — это дата соглашения для ценных бумаг; (дата_согл < дата_вступ).
‘ Пример 4 Function ИНОРМА(инвестиция, погашение As Currency, _ дата_согл, дата_вступ As Date) As Single If IsNumeric(инвестиция) = False Or IsNumeric(погашение) = False _ Or IsDate(дата_вступ) = False Or IsDate(дата_согл) = False Then MsgBox "Недопустимые типы исходных данных", _ vbCritical + vbOKOnly, "Внимание!" Exit Function End If If погашение < 0 Or инвестиция < 0 _ Or дата_согл >= дата_вступ Then MsgBox "Недопустимые значения исходных данных", _ vbCritical + vbOKOnly, "Внимание!" Exit Function End If ИНОРМА = Format((погашение - инвестиция) / инвестиция) _ * IIf(Year(дата_согл) Mod 4 = 0, 366, 365) / (дата_вступ - _ дата_согл), "Percent") End Function
Задание 1. Выполните постановку задачи, опишите экономико-математическую модель и метод решения, составьте алгоритм решения и представьте их преподавателю. 2. В соответствии с вариантом задания (см. табл.5) создайте пользовательскую функцию вычисления значения финансового выражения, позволяющую выполнять логическую проверку параметров на соответствие типов данных, на критические и недопустимые значения (см. Пример 4). 3. Откомпилируйте программу (меню DebugàCompile) и в случае необходимости устраните синтаксические ошибки. 4. Из окна Immediate Window(редактор VBA à меню View à Immediate Window) обратитесь к функции (например, командой?ИНОРМА(2500,2590,#01.01.14#,#12.29.14#)) и проверьте ее работоспособность, в том числе с критическими и недопустимыми значениями параметров и несоответствующими типами данных. Замечание: при обращении к функции из окна Immediate Window для корректной ее работы параметры типа дата следует вводить в американском формате: #ММ/ДД/ГГ#. 5. Создайте пользовательскую форму для обращения к функции, для чего: Запустите конструктор форм и создайте форму, аналогичную представленной в прилож. 15; При задании свойств полей не забудьте учесть форматы входных и выходных данных; Закрепите за кнопками процедуры, аналогичные представленным ниже:
Private Sub Кнопка17_Click() ‘Кнопка «Очистить» With Forms![Для_финансовой_функции] ![Поле1].Value = Empty ![Поле5].Value = Empty ![Поле7].Value = Empty ![Поле9].Value = Empty ![Поле15].Value = Empty 'Фокус на поле1 DoCmd.GoToControl "Поле1" End With End Sub
Private Sub Кнопка20_Click() ‘Кнопка «Рассчитать» With Forms![Для_финансовой_функции] ![Поле15].Value = ИНОРМА(![Поле1].Value, _ ![Поле5].Value, _ ![Поле7].Value, _ ![Поле9].Value) End With End Sub
Private Sub Кнопка26_Click() ‘Кнопка «Закрыть» DoCmd.Close acForm, "Для_финансовой_функции" End Sub
6. Проверьте и в случае необходимости отладьте работу формы и представьте результаты преподавателю. Таблица 5 Варианты заданий
14.4. Контрольные вопросы 1. Как осуществляется передача параметров в функцию? 2. В чем заключается отличие между процедурой и функцией? 3. Объясните назначение стандартных функций, использованных в программе (см. Пример 4). 4. Каким образом осуществляется расчет числа дней в указанном пользователем году (см. Пример 4)? 5. В электронной таблице MS Excel найдите встроенную финансовую функцию, аналогичную созданной Вами. Обратитесь к ней и сравните пользовательский интерфейс и результаты расчетов. Выводы сообщите преподавателю. 6. *Предложите свой вариант расчета числа дней в году.
|
||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-10; просмотров: 517; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.7.165 (0.01 с.) |