Vba линейни оператори. VBA изявления. Приоритети за операции при изчисляване на сгъваеми вируси

Тук са описани всички аритметични оператори, съвпадащи оператори, логически оператори и оператори за конкатенация. Изпробвах всички, които трябва да знаете за тези оператори. Кожен оператор има дупе. Описания на превода от мен от стандартния Help a VB5.

Аритметични оператори

оператор ^ (линк за стъпка)

Операторът за присвояване на номера на стъпката на стъпките.

Синтаксис:

резултат = номер^стъпки

Параметри:

резултат
номер
стъпки- obov'yazkova; бъде като числови вираз

Уважение:

номерможете да бъдете по-отрицателни, само в това настроение, ако стъпки- цяло число. Що се отнася до едно нещо, броят на операторите ^ е победител, тогава броят на операторите се изчислява вдясно. Извикайте типа резултат - Double. Въпреки това, все пак стъпки, или номер- Нулева вираз, значи резултатетикет Нул.

дупето:

Дим Моята стойност
Моята стойност = 2^2" Завой 4.
Моята стойност = 2^3^3" завъртете 512 (2^3=8, 8^3=512)
Моята стойност=(-5)^3" завъртете -125.

Моля те:

Ако трябва да извикате числото в стъпката за публикуване, тогава е по-добре да спечелите броя на операторите - множителя, по-ниското - стъпката към степера, преценете сами, цикълът от милион преминава през броенето чрез преминаване:

test1 = 2^8" 893ms
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130 мс!

оператор * (множествено число)

Победа за умножение на две числа.

Синтаксис:

резултат = номер 1* номер 2

Параметри:

резултат- вискозен на обувките; бъде числова промяна
номер 1- Обовязково; бъде като числови вираз
номер 2- Обовязково; бъде като числови вираз

уважение:

Типът данни на резултата е същият като най-точния тип от двете числа. Ред на точност, от най-висока до най-ниска - байт, цяло число, дълга, единична, валута, двойна, десетична. Истината е, обвинява:

  • Ако умножите Single и Long, тогава резултатът е Double
  • Какъв тип данич резултат- Long Single или Date, при които самият резултат не може да бъде преобразуван, след което резултатът се преобразува във Variant, за да се замени Double.

Yakscho номер 1или номер 2

Редът на точност по отношение на множеството vіdmіnniy vіd е тих, което се оценява в допълнения и vіdnіmannі.

дупето:

Дим Моята стойност
MyValue = 2*2” Завъртете 4.
MyValue = 459,35 * MyValue "(!LANG:(!LANG: Завъртете 495,35*4

оператор / (podіl)

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

Синтаксис:

резултат = номер 1 / номер 2

Параметри:

резултат- обов'язковий; будь-яка числова змінна !}
номер 1- Обовязково; бъде като числови вираз
номер 2- Обовязково; бъде като числови вираз

уважение:

РезултатОбаждането може да напише Double. Истината е, обвинява:

  • Ако можете да намерите типа Byte, Integer, Single, тогава резултатът е Single. Проте, например, вираза не се вписва в Single frame, има прошка.
  • Ако е възможно да се победи типа Variant, да се отмъсти Byte, Integer или Single, тогава резултатът е Единичен вариант. Такива разширения обаче не се вписват в обхвата на единичен, двоен вариант.
  • Ако едно от числата може да бъде от тип Decimal, тогава резултатът е Decimal.

Yakscho номер 1или номер 2- Null, тълкува се просто като оригиналната 0.

Приложи:

Дим Моята стойност
Моята стойност = 10/4" !} завъртете 2.5.
Моята стойност = 10/3" завъртете 3.333333.

оператор \ (съвпадение на цяло число)

Печеля за половината от две числа и вземане на целия резултат.

Синтаксис:

резултат = номер 1 \ номер 2

Параметри:

резултат- вискозен на обувките; бъде числова промяна
номер 1- Обовязково; бъде като числови вираз
номер 2- Обовязково; бъде като числови вираз

уважение:

Преди това, тъй като се очаква такова поле, vrazi се закръгляват до Byte, Integer или Long vraziv. Посочете типа данни за резултата Byte, Byte variant, Integer, Integer variant, Long или Long variant. Дали се образува част.

Въпреки това, ако има Null, тогава резултатът е Null. Независимо дали е вираз, за ​​да отмъсти Empty се интерпретира като 0.

Приложи:

Дим Моята стойност
Моята стойност = 11\4" завъртете 2.
Моята стойност = 9\3" завъртете 3.
Моята стойност = 100\3" завъртете 33.

Мод оператор

Победа за rozpodіlu две числа, които otrimannya излишък vіd їhny rozpodіlu.

Синтаксис:

резултат = номер 1Мод номер 2

Параметри:

резултат- вискозен на обувките; бъде числова промяна
номер 1- Обовязково; бъде като числови вираз
номер 2- Обовязково; бъде като числови вираз

уважение:

Когато rozpodіlі числа іz управляващата точка се закръглят. Например, резултатът от атакуващ virazu е по-скъп с 5:

A=19 Мод 6.7

какво става тук? На гърба числото 6,7 се закръглява до 7. След това, ще бъде подредено, ще вземем 2,7. Излишък в празнината = 5. (2 * 7 = 14, 19 - 14 = 5).

Резултатът може да бъде от тип Byte, Byte variant, Integer, Integer variant, Long или Variant, което означава дълъг.

Сякаш е Null, тогава резултатът е Null. Независимо дали е вираз, за ​​да отмъсти Empty се интерпретира като 0.

Приложи:

Дим MyResult
MyResult = 10 Mod 5" завъртете 0.
MyResult = 10 Mod 3" завъртете 1.
MyResult=12 Mod 4.3" завъртете 0.
MyResult = 12,6 Mod 5" завъртете 3.

оператор + (добавка)

Победа за събиране на две числа.

Синтаксис:

резултат = viraz1+viraz2

Параметри:

резултат- вискозен на обувките; бъде числова промяна
viraz1
viraz2- Обовязково; бъди вираз

уважение:

Ако спечелите оператора +, не можете да определите какво ще се случи чрез добавяне или свързване на редове. За конкатенация използвайте оператора &, за да изчистите объркването и да направите кода по-лесен за четене.

