![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Loop Untilусловие
Следующий фрагмент иллюстрирует принцип работы указанных операторов.
Dim password As String Do Input password Loop Until password=”abrakadabra” В ряде случаев, при возникновении определённой ситуации, приходится принудительно прекращать выполнение цикла. Для этого предусмотрен оператор выхода из цикла Exit. Он прекращает выполнение цикла и передаёт управление следующему за циклом оператору. Контрольные вопросы. 1. Какие виды циклов встречаются при алгоритмизации вычислений? 2. Каков синтаксис оператора For…Next? 3. Каков синтаксис оператора Do…Loop с предусловием? 4. Каков синтаксис оператора Do…Loop с постусловием? 5. В чём разница между операторами Do…Until и Do…While? 6. Какой оператор позволяет прервать выполнение цикла и передать управление следующему оператору? Лекция 15 (2 часа). Рекуррентные формулы и их применение. Функции пользователя. Рекуррентные формулы и их применение. Рекуррентными называются такие зависимости, в которых последующие значения могут быть вычислены на основании предыдущих значений. Например, числа Фибоначчи задаются никак иначе чем через рекуррентную формулу Реализация этой рекуррентной зависимости может быть осуществлена с помощью циклического оператора, как показано ниже.
Dim i, n, f1, f2, fn As Integer f1 = 1 f2 = 1 Input n fn = 1 If n > 2 Then Else For i = 3 To n fn = f1 + f2 f1 = f2 f2 = fn Next i End If Print “число Фибоначчи равно”, fn
В первых двух операторах присваиваются начальные значения для первых двух чисел Фибоначчи. Затем вводится номер числа Фибоначчи, которое надо вычислить. Поскольку первые два числа Фибоначчи известны и равны 1, то за оператором ввода стоит оператор присваивания числу Фибоначчи единицы. Затем проверяется введённое значение и если оно больше 2, то в цикле по рекуррентному выражению вычисляется новое значение числа Фибоначчи. Начальное значение счётчика в операторе цикла равно 3, так как третье число Фибоначчи равно сумме первого и второго, и следовательно при n=3 цикл должен выполниться только один раз. Функции пользователя. Часть программы можно оформить в виде функции. Описание функции выглядит так: Function ИмяФункции (СписокПараметров) As ТипДанныхФункции Описание переменных Блок операторов End Function
Блок операторов должен обязательно содержать хотя бы один оператор присваивания ИмяФункции= Вычисление функции заканчивается последним оператором, но если надо закончить вычисление раньше, то надо воспользоваться оператором Exit Function. Например, вычисление дискриминанта квадратного уравнения мы можем оформить в виде функции.
Function Дискриминант(a, b, c As Single) As Single Dim x As Single X=4*a*c Дискриминант=b^2-x End Function
Тогда в программе вычисления корней квадратного уравнения можно было бы использовать следующий оператор: D=Дискриминант(a, b, c) Если с помощью VBA описать таким образом какую-либо функцию в Excel, то ей можно будет пользоваться так же, как и любыми встроенными функциями. Эта функция будет находится в категории «Определенные пользователем». Встроенные в Excel функции можно использовать при программировании если учесть, что все они являются методами объекта Application. Поэтому, чтобы в программе использовать, например, встроенную функцию Ln(), надо вызвать её так: Application.Ln(). Чтобы в Excel запрограммировать функцию пользователя надо вызвать редактор VBA. Это делается через меню Сервис\Макрос\Редактор VisualBasic. Сначала меню Вид\Окно проекта. В левой части появившегося окна надо выделить строчку VBAProject(Книга1), а затем меню Вставка\Модуль. В правой части появится окно Книга1-Модуль1(Программа), в котором и надо написать определение функции. Не закрывая окна надо щелкнуть в панели инструментов по кнопке «Object Browser»(Просмотр объектов), найти в нём имя функции, щелкнуть по нему правой кнопкой и выбрать пункт Properties(Свойства). В появившемся окне надо коротко написать, что делает эта функция. Это описание будет появляться, когда пользователь выберет эту функцию в Excel. Рассмотрим создание функции пользователя для вычисления суммы
Function SpecialSum(m As Integer) As Single Dim S As Single Dim n As Integer S=0 For n=1 To m S=S+n/(n^2+1) Next n SpesialSum=S End Function Контрольные вопросы. 1. Что такое рекуррентная формула? 2. Как записать в виде рекуррентной формулы алгоритм вычисления чисел Фибоначчи? 3. Какие операторы VBA позволяют реализовать вычисления по рекуррентным формулам? 4. Как задаётся описание функции при программировании на VBA? 5. Как с помощью VBA создать в Excel функцию пользователя?
|