Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теоретические и практические вопросы дисциплины «Информатика». Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
81
АсtiveCell.Value = переменная
В этом случае в активную ячейку Excel выводится значение переменной. Приостановка вывода информации в этом случае не происходит.
Оператор Rem
(REMark − комментарий)
Формат оператора:
Rem [ сообщение ]
сообщение − сообщение, записанное латинскими буквами или
кириллицой.
Назначение оператора: оператор для ввода пояснений непосредственно в текст (листинг) программы. Очень полезно в начале кода программы записывать ш а п к у п р о г р а м м ы :
Rem Программа для поиска экстремума Rem методом ГАУССА - ЗЕЙДЕЛЯ Rem Автор − ИВАНОВ Г.П.
Особенности записи оператора: вместо слова Rem можно использовать знак апострофа ('). После слова Rem допустим любой текст, включая операторы бейсика, которые и г но р и р у ю т с я при выполнении программы. Комментарий можно добавлять также в конец программной строки с помощью предшествующего им знака апострофа. В этом случае он должен быть последним в строке, например:
' Вычисление суммы SUM=0 ' обнуление переменной SUM SUM=SUM + 5 ' увеличение суммы
Задача 18. Составить программу для вычисления площади круга S, если значение радиуса равно 2.75.
Для записи кода программы:
1.Создаем новую рабочую книгу.
2. Открываем окно редактора Visual Basic (Alt-F11).
3. Вставляем модуль, в котором будет храниться программа для вычисления площади круга: Insert =>Module.
82
4. Выполняем команды: Insert=>Procedure, в результате которых
Public Sub Krug_S ()
1
′ Программа для вычисления площади круга
2
′ Разработчик программы –студент гр.4901 Сидоров А.И.
3
′Дата разработки программы− 8.09.15
4
′Условные обозначения:
5
′ r − радиус круга (м)
6
′ S − площадь круга кв. м.
7
Let pi=3.14159 ′ задание константы π
8
r=2.75 ′ задание радиуса
9
S=pi*r*r ′ вычисление площади круга
10
MsgBox S,, ″Вывод результата″
11
End Sub
12
откроется окно Add Procedure (добавить процедуру).
5. Вводим имя процедуры, например Krug_S. В секции Type (Тип) устанавливаем переключатель Sub (Подпрограмма) и нажимаем на кнопку OK. В результате процедура будет вставлена в модуль и в нее можно записать код программы.
Пустая процедура состоит из трех строчек:
Public Sub Krug_S()
End Sub
В первой строке слово Public (общий) задает область видимости переменных на уровне всех созданных модулей проекта (глобальные переменные), а использование слова Private ограничивает область видимости переменных одним модулем. В пустую (вторую) строку можно вставить код программы.
Реализация программы на VBA:
Обсуждение программы:
Напомним, что программа на VBA состоит из совокупности строк. В каждой строке можно записать один или несколько операторов. Оператор – это макрокоманда для выполнения определенных действий. Если в строке записано несколько
83
операторов, то их необходимо разделять друг от друга знаком двоеточия ( : ).
Рассмотрим назначение отдельных строк программы. Первая и последняя строки программы создаются при вызове процедуры Sub и обсуждались выше.
Код программы (строки 2-11) записан пользователем.
В начале программы (строки 2-7) записана ш а п к а п р о г р а м м ы , поясняющая для каких целей создана программа, когда и кем разработана. В шапке программы обычно записывают название программы, условные обозначения физических величин и их размерности, т.к. результат решения физической задачи зависит от выбранной системы единиц. Для написания шапки программы используется оператор Rem. Вместо слова Rem можно использовать значок апострофа ( ′ ), что намного удобнее.
Для решения любой задачи в первую очередь необходимо задать исходные данные. Данные присваиваются определенным переменным. Имена переменных задаются программистом. Наиболее простой способ задания значений переменных – использование оператора Let.
В восьмой строке задается непоименованная константа π, т.к. на VBA отсутствуют какие либо заранее установленные (предопределенные) константы.
В девятой строке с помощью оператора Lеt задается радиус круга (ключевое слово Let можно не писать).
После ввода всех данных, необходимых для решения задачи, программируется основная вычислительная формула, в данной задаче формула вычисления площади круга (10-я строка).
Для вывода результатов используются инструкция MsgBox (11-я строка), которая выводит полученный результат в окно Windows.
Запуск программы на выполнение осуществляется через меню редактора VBA: Run=>Run Sub или нажатием на функциональную клавишу F5. Запустить программу можно также, используя меню Excel, по схеме: Сервис=> Макрос=>Макросы=>Выполнить.
Отладка программы, пожалуй, самая важная часть работы по составлению программы. Даже опытные программисты делают ошибки. После запуска программы, VBA проверяет правильность набранной программы. Если в какой-либо строке имеется ошибка, то VBA приостанавливает проверку программы и выдает сообщение об ошибке. Необходимо внимательно познакомится с сообщением, которое высвечивается в окне, затем закрыть окно, щелкнув по полю
84
OK (или воспользоваться справкой помощи), а затем исправить ошибку.
Часть ошибок можно устранить при наборе программы. Для этого рекомендуем набирать программу строчными (маленькими) буквами. Легко заметить, что при нажатии на клавишу Enter в конце строки, первые буквы ключевых слов, меняются на аналогичные прописные (большие) буквы, если в набранной строке нет ошибок. Если ошибка имеется, то размеры букв не меняются.
VBA не обнаруживает ошибок, если с точки зрения синтаксиса все написано нормально. Например, нужно вычислить кубический корень из 8. Сделаем две записи в процедуре:
Y1=8^1/3 : MsgBox Y1 ′ это первая программа Y2=8^ (1/3): MsgBox Y2 ′ это вторая программа
Обе строчки программы написаны безупречно с точки зрения VBA, и ошибок он не обнаружит. Однако первая строка программы даст неверный результат, т.к. в силу приоритетности выполнения операций число 8 будет возведено в степень 1, а затем полученное число (8) будет поделено на 3, что неверно. Здесь ошибка допущена самим пользователем, и VBA не может ее обнаружить. Хорошим средством от таких ошибок является внимательный анализ и просмотр самой программы.
3.4.2 Встроенные функции VBA
На VBA имеется множество в с т р о е н н ы х (с т а н д а р т н ы х ) функций.
Стандартные функции − это программные блоки, встроенные в VBA, которые по заданным входным параметрам (аргументам) вычисляют значение функции.
Все функции имеют, как правило, трехбуквенное обозначение. Аргумент функции всегда записывается в круглые скобки и расположен сразу же после имени функции.
Основные числовые функции VBA: Abs, Exp, Sqr, Log предназначены для работы с числовыми величинами. К ним относят и тригонометрические функции: Sin, Cos, Tan, Atn.
Аргументом числовых функций является числовая константа, переменная или арифметическое выражение, которое может содержать обращение к другим функциям.
Результат всех числовых функций – число.
85
Функция Abs
(ABSolute − абсолютное)
Формат функции:
Abs(x)
Назначение функции: вычисление абсолютного значения x (модуля x), например:
x= -5 : y= Abs(x) : MsgBox y
- в окне выводится число 5 .
Функция Exp
(EXPonent − степень)
Формат функции:
Exp(x)
Назначение функции: вычисление экспоненциальной функции, т.е. числа е (основание натурального логарифма), возведенного в степень x, например:
x =1 : y =Exp(x) : MsgBox y
- вычисление числа е. Ответ − число 2.718281828 .
Функция Sqr
Формат функции:
Sqr(x)
Назначение функции: вычисление квадратного корня из x, например:
p=SQR(25) : MsgBox y
- на экран монитора выводится число 5.
Особенности функции: значение аргумента должно быть неотрицательным, иначе выдается сообщение об ошибке.
Функция Log
Формат функции:
Log(x)
Назначение функции: вычисление значения натурального логарифма (логарифма по основанию е), т.е. ln(x), например:
x=3.718282 : y= LOG(x-1) : MsgBox y
- в окне выводится y=1.
86
Особенности функции: значение аргумента x должно быть
)ln(
)ln(
log
b
x
xb
180
81415926535.3x
больше нуля.
Логарифм по основанию b можно найти, если воспользоваться соотношением
например, выражение lg (29t-4x) записывается на VBA так:
Log(29*t - 4*x)/Log(10)
Т р и г о н о ме т р и ч е с к и е функции предполагают, что аргумент задан в р а д и а н н о й ф о р м е и представляет собой число, переменную или арифметическое выражение. Если аргумент задан в градусной форме, то его переводят в радианную форму по формуле
Число может быть записано в виде числовой константы или может быть вычислено по формуле: = 4 arctg (1).
Функция Cos
Формат функции:
Cos(x)
Назначение функции: вычисление косинуса угла x, заданного в радианах, например
y=Cos(0) : MsgBox y
выводится число 1.
Функция Sin
Формат функции:
Sin(x)
Назначение функции: вычисление синуса угла x, заданного в радианах, например:
pi =3.141592 : y=Sin(2*pi) : MsgBox y
- в окне выводится число -1.307179E-06
87
Обратите внимание на то, что в данном примере вычислялся
№
Имя функции
Обозначе
ние
Вычисление сложных
функций в VBA
1
Котангенс
сtg(x)
1/tg(x)
2
Секанс
sec(x)
1/cos(x)
3
Косеканс
cоsec(x)
1/sin(x)
синус угла 360
0
, т.е. 2π радиан. Абсолютно точный результат – число
0. Полученный ответ – 1.255666 10-6 − число близкое к нулю, но не ноль. Ошибка получилась, вероятно, из-за неточного задания числа π или погрешности при вычислении функции синуса.
Функция Tan
Формат функции:
Tan(x)
Назначение функции: вычисление тангенса угла x, заданного в радианах, например:
x=45: pi=3.141592 : y=tan(x*pi/180) : MsqBox y
-выводится значение тангенса 45 градусов, т.е. число 1 или близкое к
нему.
Функция Atn
Формат функции:
Atn(x)
Назначение функции: вычисление арктангенса угла x, заданного в радианах, например:
y=atn(1) : MsqBox y
- выводится число 0.7853982 (радианная форма), соответствующее
углу 45
имеющиеся в VBA (табл. 1): Таблица 1. Формулы вычисления сложных тригонометрических
функций с использованием стандартных функций VBA
0
.
Ряд других тригонометрических функций можно выразить через
88
Продолжение таблицы 1
4
Арксинус
arcsin(x)
)
1
(
2
x
x
tgarc
5
Арккосинус
arсcos(x)
atn(-x/Sgr(1-x2))+2*atn(1)
6
Арккотангенс
arcctg(x)
)1(2)( arctgxarctg
7
Гиперболический синус
sh(x)
2
xxee
8
Гиперболический косинус
ch(x)
2
xxee
9
Гиперболический тангенс
th(x)
xx
xx
ee
ee
10
Гиперболический секанс
sch(x)
xxee
2
11
Гиперболический косеканс
csch(x)
xxee
2
12
Гиперболический котангенс
cth(x)
xx
xx
ee
ee
13
Гиперболический арксинус
arsh(h)
)1ln(
2
xx
14
Гиперболический арккосинус
arch(x)
)1ln(
2
xx
89
Окончание таблицы 1
15
Гиперболический
арктангенс
arth(x)
2
)
1
1
ln(
xx
16
Гиперболический арккотангенс
arcth(x)
2
)
1
1
ln(
x
x
3.4.3 Ввод числовых данных в программу из окна Windows
Для ввода числа из окна Windows используют функцию InputBox.
Формат функции:
InputBox ("подсказка" [,"заголовок"])
где подсказка – строковая константа, поясняющая какую информацию необходимо ввести; заголовок − текст который выводится в заголовке окна. Если заголовок не задан, то в заголовке окна появится сообщение
Microsoft Excel.
Назначение функции: создание окна ввода информации, в текстовое поле которого можно ввести число или текст. Во всех случаях введенная информация рассматривается как текст.
Например, следующий код, записанный в процедуру Sub: a = InputBox("Введите информацию", "Окно ввода")
f = a + a MsgBox f ,, "Окно вывода"
позволяет изучить работу окна ввода InputBox: если в окно ввода ввести слог ПА, то в окне вывода появится слово ПАПА; если в окно ввода ввести число 5, то в окне вывода появится 55, т.к. число 5 рассматривается как текст.
Для преобразования текста, вводимого в поле окна, в число на VBA используется функция Val.
Рассмотрим следующий код:
a = InputBox("Введите информацию", "Окно ввода")
90
p = Val(a)
Public Sub XXX()
1
′ Программа для суммирования положительных чисел
2
′ Разработчик программы–студент гр.4901 Сидоров А.И.
3
′ Дата разработки программы: 18.06.14
4
sss = 0
5
m1: a=Val(InputBox("Введите положительное число","Окно ввода"))
6
sss= sss + a
7
MsgBox "sss="&sss ,, "Вывод суммы"
8
GoTo m1
9
f = p+p MsgBox f ,, "Окно вывода"
При вводе в окно Windows числа 5, оно присваивается переменной а, как текст, а затем преобразуется с помощью функции Val в число 5 и хранится в ячейке p. В ячейке f получается сумма двух пятерок и результат – число 10 – выводится в окно вывода информации.
3.5 Организация безусловного перехода
Оператор GoTo
(Goto − перейти к)
Формат оператора:
GoTo метка
?метка − метка строки, на которую осуществляется переход. Под
меткой понимают совокупность букв и цифр. Метка заканчивается двоеточием.
?Назначение оператора: безусловный (т.е. без проверки каких
либо условий) переход к указанной в программе метке.
?Задача 19. Составить программу для суммирования положительных
чисел, введенных с клавиатуры.
?Реализация программы на VBA:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]