1.11.9 CSDNBasic |
В определенных режимах системы доступна работа со встроенным в систему языком программирования CSDNBasic, в котором содержатся предопределенные функции, конструкции и т.д.
Для удобства ввода и редактирования текста кода, редактор выделяет цветом элементы языка CSDNBasic - ключевые слова, операторы, комментарии и другие синтаксические элементы. Редактирование текста здесь ничем не отличается от работы в редакторе скриптового модуля VBScript (см. раздел 18.3). При этом существует ряд определенных правил и ограничений:
Синтаксис
· CSDNBasic нечувствителен к регистру.
· Для комментария используется апостроф < ' >.
· Символьные значения должны заключаться в двойные кавычки < " " >.
· Начало нового оператора определяется переходом на новую строку.
· Ограничений на максимальную длину строки нет. Операторы в одной строке разделяются двоеточием < : >. Например:
a = 1 : b = 2 : c = 0
if
a > b then : c = a : else : c = b : End If
· Для удобства чтения, можно объединить несколько физических строк в одну логическую при помощи пробела < _ >. Например:
a = "Сообщение пользователю"_
+ vUserName
Операторы
Оператор - это наименьшая, способная выполняться, единица кода CSDNBasic.
Поддерживаются операторы: CSDNBasic, арифметические, присваивания, сравнения, логические, конкатенации.
Порядок применения операторов: арифметические, конкатенации, сравнения, логические. Если в выражении есть несколько операторов одного типа, то они применяются в обычном порядке - слева направо. При необходимости можно изменять порядок применения операторов при помощи круглых скобок < ( ) >.
·
Оператор
условного перехода. В CSDNBsic доступен только один оператор <
If >. Например:
If выражение Then
если условие = True
End If
или
If выражение Then
если условие = True
Else
если условие = False
End If
|
Вложение оператора < If > не поддерживается. Оператор < If > обязательно должен оканчиваться < End If >. |
·
Операторы
цикла:
· конструкция < For > ... < Next >. Используется, если количество циклов изветсно заранее. Например:
For iCounter = 1 to 10
Next
Для указания, насколько должно прирастать значение счетчика, используется положительное значение у слова < Step >.
For iCounter = 1 to 10 Step 2
Next
Для указания, насколько должно убавляться значение счетчика, используется отрицательное значение у слова < Step >.
For iCounter = 10 to 1 Step -2
Next
· конструкция < Do While > ... < Loop >. Используется, если количество циклов заранее неизвестно. Например:
Do While MyVar < 10
MyVar = MyVar + 1
Loop
· конструкция < Do Until > ... < Loop >. Используется, если количество циклов заранее неизвестно, при этом цикл продолжается пока условие ложно. Например:
Do Until MyVar >= 10
MyVar = MyVar + 1
Loop
· конструкция < Do > ... < Loop While>. Используется, если требуется чтобы условие проверялось после завершения цикла, при этом цикл будет выполнен по крайней мере один раз. Например:
Do
MyVar = MyVar + 1
Loop While MyVar < 10
|
Немедленный выход из цикла не поддерживается. |
· Операторы арифметические:
· сложение < + >
· вычитание < - >
· умножение < * >
· деление < / >
· Оператор присваивания - знак равенства < = >. Например:
nVar = 10
· Операторы сравнения (всегда возвращают True, если утверждение истинно или False, если утверждение ложно):
· равенство < = >. Например:
If (nVar = 10)
· больше, чем < > >. Например:
If (nVar > 10)
· меньше, чем < < >
· больше или равно < >= >. Например:
If (nVar >= 10)
· меньше или равно < <= >.
· не равно < <> >. Например:
If (nVar <> 10)
|
При сравнении строковых значений, учитываются регистр символов и пробелы. При сравнении текстовых строк на больше/меньше, по умолчанию сравниваются двоичные коды символов - какие больше или меньше. |
· Операторы логические:
· логическое И < And >. Должны быть истинными оба условия.
· логическое ИЛИ < Or >. Должно быть истинным хотя бы одно из условий.
· логическое отрицание < Not >. Возвращает True, если условие ложно.
При использовании логических операторов требуются круглые скобки. Например:
if (a = b) or (b = c) then
end if
· Оператор конкатенации - знак сложения < + >. Например:
"1" + "2" + varName
Переменные
Переменные - это контейнеры для хранения изменяемых данных.
При присвоении имен элементам (переменные, константы, функции, процедуры и т. п.), необходимо учитывать:
· Имя должно начинаться с буквы.
· Имя не должно содержать пробелов и символов пунктуации (исключение — символ подчеркивания < _ >).
· Длина имени не должна превышать 255 символов.
· Имя должно быть уникальным в текущей области видимости.
· Имя не может совпадать с зарезервированными словами (выделяются синим цветом в окне редактора кода).
|
Все переменные в CSDNBasic объявляются как Variant, а уже в процессе работы скрипта, Variant может принимать любой из имеющихся подтипов данных. |
При присвоении значений переменным, необходимо учитывать:
· Строковые значения должны заключаться в двойные кавычки < " " >. Например:
sVar1 = "Hello"
· Шестнадцатеричные значения не поддерживаются.
Константы
Допускается использование только встроенных констант:
· число ПИ < PI >
· основание натурального логарифма < E >
· истина < True >
· ложь < False >
· отсутствие значения < Null >. Любая арифметическая операция с Null возвращает 0.
· сравнение строк с учетом регистра < vbBinaryCompare >
· сравнение строк без учета регистра < vbTextCompare >
Процедуры и функции
|
Создание пользовательских процедур и функций не поддерживается. |
Вызов (значение в квадратных скобках может отсутствовать):
[ИмяПеременной = ]ИмяФункции[([параметры])]
Если функция имеет параметры, то параметры обязательно заключаются в круглые скобки. В противном случае скобки не нужны. Например:
a = Sin(PI / 2)
Функции калькулятора
· Абсолютное значение < Abs >. Возвращает абсолютное значение переданного функции числа (то же число, но без знака).
Function Abs (value As integer) As integer
· Арктангенс < Atn >
Function Atn (value As double) As double
·
Косинус < Cos >
Function Cos (value As double) As double
·
Экспонента < Exp >
Function Exp (value As double) As double
·
Логарифм < Log >
Function Log (value As double) As double
· Случайное число < Rnd >. Возвращает случайное число от 0.0 до 1.0.
Function Rnd As double
Для получения целого числа от < MinVal > до < MaxVal > используется код:
i = Int(MinVal + (Rnd() * MaxVal))
· Знак числа < Sgn >
Function Sgn (value As Variant) As integer
Возвращает:
· 1, если число положительное.
· -1, если отрицательное.
· 0, если проверяемое число равно 0.
·
Синус < Sin >
Function Sin (value As double) As double
·
Квадрат числа < Sqr >
Function Sqr (value As double) As double
·
Тангенс < Tan >
Function Tan (value As double) As double
·
Отбросить дробную часть < Fix >
Function Fix (value As integer) As integer
· Ближайшее меньшее целое число < Int >
Function Int (value As integer) As integer
·
Минимальное число < Min >
Sub Min (value1 As Variant, value2 As Variant,
[valueN] As Variant)
·
Максимальное число < Max >
Sub Max (value1 As Variant, value2 As Variant,
[valueN] As Variant)
·
Сумма чисел < Sum >
Sub Sum (value1 As Variant, value2 As Variant,
[valueN] As Variant)
· Длина строки < StrLen >. Возвращает число символов в строке.
Function StrLen (Str As string) As integer
· Символ по коду < Chr >. Возвращает символ по его числовому коду.
Function Chr (Value As integer) As char
Параметры:
·
Value As integer Код символа.
· Числовой код символа < Asc >. Возвращает числовой код для переданного символа.
Function Asc (Value As char) As integer
· Проверка на отсутствие значения < IsNull >
Function IsNull (Value As Variant) As boolean
· Поиск подстроки < InStr >. Возвращает первую позицию вхождения подстроки.
Function InStr ([start] As integer, Str As string,
SubStr As string, compare As integer) As Integer
Параметры:
· [start] As integer Стартовая позиция поиска (параметр может отсутствовать).
· Если start > Длина Str - результат 0.
·
Str As string Где искать:
·
Если Str
= "" - результат 0.
· Если Str = Null - результат Null.
·
SubStr As string Что искать:
·
Если SubStr
= "" - результат start.
· Если SubStr не найден - результат 0.
· Если SubStr найден - результат позиция подстроки.
· Если SubStr = Null - результат Null.
·
compare As integer Способ сравнения:
·
0 = vbBinaryCompare (по умолчанию)
·
1 = vbTextCompare
См. также: