Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
07.06.2015
Размер:
2.04 Mб
Скачать

3.4.2. Функции

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

Понятие функции в языке Бейсик близко знакомому вам понятию функции в математике. Определим функцию одного аргумента.

ИмяФункции (Аргументфункции)

ИмяФункции - это имя либо уже имеющейся в языке (встроенной) функции, либо функции, определяемой программистом. В первом случае - это служебное слово языка. Во втором случае имя строится по правилам, которые ничем не отличаются от правил построения имени переменной.

АргументФункции - это либо число, либо переменная, либо выражение (арифметическое, строковое, логическое).

В информатике говорят, что функция возвращает своё значение, если задано значение её аргумента. Это означает, что в системе есть специальная программа, которая вычисляет значение этой функции.

Аналогично функции одного аргумента можно определить и функцию нескольких аргументов.

Синтаксис функции нескольких аргументов таков:

ИмяФункции (СписокАргументовФункции)

Аргументы в СпискеАргументовФункции отделяются друг от друга запятой.

Встроенные функции бывают нескольких видов. Математические функции в Visuа1 Ваsiс есть набор встроенных математических функций. Наиболее распространённые из них:

Аbs(х) – абсолютная величина числа х;

CInt(х) – целое число, ближайшее к числу х;

Cos(х) – косинус числа х;

Fix(х) – целое число, равное числу х без дробной части;

Int(х) – наибольшее целое число, не превышающее х;

Sin(х) – синус числа х;

Sqr(x) – квадратный корень из числа х;

Log(x) – логарифм натуральный числа x , и т. д.

Где может возникнуть потребность в таких функциях, как Int(х) и ей подобных? Приведём один из примеров использования этой функции.

Пример 3.10

Пусть решается такая задача. Трое студентов сообща заработали определённую сумму денег S и хотят честно (поровну) разделить эту сумму. Очевидно, что каждый из них должен получить сумму S1, равную S/3. Пусть эта элементарная задача — часть более серьёзной задачи, которая решается на компьютере. Будет получен такой, например, результат: S1 = 233.3333333. рублей.

Очевидно, что результат желательно округлить так, чтобы он сохранял только два знака после запятой (ведь речь идёт о рублях, а меньше сотой доли рубля значения не бывает). При этом используется такой приём:

S2 = Iпt(S1 * 100)/100,

где S1 — неокруглённый результат; S2 — результат с указанным округлением.

Финансовых функций в Visuа1 Ваsiс больше десятка. Приведём пример только одной из них. Это функция, которая решает задачу о банковском кредите. Её синтаксис следующий:

Ртt(ПроцСтавка, ЧислоПлатежей, СуммаКредита).

Она возвращает размер разового (например, ежемесячного) платежа (со знаком минус), если известны: Процентная Ставка, общее Число Платежей (например, число месяцев) и Сумма Кредита.

Системные функции. К системным функциям относятся функции, действие которых напрямую зависит от работы системы Visuа1 Ваsiс. К таким функциям относятся две:

– функция InputВох — для ввода данных пользователем через системное окно;

  • функция MsgBox — для выдачи сообщений пользователю через системное окно.

Работа этих функций сопровождается побочным эффектом - появлением на экране одного из двух окон: Окна ввода (1приtВох) и Окна сообщения (МsgВох).

Функции InputВох и МsgВох очень удобны. С их помощью ввод данных пользователем в процессе работы приложения, а также выдача программой различных сообщений пользователю упрощается. Рассмотрим их синтаксис и действие более подробно.

Функция Окно ввода (InputВох) имеет следующий синтаксис:

InputBox(Приглашение [, Заголовок ] [, НачЗначение])

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

Заголовок (необязательный аргумент) - это надпись в строке заголовка Окна ввода.

НачЗначение - это значение, которое будет введено автоматически (по умолчанию), если пользователь будет с этим согласен.

Возвращаемым значением данной функции является информация, вводимая пользователем. Visuа1 Ваsiс автоматически приписывает этой информации тип String.

Пример 3.11

Пусть экранная форма вашего приложения содержит три текстовых поля и командную кнопку ПУСК. После щелчка этой кнопки должно появиться Окно ввода для ввода фамилии пользователя. После ввода своей фамилии пользователь должен щёлкнуть кнопку ОК на этом окне, после чего должно появиться второе Окно ввода для ввода имени пользователя. Введя своё имя и щёлкнув кнопку ОК, пользователь увидит новое (третье) Окно ввода — для своего отчества (последовательность появления всех трёх Окон ввода показана на рис. 3.5).

Рис. 3.5. Окна ввода для ввода фамилии, имени и отчества

После ввода данных все три текстовые поля будут заполнены. Экранная форма приложения примет вид, показанный на рис . 3.6.

Рис 3.6. Экранная форма после ввода данных в текстовые поля

с помощью Окон ввода

Программный код для данного приложения следующий:

Код 3.10

Private Sub Пуск _ Click()

Dim Фамилия As String, Имя As String, Отчество As String

Фамилия = _

InputBox(«Выведите Вашу фамилию:»,_

«Ввод фамилии»)

Имя =

InputBox(«Выведите Ваше Имя:»,_

«Ввод Имени»)

Отчество =

InputBox(«Выведите Ваше Отчество:»,_

«Ввод Отчества»)

Text1.Text = Фамилия: Text2.Text = Имя: Text3.Text = Отчество

End Sub

В общем случае действие функции InputВох таково.

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

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

Функция Окно сообщения (MsgBox). Синтаксис функции следующий:

МsgВох( Текст [,Опция ] [,Заголовок] )

Это традиционная форма синтаксиса, когда функция возвращает значение, которое затем как-то используется (например, присваивается переменной).

Но есть и другая, более простая и чаще применяемая форма синтаксиса, когда функция не возвращает никакого значения, а действует просто как оператор — выдаёт ин­формацию в Окне сообщения. В этом случае в записи функ­ции отсутствуют скобки:

МsgВох Текст [,Опция ] [,Заголовок]

Текст - это строка сообщения, ради получения которого данная функция и применяется. Текст может содержать до 1024 символов! (Для того чтобы этот текст выдавался не сплошной длинной строкой, его можно разбить на небольшие «порции», между которыми вставляются специальные «невидимые» символы переноса и возврата к левому краю страницы.)

Кроме сообщения пользователю, Окно сообщения может содержать и дополнительную информацию. Она задаётся значением аргумента Опция. Этим аргументом является це­лое число, которое может быть представлено как сумма двух слагаемых: Ор = Оp1 + Ор2.

З

Таблица. 3.4

начениеОр1 определяет вид сообщения и пиктограмму, которая помещается в Окно сообщения.

Значение Ор1

Вид сообщения

Пиктограмма

16

Критическое сообщение

32

Вопрос

48

Предупреждение

64

Информация


Таких пиктограмм четыре. Они соответствуют четырём видам сообщений (табл. 3.4). Значение Ор2 определяет набор кнопок в Окне сообщения (табл. 3.5).

Таблица 3.5

Значение Ор2

Набор кнопок

0

ОК

1

ОК, Отмена

2

Стоп, Повтор, Пропустить

3

Да, Нет, Отмена

4

Да, Нет

5

Повтор, Отмена


Вы легко можете убедиться в том, что для любой комбинации Ор1 и Ор2 их сумма будет уникальной! Другими словами, с помощью одного числа Вы можете установить и определённую пиктограмму, и определённую комбинацию кнопок.

На рис 3.7 приведены примеры Окон сообщения для различных значений аргумента Опция.

Действие функции MsgВох таково: когда доходит очередь до её выполнения, на экране появляется Окно сообщения. Если используется бесскобочная форма синтаксиса, нажатие одной из кнопок на этом окне просто завершает работу функции. А если используется форма со скобками, то значение функции присваивается какой-нибудь переменной. Возвращаемое значение — это целое число от 1 до 7. Оно зависит от того, какая из кнопок Окна сообщения нажата (табл. 3.6).

Таблица 3.6

Возвращаемое значение

Кнопка

1

OK

2

Отмена

3

Стоп

4

Повтор

5

Пропустить

6

Да

7

Нет

Определяемые функции

Функции, рассмотренные выше, являются встроенными (системными) функциями Visual Basic, но каждый программист может определить и свои собственные (определяемые) функции.

Например, можно определить функцию Гипотенуза(а, b), вычисляющую длину гипотенузы треугольника по теореме Пифагора: с =SQR(а^2 + b^2), где а, b длины катетов, с – длина гипотенузы. Рассмотренные в этом разделе виды функций и отдельные функции не единственные в Бейсике. Есть и другие, о них вы узнаете в следующих разделах. Кроме того, интересно отметить тесную связь, которая существует между понятиями функции и выражения: выражение (например, арифметическое) можно считать частным случаем функции.

Соседние файлы в папке Задания и примеры