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

Реферат Курсовая Конспект

ЧАСТЬ 2

ЧАСТЬ 2 - раздел Информатика, ИНФОРМАТИКА Во Второй Части Нашего Курса Рассмотрим Простейшие Приемы Работы На Vba С Под...

Во второй части нашего курса рассмотрим простейшие приемы работы на VBA с подпрограммами и массивами, связанные с инженерно-математическими расчетами.

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

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

В VBA подпрограммы разделяются на процедуры – Sub и подпрограммы-функции – Function . Кроме того, от первоначальных версий BASIC сохранилась конструкция подпрограмм GoSub – Return , которая в настоящее время редко используется и в нашем курсе не рассматривается.

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

Синтаксис процедуры в упрощенной форме имеет вид:

[ Private | Public ] Sub <имя процедуры> ( список )

< операторы >

End Sub

Здесь квадратные скобки указывают на необязательный параметр, вертикальная черта – на варианты параметров, выбираемых пользователем. Так, элемент описания Private указывает, что рассматриваемая процедура доступна только из программы и процедур только того модуля, в котором она описана. Элемент описания Public указывает на то, что рассматриваемая процедура доступна для всех программ и процедур во всех модулях. В предлагаемых образцах программ мы будем использовать процедуры только с описанием Public .

Список формальных аргументов процедуры мы условно на начальном этапе изучения разделим на входные параметры – исходные данные и выходные – результаты счета. Входные параметры в списке мы будем описывать с ключевым словом ByVal и обязательным указанием типа. Выходные же параметры в списке будем описывать с ключевым словом ByRef и обязательным указанием типа. При таком способе описания входные параметры передаются в процедуру по значению: вначале в вызывающей программе вычисляются значения фактических аргументов и эти значения подставляются в процедуре вместо формальных. Входные параметры могут быть либо постоянными, либо именными постоянными, либо переменными, либо выражениями. Выходные параметры, описанные с ключевым словом ByRef , передаются по адресам в электронной памяти компьютера и должны быть только переменными. После их вычисления в процедуре их значения передаются в вызывающую программу. Отметим, что каждая переменная, которая используется в качестве выходного параметра процедуры с ключевым словом ByRef в вызывающей программе, должна быть описана в ней только в отдельном операторе описания. Вызов процедуры из вызывающей программы осуществляется с помощью оператора

Call < имя процедуры > ( фактические переменные )

Так вычисление логарифма по произвольному основанию и образец обращения к процедуре его вычисления можно представить в следующей программе

Private Sub Workbook_Open()

Const a = 2, b = 4

Dim x As Single

Dim y As Single

Dim z As Single

Call Логарифм(a, b, x)

Call Логарифм(a + b, (a + b) ^ 5, y)

Call Логарифм(10, 10000, z)

Range("A1").Value = x

Range("A3").Value = y

Range("A5").Value = z

x = 2.38 ^ b

y = 3.1415926

Call Логарифм(y, x, z)

Range("A7").Value = z

End Sub

 

Public Sub Логарифм(ByVal основание, аргумент _

As Single, ByRef результат _

As Single)

результат = Log(аргумент) / Log(основание)

End Sub

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

Кроме того, что в процедуре может быть несколько выходных параметров, описанных с ключевым словом ByRef, возможны побочные результаты действия процедур на изменение входных параметров с ключевым словом ByVal – в предлагаемом курсе не рассматриваются.

Подпрограмма-функция – это подпрограмма, результат которой есть единственное значение, присваиваемое имени этой функции. Подпрограмма-функция оформляется в следующем виде

[Public | Private] Function < имя функции >(список) _

As < тип >

< операторы >

End Function

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

< имя функции > = < выражение >

Обращения к подпрограммам-функциям аналогичны обращению к стандартным математическим функциям VBA.

Рассмотрим оформление предыдущего примера в виде подпрограммы-функции и обращения к ней

Private Sub Workbook_Open()

Const a = 2, b = 4

Dim x As Single

Dim y As Single

Dim z As Single

x = Логарифм(a, b)

y = Логарифм(a + b, (a + b) ^ 5)

z = Логарифм(10, 10000)

