Порядок действия операторов




 

При вычислении значения выражения, MapInfo следует определенным правилам, задающим порядок вычисления значений выражения. Согласно этим правилам, разным операторам поставлены в соответствие разные приоритеты. Значения операторов более высокими приоритетами вычисляются раньше значений операторов с более низкими приоритетами. Ниже приводится таблица приоритетов для операторов MapInfo. Операторы с одинаковыми приоритетами вычисяются слева направо. Возведение в степень производится справа. Это важно при последовательно возведении в степень:

2^-3^-4 = 2^(- (3^(-4)))

Высший приоритет:

Скобки

Возведение в степень

Отрицание

Умножение и деление

Сложение и вычитание

географические операторы и операторы сравнения

Not

And

Низший приоритет:

Or

Например, выражение 3 + 4 * 2 имеет значение 11. Поскольку умножение имеет более высокий приоритет, оно выполняется до сложения, то есть вычисление происходит в следующем порядке:

3 + 4 * 2= 3 + 8 = 11

Чтобы сложение было произведено сначала, добавьте скобки:

(3 + 4) * 2 =

7 * 2 =

Теперь рассмотрим построение выражения 60, с помощью которого мы хотим выбрать записи, относящиеся к июлю пли сентябрю 1989.

58. year(ДОСТАВЛЕНО) = 89 and month(ДОСТАВЛЕНО) = 7 or
month(ДОСТАВЛЕНО) = 9

Так как оператор "and" имеет более высокий приоритет, чем "or", MapInfo обрабатывает это выражение так, как будто "year (ДОСТЛВЛЕНО)=89 and month(ДОСТАВЛЕНО)" взято в скобки:

59. (year(ДОСТАВЛЕНО) = 89 and month(ДОСТАВЛЕНО) = 7) or
month(ДОСТАВЛЕНО) = 9

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

60. year(ДОСТАВЛЕНО) = 89 and (month(ДОСТАВЛЕНО) = 7 or month(ДОСТАВЛЕНО) = 9)

В этом выражении наличие скобок говорит MapInfo о том, что "month(ДОСТАВЛЕНО) = 7" и "month(JIOCTABJIEHO) = 9" – это альтернативы второго предложения.

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

 

Функции

 

Функции вырабатывают значения на основании передаваемых им параметров. Функции имеют вид:

ИмяФункции (параметры)

Большинство функции MapInfo имеют один или два параметра. Параметром может быть названы колонки или выражение.

В географических функциях MapInfo – Area, CentroidX, CentroidY, Object Len, Perimeter – используется ключевое слово "obj" или "object". Оно означает, что MapInfo использует значение, относящееся к графическому объекту, а не числовые данные из таблицы.

 

Abs

 

Синтаксис: Abs (числовое_выражение)

Результат: Возвращает абсолютное значение выражения. Если выражение имеет значение ноль, или равное нулю, Abs возвращает значение без изменении. Если же значение выражения меньше нуля, Abs возвращает значение выражения, умноженное на (-1).

Рассмотрим выражение:

61. Abs (numA - numB) Следующая таблица демонстрирует работу функции Abs:

 

numA numB numA - numB Abs(numA - numB)
      Ъ\
    -22  
  57.002 -.002 .002

 

Area

 

Синтаксис: Area (obj, единицы измерения)

Результат: Возвращает площадь объекта. Возвращается 0, если объект не имеет площади или данной записи не соответствует графический объект. Площади не имеют дуги, тексты, точки, линии и ломаные.

Если Вы выбрали в меню функции имя Area, в окно выражения помещаются в скобках два параметра: ключевое слово "obj" и текущие единицы измерения в двойных кавычках. При составлении выражений обычно предлагается использовать квадратные мили (sq ml). Если Вы хотите получить площадь в других единицах измерения, наберите их название в двойных кавычках.

 

Cos

 

Синтаксис: Cos (числовое_выражение)

Результат: Функция Cos возвращает косинус от значения числового выражения, обозначающего угол в радианах.

 