Ако един от вариантите не е Вариант, тогава ще се прилагат следните правила:

  • Ако можете да сортирате числов тип (байт, булев, цяло число, дълъг, единичен, двоен, дата, валута или десетичен) - тогава трябва да го сгънете.
  • Като обида за виразите на един ред - конкатенация.
  • Ако една от променливите може да бъде от числов тип и ако е била стойност на Variant, включително Null, тогава е необходимо допълнително въвеждане.
  • Ако само една от променливите е ред и ако това е стойността на Variant, тогава се изисква конкатенация.
  • Ако един от виразивите отмъсти на Empty, тогава той се обръща към другия, без да променя вираза.
  • Тъй като една от разликите може да е числов тип, а на следващия ред има извинение за несъответствие на типа.
  • Точно като Viraz Null - същият резултат като Null.

Ако сте обидени от Virazi Variant, тогава ще се прилагат следните правила:

  • Yakscho обижда virazi номера - смрадта се сумира.
  • Ако сте обидени от виразите на реда, тогава вонята ще се слее.
  • Само едно от числата е различно и следва да се добави следващият ред.

За окончателното сгъване типът на данните, дадени на резултата, е същият като най-точния тип две числа. Редът на точност на атаката е байт, цяло число, дълъг, единичен, двоен, валутен и десетичен. Є вина:

  • Ако добавите Single и Long, тогава резултатът е Double
  • Ако добавите два пъти с типа Дата, било то по друг начин, тогава резултатът е Дата.

Ако едното или другото е Null virazi, тогава резултатът също е Null. Как да се обидим и да отмъстим Празно, резултатът е Integer. Ако е само един, тогава резултатът не се променя от друг вираз.

Приложи:

Дим Моят номер, Вар1, Вар2
Моят номер = 2 + 2" завъртете 4.
Моят номер = 4257.04 + 98112" завъртете 102369.04.

var1="34"
Вар2 = 6 Първоначални промени
Моят номер = Var1 + Var2" завъртете 40.

var1="34"
Var2="6" Първоначални промени в редовете
Моят номер = Var1 + Var2" завъртете"346"
„Конкатенация, а не добавяне!“).

Моля те:

Операторът за сгъване (+) може да се използва за сгъване на дати, така че. промяна на типа дата:

Дим г Като Дата
d = Сериална дата (2002, 8, 15) дата инициализация 15.08.2002г
d=d+15 Сега да отмъсти за датата 30.08.2002г
Tobto добавихме 15 дни

оператор - (видим, промяна на знака)

Vikoristovuetsya за znahodzhennya raznitsi mizh две числа, или също за промяна на знака на вируса.

Синтаксис:

резултат = viraz1- viraz2

-Вираз

Параметри:

резултат- вискозен на обувките; бъде числова промяна
viraz- Обовязково; бъди вираз
viraz1- Обовязково; бъди вираз
viraz2- Обовязково; бъди вираз

Уважение:

В първия синтаксис операторът "-" е необходим за разграничаване между две числа. В друг синтаксис "-" се променя, за да промени знака на y virazi.

Типът данни на резултата е същият като най-точния тип от двете числа. Редът на точност на атаката е байт, цяло число, дълъг, единичен, двоен, валутен и десетичен. Є вина:

  • Ако вземете съдбата на типи Single и Long, тогава резултатът е Double
  • По правило победителите печелят с тип Дата,
    тогава резултатът е Дата.
  • Разглеждането на две дати дава двойно като резултат.

Ако едното или другото е Null virazi, тогава резултатът също е Null. Въпреки че един от изразите е Empty, той се интерпретира като 0.

Редът на точност в събирането и на второ място е тихият, който се оценява в множествено число.

Приложи:

Дим MyResult
Моят резултат = 4 - 2" завъртете 2.
MyResult = 459,35 - 334,90" завъртете 124.45.

Моля те:

Като оператор на допълнително плащане, операторът на теглене може да бъде блокиран за изчисляване на разликата (ден) между две дати:

Затъмнение d1 Като Дата
Dim d2 като дата
Дим различен, докато
d1 = Сериална дата (1983, 10, 14)
d2 = Сериална дата (2002, 8, 15)
razn = d2 - d1 Търговия на дребно в дни (6880).

Оператори

Vykoristovuyutsya за povnyannya deyakih viraziv. Mayut 3 синтаксис:

Синтаксис:

резултат = viraz1 аранжиращ оператор viraz2
резултат = обект 1е обект 2
резултат = редкато srazok

Параметри:

резултатвискозни обувки; бъде числова промяна
virazобовъязково; бъде като израз
аранжиращ операторвискозни обувки; бъде оператор на мача
обектвискозни обувки; I'ya be-какъв обект
ред obov'yazkova; бъде като редица от изрази.
srazokвискозни обувки; независимо дали е вираз ред по ред, или набор от букви и цифри

уважение:

Следва таблицата за намиране на списък с оператори, според този ум, за които е присвоен резултатът от правилото (Вярно или Невярно).

Оператор

Вярно, якчо

Невярно, yakscho

Нул, yakscho

< (меньше чем) viraz1 <
viraz2
viraz1 >=
viraz2

сам
з
viraziv отмъщение Null

<= (меньше или равно) viraz1 <=
viraz2
viraz1 >
viraz2
> (по-ниско) viraz1 >
viraz2
viraz1 <=
viraz2
>= (повече от едно) viraz1 >=
viraz2
viraz1 <
viraz2
= (Ривно) viraz1 =
viraz2
viraz1 <>
viraz2
<>(не е добре) viraz1 <>
viraz2
viraz1 =
viraz2

Операторите Is и Like избират конкретни функции и сега таблицата е подравнена при задържане на курсора (вижте по-долу).

