Информатика 2012
.pdf1. ОсновныетипыданныхVBA
Типданных |
Диапзначезоний |
Объемзанимаемой |
||
|
|
|
|
памяти,байт |
Byteбайт) ( |
Целыечислаотдо0255 |
|
|
1 |
Integerцелоечисло) ( |
Целыечислаот |
–32768до32767 |
2 |
|
Longдлиннцел( ое |
Целыечисладвойнойдлиныот( |
|
–2147483648 |
4 |
число) |
до2147483647) |
|
-1.401298E-45 для |
|
Singleчисло( |
От -3.402823E38до |
|
4 |
|
отрицательныхзначений;От1.401298E |
-45до |
|||
плавающейточкойобычной |
3.402823E38дляположительныхзначений; |
|
|
|
точности) |
От -1.79769313486232E308до |
|
||
Doubleчисло( |
-4.94065645841247E-324дляотрицательных |
8 |
||
значений; |
|
|
||
плавающейточкдвойной |
От4.94065645841247E -324до |
|
||
точности) |
1.79769313486232E308дляположительных |
|
||
|
значений; |
|
|
|
Booleanлогический) ( |
Логическое значениеTrueилиFalse |
2 |
||
Stringстрокасимволов) ( |
Отдо065535символов |
|
|
1буквx |
Objectобъект) ( |
Любойуказательобъекта |
|
|
4 |
Variantстроковыеили ( |
Любоечислстровизначениеоковое |
|
|
от16 |
числовыеподтипы) |
|
|
|
|
2. Объявлениепеременных:
Dim Имяпеременной |
|
|
As Тип |
|
||
Пример: |
|
|
|
|
|
|
Dim Alpha As integer |
|
|||||
Объявлениеконстанта: |
|
|
As Тип = Значение |
|
||
Const Имяконстанты |
|
|
|
|||
Пример: |
|
|
|
|
|
|
Const Pi As double = 3.14159 |
|
|||||
3. Вводданных: |
|
|
|
|
||
A = Val( InputBox(СообщеЗначение,Заголовок, поумолчанию |
) ) |
|||||
где Val(S) – функцияпреобразованиястроки |
S вчисло; |
|||||
A = Range(Имяячейки |
или |
|
||||
).Value |
|
|||||
4.Выводданных: |
|
|
|
|
||
MsgBox( Str(A) & vbCrLf & Str(B) ) |
A встроку; |
|||||
где Str(A) – функцияпреобразованиячисла |
||||||
|
vbCrLf – константаперенстр; осаки |
|
||||
Range(Имяячейки |
|
|
или |
|
||
1).Value = A |
|
|||||
Range(Имяячейки |
2).Value = B |
|
5. Математическиефункции |
|
VBA |
|
|
|
|
|
|
|
|
|
Функция(аргумент) |
|
|
|
Действие |
|
|
|
|
|
||
Abs(N) |
|
Возвращает абсолютное значениергумN нта |
|
||
|
|
|
|
||
Atn(N) |
|
Возвращает арктангенс Nрадиан() |
|
||
|
|
|
|
||
Cos(N) |
|
Возвращает косинус Nрадиан() |
|
||
|
|
|
|
|
|
Exp(N) |
|
Возвращконстантуе ( туральныйетлогарифм= |
|
|
|
|
|
2.718282возвстепеньеденную...N ), |
|
|
|
|
|
|
|
||
Log(N) |
|
Возвращает натуральный логарифм N |
|
||
|
|
|
|||
Rnd(N) |
|
Возвращает случайное число:аргументявляе ся |
|||
|
|
необязаИспользуетсяным. послеко |
|
|
|
|
|
инициализациигенератоператорслучайныхчисел( |
|
||
|
|
Randomize) |
|
|
|
|
|
|
|
||
Sgn(N) |
|
Возвращает знак числа: -1,еслиN |
- отрицательное; |
||
|
|
1,еслиN |
- положительное;если0,равноN 0 |
|
|
|
|
|
|
||
Sin(N) |
|
Возвращает синус Nрадиан() |
|
||
|
|
|
|||
Sqr(N) |
|
Возвращает корень квадратный изЕслиN.являетсяN |
|||
|
|
отрицательнымчислом |
- возвращаетсяошибкавремени |
||
|
|
исполнения |
|
|
|
|
|
|
|
||
Tan(N) |
|
Возвращает тангенс Nрадиан() |
|
||
|
|
|
|
||
Арифметическоператоры:сложение |
|
+ ,вычитание – ,умножение |
* ,деление / , |
||
целочисленноеделение |
\ ,возведениестепень |
|
^ . |
|
|
Оператор, возвращающийостатокотделения |
|
mod (modulo).Примерпроверки |
|||
начетность: |
|
|
|
|
|
If A Mod 2 = 0 Then MsgBox(“Четное |
число”) |
|
|||
6Функциираб. сострокамиты |
|
|
|
|
|
Обратныйпорядоксимволов |
|
StrReverse(ТекстовоеВыражение) |
|
||
Преобразобольшихбуквмаленькиеание |
|
|
|
LCase(ТекстовоеВыражение) |
|
Преобразованиемаленькихбуквбольшие |
|
|
|
UCase(ТекстовоеВыражение) |
|
Удалениепробвначалелов |
|
текста LTrim(ТекстовоеВыражение) |
|||
Удалениепробначалевв вконцет кста |
|
|
|
Trim(ТекстовоеВыражение) |
|
Удалениепробвконцетексталов |
|
|
RTrim(ТекстовоеВыражение) |
|
Копированиеначалатекста |
Left(ТекстовоеВыражение,ЧислоСимволов) |
|
|
Копированиесерт диныкста |
Mid(ТекстовоеВыражение,НачалоКопии, |
|
|
|
ЧислоСимволов) |
|
|
Копированиеконцатекста |
Right(ТекстовоеВыражение,ЧислоСимволов) |
|
|
Символсзаданнымкодом |
Chr(КодСимвола) |
|
|
Заданноечислопробелов |
Space(ЧислоПробелов) |
|
|
Повторениезаданногосимвола |
String(ЧислоСимволов, |
ПовторяемыйСимвол) |
|
Поизаменасксимволовтексте |
Replace(ТекстовоеВыражение, |
||
|
СтарыйТекст, |
НовыйТекст) |
7. Циклсусловием
Конструкция |
|
Описание |
|
|
|
|
|
Do While |
Условиепровдотого,ряетсякаквыполняетсягруппа |
|
|
операторов,образующихтелоцикла.Циклпродолжает |
|
||
<условие> |
своюраб,поэкатусловиевыполняетсято(сть |
|
|
<блокОператоров> |
имеетзначеTrue),инсловамиымииеэтой |
|
|
Loop |
конструказываетсясловиекциипродолженияработы |
|
|
|
цикла |
|
|
|
|
|
|
Do Until |
Условиепровдотого,ряетсякаквыполняетсягруппа |
|
|
операторов,образующихтелоцикла.Циклпродолжает |
|
||
<условие> |
своюрабоусловие,еслиэт ещенвыполнено, |
|
|
<блокОператоров> |
прекращаетраб, ооногдатустанетистинным,иными |
|
|
Loop |
словами, |
вэткойнструказываетсясловиекции |
|
|
прекращенияработыцикла |
|
|
|
|
|
|
Do |
Условиепровпослтогоря,какоператорытся, |
|
|
составляющиеелоцикла,будутвыполнехотябыодины |
овиеещ |
||
<блокОператоров> |
раз.Циклпродолжаетсвоюрабоусл,еслиэ |
||
Loop Until |
невыполнено,акогдаоностанетистинным,цикл |
|
|
<условие> |
прекращаетработу,инымисловами,этк йнструкции |
|
|
|
указываусловиепр работыкращениятсяцикла |
|
|
|
|
|
|
Do |
Условиепровпослтогоря,какоператорытся, |
|
|
составляющиетелоцикла,будутвыполнехотябыодины |
|
||
<блокОператоров> |
|
||
раз.Циклпродолжаетсвоюраб, экаусловие |
|
||
Loop While |
|
||
остаетистинным,инымисловамия,этк йнструкции |
|
||
<условие> |
|
||
указываетсяусловиепродолженияработыцикла |
|
||
|
|
||
|
|
|
|
Пример. Даноцелоечисло(NНайтинаименьшее> 0)целое. |
2 >ФункциюN. |
положительноечисло |
K,квадраткоторогопревосходитN: K |
извлеченияквадратного |
|
корнянеиспользовать. |
|
|
Sub macros()
Dim n As Integer, k As Integer n = 144
k = 1
Do Until k ^ 2 > n k = k + 1
Loop
MsgBox ("K = " & k & vbCrLf & "K^2 = " & Str(k ^ 2))
End Sub
8Массивы. циклыпараметром
Массив – упорядоченнаягруппафиксированногоколичествапеременных одноготипа,имеюбимящ.ееая
Объявление массивов:
|
Dim Имя массива(Размерность) |
As Тип |
|
|
|||
Пример: |
|
|
|
|
|
|
|
|
Dim mas(1 To 5) As Integer |
|
|
|
|||
Заполнение массиваслучайнымизначениямиотдо010 |
|
припомощи |
оператора |
||||
цикласпараметром: |
|
|
|
|
|
||
For i = 1 To 5 Step 1 |
|
|
|
||||
|
mas(i) = Round(Rnd * 10) |
|
|
|
|||
Next i |
|
|
|
|
|
||
гдеi |
– параметрцикласчетчик( пов |
торов) |
– переменнаяцелоготипа |
|
|||
(Integer); 1и 5 |
– начальконечноеи з аченияпараметрацикла |
Step 1 – шаг. |
|
||||
выражениятог |
ожетипа,чтопараметрцикла; |
|
|
Пример. Заполнитьмассивчислами.Подсчитатьколичествоположительных элементов.
Sub macros()
Dim mas(1 To 10) As Integer Dim i As Integer
For i = 1 To 10 Step 1
mas(i) = Val(InputBox("", "", Round(Rnd * 10 - 5)))
Next i
Dim sum As Integer, s As String sum = 0
For i = 1 To 10 Step 1
If mas(i) > 0 Then sum = sum + 1
s = s & i & " : " & mas(i) & vbCrLf Next i
MsgBox (s & vbCrLf & sum)
End Sub
9Функции.
Описаниепользоватфункцииимеетследующийсинтаксисльской:
Function название функции (формальные параметры) [Аs тип] операторы
End Function
где название функции - имяфункции; |
формальные параметры - имена |
|
параметров,перечисленныечереззапятую; |
|
тип - типзначенияфункции; |
операторы - блокоператоров. |
|
|
Вблокеоператобязательнодолженприсутствоватьрыхотябыдин |
|
ослева(отзн ка |
операторисваивания,левойчастикоторог |
имяфункции |
|
присваивания)находится |
название. |
|
Обращениекфу (кцииаходяще |
йсявпрограмме)имеетвид |
название функции(фактические параметры)
где фактические параметры - переменные,константы,чис/строкил , перечисленныечереззапятую.
Пример. |
Функция,переугвградусахолдящая,минута |
х исекундахв |
|
десятичныеградусы |
иокруедголяющая4 |
го знака. |
Function deg(grad, min, sec) As Double
deg = Round(grad + min / 60 + sec / 3600, 4)
End Function
Sub macros()
MsgBox (deg(65, 56, 44) + deg(34, 20, 18))
End Sub