Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обращение к функции

Формальные и фактические параметры

Подпрограмма составляется формально. Используемые в ней переменные, называются формальными.

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

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

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

Типы формальных параметров функции (в скобках) и самой функции можно не указывать - в этом случае им присваивается тип Variant.

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

Например, заголовок функции может иметь следующий вид:

Function F(ByVal x As Single, n As Integer) As Single

 

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

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

Пример: Пусть дана функция F(x)=x2+2. Необходимо вычислить таблицу значений y=F(z+2)+F(z)+3 для z=0(1)5

В разделе General:

Function F (ByVal x As Integer) As Integer

F=x^2+2

End Function

Для командной кнопки «Таблица значений»:

 

Private Sub CommandButton1_Click()

Dim y As Integer, z As Integer

for z=0 To 5

y=F(z+2)+F(z)+3

MsgBox ("Значение y=" & Format(y, "##.####"))

Next z

End Sub

 

 

Пример. Вычислить m!+n!

 

Function f(a As Integer)

f = 1

For i = 1 To a

f = f * i

Next

End Function

 

Private Sub CommandButton1_Click()

Dim m As Integer, n As Integer

m = Val(InputBox("Введите m"))

n = Val(InputBox("Введите n"))

s = f(m) + f(n)

MsgBox (s)

End Sub

 

Пользовательская функция листа

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

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

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

Для создания нового модульного листа необходимо:

· вызвать редактор VBA (Alt+F11);

· выполнить команду Insert/Module

 

 

Например, для функции F:

 

Function F(X As Single,Y As Single) As Single

Dim Z As Single

Z=X^2+Y^2

F=Sqr(Z)

End Function

 

 

A4Þ3

B4Þ4

C4Þ =F(A4;B4) Þ5

 

На Рабочем листе:

 

 

После записи функции в модульном листе в списке «Категории функций» в окне Мастера функций появится раздел «Определенные пользователем». Внутри этого раздела появится функция с именем F.

 

Пример: Решить квадратное уравнение:

 

Для его решения создадим следующие функции:

 

Вычисления дискриминанта

Function Fdisc(a As Single, b As Single, c As Single) As Single

Fdisc = b ^ 2 - 4 * a * c

End Function

 

Вычисления первого (положительного) корня:

Function Fplus(a As Single, b As Single, c As Single) As Variant

Dim D As Single

D = b ^ 2 - 4 * a * c

If D >= 0 Then

Fplus = (-b + Sqr(D)) / (2 * a)

Else

Fplus = "D<0!"

End If

End Function

 

Вычисления второго (отрицательного) корня:

Function Fminus(a As Single, b As Single, c As Single) As Variant

Dim D As Single

D = b ^ 2 - 4 * a * c

If D >= 0 Then

Fminus = (-b - Sqr(D)) / (2 * a)

Else

Fminus = "D<0!"

End If

End Function

 

 

Пример: Для d=5 и y=1(0,5)3 вычислить , где

 

 

 

в разделе General:

Function f(x As Single)

Dim d As Single

d = 5.2

f = Sqr(x ^ 3 + x ^ 2 + x + d)

End Function

 

Для кнопки «Вычислить»:

Dim b As Single, y As Single

i = 22

y1 = Worksheets("Функции ").Range("c23")

yk = Worksheets("Функции ").Range("c25")

dy = Worksheets("Функции ").Range("c27")

For y = y1 To yk Step dy

b = f(y) + Sin(f(2)) - f(Abs(2 * y))

Worksheets("Функции ").Cells(i, 7) = b

i = i + 1

Next y

End Sub

 

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

InsertÞModule

 

Копируем в него функцию пользователя:

Function f(x As Single)

Dim d As Single

d = 5.2

f = Sqr(x ^ 3 + x ^ 2 + x + d)

End Function

 

В ячейку H22 вводим формулу:

=f(F22)+SIN(f(2))-f(ABS(2*F22))

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

 

 

Решим эту же задачу, только с другими исходными данными:

Пример: Для d=5 и y={1,5;8,2;-2,5;3;7} вычислить , где

 

Для кнопки «Вычислить»:

Dim b As Single, y As Single

For i = 22 To 26

i = Worksheets("Функции "). Cells(i, 6)

b = f(y) + Sin(f(2)) - f(Abs(2 * y))

Worksheets("Функции ").Cells(i, 7) = b

Next i

End Sub


 

Лекция №12
Математический пакет Mathcad

В настоящее время для научно-технических расчетов на компьютерах все чаще и чаще используются не традиционные языки программирования и не электронные таблицы, а специальные математические программы типа Mathematica, MatLab, Maple, Mathcad, Gauss, Reduce, Eureka и др.

Математические пакеты, в особенности Mathcad — самый популярный пакет из вышеперечисленного списка, — позволяют специалистам в конкретной научно-технической области очень быстро освоить работу на компьютере и реализовать на них математические модели, не вдаваясь в тонкости программирования на традиционных языках (fortran, С, Pascal, BASIC и др.).

Данный пакет был разработан фирмой Math Soft Inс (USA).

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

1) мощный текстовый редактор, позволяющий вводить, редактировать и форматировать как текст, так и математические выражения;

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

3) символьный процессор, являющийся, фактически, системой искусственного интеллекта;

4) графический процессор, позволяющий построить различные типы графиков, в различных системах координат.

5) огромное хранилище справочной информации, как математической, так и инженерной, оформленной в виде библиотеки интерактивных электронных книг.

 

В Mathcad интерфейс пользователя интуитивен и сходен с другими приложениями Windows (рис. 1). Отметим его основные элементы:

· верхнее меню, или строка меню (menu bar);

· рабочая область (Worksheet);

· панели инструментов (toolbars) Standard (Стандартная) и Formatting (Форматирование);

· панель инструментов Math (Математика) и доступные через нее дополнительные математические палитры символов:

-общие арифметические операторы;

-знак равенства, знаки отношения;

-различные 2-х и 3-х мерные графики;

-матричные и векторные операции;

-производные, интегралы, пределы, ряды и произведения;

-программные структуры;

-греческие буквы.

символьные вычисления-

 

<== предыдущая лекция | следующая лекция ==>
Функции. До сих пор мы рассматривали только процедуры обработки событий | Построение и редактирование математических выражений
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 267; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.043 сек.