CurDate

 

Синтаксис: CurDate ()

Результат: Возвращает текущую дату.

62. Внесение, текущей даты в одну из колонок:

CurDate ()

Функция может также использоваться в сочетании с командой ОБНОВИТЬ КОЛОНКУ, когда нужно внести в колонку текущую дату.

63. Выбрать, все записи о поступлениях, принятых 30 и более дней назад:

Поступило <= CurDate() -30

 

Day

 

Синтаксис: Day (поле_даты)

Результат: Возвращает число в месяце по заданной дате. Число представляется целым значением от 1 до 31.

64. Выбрать все записи, относящиеся к первому числу любого месяца:

Day(date)=1

65. Выбрать все записи, относящиеся к пятницам, не падающим на 13-е число:

Weekday(date) = 6 and Day(date) <> 13

Это выражение состоит из двух предложений. Первое использует функцию Weekday для выбора записей, в которых день недели равен пятнице. Второе предложение использует функцию Day для выбора записей, в которых число не равно (<>) 13. Так как эти предложения связаны ключевым словом "and", то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

 

Distance

 

Синтаксис: Distance (xl, у1, х2, у2, единицы_измерения)

x1 и y1 – координаты восток-запад (долгота) на карте мира

х2 и у2 – координаты север-юг (широта) па карте мира

единицы_измерения – текущие единицы измерения длины

Результат: Функция вычисляет расстояние между двумя точками.

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

Допускаются следующие единицы измерения длины:

 

Название Единицы измерения
"ml" мили
"km" километры
"in" дюймы
"ft" футы
"survey It" топографические футы
"yd" ярды
"mm" миллиметры
"cm" сантиметры
"m" метры
"nml" морские мили (1 морская миля равна ' 1852 метрам)

 

66. Вычисление расстояния между некоторым объектом и Нью-Йорком, расположенным на долготе -73.997890 и широте 40.750450:

Distance (-73.997890, 40.750450, CentroidX(obj), CentroidY(obj),"ml")

67. Выбрать все объекты удаленные не более чем на 20 миль к западу от Нью-Йорка: „ """

CentroidX(obj) < -73. 997890 and Distance (-73.997890, 40.750450, CentroidX(obj), CentroidY(obj),"ml") <= 20

Это выражение состоит из двух предложений. Первое определяет, что объект должен лежать к западу от Нью-Йорка. Второе – предложение задает ограничение на расстояние: не более 20 миль. Так как эти предложения связаны оператором "and", то объект долен удовлетворять им обоим, чтобы попасть в выборку.

 

Format$

 

Синтаксис: Format$ (числовое_выражение, шаблон)

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

Результат: Выдает строковое представление значения числового_выражения.

Примеры: Функция Format$() возвращает строку символов, содержащую форматированную запись числа (значения первого параметра). Шаблон форматирования снабжает число символами (например, $, %, точка, запятая), которые делают результирующую строку более читаемой. Например, число 12345.67 Вы можете с помощью Format$() представить строкой вида $12345.67.

Первый параметр функции Format$() – числовое выражение – определяет значение, которое надо представить строкой. Шаблон ­– это строка кодовых символов, которую Вам следует задать для получения желаемого формата строки. Строка шаблона должна состоять из одного или нескольких специальных символов форматирования, таких как #, 0, %, запятая, точка или точка с запятой; эти символы определяют конкретный вид строкового представления. Строка шаблона может также содержать символы, которые добавляются к строковому представлению числа, например, знак доллара, минус или скобки. Символы форматирования описываются в следующей таблице.

 

Компонента шаблона Действие при форматировании:
# Заменяется на один или более символов строки, представляющей значение числа. Однако если шаблон содержит один или несколько символов # слева от десятичной точки, и значение лежит в границах между 0 и 1, то результат форматирования может не иметь символа 0 перед десятичной точкой.
  Заменяются подобно #, на символы строки, представляющей значение числа. Однако если шаблон содержит один или несколько символов 0 слева от десятичной точки, и значение лежит в границах между 0 и 1, то в результирующей строке символ 0 будет стоять перед десятичной точкой.
Используется в комбинации с символом #. Если в шаблоне имеется точка, то число символов # справа от точки задает количество десятичных знаков после запятой в отформатированной строке.
, Если точка стоит перед первым символом #, то в отформатированной строке запятая разделяет каждые три цифры до десятичной точки. Например, миллион будет иметь вид "1,000,000", а не "1000000".
% Значение, представляемое в виде строки, умножается на 100; например, для параметра 0.75 будет сформирована строка "75%". Если Вы хотите вывести знак процента, не умножая параметр на 100, поставьте обратную черту (\) перед знаком процента.
Е+ Число представляется в экспоненциальной форме; например, для значения 1234 будет сформирована строка "1.234е + 03". Если экспонента положительна, то после "е" ставится знак плюс, а если отрицательна (для дробных чисел) – знак минус.
Е- Действие то же, что и у "Е+", только не выводится знак плюс после "е".
; Поместив в шаблоне точку с запятой, Вы можете задать отдельно форматы для положительных и отрицательных чисел. Перед знаком ";" указывается формат для положительных значений, а после него – для отрицательных. При наличии двух форматов знак минус не ставится автоматически перед отрицательными числами. Для того, чтобы знак присутствовал, надо явно вставить символ "-" в строку формата для отрицательных значений.  
\ Над символами, указанными после этого символа, MapBasic не производит никаких действий. Это позволяет Вам указывать символы вроде "%" в строке шаблона, но не изменять этим значение числового параметра.

 

Ниже приводится таблица, в левой колонке которой приведены примеры шаблонов для функции Format$() – примеры значений числового параметра, а в правой колонке – результат функции Format$() в виде отформатированной строки.

Шаблон Исходное число Результат Format$():
",#"   "12,345"
",#" -12345 "-12,345"
"$#"   "$12345"
"$#" -12345 "-$12345" '
"$,#"   "$12,345"
"$,#" -12345 "-$12,345"
"$,#.##" 12345.678 "$12,345.68"
"$,#.##" -12345.678 "-$12,345.68"
"$,#.##; ($,#.##)" 12345.678 "$12,345.68"
"$,#.##; ($,#.##)" -12345.678 "($12,345.68)"
",#.###" 12345.6789 "12.345.679"
",#.#" 12345.6789 "12,345.7"
"#.#" 12345.6789 "12345.7"
"#.###Е+##" 12345.6789 "1.235e+04"
"#.###Е+##" -12345.6789 "-1.235e+04"
"#.###Е+##" 0.054321 "5.432e-02"
"#.###Е-##" 12345.6789 "1.235e04"
"#.###Е-##" 0.054321 "5.432e-02"
"#%" 0.054321 "5%"
"#.##%" 0.054321 "5.43%"
"#.##\%" 0.054321 ".05%"
"0.##\%" 0.054321 "0.05%"

InStr

Синтаксис: InStr (номер_позиции, строка, подстрока)

Результат: InStr проверяет, содержит ли заданная строка указанную подстроку. MapInfo ищет подстрока, начиная с символа строки с номером номер_позиции. Если номер_позиции равен 1, то MapInfo начинает поиск с начала строки. Если же он равен, скажем, 6, MapInfo начинает поиск с
шестого символа строки.

Если в строке найдена искомая подстрока, то InStr возвращает номер позиции, с которой начинается подстрока. Если и строке нет заданной подстроки, InStr возвратит 0.

Если Вы хотите нанести на карту города банки. Для этого нужно найти все строки, содержащие подстроку "Банк" в колонке "Название". Слово "Банк" может быть как отдельным словом в названии, так и сливаться с другими словами. Если Вы не уверены, что слово "Банк" записано везде большими буквами, необходимо составить следующее выражение.

68. InStr (1, UCase$ (Название), "БАНК") > 0

Это выражение задает поиск строки "БАНК" в колонке "Название". Выбираются все названия содержащие эту строку.

Внимание: Если строка, которую Вы ищите, не существует, то возвращается значение 0.

 

Int

Синтаксис: Int(числовое_выражение)

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

Таблица показывает, как функция Intобрабатывает разные выражения:

 

Число Int (число)
5.2  
5.999  
-7.8 -8
-7.2 -8

 

LCase$

Синтаксис: LCase$ (строка)

Результат: возвращает строку, в которой все большие буквы замены на маленькие.

Рассмотрим выражение:

69. LCase$ (City)

Таблица показывает, как функция преобразует входные строки:

 

 

Исходная строка Результат
NEW YORK new york
New yorK new york
new york new york

 

Left$

 

Синтаксис: Left$ (строка, число)

Результат: возвращает строку, состоящую из заданного числа самых левых символов строки.

Рассмотрим выражение:

70. Left$ (City,5)

Таблица показывает, как функция преобразует входные строки:

 

Исходная строка Результат
New York New Y
Denver Denve
Singapore Singa

 

Теперь рассмотрим выражение, где "Телефон" - это колонка, содержащая телефонные номера, начинающиеся с кодов городов:

71. Left$ (Телефон, 3) = "404"

Это выражение выбирает все строки таблицы, поле номера телефона в которых начинается на "404" Обратите внимание, что колонка "Телефон" содержит строки, поэтому 404 должно быть заключено в двойные кавычки.

 

Len

 

Синтаксис: Len (строка)

Результат: возвращает количество символов в строке.

 

LTrim$

 

Синтаксис: LTrim$(строка)

Результат: LTrim$ удаляет все пустые символы (пробелы, табуляторы и так далее) из начала строки.

 

Maximum

 

Синтаксис: Maximum (числовое_выражение, числовое_выражение)

Результат: Maximum возвращает большее из двух значений.

Чтобы выяснить максимальный номер дома для отрезка улице в файле StreetInfo:

72. Maximum (ToLeft,ToRight)

Колонка "ToLeft" содержит наибольший помер полевой стороне улицы, f "ToRight" – по правой стороне данного отрезка.

 

Mid$

Синтаксис: Mid$ (строка, номер_позиции, длина)

Строка – это символьное выражение.

Номер_позиции – целое число, определяющее начальную позицию в строке.

Длина – целое число, задающее число символов, которые следует выделить.

Результат: Mid$ возвращает строку заданной длины, начиная с некоторого номера позиции в исходной строке.

Рассмотрим следующее выражение:

73. Mid$ (City, 5, 4)

Таблица показывает, как функция преобразует входные строки:

 

Исходная строка Результат
New York City York
Denver Er
Singapore Apor

 

Заметьте, что из строки "Denver" выделено только 2 символа, Это произошло потому, что " Denver " – слишком короткая строка, и не имеет полной 4-символьной подстроки, начинающейся c пятой позиции.

 

Minimum

 

Синтаксис: Minimum (числовое_выражение, числовое_выражение)

Результат: Minimum возвращает меньшее из двух значений.

Чтобы вылепить минимальный номер дома для о i резка улицы в файле StreetInfo:

74. Minimum (FromLeft, FromRight)

Колонка "FromLeft" содержит наибольший номер по левой стороне улицы, а " FromRight " – по правой стороне данного segment.

 

Month

 

Синтаксис: Month (дата)

Результат: возвращает номер месяца в виде числа от 1 до 12.

75. Чтобы выбрать все записи, относящиеся к августу:

Month (Доставлено) = 8

76. Чтобы выбрать все записи, полученные до августа:

Month (Доставлено) < 8

77. Чтобы выбрать все записи, относящиеся к августу 1990:

Month (Доставлено) = 8 and Year (Доставлено) = 1990

Это выражение состоит из двух предложений. Первое указывает, что запись должна относиться к августу, а второе – что она должна относиться к 1990 году. Так как эти предложения связаны оператором "and", то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

78. Выбор всех записей от августа или сентября:

Month (Доставлено) = 8 or Month (Доставлено) = 9

Это выражение состоит из двух предложении. Первое указывает, что запись может относиться к августу, а второе – что она может относиться к сентябрю. Так как эти предложения связаны оператором "or", то запись может удовлетворять хотя бы одному из условий, чтобы попасть в выборку.

79. Выбор всех записей от августа или сентября:

Month (Доставлено) = any (8, 9)

Это выражение дает тот же результат, что и пример 78, но оно использует ключевое слово "any".

80. Выбор всех записей от августа или сентября 1990 года:

Month (Доставлено) = any (8, 9) and Year (Доставлено) = 1990

Это выражение состоит из двух предложений. Первое указывает, что запись должна относиться к августу или сентябрю, а второе – что она должна относиться к 1990 году. Так как эти предложения связаны оператором "and", то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

 

ObjectLen

 

Синтаксис: ObjectLen (obj, единица_измерения)

Результат: возвращает длину лилий и ломаных и 0 для остальных объектов.

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

Допускаются следующие единицы измерения длины:

 

Название Единицы измерения
"ml" мили
"km" километры
"in" дюймы
"ft" футы
"survey It" топографические футы
"yd" ярды
"mm" миллиметры
"cm" сантиметры
"m" метры
"nml" морские мили (1 морская миля равна ' 1852 метрам)

 

81. Вычисление длины объекта:

ObjectLen (obj, "ml")

82. Вычисление длины объекта в километрах:

ObjectLen (obj, "km")

83. Вычисление длины объекта в морских милях:

ObjectLen (obj, "nml")

Для того, чтобы перевести километры в мили надо умножить значение на.621.

84. Выбор всех объектов, длина которых превышает 10 километров:

ObjectLen (obj, "km") > 10

 

Perimeter

 

Синтаксис: Perimeter (объект, единица_измерения)

Результат: возвращает периметр таких объектов, как многоугольник, эллине, прямоугольник и скругленный прямоугольник.

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

Допускаются следующие единицы измерения длины:

 

Название Единицы измерения
"ml" мили
"km" километры
"in" дюймы
"ft" футы
"survey It" топографические футы
"yd" ярды
"mm" миллиметры
"cm" сантиметры
"m" метры
"nml" морские мили (1 морская миля равна ' 1852 метрам)

 

85. Вычисление периметра объекта:

Perimeter (obj, "ml")

86. Вычисление периметра объекта в километрах:

Perimeter (obj, "km")

87. Вычисление периметра в метрах:

Perimeter (obj, "m")

88. Выбор всех объектов, периметр которых превышает 35 миль:

Perimeter (obj, "ml") > 35

 

Proper$

 

Синтаксис: Proper$ (строка)

Результат: возвращает строку, в которой первые буквы слов преобразованы в заглавные, а остальные - в строчные.

89. Рассмотрим следующее выражение:

Proper$ (City)

В таблице показано, как преобразуются исходные строки:

 

Исходная строка Результат
NEW YORK New York
New yorK New York
new york New York
New York New York

 

Right$()

 

Синтаксис: Right$() (строка, числовое_выражение)

Результат: возвращает строку, состоящую из заданного количества символов, находящихся с правого конца строки.

90. Рассмотрим выражение:

Right$ (City, 4)

Таблица показывает, как преобразуются исходные строки:

 

Исходная строка Результат
NEW YORK York
Denver nevr
Singapore pore

 

Round

 

Синтаксис: Round (число1, число2)

Результат: Возвращает округленное число1, а число 2 задает точность округления.

91. рассмотрим выражение:

Round (number1, number2)

В первой колонке таблицы указаны аргументы функции (number1 и number2), а второй – результат округления.

 


Исходная строка Результат
14347,10000  
14347,100  
14347,10  
12.18353,.1 12,20000
12.18353,.001 12,18400

 

Для того чтобы выбрать все строки таблицы для которых средний возраст равен 42, можно использовать выражение:

92. Round (СРЕД_ВОЗРАСТ, 1) = 42

В зависимости от типа данных, это выражение может дать лучшие результаты, чем прямое сравнение со значением (СРЕД_ВОЗРАСТ = 42). Ведь колонки среднего возраста в таблице штатов в MapInfo содержит средний возраст с точностью до одной десятой. При обычном сравнении со значением 42 MapInfo не выберет записи со значениями, скажем, 41.7, 42.1 или 42.4 Но, скорее всего, Вам нужно получить эти записи, и Вы сможете это сделать, с помощью округления.

 

RTrim$

 

Синтаксис: RTrim$ (строка)

Результат: RTrim$ удаляет все пустые символы (пробелы, табуляции и так далее) в конце строки.

 

Sin

 

Синтаксис: Sin (числовое_выражение)

Результат: функция Sin возвращает синус для значения выражения, задающего угол в радианах.

 

Str$

 

Синтаксис: Str$(числовое_выражение)

Результат: Str $ преобразует числовое выражение в строку символов. Если значение выражения отрицательно, первым символом строки является минус (-). Иначе строка начинается с пробела.

 

UCase$

 

Синтаксис: UCase$ (строка)

Результат: возвращает строку, все маленькие буквы в которой заменены большими.

93, Рассмотрим следующее выражение:

UCase$ (City)

Таблица показывает, как преобразуются исходные строки:

 

 

Исходная строка Результат
NEW YORK New York
New yorK New York
new york New York

 

Val

 

Синтаксис: Val (строковое_ выражение)

Результат: функция Val преобразует строковое выражение в число. Она игнорирует все табуляции и пробелы в начале строки и пытается найти для первой последовательности символов числовой аналог. Обработка заканчивается, когда встречается нецифровой символ. Если первый символ после отступов и пробелов в начале строки был нецифровой, Val возвращает ноль.

Таблица показывает, как Val выделяет числа из строк:

 

строковое выражение char_expr Val(char_expr)
12 тысяч  
52 - 62  
Теплый Стан  
Семнадцать  
Номер 239  

 

Weekday

Синтаксис: Weekday (дата)

Результат: возвращает день недели по заданной дате в виде числа от 1 до 7.

1 обозначает воскресенье, а 7 – субботу.

94. Выбрать все строки таблицы, относящиеся к средам:

Weekday (date) = 4

95. Выбрать все строки таблицы, относящиеся к средам, четвергам и пятшнгл:■;:

Weekday (date) = any (4, 5, 6)

Ключевое слово "any" задает выбор строк, в которых дата равна одному из перечисленных дне недели.

96. Выбрать все записи о пятницах в июле месяце:

Weekday (date) = 6 and month (date) = 7

Это выражение состоит из двух предложений. Первое использует функцию Weekday и указывает, что запись должна относится к пятнице. Второе предложение использует функцию Month и указывает, что запись должна относится к июлю. Так как эти предложения связаны оператором "and", то запись должна удовлетворять обоим выражениям.

 

Year

 

Синтаксис: Year (дата)

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

97. Найти все записи, относящиеся к 1990 году:

Year (date) = 1990

98. найти все записи, относящиеся к 1990 или 1991 годам:

Year (date) = any (1990, 1991)

99. Найти все записи, относящиеся к годам с 1985 по 1990 включительно:

Year (date) >= 1985 and Year (date) <= 1990

Это выражение состоит из двух предложении. Первое указывает, что запись должна относиться к 1985 или более позднему году, а второе – что она должна относится к 1990 или более раннему году. Так как эти предложения связаны оператором "and", то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

 

ВОПРОСЫК ДОМАШНЕМУ ЗАДАНИЮ

Какие виды операторов используются в MapInfo?

Какие виды математических операций используются в MapInfo?

Какие виды операций используются в MapInfo?

Как распределяется приоритет операций в MapInfo?

Какие основные операторы использует MapInfo?

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: