Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Функции преобразования данных




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)

y=sin(4*atn(1)*x)^2-exp(x-2)

MsgBox("y="&y)

End sub

 

4. Выполняется тестирование алгоритма.

 

ввод x=2
печать y=-1

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)

 
 


а=12
а=x i=1  
а=12
y=sin(4*ant(1)*x)^2/exp(1)+ABS(cos(x)^(1/3))

MsgBox("y="&y)

End Sub

4. Выполняется тестирование алгоритма.

 

ввод x=2
печать y=1,079

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)

нет
да
R=k-m
k=InputBox("введите k","окно ввода",k)

'Условный оператор

If k>m Then

R=k-m

End If

'Вывод данных

MsgBox("R= "&R)

End Sub

4. Выполняется тестирование алгоритма.

 

ввод m=1, k=6
k>m (6>1) условие истинно
R=k-m=6-1=5
печать R=5

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. Выполняется тестирование алгоритма.

 

ввод x=5
x<2 (5<2) условие ложно
y=sin(x)=sin(5)=-0.95
печать R=5

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

нет
да
If (x<=2) And (x>=-1) Then

y=sin(x)^2

Else

y=exp(x)

End if

End if

'Вывод данных

Range("B2").Value=y

End Sub

4. Выполняется тестирование алгоритма.

ввод x=-2 ввод x=0 ввод x=7
x>2 (-2>2) условие ложно x>2 (0>2) условие ложно x>2 (7>2) условие истинно
-1<=x<=2 (-1<=-2<=2) условие ложно -1<=x<=2 (-1<=0<=2) условие истинно  
y=ex=e-2=0,135 y=sin2x=sin2(0)=0 y=x2=72=49
печать R=0,135 печать R=0 печать R=49

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

нет
да
y=Sqr(x-5)

да
Range("B2").Value=y

нет
нет
Else

Range("B2").Value="ФНО"

нет
да
End If

Else

If (x<=2) And (x>=-1) Then

If x>0 Then

y=Log(4*atn(1)*x)^3

Range("B2").Value=y

Else

Range("B2").Value="ФНО"

нет
да
да
End If

Else

If x<-3 Then

If x<>-10 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. Выполняется тестирование алгоритма.

 

ввод x=-5 ввод x=-2 ввод x=1 ввод x=7
x>2 (-5>2) условие ложно x>2 (-2>2) условие ложно x>2 (1>2) условие ложно x>2 (7>2) условие истинно
-1<=x<=2 (-1<=-5<=2) условие ложно -1<=x<=2 (-1<=-2<=2) условие ложно -1<=x<=2 (-1<=1<=2) условие истинно  
x<=-3 (-5<=-3) условие истинно x<=-3 (-2<=-3) условие ложно    
x<>-10 (-5<>-10) условие истинно     x>=5 (7>=5) условие истинно
y=1/(x+10)=1/(-5+10)=0,2   y=ln3( x)=ln3(1 )=1,49 y= = =1,4
печать R=0,2 Печать ФНЗ печать R=1,49 печать R=1,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

а=12
'Начальное значение а1

a = 12

'Организация цикла

'Счетчик i принимает значения от 2 до М с шагом 1

For i = 2 To M Step 1

a = 3 + 2 / i * (Cos(a - 2)) ^ 2

Next i

'Вывод данных

Range("B2").Value = a

End Sub

4. Выполняется тестирование алгоритма.

 

ввод М=4
а=12 (первый элемент)
Значения счетчика i Значения переменной а
i=2 а=3+2/2*cos2(12-2)≈3.7
i=3 а=3+2/3*cos2(3.7-2)≈3.01
i=4 а=3+2/4*cos2(3.01-2)≈3.14
печать а=3.14

 

 

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
'Начальные значения

a = x

i=1

нет
'Организация цикла

Do While Abs(a)>0.001

           
   
   
 
 


, i=i+1
a=-a*x^2*(2*i-1)/(2*i+1)

i=i+1

Loop

'Вывод данных

Range("B2").Value = a

 
 


End Sub

 

4. Выполняется тестирование алгоритма.

 

ввод x=0.3 Условие
а=0.3 условие истинно
i=1 а=-0,3*0,3^2*(2*1-1)/(2*1+1)≈-0.009 условие истинно
i=2 а=-(-0.009)*0,3^2*(2*2-1)/(2*2+1)≈0.00048 условие ложно
печать а=0.00048

 

5. Выполняется проверка работы программы (рис. 13).

В ячейку В1 вводится значение переменной x

Office 2003: выполняется команда Сервис / Макрос/ Макросы / Р2 / Выполнить

Office 2007:вкладка Разработчик кнопка Макросы / Макрос Р2 / Выполнить.

В ячейке В2 появится значение переменной а.

6. Для более быстрого вызова программы удобно создать кнопку (см. раздел. Создание кнопок быстрого вызова).

 

Рис. 13. Реализация программы

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...