Разделы презентаций


Функции и процедуры

Иногда часть кода можно использовать несколько раз… Информатика. 2 семестр. Тема 06. ФункцииОчень часто несколько копий кода различаются только именами переменных…(подпрограммы)(аргументы)Как правило есть большие фрагменты кода, которые выполняют просто описываемое действие…(скрытие

Слайды и текст этой презентации

Слайд 1Университет машиностроения
Кафедра «Автоматика и процессы управления»
Дисциплина
Информационные технологии
Тема 06
Функции и

процедуры
2 семестр
Информатика. 2 семестр. Тема 06. Функции

(Язык VBA for Ms

Excel)
Университет машиностроенияКафедра «Автоматика и процессы управления»ДисциплинаИнформационные технологииТема 06 Функции и процедуры2 семестрИнформатика. 2 семестр. Тема 06. Функции(Язык

Слайд 2Иногда часть кода можно использовать несколько раз…



Информатика. 2 семестр.

Тема 06. Функции

Очень часто несколько копий кода различаются только именами

переменных…

(подпрограммы)

(аргументы)

Как правило есть большие фрагменты кода, которые выполняют просто описываемое действие…

(скрытие реализации)

Бывают случаи когда нужно повторить действия с изменённым набором параметров…

(рекурсия)

Иногда часть кода можно использовать несколько раз… Информатика. 2 семестр. Тема 06. ФункцииОчень часто несколько копий кода

Слайд 3Определения



Информатика. 2 семестр. Тема 06. Функции

Отображение:
GoSub МеткаПодпрограммы
* * *
МеткаПодпрограммы:
Statements
Return
Подпрограмма –

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






п/п
«Подпрограмма»
Процедура – особый

вид функции, не возвращающий значение.


Go(x)

Предопределенный процесс

Sub ИмяПроцедуры( Аргументы )
Statements
End Sub

Вызов процедуры: Call ИмяПроцедуры( x )

ОпределенияИнформатика. 2 семестр. Тема 06. ФункцииОтображение:GoSub МеткаПодпрограммы	* * *	МеткаПодпрограммы:		StatementsReturnПодпрограмма – логически обособленный блок инструкций, предназначенный для многократного

Слайд 4Определения



Информатика. 2 семестр. Тема 06. Функции


Go(x)
Предопределенный процесс (функция)
Отображение:
Функция – специально

организованный набор инструкций, который может быть запущен с использованием имени

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

Function ИмяФункции( Аргументы ) As ТипРезультата
Statements
ИмяФункции = Expression ‘ Результат функции
End Function



x+1 → ret.

y = f(x)



основной (main)

вычислитель

алгоритм

функция

Вызов функции: y = ИмяФункции( x )

ОпределенияИнформатика. 2 семестр. Тема 06. ФункцииGo(x)Предопределенный процесс (функция)Отображение:Функция – специально организованный набор инструкций, который может быть запущен

Слайд 5Последовательность выполнения



Информатика. 2 семестр. Тема 06. Функции

Выполнение кода функции предваряется

операциями по выделению памяти для локальных переменных и результата функции,

а также копированию значений параметров (аргументов)


стек



параметр B ( z )


параметр A ( x )

адрес возврата



лок. перемен. D

лок. перемен. C


копия регистров

резерв стека


результат

Псевдокод для y = F ( x, z ):
1 Зарезервировать место под результат
2 Зарезервировать место для аргументов
3 Скопировать значения аргументов
4 Выделить место под локальные переменные
5 Подготовить запуск функции
6 Выполнить код функции и получить результат

7 Скопировать результат, очистить стек и память
8 Использовать результат для вычисления y

Результат выполнения кода функции используется в основном коде


y


f ()


z


x



Function F (A, B As Integer) As Integer
Dim C, D As Integer

F = A + B + C + D ‘ return result

Последовательность выполненияИнформатика. 2 семестр. Тема 06. ФункцииВыполнение кода функции предваряется операциями по выделению памяти для локальных переменных

Слайд 6Способы передачи параметров



Информатика. 2 семестр. Тема 06. Функции

В VBA параметры

в функции и процедуры можно передавать по-значению (byVal) либо по-ссылке

(byRef)




B: значение из z


A: значение из x

адрес возврата



лок. перемен. D

лок. перемен. C


копия регистров

резерв стека


значение функц.

По-значению (byVal)


y


f ()


z


x




@B: адрес для z


@A: адрес для x

адрес возврата



лок. перемен. D

лок. перемен. C


копия регистров

резерв стека


значение функц.


y


f ()


z


x

По-ссылке (byRef)



Копируются значения

«Копии» удаляются



Сохраняются ссылки

Работа с «копиями»

Работа через ссылки с исходными ячейками

A = 1



По-умолчанию в VBA параметры передаются по-ссылке – так быстрее

Способы передачи параметровИнформатика. 2 семестр. Тема 06. ФункцииВ VBA параметры в функции и процедуры можно передавать по-значению

Слайд 7Области видимости и экранирование имён



Информатика. 2 семестр. Тема 06. Функции

В

VBA функция скрывает свои переменные от «внешнего кода» и экранирует

имена «внешних объектов» если они совпадают с локальными переменными и именами параметров




параметр B ( z )


параметр A ( x )

адрес возврата



лок. перемен. D

лок. перемен. C


копия регистров

резерв стека


результат

Хорошим тоном считается написание кода функций с использованием только имён локальных переменных и параметров


A


C


z


x

Y = F ( X , Z )

F = A + B + C + D ‘ only internal variables

Dim A, B, C, D, X, Z As Integer

Function F ( A , B As Integer) As Integer
Dim C, D As Integer


B

C = A + X ‘ equal X + X

D = B + Module1.B ‘ equal Z + B














D


Области видимости и экранирование имёнИнформатика. 2 семестр. Тема 06. ФункцииВ VBA функция скрывает свои переменные от «внешнего

Слайд 8Повторное использование кода
Библиотеки функций



Информатика. 2 семестр. Тема 06. Функции

Если функция

не зависит от «внешних» объектов, её можно вызвать из другого

модуля или вынести в отдельный модуль (если она видна)

Принцип ООП:
Инкапсуляция – скрытие «реализации»



function f()

y = f(x)



MainModule

LibModule


k = f(z)



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

Такой модуль – это аналог статического класса


f1(x)


f2(z)


Повторное использование кодаБиблиотеки функцийИнформатика. 2 семестр. Тема 06. ФункцииЕсли функция не зависит от «внешних» объектов, её можно

Слайд 9«Расширенные» возможности параметров



Информатика. 2 семестр. Тема 06. Функции

В VBA структуры

(переменные пользовательских типов – Type) могут использоваться в качестве параметров

и результатов функций

Function F ( A, B As NewType) As OtherType
Dim Res As OtherType
…smth statements…
F = Res ‘ В VBA нельзя напрямую управлять результатом
End Function

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

Function F ( Optional S As String = “Default”) As String
…smth statements…
F = S ‘ При вызове функции можно не указывать аргумент
End Function

В VBA можно указывать аргументы по имени при вызове функции

Res = F (S := “Hello World”) ‘ Если опциональных аргументов несколько

В VBA можно создавать функции с переменным числом аргументов

Function F (S As String, ParamArray OtherArgs() ) As Integer
F = OtherArgs(1) + OtherArgs(2) ‘ Желательно использовать UBound

«Расширенные» возможности параметровИнформатика. 2 семестр. Тема 06. ФункцииВ VBA структуры (переменные пользовательских типов – Type) могут использоваться

Слайд 10«Полезные» диалоговые функции



Информатика. 2 семестр. Тема 06. Функции

Для немедленного сообщения

пользователю используется MsgBox
MsgBox (Prompt [, Buttons] [, Title] [, HelpFile,

HelpContext])

Res = MsgBox(“Шеф, всё пропало”, vbOKOnly, “Окно ошибки”)

‘ MsgBox возвращает код кнопки как целочисленную константу (vbOK = 1)

И ещё кое-что о функциях в VBA:

Функции можно вызывать как процедуры: Call MyFunc(“Hello”)

Для срочного получения данных от пользователя используется InputBox

InputBox (Prompt [, Title] [, Default] [, XPos] [, YPos] [, HelpFile, HelpContext])

Res = InputBox(“Введите X”, “Запрос данных”, 10)

Функции можно применить как операторы: MyFunc “Hello”

Если Function MyFunc (S As String ) As Variant

«Полезные» диалоговые функцииИнформатика. 2 семестр. Тема 06. ФункцииДля немедленного сообщения пользователю используется MsgBoxMsgBox (Prompt [, Buttons] [,

Слайд 11Университет машиностроения
Кафедра «Автоматика и процессы управления»
Блок дисциплин
Информатика и информационные технологии
Спасибо

за внимание !!!
Контакты:
mami.testolog.ru
timid@mami.ru
inform437@gmail.com
Информатика. 2 семестр. Тема 06. Функции

Далее:
Сложные

типы данных. Работа со строками
Использование функций. Передача параметров
Элементы управления. Создание интерфейса
Пользовательские формы. Событийное программирование

Университет машиностроенияКафедра «Автоматика и процессы управления»Блок дисциплинИнформатика и информационные технологииСпасибо за внимание !!! Контакты:mami.testolog.rutimid@mami.ruinform437@gmail.comИнформатика. 2 семестр. Тема

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика