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

Функции преобразования форматов

Лабораторная работа №1

Математические функции

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

Функция Возвращаемое значение
Abs (<число>) Модуль (абсолютная величина) числа
Atn (<число>) Арктангенс
Cos (<число>) Косинус
Exp (<число>) Экспонента, т. е. результат возведения основания натурального логарифма в указанную степень
Log(<число>) Натуральный логарифм
Rnd (<число>) Случайное число из интервала [0,1). Если число меньше нуля, то Rnd возвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа. Если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю то — случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента
Sgn (<число>) Знак числа
Sin (<число>) Синус
Sqr (<число>) Квадратный корень из числа
Tan (<число>) Тангенс
Fix (<число>) Int (<число>) Обе функции, Int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями int и Fix состоит в том, что для отрицательного значения аргумента функция Int возвращает ближайшее отрицательное целое число, меньшее либо рaвное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному

Перенос строки

Расположение символов <Пробел> + <Знак подчеркивания> в конце обеспечивает то, что последующая строка является продолжением предыдущей. При этом надо помнить, что:

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

В следующем примере первая из конструкций является разбиением второй на две строки:

у = Sin(Pi()*x) + (1 + x)^(l/2)/ _

(1 + х^2)

у = Sin(Pi()*x) + (1 + x)^(l/2)/(1 + х^2)

Комментарии

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

    • делают программу легко читаемой, поясняя смысл программных кодов и алгоритма;
    • временно отключают фрагменты программы при ее отладке.

В языке VBA существуют два способа ввода комментариев:

    1. Применение апострофа (‘). Его можно ставить в любом месте строки. При этом все символы, начиная от апострофа до конца строки, будут восприниматься компилятором как комментарий.
    2. Применение зарезервированного слова Rem вместо апострофа.

Ниже приведен пример использования комментариев в тексте программы:

Dim a As Integer

‘а — целая переменная

Dim b As String

‘b – строковая переменная

Расположение нескольких операторов на одной строке

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

x = x+1 y = x+2 x = x+1: y = x+2

Функции преобразования форматов

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

Преобразование строки в число и обратно осуществляются следующими функциями.

Val(<строка>) Возвращает число, содержащееся в строке, как значение числового типа
Str(<число>) Возвращает значение типа Variant (String), являющееся строковым представлением числа

Замечание. В качестве допустимого десятичного разделителя функция Str воспринимает точку.

Часто возникает потребность в выводе нескольких результатов в одном окне сообщений. Помимо операции конкатенации (сложения строк &) используют функцию Chr.

Chr(<число>) Возвращает строку, ASCII-код которой равен аргументу. Например, Chr (13) – возвращает символ “возврат каретки”, т.е. осуществляет переход на новую строку.

1. Рассмотрим очень полезный алгоритм, с которым при программировании часто приходится встречаться. Даны две переменные X и Y. Требуется произвести между ними обмен значениями. Например, если первоначально было X=1, Y=2, то после обмена должно стать: X=2, Y=1.

Попытка обойтись без дополнительной переменной, написав

X = Y

Y = X

не приводит к цели (безвозвратно утрачивается начальное значение переменной X).

Хорошим аналогом для решения такой задачи является следующая: даны два стакана, в первом – молоко, во втором – вода; требуется произвести обмен их содержимым. Ясно, что в этом случае нужен дополнительный третий пустой стакан. Последовательность действий будет следующей:

  1. перелить из первого в третий;
  2. перелить из второго в первый;
  3. перелить из третьего во второй.

По аналогии для обмена значениями двух переменных нужна дополнительная третья переменная. Назовем ее Z. Тогда задача решается последовательным выполнением трех операторов присваивания.

Z = X

X = Y

Y = Z

Построим трассировочную таблицу при следующих начальных значениях переменных: X=1, Y=2.

Команда X Y Z
Z = X      
X = Y      
Y = Z      

Действительно, в итоге значения переменных X и Y поменялись местами.

Аналогия со стаканами не совсем верна в том смысле, что при переливании из одного стакана в другой первый становится пустым. В результате же присваивания (X =Y) переменная, стоящая справа (Y) сохраняет свое значение.

Подпрограмма на VBA для решения этой задачи приведена на листинге.

2. Составим подпрограмму, в результате выполнения которой будет выведено значение TRUE, если точка с заданными координатами (x,y) лежит внутри заштрихованной области и FALSE в противном случае.

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

1-я часть: х £ 0; х2 + у2 £ 9; у ³ -х - 3.

2-я часть: х ³ 0; х2 + у2 £ 25.

Точка с координатами (х, у) лежит в заштрихованной области, если она принадлежит 1-й или 2-й части. Подпрограмма 2 на листинге осуществляет ввод координат точки, вычисление значения логического выражения, которое определяет принадлежность точки области и выводит полученную логическую величину на экран.

Поделиться:





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



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