Ако двама virazi се подредят, не винаги можете да решите какво да подредите, числата или редовете. По-долу е показано как ще бъде изчислен резултатът, така че нарушението да може да бъде сортирано по вид, в тип Вариант:

  • Въпреки че числата са сортирани (байт, булев, цяло число, дълги, единични, двойни, дата, валута или десетичен знак), числата са сортирани.
  • Сякаш обижда виразите на реда, се наблюдава подравняването на редовете. (по-малкият ред е първият, следващата буква е по-малкият ascii код).
  • Ако един от стиховете е число, а ако не Вариантът, който може да се тълкува като число, числата са равни.
  • Ако едно от числата е различно, а в противен случай редът Variant, който не може да се интерпретира като число, е необходимо извинение (Несъответствие на типа).
  • Ако само една от променливите е в ред и ако беше стойността на Variant (име Null), тогава тя ще се появи на ред.
  • Ако един от типовете е Empty и ако е число, тогава числата се считат за равни, докато Empty се считат за 0.
  • Подобно на един от празните редове и на следващия ред, след това на редовете с редове, празният ред се вижда като празен ред "".

Ако типът Variant е първият, който ще бъде виразиран, а другият е, тогава е възможно да се сравни с тези типове данни, за да се отмъсти за Variant:

  • Yakshcho престъпление Вариант virazi m_styat номера, vіdbuvaєtsya pіvnyannya числа.
  • Yakshcho нарушение Вариант virazi m_stya редове, vіdbuvaєtsya vіvnyannya ryаkіv.
  • Ако един от вариантите се разминава с числото, а в противен случай редът, тогава числото на вираза е по-малко от реда.
  • Всеки от вариантите е празен, а друго число, празно, се третира като 0.
  • Като една от опциите в празния ред и следващия ред, тогава празен се разглежда като празен ред "".
  • Сякаш обижда Virazi Empty, смрадта изглежда като равна.

Ако Single се промени равно на Double, Double се закръглява до точността на Single.

Ако валутата е равна на единична или двойна, единична или двойна се преобразуват във валута. Така че от само себе си се разбира, че ако съпоставите Decimal с Single или Double, Single или Double се преобразуват в Decimal. За валута, било то част от менша, може да се използва по-нисък 0001. За Decimal стойността е 1E-28 или може да се приложи помилване. По този начин, с използването на част от пушка, virazi може да се тълкува като равни, дори ако наистина искате да погледнете едно и също. (Hoch i на малка стойност).

Приложи:

Дим Моят резултат, Вар1, Вар2
Моят резултат = (45< 35) " завъртетеНевярно.
Моят резултат = (45 = 45)" завъртетевярно.
Моят резултат = (4<> 3) " завъртетевярно.
MyResult = ("5" > "4")" завъртетевярно.

Var1="5": ​​Var2=4 във VB можете да заместите двукратно,
за оператори на подразделения.

MyResult = (Var1 > Var2)" завъртетевярно.

Var1=5: Var2= Празен
MyResult = (Var1 > Var2)" завъртетевярно.

Var1 = 0: Var2 = Празен
MyResult = (Var1 = Var2)" завъртетевярно.

оператор за съвпадение Is

Този оператор е победител за подравняването на обекти.

Синтаксисът на този оператор е посочен повече.

уважение:

Ако обект1 и обект1 се използват от един и същи обект, тогава резултатът е True, ако не, тогава False. Към самия обект на декилком с пътища могат да се приложат две промени. Атакуващият приклад А е принуден към същия обект като В:

Задайте A=B

Атакувайте атакуващия приклад по такъв начин, че промените A и B да бъдат приложени към един и същ обект - C:

Задайте A = C
Задайте B=C

Приложи:

Дим Моят обект, Вашият обект, този обект, _
Друг обект, този обект, MyCheck

Задайте YourObject = MyObject ние създаваме сила върху обекти
Задайте този обект = MyObject
Задайте този обект = друг обект
MyCheck = Вашият обект е този обект.
MyCheck = Този обект е този обект се превръща в невярно.
Да приемем, че MyObject<>Друг обект
MyCheck = MyObject Is ThatObject е невярно.

Оператор за изместване на редове - Like

Операторът за подравняване на редове Like печели за подравняване на редове.

Синтаксисът на този оператор вече беше разгледан по-горе.

уважение:

Този оператор може да бъде усукан, за да преобразува низ в маска на шаблон. Tse е по-тесен оператор, може да е аналог обикновени вируси Perl.

Otzhe, pratsyuє tsey retor по този начин. Ако редът съвпада с маската, резултатът е True. Yakscho nі - Невярно. Само един от Null вирусите е резултат от същия Null.

Поведение на оператора Like да попада в стандартния тип подравняване на редове. (Опция за сравнение).

Ако е зададен типът Binary (тоест две двойки), тогава редовете са подравнени към едни и същи Ascii кодове (няма разлики в различните кодове). Звучи победоносно такава последователност:

А< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Инсталиран е и типът Текст (текстов ред). За такава последователност последователността е раздута отпред, ето големи и малки букви - равни:

(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

Най-важната функция на оператора Like е повторна проверка дали редът на маската е правилен. На масата можете да спечелите такива промоции. символи:

Символ Be-yakky okremy
* Нула или повече символи
# Независимо дали е число (0-9).
Бъдете някакъв окремен символ
[!charlist] Бъдете някакъв charlist, който не стига до списъка с charlist

Тук има малко уважение. За да се преразгледа валидността на реда на мачтата, за да се отмъсти специалното. символи (tobto. reverse, например, chi є ред от символи [,?, #,], *), е необходимо да ги поставите в квадратни лъкове. Просто не е възможно да поставите okrem лък [abo] просто така.

За да посочите списък със знаци, можете също да включите тире (-). Например, за да зададете последователността от A до Z, трябва да изберете маска. Всичко, което е в оковите, не е виновно за отмъщение за каквито и да е разделения (пробели, com и т.н.), в противен случай смрадът също ще бъде включен в поредицата.

Є th іnshі важни правила за час на повторна проверка на маската:

  • (!) Знакът на кочана на списъка със символи, за да говорим за тези, които трябва да бъдат шукат символи, които не са включени в списъка. Ако трябва да знаете самия знак!, е необходимо да поставите арките [!].
  • (–) напевайте, за да определите диапазон от знаци.
  • Ако е посочен диапазон от знаци, VIN е виновен за нарастването на ASCII кодовете. Тобто. правилна маска, но не.
  • Последователността се интерпретира като празен ред "".

Приложи:

Дим MyCheck
MyCheck = "aBBBa" Подобно на "a*a" "Включете вярно.
MyCheck = "F" Харесвам "" " Включете вярно.
MyCheck = "F" Подобно на "[!A-Z]" " Невярно.
MyCheck = "a2a" Подобно на "a#a" "Включете вярно.
MyCheck = "aM5b" Подобно на "a#[!c-e]" " Включете вярно.
MyCheck = "BAT123khg" Подобно на "B?T*" " Включете вярно.
MyCheck = "CAT123khg" Подобно на "B?T*" "Включи невярно.

myString = "312T-87GD-8922"

Ако myString Като "###-##-####" Тогава...

Оператори за конкатенация на редове

Всъщност, за да комбинирате редове във Visual Basic, можете да свържете само 2 оператора. Tse & ta +. Операторът + е описан по-горе. Нека поговорим за оператора &.

оператор за конкатенация на низове - &

Победа за конкатенацията на два вируса.

Синтаксис:

резултат = viraz1 & viraz2

резултатвискозни обувки; Независимо дали става дума за промяна на низ или вариант
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Ако viraz не е в ред, тогава той ще бъде преобразуван в String Variant. Типът данни на резултата е само String, ако е обиден, можете да използвате типа String. В противен случай резултатът е String Variant. По правило Virazi Null, резултатът също е Null. Въпреки това, като само един от начините за отмъщение на стойността Null, тя се интерпретира като празен ред "". Empty също се интерпретира като празен ред "".

Приложи:

Дим MyStr
MyStr = "Здравей" и "Свят"
" завъртетеРед "Hello World".
MyStr = "Reverb" & 123 & "Reverb"
"Обърнете реда" Perevіrka 123 Perevіrka ".

Логически оператори

Tse naytsіkavіsha групов оператор. Когато сте програмирани, вие сте отговорни за работата на робота и това е zastosuvannya (при това не само във Visual Basic).

Visual Basic има 6 части. Съобщено е кожарът „Розглянемо”.

И оператор

Победа за логическо умножение над две вирази.

Синтаксис:

резултат = viraz1И viraz2

резултат
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Следващата таблица показва как работи операторът And:

Якчо вираз1 =

, A вираз 2 =

Този резултат =

Вярно Вярно Вярно
Вярно Невярно Невярно
Вярно Нула Нула
Невярно Вярно Невярно
Невярно Невярно Невярно
Невярно Нула Невярно
Нула Вярно Нула
Нула Невярно Невярно
Нула Нула Нула

Операторът And също се използва за проверка на броя на битовете. За битове операторът And работи в следващия ред (чудете се на злото вдясно)

0 0 0
0 1 0
1 0 0
1 1 1

Приложи:

Дим A, B, C, D, MyCheck
MyCheck=A>B и B>C" завъртетевярно.
MyCheck=B>A И B>C" завъртетеНевярно.
MyCheck=A>B и B>D" завъртетеНула.
MyCheck = A и B" завъртете8 (порядък на битове).

Останалата част от дупето се разглежда от доклада. Числото 10 изглежда е офанзивен ранг (като zoshita, така че 4 удара):

И оста на числото 8 е така:

В резултат на работата на оператора And с помощта на горната таблица вземаме:

Тобто. 8. Какво те интересуваше? Бяхме ли ограбени, за да преосмислим какви са вмъкванията на четвъртините на числото А? Otrimavshi B, ние perekonalis, scho tsey малко от инсталации.

Или оператор

Vykoristovuetsya за създаване на логично сгъване от два viraziv.

Синтаксис:

резултат = viraz1Или viraz2

резултатвискозни обувки; Be-yaka числова (включително булева) промяна
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Следващата таблица показва как работи операторът Or:

Якчо вираз1 =

, A вираз 2 =

Този резултат =

Вярно Вярно Вярно
Вярно Невярно Вярно
Вярно Нула Вярно
Невярно Вярно Вярно
Невярно Невярно Невярно
Невярно Нула Нула
Нула Вярно Вярно
Нула Невярно Нула
Нула Нула Нула

Операторът Or печели за задаване на първите битове на число. За битове, операторът Or работи в офанзивен ранг (удивително злото вдясно)

0 0 0
0 1 1
1 0 1
1 1 1

Резултатът се вижда удебелен шрифт.

Приложи:

Дим A, B, C, D, MyCheck
MyCheck=A>B или B>C" завъртетевярно.
MyCheck=B>A или B>C" завъртетевярно.
MyCheck=A>B или B>D" завъртетевярно.
MyCheck=B>D или B>A" завъртетеНула.
MyCheck = A или 5" завъртете 15:

Нека да разгледаме останалата част от доклада за дупето. Числото 10 изглежда е офанзивен ранг (като zoshita, така че 4 удара):

И номер 5:

В резултат на работата на оператора Или, с помощта на посочената таблица, вземаме:

Тобто. 15. Подобно на Bachite, операторът Or също е лесен за печелене ръчно, не само в случай на изравняване, но и за инсталиране на първите битки на номера.

Оператор Xor

Победа за логичния кросоувър на два viraziv.

Синтаксис:

резултат = viraz1 Xor viraz2

резултатвискозни обувки; Be-yaka числова (включително булева) промяна
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Следващата таблица показва как работи операторът Xor:

Операторът Xor се обръща за инвертиране на ударите за пеене на число. За битки операторът Xor работи в офанзивен ранг (удивително злото вдясно)

0 0 0
0 1 1
1 0 1
1 1 0

Резултатът от виденията е с удебелен шрифт. Xor vіdіznyaєtsya vіd Или, само tim, ако сте обидени от един, Xor вижда 0. Операторът Xor е лидерът на властите, тогава в случай на йоги метро zastosuvannі vіn вижда същия номер. Tse често печелят над криптографията.

Приложи:

Дим A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B X или B>C" завъртетеНевярно.
MyCheck=B>A X или B>C" завъртетевярно.
MyCheck=B>A X или C>B" завъртетеНевярно.
MyCheck=B>D X или A>B" завъртетеНула.
MyCheck=A Xor B" завъртете 2

Цикави дупезаместване на оператора X или е обмен на стойности на две числови променливи:

Дим а Колкото дълго , b Колкото дълго
а = 4
b = 7
a = a Xor b
b = a X или b
a = a Xor b

Сега променете а, за да отмъстите значението на промяната b и навпаки.

не оператор

Победа за създаването на логическа инверсия на два стиха.

Синтаксис:

резултат= Не viraz

резултатвискозни обувки; Be-yaka числова (включително булева) промяна
virazобовъязково; Бъди вираз

уважение:

Следната таблица показва как работи операторът Not:

Операторът не инвертира всички битове virazi.За битове, операторът Not работи в следващия ред (удивително зло вдясно):

0 1
1 0

Резултатът от виденията е с удебелен шрифт.

Приложи:

Дим A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck = Не(A>B)" завъртетеНевярно.
MyCheck = Не(B>A)" завъртетевярно.
MyCheck = Не(C>D)" завъртетеНула.
MyCheck = Не A" завъртете-11 (всички битове са обърнати)

Нека да разгледаме доклада на останалия дупе. Числото 10 изглежда е офанзивен ранг (като байт, така че 8 битки):

След като обърнем всички битки, вземаме:

А це и є -11.

Eqv оператор

Победа за създаването на логическата еквивалентност на два вируса.

Синтаксис:

резултат = viraz1 Equv viraz2

резултатвискозни обувки; Be-yaka числова (включително булева) промяна
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Следващата таблица показва как работи операторът Eqv:

За битове операторът Eqv работи в нападателен ред (удивително злото вдясно)

0 0 1
0 1 0
1 0 0
1 1 1

Приложи:

Дим A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Eqv B>C" завъртетевярно.
MyCheck=B>A Eqv B>C" завъртетеНевярно.
MyCheck=A>B Eqv B>D" завъртетеНула.
MyCheck = A Equv B " завъртете -3

imp оператор

Победа за създаването на логическо внушение от два стиха.

Синтаксис:

резултат = viraz1имп viraz2

резултатвискозни обувки; Be-yaka числова (включително булева) промяна
viraz1обовъязково; Бъди вираз
viraz2обовъязково; Бъди вираз

уважение:

Следната таблица показва как работи операторът Imp:

Якчо вираз1 =

, A вираз 2 =

Този резултат =

Вярно Вярно Вярно
Вярно Невярно Невярно
Вярно Нула Нула
Невярно Вярно Вярно
Невярно Невярно Вярно
Невярно Нула Вярно
Нула Вярно Вярно
Нула Невярно Нула
Нула Нула Нула

За битки операторът Imp работи в офанзивен ранг (чудо вдясно)

0 0 1
0 1 1
1 0 0
1 1 1

Приложи:

Дим A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Imp B>C" завъртетевярно.
MyCheck=A>B Imp C>B" завъртетеНевярно.
MyCheck=B>A Imp C>B" завъртетевярно.
MyCheck=B>A Imp C>D" завъртетевярно.
MyCheck=C>D Imp B>A" завъртетеНула.
MyCheck=B Imp A" Завъртете -1

VBA оператори: аритметика, логика, сдвояване, присвояване

Операторът - tse namemensha zdatna vykonuvatsya един към VBA кода. Операторът може да дешифрира промяната, да зададе опцията за VBA компилатор или да деактивира програмата.

В VBA има общо 7 аритметични оператора. Следните са стандартни: add (+), add (-), умножение (*), sub (/) и още три:

  • · Стъпка в стъпки (^), например 2 ^ 3 = 8;
  • · cіlіsny podіl (). podіlyaє първи номер от друга, vіdkidayuchi (не закръгляване) изстрел част. Например, 52 = 2;
  • Подил зад модула (Mod). Podіlyaє първото число от друга, превръщайки излишъка в rozpodіlu. Например, Mod 5 = 1.

Операторът за присвояване във VBA е знакът за равенство. Можете да напишете така:

и може би дори по-просто:

От друга страна, не бъркайте знака за равенство с оператора на равенство.

Вираз

означава "задайте стойността за промяна на nVar на 10", а редът изглежда така:

тогава tse означава "тъй като стойността на промяната nVar е равна на 10".

Като промяна е необходимо да разпознаете обекта, да се борите с други методи.

Във VBA има общо 8 оператора на последователност:

  • Собствен капитал (=), например, If (nVar = 10);
  • повече, по-ниско и по-малко, по-ниско (> i
  • Повече или по-малко един і по-малко от един (>= і
  • нездравословно (
  • · Por_vnyannya обекти (Is). Показва, че обектите са променени върху същия обект или разлика, например If(obj1 е obj2);
  • Харесвам (Харесвам). Por_vnyuє ryadkovyj ob'єkt іz шаблон, който vyznaє, чи отговаря на шаблона.

Операторите за консистентност винаги се превръщат в истина или невярна - истина, което е вярно, и лъжа, което е лошо.

Trochs за съвпадащи стойности на низове:

  • · При равни стойности на редовете регистърът се обръща;
  • · Пробите в редовете на стойностите също са застраховани;
  • · когато текстовите редове се заменят с повече/по-малко, кодовете на двата знака просто се заменят със съкращенията – независимо дали са по-големи или по-малки. Ако трябва да обърнете реда, който е в азбуката, можете да го ускорите с командата Option Compare Text

Докладвайте за оператора Like. Блестящият синтаксис изглежда така

Viraz1 Като Viraz2

Където Viraz1 е VBA текстов Viraz, а Viraz2 е шаблон, който се предава на Like оператора. За този шаблон могат да се добавят специални заместващи символи (раздел Таблица 1)

Раздел. 1 заместващи знаци за оператора LIKE

Още по-често в часа на повторна проверка на много умове, логическите оператори са победители:

  • · И - логично аз, виновни, но верни престъпления;
  • · ИЛИ - логически ABO, може да е вярно, ако искате един ум;
  • · НЕ - логически транскрибирано, което се превръща в ИСТИНА, сякаш хибна на ума;
  • · XOR - логична вина. В случай на E1 XOR E2, завъртете TRUE, E1 = TRUE или E2 = TRUE, в противен случай FALSE;
  • · EQV - еквивалентност на два вируса, което е ВЯРНО, тъй като те могат да имат една и съща стойност;
  • · IMP - импликация, завъртете FALSE, също E1 = TRUE и E2 = FALSE, иначе - TRUE.

Не забравяйте за И, ИЛИ, НЕ, другите логически оператори рядко спират.

Може ли VBA програмите да използват оператори за конкатенация. VBA има две - + или &. Препоръчително е да започнете победоносно и към това:

  • · когато използван & извършва автоматично преобразуване на числовите стойности на реда - няма нужда от помилване;
  • · Когато алтернативният оператор + добави стойност на ред към стойности от типа Null, се дава Null. дупето:

MsgBox „Предупреждение за съобщение“ и потребителско име

Редът на прибиране на операторите може да се регулира с помощта на кръгли рамена.

3 . Промени и видове данни

Промяна на VBA, промяна на гласа на промяната, изрична опция, правила за именуване, типове данни на VBA, промяна на стойностите на промяната

Промени – контейнери за събиране на данни, които се променят. Практическата програма е незаменима без тях. За простота, можете да промените номера в гардероба - слагате някои данни в " гардеробната", ще видите номера. Ако имате нужда от нов брой данни, вие сте "доставили номер" и сте го върнали. Роботизирано дупе с промени във VBA може да изглежда така:

Дим nMyAge като цяло число

nMyAge = nMyAge + 10

Dim nMyAge като цяло число

Как да дешифрирам реда:

Dim – цялата видимост на промяната. VBA е предал 4 ключови думи, за да определи обхвата на промяната:

  • · Dim - vikoristovuєtsya в повече vipadkіv. Веднага след като промяната бъде озвучена като Dim в областта за деклариране на модула, тя ще бъде достъпна за целия модул, както в процедурата - само за един час от роботизираната процедура;
  • · Private - в случай на гласови промени във VBA, това означава същото като Dim;
  • · Публично – тази промяна ще бъде достъпна за всички процедури във всички модули на този проект, както сте я декларирали в публичната зона на модула. Ако сте гласували за ней в средата на процедурата, тя ще се държи като Dim/Private;
  • · Статично – такива промени могат да се правят само в средата на процедурата. Броят на промените се вижда само в средата на процедурата, в вонята на безгласните, протетата запазва стойността си между различните цикли на процедурата. Звук vikoristovuyutsya за натрупване на всяка стойност. Например:

Статично nVar1 като цяло число

nVar1= nVar1 + 1

Тъй като няма специални жизнеспособност, е необходимо да изберете сензорния обхват Dim.

Друга дума за нашата безгласна (nMyAge) е промяната на идентификатора (по-просто kazhuchi, im'ya). Правилата за избор на имена във VBA са едни и същи за много елементи (промени, константи, функции и процедури и т.н.). име:

  • · Виновен почанатис z букви;
  • · не е виновно да отмъщаваш за пропуските и символите на пунктуацията (виняток - символ на успокоение);
  • · максимална дължина - 255 символа;
  • · Guilty buti, уникален в текущата област на видимост (доклад - далеч);
  • · запазени думи (неща, които са обозначени с различен цвят в редактора на кода на редактора) не могат да бъдат избрани.

Когато създавате VBA програми, се препоръчва да се спазват правилата, за които имената ще бъдат присвоени на обекти - в името на именуването. Най-често благосклонността на угорците се нарича така (в чест на един от програмистите на Microsoft, Чарлз Симони, угорец за националност):

  • · Іm'ya zmіnnoї може да започне с префикс, написан с малки букви. Префиксът показва какво трябва да се вземе от вашата промяна:
    • o str (или s) - низ, стойност на символа;
    • o fn (или f) - функция;
    • o c (или направи всички букви големи) - константа;
    • o b - булева, логическа стойност (вярно или невярно);
    • o d - дата;
    • o obj (или o) - изпращане към обекта;
    • o n - числова стойност.
  • · Имената на функциите, методите и кожата на думата в складовата дума могат да бъдат получени от голямата буква:

MsgBox objMyDocument.Name

под CheckDateSub()

· в ранни версии VB нямаше думата Const - всички константи бяха присвоени като промени и бяха написани с големи букви на вида им, между думите поставиха наставката: COMPANY_NAME

Много програмисти използват такова ръководство за дефиниране на константи и наведнъж (въпреки че изборът на ключовата дума Const вече е общ - ще бъде показан в обидния раздел).

Третата част от нашата клевета - As Integer - е индикация за вида на данните на нашата змия. Типът на данните се определя, както можете да видите, че ще бъде възможно да се записват в нашата промяна.

VBA има следните типове данни:

Числа (байт - цяло число от 0 до 255, цяло число - цяло число от -32768 до 32767, дълго - голямо число, валута (голямо десето число с 19 позиции, включително 4 позиции след Коми), десетично (повече от десето число с 29 позиции), единични и двойни - стойност с плаваща буца (двойно двойно повече));

Уважение! Опитът да изрази промяната с десетичен тип (например Dim n As Decimal) доведе до синтактично извинение. За да се възползвате от възможността да практикувате с тип Decimal, трябва да промените първия глас като Variant, или вместо това като глас без тип (Dim n), фрагментите от типа Variant се печелят от VBA за промоции.

  • · редове (низ променлива дължина (до около 2 милиарда знака) и фиксирана дължина (до около 65400 знака);
  • · Дата и час (дата - от 01.01.100 до 31.12.9999 г.);
  • логически (логически - можете да записвате само стойности True и False);
  • · Обект (обект - спестете усилия за това дали има обект в паметта);
  • · Вариант - специален тип данни, които можете да запазите независимо дали са други типове данни.

Възможно е да спечелите видовете данни, но е необходимо да ги присвоите на тила с помощта на Type. Звукът на видовете данни е победен като допълнителна проверка на стойността, която трябва да бъде въведена от coristuvach (класически задник - пощенски индекс).

Реални моменти, свързани с избора на тип данни за промяна:

  • · горещ принцип-- Изберете най-малкия тип данни, които могат да задържат избраната стойност. Yakshcho є yakіs sumnіvi - изберете по-голям тип почит, така че помилванията да бъдат загубени;
  • · Например, възможно е, по-добре е да не печелите видове данни с плаваща кома (единична и двойна). p align="justify"> Работата с такива типове данни трябва да се извършва по-често, освен това може да има проблеми с изравняването за закръгленост;
  • · Въпреки че е възможно, по-добре е да не ускорявате с типа Variant. Този тип все още се индуцира от VBA на един от другите типове, но се нуждае от повече памет. Освен това, под часа на такова имплицитно просветление, помилванията могат да бъдат обвинявани;
  • · Ако промяната е посочена, е възможно да се избере името на символа, присвоен на типа (% - цяло число, $ - низ и т.н.). Например в нашия задник е необходимо да коментираме реда Dim nVar 1 As Integer, а в другия ред да напишем:

nVar1% = nVar1% + 1

Такъв pidkhid не се препоръчва до края.

Когато промените са озвучени, е възможно да не се посочва нейният тип. Например, гласът ни може да изглежда така: Dim nVar1

За всяка промяна промяната ще бъде автоматично изразена с Variant.

По принцип VBA може да се практикува без деклариране на промени. Например този код

nVar1= nVar1 + 1

бъде много практика. Веднага щом победно променим програмата без нейно озвучяване, автоматично ще бъде създадена нова промяна на типаВариант. Проте оглуши смяната на езика! І с когото е необходимо да се каже необходимия вид данни. Защо:

  • · броят на помилванията е краткотраен: програмата на кочана трябва да се предприеме, за да промени стойността от грешен тип (например ред замяна на числов);
  • · при работа с обекти, подсказки за характеристиките и начините по други начини, ако сме озвучили промяната на обекта с желания тип. Например в Excel две опции за код работят еднакво:

първи вариант:

Дим oWbk като работна книга

Задайте oWbk = Workbooks.Add()

друг вариант:

Задайте oWbk = Workbooks.Add()

Ale намек за сила, че чрез методите на обекта oWbk е по-практично, отколкото за друг човек.

Всички известни търговци на дребно започнаха да ограждат победите на промяната без явна клевета. За когото можете да ускорите специален екипКомпилатор (достъпен само в дистрибуцията на модула за глас) Опция Explicit

и можете да вмъкнете тази команда за всички модули, когато се затварят автоматично - като зададете флага Изискване на декларации на променливи в прозореца на редактора (меню Инструменти -> Опции, раздел Редактор).

Илюстрирайте, сега можете да обезкървите вонята с прост пример:

На пръв поглед кодът не е виновен за ежедневни проблеми и просто се показва един по един. Наистина, от известно време съм го виждал празен. Причината се крие по-лесно: в третия ред n - tse zovsіm не английската буква N, а руската буква P. При вида на прозореца на редактора кодът за тяхното подсилване е още по-сгъваем. В същото време компилаторът на VBA, след като създаде такъв код, просто създава нова промяна с типа данни Variant, която ще има празна стойност. За проявата на подобно помилване може да е необходим песенен час.

Добро правило е промяната да се заглуши на по-късна дата, а не ако е необходима воня. Tse ви позволява да създадете програма, която е по-четлива и ясно планирана.

Можете да изразите цацата на промяната на един ред, например:

Dim n1 като цяло число, s1 като низ

Присвояването на стойност на промяната изглежда така:

Ако е необходимо да се увеличи съществената стойност на промяната, тогава командата може да изглежда така:

nVar1 = nVar1 + 1

И в двата приклада знакът за еквивалентност не означава "равно", а да присвоиш.

Когато задавате стойност за промяна на следващата стъпка в паметта:

· Стойностите на низовете ​​ винаги ще лежат в подножието на лапата:

sVar1 = "Здравей";

Стойностите за дата/час се използват в "решетките" - символи на лирата:

dVar1 = #05/06/2004#

С уважение, при определяне на дата/час по такъв „явен начин“ се случва да спечелим приемането на американските стандарти: 05 в случая – месец, 06 – ден. Vіdobrazhennya на тази стойност (например при vіknі povіdomlennya) ще бъде депозирана в регионалните настройки на компютъра на koristuvach.

Ако искате да предадете шестнадесета стойност, предхождайте я с &H:

За какво трябва да се отмъсти в промените към настоящето?

  • · Променени всички типове числови данни имат 0.
  • · На редовете за заместване - "" (ред от нула години).
  • · За редове с фиксирани знаци - ред от дадени знаци с ASCII 0 символи (знаците не се показват на екрана).
  • · Вариантът има празни стойности.
  • · В обект - нищо (няма изпращане към същия обект).

Кратки теоретични постановки

1. Синтаксис и семантика на програмирането на филми на VBA

Синтаксисът на филмовата програма е набор от правила, които описват комбинации от символи в азбуката, които се спазват от правилно структурирана програма (документ) като фрагмент.

Основните синтактични принципи на движението са:

  • VBA не е чувствителен към малки и големи букви;
  • за да коментирате кода до края на реда, се избира един крак (") или командата REM;
  • символично значение на вината на стълба в подножието на крака (");
  • максимална дължина на всяко име във VBA (промени, константи, процедури) – 255 знака;
  • началото на нов оператор - прехвърля се на нов ред (точка със запетая, като в C, Java, JavaScript, за които не е победител);
  • плоча върху максимална дожинаняма ред (искам да имам само 308 знака в редактора подред). Куп оператори в един ред са разделени на две гънки:
    MsgBox "Промяна 1" : MsgBox "Проверка 2"
  • за по-лесно четене можете да комбинирате разпръскване на физически редове в един логически за допълнителен проблем на този знак за потвърждение на следващия:
    MsgBox "Уведомление за Користувач" _
    &vПотребителско име

Семантиката на филма е значението на значението на думите. В програмирането - стойността на значението на операторите, основните конструкции на mov е твърде малка.

Оператор- tse naimenscha zdatna vykonuvatsya един към VBA кода. Операторът може да дешифрира промяната, да зададе опцията за VBA компилатор или да деактивира програмата.

аритметика VBA има общо 7 оператора.

Стандарт Chotiri: допълнение (+), vіdnіmannya (−), множествено число (*), subdil (/) и още три:

  • връзки в краката (^). Например, 2^3 = 8;
  • tsilisny podіl (\). podіlyaє първи номер от друга, vіdkidayuchi (не закръгляване) изстрел част. Например, 52 = 2;
  • rozpodіl зад модула (Mod). Podіlyaє първото число от друга, превръщайки излишъка в rozpodіlu. Например, Mod 5 = 1.

Операторът за присвояване във VBA е знакът за равенство. Можете да напишете така:

Нека nVar = 10
и може би дори по-просто:
nvar = 10

Не бъркайте знака за равенство с оператора за равенство. През останалото време означава "присвояване на променената стойност nVar на 10" и все още изглежда така: Ако (nVar = 10), тогава това означава "да промените стойността на променената nVar на 10".

Оператори VBA има общо 8:

  • ревност (=). Например, Ако (nVar = 10);
  • повече, по-ниско (>) и по-малко, по-ниско (10);
  • повече или по-евтино (>=) и по-малко или по-малко (= 10);
  • нездравословно (). Например, If(nVar10);
  • ред на обектите (Is). Зависи дали обектите на промяната се прилагат към същия обект или към разликата. Например, Ако (obj1 е obj2);
  • сходство (Харесвам). Por_vnyuє ryadkovyj ob'єkt іz шаблон, който vyznaє, чи отговаря на шаблона.

Операторите се обръщат Вярно(което е вярно) иначе Невярно(Yakscho втвърдяване Hibne).

Още по-често часът на повторна проверка на много умове е победен логически оператори:

  • И - по-логично аз. виновен за истински престъпления;
  • Или - по-логично ABO. Може да е вярно, ако искате един ум;
  • Не - логично зачеркнато. Обърни истина, като помилването на Умов;
  • Xor е логична вина. В случай на E1 X или E2 завъртете True, така че E1 = True или E2 = True, в противен случай - False;
  • Eqv - еквивалентността на два вируса, която се превръща в True, тъй като те могат да имат една и съща стойност;
  • Imp - импликация, E1 Imp E2 се превръща в False, така че E1 = True и E2 = False, в противен случай - True.

Спомен за И, Или, Не, Други логически оператори рядко печелят.

Промени- tse контейнери за записване на данни, които се променят. Практическата програма е незаменима без тях. За простота, можете да промените номера в гардероба - слагате някои данни в гардероба, виждате номера в отделението. Ако имате нужда от нов брой данни, вие сте "доставили номер" и сте го върнали.

Възможно е промяна на кожата. Zvernennya да zminnoy vіdbuvaєtsya на im'ya. Правилата за избор на имена във VBA са едни и същи за много елементи (промени, константи, функции, процедури и т.н.):

  • Мога да започна от писма;
  • не е виновно да отмъщаваш за пропуските и символите на пунктуацията (виняток - символ на успокоение);
  • максимална дължина - 255 знака;
  • може да бъде уникален в текущия обхват
  • запазени думи (тези, които са маркирани в синьо в прозореца на редактора на кода) не могат да бъдат избрани.

При създаване на VBA програми се препоръчва да се спазват правилата, за които се прилагат имената на обектите - заради именуването. Най-често благосклонността на угорците се нарича така (в чест на един от програмистите на Microsoft, Чарлз Симони, угорец за националност):

  • Im'ya промяната може да започне от префикс, написан с малки букви. Префиксът показва какво трябва да се вземе от вашата промяна:
    str (или s) – низ, стойност на символа;
    fn (или f) – функция;
    подпроцедура;
    c (или всички букви от името са страхотни) - постоянен(контейнер за запис на данни, които за промяна не се променят за следващия час от програмата VBA);
    b - Булева, логическа стойност (True или False);
    г – дата;
    obj (или o) – изпращане към обекта;
    n - числова стойност;
  • имената на функциите, методите и кожата на думата в складовата дума могат да бъдат получени от голямата буква:
    MsgBox objMyDocument.Name
    Sub CheckDateSub()

тип даннидоведе до фундаменталното разбиране дали това е език за програмиране. Типът данни дефинира безлични допустими стойности, като стойност (променяща се или константа), тази безлична самоделка, тъй като е възможно да се виконира със стойност.

2. Основни типове данни на VBA

VBA има следните типове данни:

  • числа:
    байтове- цяло число от 0 до 255, необходими за спестяване 1 байтпамет;
    цяло число- цял брой записи -32 768 до 32 767, 2 байта ;
    Дълго- голям брой вписвания -2 147 483 648 до 2 147 483 647, 4 байта ;
    Валута(стотинка) - страхотно десето число с 19 позиции, включително 4 позиции след Коми
    (Vid -922337203685477.5808 до 922337203685477.5807), 4 байта,
    vikoristovuetsya за sberigannya числа, ако точността е още по-важна, какво се случва при изчисляване на единици пени;
    Десетична- още по-десето число с 29 позиции (ако можете да спечелите от 0 до 28 позиции), 8 байта;
    Неженені Двойна- стойност с плаваща кома ( 4 и 8 байта)
    (vіd -3,402823 10 38 до -1,401298 10 -45 за отрицателни стойности
    vіd 1.401298 10 -45 до 3.402823 10 38 за положителни стойности за Single, и
    в -1,79769313486232 10 308 до -4,94065645841247 10 -324 за отрицателни стойности
    за положителни стойности за Double);
  • ред ( низфиксиран период (до приблизително 2 милиарда знака) и фиксиран период (до приблизително 65 400 знака));
  • дата и час ( Дата- от 01.01.100 до 31.12.9999 г.), 8 байта;
  • логично ( булев- можете да записвате само стойности True и False), 2 байта;
  • обект ( Обект- zberіgaє possilannya be-всеки обект в паметта);
  • Вариант- специален тип данни, които можете да запазите, било то тип данни, 16 байта +1
Типовете данни се дефинират от ключови думи за филми (и се виждат след въвеждане на VBA редактора). По-горе различни видоветези допустими различни операции. VBA има три основни типа операции:
  • математически, предизвикват над числата, їх резултат є числа;
  • операция, която може да бъде застосовована не само до число, резултатът им е стойност от логически тип;
  • логически, vikoristovuyutsya в логически стихове и техният резултат е логически смисъл.

3. Приоритети на транзакциите

Приоритет Операция
1
2
3
4
5
6
7
8
9
10
11
12
Wiklik функции и окови
^
- (Промяна на знака)
*, /
\
Мод
+, –
>, <, >=, <=, <>, =
Не
И
Или
Xor

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

Функция Значение, което се обръща
коремни мускули (<число>) Модул (абсолютна стойност) на число
atn(<число>) Арктангенс
Cos(<число>) косинус
опит (<число>) Експонентът, който е резултат от комбинацията от основата на естествения логаритъм на индикациите на стъпките
Дневник(<число>) естествен логаритъм
Rnd(<число>) Випадков номер с интервал Галмуй