Шестаков В.С. Расчет на ЭВМ нефтегазового оборудования. Учебное пособие для МНГ-2015 (811778), страница 8
Текст из файла (страница 8)
Если тип данных не задан, то по умолчанию переменная приобретает тип Variant. Допускается описание несколькихпеременных в одной строке, но в этом случае тип данных надо указывать для каждой переменной. Например, переменные X, Y, и Z описываются как Integer:Dim X As Integer, Y As Integer, Z As Integer.В инструкции «Dim X, Y, Z As Integer», X и Y описываются какVariant; и только Z описывается как Integer. Описание массивовМассив представляет собой набор ячеек памяти, имеющих одно ито же наименование. Чтобы обратиться к конкретной ячейке памяти,необходимо указать имя массива и порядковый номер элемента (индекс элемента в массиве). Массив может быть одномерным и многомерным.
При одномерном массиве для указания конкретного элементауказывается один индекс, а при многомерном столько, какой размермассива используется.Массивы описываются так же, как и переменные, с указанием области видимости и типа. Отличием является то, что после имени массива указывается его размер в круглых скобках. Например:Dim X(1 to 20) As Integer, Y(20) As Single,А(1 to 10,1 to 20) As Single, B(10,20,5) As SingleДля массива Х указана верхняя и нижняя границы, т. е. отведено20 ячеек памяти, для массива Y указана только верхняя граница, поумолчанию за нижнюю границу принимается нуль, значит, под Y отведена 21 ячейка памяти, массив A двумерный и под него отведено38200 ячеек памяти, массив В трехмерный и под него отведено11 х 21 х 6 ячеек памяти.При использовании массива в программе указывается его наименование, а в круглых скобках номер элемента из этого массива. Номерэлемента может быть указан непосредственно числом или переменной, например, Z=X(2)+Y(J).
При использовании переменной онадолжна вычисляться выше ее применения для элемента массива. Пользовательский тип данныхНаряду с рассмотренными выше стандартными типами данныхимеется возможность создать определяемый пользователем тип данных с помощью инструкции Type. К такому способу часто приходитсяприбегать при работе с таблицами, колонки которых имеют разныйтип данных. Например, необходимо обрабатывать данные по студентам. Таблица имеет колонки для хранения порядкового номера, фамилии, имени, отчества, суммы полученных на экзаменах оценок, датырождения. Для чтения такой таблицы в программе может быть предусмотрено четыре массива с соответствующими типами данных, аможно использовать собственный тип данных. К последнему способупривыкли многие программисты, работавшие ранее на языке Паскаль,языках баз данных.
На этих языках применяется тип данных «Запись».Пример использования массива с собственным типом данных будетиметь вид:Option Explicit' Пример использования собственного типа данных' Начало описания собственного типа данныхType ЗаписьN As Integer' Поле для хранения порядкового номера' Поле для хранения фамилии И.О.Имя As String * 20' Поле для хранения адресаАдрес As String * 30' Поле для хранения суммы оценокОценки As IntegerДата_рождения As Date ' Поле для хранения даты рожденияEnd Type' Завершение описания собственного типаSub Ввод()'Подпрограмма ввода данных по студентам'Описание массиваDim Студент(20) As ЗаписьDim i As Integer'Переменная для организации цикла'Начало цикла ввода 10 строкFor i = 1 To 10Студент(i).N=Worksheets("Лист1").Cells(i + 1, 1) 'Ввод N с листа "Лист1"Студент(i).Имя = Worksheets("Лист1").Cells(i + 1, 2) 'Ввод ФИОСтудент(i).Адрес = Worksheets("Лист1").Cells(i + 1, 3) 'Ввод адресаСтудент(i).Оценки=Worksheets("Лист1").Cells(i+1,4) 'Ввод суммы оценокСтудент(i).Дата_рождения=Worksheets("Лист1").Cells(i+1,5) 'Ввод даты39MsgBox Студент(i).ИмяNext iEnd Sub'Вывод для проверки работы программы ФИО КонстантыНаряду с переменными в Visual Basic применяются константы.Константа начинается с ключевого слова Const, при этом можно указать ее область действия, тип и присвоить ей значение.
Константа часто используется для замены ею численных значений коэффициентов,входящих во многие формулы. При необходимости корректировкиэтих коэффициентов изменяется значение только в описании константы и не требуется менять числа во всех формулах, что уменьшит вероятность ошибок.Пример. Public Const K_zap=1.25Private Const K_p=1.1Fras1 = K_zap * G1Fras2 = K_zap * G2Mr=K_p*N/wConst K_zap будет доступна всем процедурам во всех модуляхкниги, а K_p - только для процедур этого модуля.Кроме констант, задаваемых пользователем в программе, имеетсянабор стандартных констант для управления цветом выводимых элементов, для задания дат и другие. Размещение одной инструкции на нескольких строкахи нескольких инструкций в одной строкеОбычно инструкция располагается на одной строке, но при необходимости ее можно продолжить на следующую строку с помощьюсимвола продолжения строки, в качестве которого используется знак«_» (подчеркивание, вводится «Shift» + кнопка «-»).При размещении нескольких инструкций в одной строке применяется в качестве разделителя двоеточие. КомментарииКомментарии позволяют объяснить процедуру или определеннуюинструкцию всем читателям программы.
Когда процедура выполняется, Visual Basic игнорирует комментарии. Строки комментария начинаются с апострофа (вводится на английском шрифте клавишей, накоторой изображена русская буква Э) или со слова Rem, за которым40следует пробел. Их можно вносить в любое место процедуры. Чтобывнести комментарий в строку, на которой расположена инструкция,после инструкции следует поставить апостроф, а за ним комментарий.Комментарии выделяются в тексте зеленым цветом.
В приведенномвыше примере использования собственного типа данных в каждойстроке программы приведены комментарии. Инструкции языка VBAПроцедуры VBA – это набор инструкций. Некоторые инструкцииочень просты и выполняют одно действие, однако большинство включает несколько элементов: ключевые слова, выражения, переменные иоператоры.Типы операторов. В Visual Basic применяются операторы:арифметические - для выполнения математических вычислений;сравнения- для выполнения операций сравнения;конкатенации - для объединения строковых значений;логические - для выполнения логических операций.Старшинство операторов.
Если выражение содержит несколько операторов, то оно рассчитывается в определенном порядке. Такойпорядок называют порядком старшинства или приоритетом операторов.Если выражение содержит операторы разных типов, то первымивыполняются арифметические операции, следом за ними операциисравнения, а последними логические операции. Все операторы сравнения имеют равный приоритет, т. е. выполняются в порядке их расположения в выражении слева направо. Арифметические и логические операторы выполняются в порядке их расположения в приведенных ниже таблицах.При вычислении выражений вначале вычисляются функции ивозведения в степень, затем умножения и деления, а затем сложения ивычитания. Стоящие рядом в выражении операторы умножения и деления выполняются слева направо.
В таком же порядке выполняютсястоящие рядом операторы сложения и вычитания. Операторы внутрикруглых скобок всегда выполняются раньше, чем операторы вне скобок. Порядок выполнения операторов, стоящих внутри скобок, определяется старшинством операторов.41Арифметические операторыОператор^*/\ModДействиеВозведение в степеньПроизведениеДеления двух чиселЦелочисленное делениедвух чиселОстаток при целом делении двух чисел (значениепо модулю).+Сумма двух чисел-Разность двух чисел илиизменяет знак числовоговыраженияПримерY = 3 ^ 3 ^ 3;d=S^0.5Y=459.35 * 334.90Y =10 / 3 ' результат 3.33333Y = 100 \ 3 ' результат 33.Y = 10 Mod 5' результат 0.Yt = 12 Mod 4.3 ' результат 0.Y = 12.6 Mod 5 ' результат 3.N = 42.04 + 98 ' результат 140.04.V1=«34»-строка;V2=6 –числоMN =V1+V2'результат 40.Var1 = «34»: Var2 = «6» строковые.My = Var1 + Var2 ' результат «346»Y=459.35-334.90'возвращает124.45.Операторы сравненияИспользуются для сравнения двух выражений, результат имеетзначение True, False или Null.Синтаксис: Р = В1 оператор сравнения В2,где Р - результат, В1, В2 – выражения.Примеры.
y=(45<35) – результат False, Z=(45=45)-результат True.Ниже приведены примеры, при которых результат имеет значение True, FalseОператор< (меньше)<= (меньше или равняется)> (больше)>= (больше или равняется)= (равняется)<> (не равняется)ВыражениеВ1<В2В1<=В2В1>В2В1>=В2В1=В2В1<>В2РезультатTrueFalseпри В1=10, В2=15при В1=10, В2=10при В1=20, В2=15при В1=20, В2=12при В1=20, В2=20при В1=10, В2=15при В1=20, В2=15при В1=50, В2=15при В1=10, В2=15при В1=10, В2=15при В1=10, В2=15при В1=20, В2=20Примечание: при В1 или В2= Null результат будет Null.Логические операторыСинтаксис применения операторов: Р=В1 логический оператор В2,42где Р-результат, возвращаемый при выполнении оператора, В1, В2 –выражения.
В таблице приведены операторы и возвращаемые значения в зависимости от значений выражений.ОператорAndEqvOrNotXorПояснениеЛогическоеИЛогическаяэквивалентностьЛогическоеИЛИ(сложение)ЛогическоеотрицаниеЛогическоеисключающееИЛИСинтаксисР=В1And В2Р=В1Eqv В2Р=В1Or В2Р=Not(В1)Р=В1Xor В2РезультатВ1В2TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalseTrueTrueTrueTrueFalseFalseFalseFalseTrueFalseFalseTrueTrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalseTrueFalseFalseTrueTrueTrueFalseTrueFalseTrueFalseTrueTrueFalseFalseFalseПримерA = 10: B = 8: C = 6M = A > B And B > CA = 10: B = 8: C = 6M = A > B And B < CA = 10: B = 8: C = 6M = A < B And B > CA =10: B=8: C = falseM = A < B And CA = 10: B = 8: C = 6M = A <> B Eqv B > CA = 10: B = 8: C = 6M = A > B Eqv B < CA = 10: B = 8: C = 6M = A > B Or B > CA = 10: B = 8: C = 6M = A > B Or B < CA = 10: B = 8: C = 6M = A < B Or B > CA =10: B=8: C = falseM = A <B Or CA = 10: B = 8MyCheck = Not(A > B)A = 10: B = 8MyCheck = Not(A < B)A = 10: B = 8: C = 6M = A > B Xor B > CA = 10: B = 8: C = 6M = A > B Xor B < CA = 10: B = 8: C = 6M = A < B Xor B > CA =10: B=8: C = falseM = A <B Xor C ФункцииVBA имеет большое число функций, позволяющих проводить математические вычисления, работать со строками, временем и датой,43преобразовывать данные и многое другое.