Функции преобразования данных
⇐ ПредыдущаяСтр 2 из 2 Cstr(число) – преобразование числовой переменной в текстовую. Val(строка) – возвращает числа, содержащиеся в строке. Запуск редактора VBA. Окно редактора VBA Программа, написанная на VBA, имеет модульную структуру. Модуль – это страница с кодом, относящаяся к приложению. На рис. 3 представлено окно редактора VBA, в котором открыто два модуля, содержащих тексты программ.
Рис. 3. Модульная структура Для создания пользователем своего программного модуля необходимо: 1. Открыть окно редактора Visual Basic командой Сервис / Макрос / Редактор Visual Basic в MS Excel 2003 (рис. 4 а) или нажатием кнопки Visual Basic в разделе Код на вкладке Разработчик в MS Excel 2007 (рис. 4 б). а)
б) Рис.4. Вызов редактора Visual Basic а) MS Excel 2003, б) MS Excel 2007 2. В окне редактора Visual Basic в пункте главного меню Insert (Вставка) выбрать команду Module (Модуль). В разделе Project появляется новая папка Modules, содержащая новый модуль Module1, предназначенный для написания текста программы (рис. 5) В каждом модуле могут быть записаны одна или несколько подпрограмм (процедур). Подпрограмма - поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий.
Рис. 5. Рабочее окно редактора
Синтаксис процедуры Sub <Имя_Процедуры> () Тело процедуры End Sub Имя_Процедуры – слово, записанное без пробелов, на русском или английском языке. Тело процедуры – набор операторов, для написания которых, необходимо знание языка Visual Basic. Пример 1. Задание: написать процедуру для расчета значения функции Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic.
2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 6). Блок-схема Программа Sub Y_x() Dim x,y As Single x=InputBox("введите x","окно ввода",x)
MsgBox("y="&y) End sub
4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 6). Office 2003: выполняется команда Сервис / Макрос/ Макросы / Y_x / Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос Y_x / Выполнить. В окно вводится значение переменной x. В окне вывода появится значение переменной y. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 6. Реализация программы Пример 2. Задание: написать процедуру для расчета значения функции Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 7).
Блок-схема Программа Sub F1 () Dim x,y As Single x=InputBox("Введите x","Окно ввода",x)
MsgBox("y="&y)
End Sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 7). Office 2003: выполняется команда Сервис / Макрос/ Макросы / F1 / Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос F1 / Выполнить. В окно вводится значение переменной x. В окне вывода появится значение переменной y. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 7. Реализация программы
Операторы языка VBA Оператор комментария Комментарии не влияют на исполнения программ. Они необходимы для пояснения исходных текстов программ.
Оператором комментария в VBA является одинарная кавычка «'». Комментарий может располагаться на отдельной строке или в конце строки. Пример использования оператора комментария: Листинг 5. Фрагмент программы Sub Y_x() 'Раздел описания переменных Dim y as single, Dim n as byte 'Ввод значения переменной y y=Range(" A2 ").Value Условный оператор а) неполный оператор IF <условие> THEN <группа_операторов> ENDIF Порядок работы: При обращении к оператору проверяется <условие>, стоящее после ключевого слова IF. Если <условие> истинно, то выполняется <группа_операторов> после ключевого слова THEN. Если <условие> ложно, то управление переходит к оператору, идущему после END IF. Фрагмент блок-схемы, соответствующий неполному оператору IF. нет да
Пример 3. Задание: даны два числа k, если k>m, то вычислить их разность. Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 8).
Блок-схема Программа Sub Uslovie_1() 'Описание переменных Dim k,m,R As Single 'Ввод данных m=InputBox("введите m","окно ввода",m)
'Условный оператор If k>m Then R=k-m End If 'Вывод данных MsgBox("R= "&R) End Sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 8). Office 2003: выполняется команда Сервис / Макрос/ Макросы / Uslovie_1/ Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос Uslovie_1/ Выполнить. В окна вводятся значения переменных k, m. В окне вывода появится значение переменной R. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 8. Реализация программы
б) полный оператор IF <условие> THEN <группа_операторов_1> ELSE <группа_операторов_2> ENDIF Порядок работы: При обращении к оператору проверяется <условие>, стоящее после ключевого слова IF. Если <условие> истинно, то выполняется <группа_операторов_1> после ключевого слова THEN. Если <условие> ложно, то выполняется <группа_операторов_2> после ключевого слова ELSE.
Фрагмент блок-схемы, соответствующий оператору IF.
нет да
Пример 4. Задание: рассчитать значения функции Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 9).
Блок-схема Программа Sub Uslovie_2() 'Описание переменных Dim x,y As Single 'Ввод данных x=InputBox("введите х","окно ввода",x)
If x<2 Then y=x^2 Else y=sin(x) End If 'Вывод данных MsgBox("y= "&y) End sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 9). Office 2003: выполняется команда Сервис / Макрос/ Макросы / Uslovie_2/ Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос Uslovie_2/ Выполнить. В окно вводится значение переменной x. В окне вывода появится значение переменной y. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 9. Реализация программы
Пример 5. Задание: cоставить программу для расчета значений функции
Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 10). Блок-схема Программа Sub Uslovie_3() 'Описание переменных Dim x,y as Single 'Ввод данных x=Range("B1").Value 'Условный оператор да нет If x>2 Then y=x^2 Else
y=exp(x) End if End if 'Вывод данных Range("B2").Value=y End Sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 10).
Office 2003: выполняется команда Сервис / Макрос/ Макросы / Uslovie_3/ Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос Uslovie_3/ Выполнить. В ячейку В1 вводится значение переменной x. В ячейку В2 выводится значение переменной y. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 10. Реализация программы Пример 6. Задание: cоставить программу для расчета значений функции
Порядок работы: 1. Открывается редактор VBA. MS Office 2003: Сервис/Макрос/Редактор VBA MS Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 11).
Блок-схема Программа Sub Uslovie_4() 'Описание переменных Dim x,y as Single 'Ввод данных x=Range("B1").Value 'Условный оператор да нет If x>2 Then If x>=5 Then
Else If (x<=2) And (x>=-1) Then If x>0 Then y=Log(4*atn(1)*x)^3 Range("B2").Value=y Range("B2").Value="ФНО"
Else If x<-3 Then y=1/(x+10) Range("B2").Value=y Else Range("B2").Value="ФНО" End If Else Range("B2").Value="ФНЗ" End If End if End if End Sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 11). Office 2003: выполняется команда Сервис / Макрос/ Макросы / Uslovie_4/ Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос / Uslovie_4/ Выполнить. В ячейку В1 вводится значение переменной x. В ячейку В2 выводится значение переменной y. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 11. Реализация программы
Операторы цикла а) Цикл со счетчиком (For … Next) Синтаксис: For <CчетчикЦикла> = <начало> TO <конец> [ Step <шаг> ] <Тело цикла> Next <СчетчикЦикла> Описание и работа оператора Цикл со счётчиком For … Next – это цикл, в котором некоторая числовая переменная <СчетчикЦикла>изменяет своё значение от заданного начального значения <начало> до конечного значения <конец> с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. Другими словами оператор цикла обеспечивает выполнение <Тела цикла> до полного перебора всех значений параметра цикла от начального до конечного с соответствующим шагом. Числовое выражение < шаг> не обязательно. Его значение также определяется в начале цикла и прибавляется к счетчику цикла всякий раз, когда завершается выполнения тела цикла и вычисления достигают строки Next. Если шаг цикла не указан, то его значение считается равным 1. <Тело цикла> – это последовательность операторов, которая будет выполнена заданное число раз. Цикл завершится, когда счетчик цикла станет больше значения < конец>. Цикл может ни выполнится ни разу, если начальное значении счетчика цикла больше его конечного значения.
Фрагмент блок-схемы, соответствующий оператору For … Next.
Пример 7.
Задание: последовательность чисел задается законом: i=2,3,4… Написать программу для расчета элемента последовательности с номером M, где М вводит пользователь.
Порядок работы: 1. Открывается редактор VBA. Office 2003: Сервис/Макрос/Редактор VBA Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 12). Блок-схема Программа Sub P1 () 'Описание переменных Dim M, i As Integer Dim a As Single 'Ввод данных M = Range("B1").Value
a = 12 'Организация цикла 'Счетчик i принимает значения от 2 до М с шагом 1
a = 3 + 2 / i * (Cos(a - 2)) ^ 2 Next i 'Вывод данных Range("B2").Value = a End Sub 4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 12). В ячейку В1 вводится значение переменной М. Office 2003: выполняется команда Сервис / Макрос/ Макросы / Р1 / Выполнить Office 2007: вкладка Разработчик кнопка Макросы / Макрос Р1 / Выполнить. В ячейке В2 появится значение переменной а. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 12. Реализация программы б) Цикл с предусловием (Do While– Loop) Синтаксис: Do While <условие> <Тело цикла> Loop Описание и работа оператора При обращении к оператору цикла проверяется <условие>. Если оно истинно, то выполняются операторы <Тела цикла>, если условие ложно, то управление переходит к оператору, стоящему после ключевого слова Loop. <Тело цикла> повторяется, пока заданное условие не станет ложным (или пока условие является истинным). <Условие> – это числовое или строковое выражение, принимающее значение True или False. <Тело цикла> – это последовательность операторов, которая выполняется пока условие остается истинным. <Тело цикла> должно содержать оператор, который приводит в итоге к ложности условия, в противном случае цикл будет работать бесконечно.
Пример 8. Задание: последовательность чисел задается законом: i=1,2,3… x – любое действительное число Написать программу для поиска первого элемента последовательности, для которого выполняется условие . Порядок работы: 1. Открывается редактор VBA. Office 2003: Сервис/Макрос/Редактор VBA Office 2007: вкладка Разработчик / кнопка Visual Basic. 2. Добавляется новый модуль (Insert / Module). 3. Составляется блок-схема. В модуле записывается подпрограмма (рис. 13).
Блок-схема Программа Sub P2 () 'Описание переменных Dim i As Integer Dim a,x As Single 'Ввод данных x = Range("B1").Value
a = x i=1
Do While Abs(a)>0.001
i=i+1
Loop 'Вывод данных Range("B2").Value = a End Sub
4. Выполняется тестирование алгоритма.
5. Выполняется проверка работы программы (рис. 13). В ячейку В1 вводится значение переменной x Office 2003: выполняется команда Сервис / Макрос/ Макросы / Р2 / Выполнить Office 2007:вкладка Разработчик кнопка Макросы / Макрос Р2 / Выполнить. В ячейке В2 появится значение переменной а. 6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).
Рис. 13. Реализация программы
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|