Range("A1").Value = x

Range("A3").Value = y

Range("A5").Value = z

x = 2.38 ^ b

y = 3.1415926

z = Логарифм(y, x)

Range("A7").Value = z

End Sub

 

Public Function Логарифм(ByVal основание, аргумент _

As Single) As Single

Логарифм = Log(аргумент) / Log(основание)

End Function

 

Результат счета по приведенным программам одинаковый и имеет вид:

 
 

Отметим, что в ячейку A1 выведено значение , в ячейку A3 – значение , в ячейку A5 – значение , а в ячейку A7 выведено значение .

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

Если в математике, как правило, индекс указывается несколько ниже имени переменной, например или – для элементов векторов и – для элементов матриц, то в VBA индексы заключаются в круглые скобки через запятую. Например: x(1) x(2) ... x(n), или x(i) – для элементов векторов и a(i,j) – для элементов матриц. На VBA в качестве индексов можно использовать переменные перечисляемого типа. Например, названия дней недели, названия цветов радуги и так далее. Мы же будем рассматривать простейший случай, когда в качестве индексов используются аргументы целого типа с указанием пределов их изменения. Число индексов в массиве определяет его размерность.

Для работы с массивами необходимо их предварительно описать. В нашем курсе мы их будем описывать в операторах Dim с указанием границ изменения его индексов в виде граничных пар. При этом объявление массивов может иметь вид:

. . . . . . . . .

Dim a(1 To 5) As Single

Dim b(-1 To 3) As Integer

Dim c(1 To 2, 1 To 4) As Single

. . . . . . . . .

Здесь описаны три массива. Вектор a вещественного типа, состоящий из пяти элементов: a(1) a(2) a(3) a(4) и a(5); вектор b целого типа, состоящий из пяти элементов: b(-1) b(0) b(1) b(2) и b(3); матрица C вещественного типа, состоящая из восьми элементов:

c(1,1) c(1,2) c(1,3) c(1,4)

c(2,1) c(2,2) c(2,3) c(2,4)

Границы изменения индексов массивов можно описать либо в виде граничных пар чисел, как указано выше, либо в виде граничных пар именных констант. Например:

. . . . . . . . .

Const m = 1, n = 10

Dim a(m To n) As Single

. . . . . . . . .

Следует отметить, что должно соблюдаться условие: . Если же , то соответствующий индекс может принимать только одно значение.

Довольно часто массивы описываются с запасным количеством элементов, например вектор, состоящий из 100 элементов, а в программе используются только часть этого массива. Например, только 30 элементов массива.

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

Для использования массивов в подпрограммах часто используется их описание в виде динамических, для которых размерность и диапазон изменения параметров определяется вызывающей программой. Например, x(). Использование динамических массивов в качестве входных и выходных параметров подпрограмм допускается только с ключевым словом ByRef и они обязательно должны быть описаны в конце списка параметров подпрограммы .Если в подпрограмме используется несколько массивов, то каждый из ник должен содержать в описании ключевое слово ByRef и описание типа.

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

– Конец работы –

Эта тема принадлежит разделу:

ИНФОРМАТИКА

СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ... ИНФОРМАТИКА работ для студентов... Ростовский государственный...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЧАСТЬ 2

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

ИНФОРМАТИКА
Методические указания с вариантами контрольных работ для студентов заочной формы обучения     РОСТОВ - НА - ДОНУ

Описание простейших конструкций языка программирования VBA
В VBA используются следующие символы: 1. Прописные и строчные буквы латинского алфавита (A – Z , a – z). 2. Про

Задача № 1
1. Составить программу вычисления площади и периметра равнобедренного треугольника с основанием a и углом при вершине

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

Задача № 3
Составить программу вычисления суммы и произведения указанных членов числовой последовательности. 1.

Задача № 4
Составить программы табулирования функции (см. задачу 2) на отрезке

Задача № 1
Составить программу вычисления площади и периметра треугольника со сторонами и острым углом между ними

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

Задача № 3
Вычислить и , если

Задача № 4
Составить программы табулирования функции (см. задачу 2) на отрезке

Задача № 1
Составить программу табулирования функций и

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги