Лекция 14. Базовые элементы Харитонов А. Ю. Министерство образования и науки Украины Донецкий национальный технический университет Кафедра компьютерных.

Презентация:



Advertisements
Похожие презентации
Лекция 13. Синтаксис Avenue Харитонов А. Ю. Министерство образования и науки Украины Донецкий национальный технический университет Кафедра компьютерных.
Advertisements

Лекция 12. Основы Avenue Харитонов А. Ю. Министерство образования и науки Украины Донецкий национальный технический университет Кафедра компьютерных систем.
Строки, Списки, Кортежи.. Строки (string) Строка-это последовательность букв Для обозначения строки используются одинарные или двойные кавычки. Для длинных.
Операторы языка. Арифметические операторы Арифметические операторы Арифметические операторы Арифметические операторы Операторы сравнения Операторы сравнения.
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Реализация списков:динамические структуры ListList clasclas структура одного элемента type LIST = celltype; celltype = record element: eltype; next: LIST.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
1 Лекция 5 Абстрактные структуры данных. 2 Таблицы Таблица – это набор элементов, содержащих ключ – отличительный признак для поиска элементов, и тело.
Переменные задаются именами, которые определяют области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов.
Лекция 3 Операторы Цикла 1 Российский государственный университет нефти и газа имени И.М. Губкина Кафедра «Информатики»
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Ограничение целостности CHECK задает диапазон возможных значений для столбца. Ограничение целостности CHECK задает диапазон возможных значений для столбца.
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Microsoft® Small Basic Условия и циклы Предполагаемое время работы с этим уроком: 2 часа.
Основы языка R Лекция 3.2 к.ф.-м.н. Павловский Евгений Николаевич.
Базы данных Язык запросов SQL. Команда SELECT. Команда SELECT – выборка данных Общий синтаксис: SELECT [{ ALL | DISTINCT }] { список_вывода | * } FROM.
Множества Выход Множества. Описание типа множество. Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо.
1 Лекция 13 ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА Visual Basic For Applications (VBA) План лекции Типы данных VBA Операции над данными VBA Описание типов данных VBA Имена.
Транксрипт:

Лекция 14. Базовые элементы Харитонов А. Ю. Министерство образования и науки Украины Донецкий национальный технический университет Кафедра компьютерных систем мониторинга ГЕОИНФОРМАЦИОННЫЕ СИСТЕМЫ

2 Строки Строки ограничиваются символом двойных кавычек. Строки ограничиваются символом двойных кавычек. myString = Hello WorldaStrNum = 100.AsString myString = Hello WorldaStrNum = 100.AsString Строки могут включать специальные символы: символ новой строки, символ табуляции, символ возврата каретки, выраженные в виде предварительно заданных объектов строки 'nl', 'tab', и 'cr'. Строки могут включать специальные символы: символ новой строки, символ табуляции, символ возврата каретки, выраженные в виде предварительно заданных объектов строки 'nl', 'tab', и 'cr'. myString = "Hello World"+NL+"Have a Nice Day" myString = "Hello World"+NL+"Have a Nice Day" В результате: В результате: Hello World Hello World Have a Nice Day Have a Nice Day Связываются две строки оператором + либо ++. Связываются две строки оператором + либо вставляет пробел между двумя строками. ++ вставляет пробел между двумя строками. aDocument = av.GetActiveDoc.GetName aDocument = av.GetActiveDoc.GetName MsgBox.Info( "The active document is"++aDocument, "Active Document") MsgBox.Info( "The active document is"++aDocument, "Active Document") © Харитонов А. Ю.

3 Строки - преобразовываются другие объекты Avenue при помощи запросов AsAscii, AsFileName, AsList, AsNumber, AsDate, AsTime, AsEnum, AsToken. - преобразовываются другие объекты Avenue при помощи запросов AsAscii, AsFileName, AsList, AsNumber, AsDate, AsTime, AsEnum, AsToken. aFile = "test.c".AsFileName Так из строки "test.c" создается объект FileName. aFile = "test.c".AsFileName Так из строки "test.c" создается объект FileName. ИЛИ ИЛИ aNum = "100" aNum = "100" if ( aNum.IsNumber ) then if ( aNum.IsNumber ) then myNum = aNum.AsNumber myNum = aNum.AsNumber end Из строки 100 создается числовой объект. ИЛИ ИЛИ myString = "red orange yellow green blue purple" myString = "red orange yellow green blue purple" myList = myString.AsTokens Так создается список: {"red", "orange", "yellow", "green", "blue", "purple"}. myList = myString.AsTokens Так создается список: {"red", "orange", "yellow", "green", "blue", "purple"}. © Харитонов А. Ю.

4 Числа Avenue использует постфиксную запись запросов, которые выполняют числовые функции. Avenue использует постфиксную запись запросов, которые выполняют числовые функции. x = -7.abs возвращает абсолютное значение числа -7. x = -7.abs возвращает абсолютное значение числа могут быть преобразованы в другие виды объектов при помощи запросов AsString, AsDays, AsYears, AsHours, AsMinutes, AsSeconds, AsDegrees, AsRadians. - могут быть преобразованы в другие виды объектов при помощи запросов AsString, AsDays, AsYears, AsHours, AsMinutes, AsSeconds, AsDegrees, AsRadians. Класс Interval (Интервал) поддерживает диапазон числовых значений (например, значения от 2 до 25). Оператор.. (две точки) создает интервал. Класс Interval (Интервал) поддерживает диапазон числовых значений (например, значения от 2 до 25). Оператор.. (две точки) создает интервал. i = i = Вы также можете задать значение для шага интервала при помощи запроса by. Вы также можете задать значение для шага интервала при помощи запроса by. evens = by 2 evens = by 2 © Харитонов А. Ю.

5 Дата и время два класса, относящихся к дате и времени: Date и Duration. Длительность (duration) - период (промежуток) времени. два класса, относящихся к дате и времени: Date и Duration. Длительность (duration) - период (промежуток) времени. Объекты даты создаются либо на основании текущих значений даты или времени, либо по указанным значениям даты и времени. Объекты даты создаются либо на основании текущих значений даты или времени, либо по указанным значениям даты и времени. today = Date.Now today = Date.Now halloween = Date.Make( "10/31/94", "M/d/y" ) halloween = Date.Make( "10/31/94", "M/d/y" ) Даты могут быть отображены в форматах, определяемых пользователем. Механизмом для определения форматов является форматная строка. Даты могут быть отображены в форматах, определяемых пользователем. Механизмом для определения форматов является форматная строка. © Харитонов А. Ю.

6 Дата и время Форматы вывода для объекта могут определяться с помощью запроса SetFormat. В примере объект, на который ссылается переменная today (сегодня), будет отображаться в указанном формате в следующий раз, когда к нему применяется AsString, независимо от формата, принятого по умолчанию для всех объектов даты,. Форматы вывода для объекта могут определяться с помощью запроса SetFormat. В примере объект, на который ссылается переменная today (сегодня), будет отображаться в указанном формате в следующий раз, когда к нему применяется AsString, независимо от формата, принятого по умолчанию для всех объектов даты,. today = Date.Now today = Date.Now today.SetFormat( "M, d, yyyy" ) today.SetFormat( "M, d, yyyy" ) MsgBox.Info( today.AsString, "") MsgBox.Info( today.AsString, "") today.SetFormat( "dddd MMMM d, yyyy" ) today.SetFormat( "dddd MMMM d, yyyy" ) MsgBox.Info( today.AsString, "") MsgBox.Info( today.AsString, "") © Харитонов А. Ю.

7 Дата и время Объекты дат поддерживают операции сложения и вычитания. Объекты дат поддерживают операции сложения и вычитания. daysTilChristmas = today – ChristmasDay daysTilChristmas = today – ChristmasDay Вычитается длительность из даты (времени), чтобы в результате получить значение даты (времени), либо уменьшается дата на определенное число дней. Вычитается длительность из даты (времени), чтобы в результате получить значение даты (времени), либо уменьшается дата на определенное число дней. 2DaysAgo = today - 2.AsDays today.IncrementByDays(-2) IncrementBy обеспечивает более точные результаты © Харитонов А. Ю.

8 Логические выражения - два класса- 'true', 'false'. - два класса- 'true', 'false'. К этим объектам можно обратиться непосредственно, используя ключевые слова 'true' или 'false', или косвенно посредством Булева выражения. Булево выражение представляет собой любую последовательность запросов, результат которых выражается в булевой (логической) форме, то есть в форме объектов 'true' или 'false'. К этим объектам можно обратиться непосредственно, используя ключевые слова 'true' или 'false', или косвенно посредством Булева выражения. Булево выражение представляет собой любую последовательность запросов, результат которых выражается в булевой (логической) форме, то есть в форме объектов 'true' или 'false'. If (выражение) Then... Else... If (выражение) Then... Else... While выражение... End. While выражение... End. Булев класс включает запросы, которые позволяют создавать сложные Булевы (логические) выражения: and, or, xor и not. Булев класс включает запросы, которые позволяют создавать сложные Булевы (логические) выражения: and, or, xor и not. © Харитонов А. Ю.

9 Списки (Lists) List - это способ упорядоченного объединения однородных объектов. Элементом списка может быть любой объект, и список может содержать объекты многих типов. Индекс списка начинается с 0, и первый элемент имеет индекс 0, а последний элемент списка - индекс равный числу элементов - 1 List - это способ упорядоченного объединения однородных объектов. Элементом списка может быть любой объект, и список может содержать объекты многих типов. Индекс списка начинается с 0, и первый элемент имеет индекс 0, а последний элемент списка - индекс равный числу элементов - 1 myList = { "Red", 201, myView, anotherList } myList = { "Red", 201, myView, anotherList } OR OR myList = List.Make myList = List.Make myList.Add( "Red" ) myList.Add( "Red" ) myList.Add( 201 ) myList.Add( 201 ) myList.Add( myView ) myList.Add( myView ) myList.Add( anotherList ) myList.Add( anotherList ) today = Date.Now today = Date.Now myList.Insert( today ) в начало списка. myList.Insert( today ) в начало списка. Результат: { today, "red", 201, myView, anotherList } Результат: { today, "red", 201, myView, anotherList } Запрос Set замещает заданный элемент новым значением. myList.Set( 1, "Blue") Запрос Set замещает заданный элемент новым значением. myList.Set( 1, "Blue") В данном примере объект Red заменяется объектом Blue. Список сейчас будет содержать следующие элементы: { today, "Blue", 201, myView, anotherList } В данном примере объект Red заменяется объектом Blue. Список сейчас будет содержать следующие элементы: { today, "Blue", 201, myView, anotherList } Чтобы получить элемент из списка, используйте запрос Get. anElement = myList.Get( 1 ) Чтобы получить элемент из списка, используйте запрос Get. anElement = myList.Get( 1 ) © Харитонов А. Ю.

10 Словари (Dictionaries) -это набор пар ключ - значение. Ключ - это любой объект, который идентифицирует свое значение. В словаре ключи являются уникальными. В качестве значения может выступать любой объект. -это набор пар ключ - значение. Ключ - это любой объект, который идентифицирует свое значение. В словаре ключи являются уникальными. В качестве значения может выступать любой объект. Словари хэшируются для обеспечения эффективного доступа. Размер, задаваемый в запросе Make, является приблизительным размером для словаря, позволяющим создать хэш-таблицу. Словарь может увеличиться до размера, в 20 раз превышающего заданный, без отрицательного влияния на производительность. Словари хэшируются для обеспечения эффективного доступа. Размер, задаваемый в запросе Make, является приблизительным размером для словаря, позволяющим создать хэш-таблицу. Словарь может увеличиться до размера, в 20 раз превышающего заданный, без отрицательного влияния на производительность. Создать: aDict = Dictionary.Make( 100 ) Создать: aDict = Dictionary.Make( 100 ) Добавить пару: aDict.Add( myKey, aValue ) Добавить пару: aDict.Add( myKey, aValue ) Найти значение, связанное с ключом: Найти значение, связанное с ключом: myValue = aDict.Get( myKey ) myValue = aDict.Get( myKey ) Удалить пару Ключ/Значение: aDict.Remove( myKey ) Удалить пару Ключ/Значение: aDict.Remove( myKey ) Получите список ключей в словаре: Получите список ключей в словаре: keyList = aDict.ReturnKeys keyList = aDict.ReturnKeys © Харитонов А. Ю.

11 Словари (Dictionaries) -это набор пар ключ - значение. Ключ - это любой объект, который идентифицирует свое значение. В словаре ключи являются уникальными. В качестве значения может выступать любой объект. -это набор пар ключ - значение. Ключ - это любой объект, который идентифицирует свое значение. В словаре ключи являются уникальными. В качестве значения может выступать любой объект. Словари хэшируются для обеспечения эффективного доступа. Размер, задаваемый в запросе Make, является приблизительным размером для словаря, позволяющим создать хэш-таблицу. Словарь может увеличиться до размера, в 20 раз превышающего заданный, без отрицательного влияния на производительность. Словари хэшируются для обеспечения эффективного доступа. Размер, задаваемый в запросе Make, является приблизительным размером для словаря, позволяющим создать хэш-таблицу. Словарь может увеличиться до размера, в 20 раз превышающего заданный, без отрицательного влияния на производительность. Создать: aDict = Dictionary.Make( 100 ) Создать: aDict = Dictionary.Make( 100 ) Добавить пару: aDict.Add( myKey, aValue ) Добавить пару: aDict.Add( myKey, aValue ) Найти значение, связанное с ключом: Найти значение, связанное с ключом: myValue = aDict.Get( myKey ) myValue = aDict.Get( myKey ) Удалить пару Ключ/Значение: aDict.Remove( myKey ) Удалить пару Ключ/Значение: aDict.Remove( myKey ) Получите список ключей в словаре: Получите список ключей в словаре: keyList = aDict.ReturnKeys keyList = aDict.ReturnKeys © Харитонов А. Ю.

12 Стеки (Stacks) - являются способом объединения элементов по принципу последний пришел, первым вышел (last-in-first-out, LIFO). Объекты в стеке сложены один поверх другого. - являются способом объединения элементов по принципу последний пришел, первым вышел (last-in-first-out, LIFO). Объекты в стеке сложены один поверх другого. Добавить элемент в верхнюю часть стека - Push: Добавить элемент в верхнюю часть стека - Push: myStack.Push( "50" ) myStack.Push( "50" ) Удалить элемент из верхней части стека - Pop: Удалить элемент из верхней части стека - Pop: top = myStack.Pop top = myStack.Pop Выяснить, сколько элементов находится в стеке – Depth: Выяснить, сколько элементов находится в стеке – Depth: howMany = myStack.Depth howMany = myStack.Depth Просмотреть объект, расположенный в глубине стека, - Peek, учитывая, что верхняя часть стека считается за 0, а его дно (или последний элемент) - за (Depth - 1): Просмотреть объект, расположенный в глубине стека, - Peek, учитывая, что верхняя часть стека считается за 0, а его дно (или последний элемент) - за (Depth - 1): third = myStack.Peek(2) third = myStack.Peek(2) Полностью очистить стек - Empty. Полностью очистить стек - Empty. © Харитонов А. Ю.

13 Оператор Continue Оператор Continue управляет переходом к следующей итерации цикла, в котором он встречается, с пропуском всех остальных операторов в этом цикле. Оператор Continue управляет переходом к следующей итерации цикла, в котором он встречается, с пропуском всех остальных операторов в этом цикле. theView = av.GetActiveDoc theView = av.GetActiveDoc for each t in theView.GetThemes for each t in theView.GetThemes for each f in t.GetFtab.GetFields for each f in t.GetFtab.GetFields if (f.IsTypeNumber) then if (f.IsTypeNumber) then continue continue end end f.SetVisible(true) f.SetVisible(true) end end t.GetFtab.Refresh t.GetFtab.Refresh End End В данном примере скрипт проверяет каждое поле каждой темы в Виде, делая все нечисловые поля скрытыми (невидимыми). Скрипт использует оператор Continue, чтобы перейти к следующему полю в списке полей, если текущее поле является числовым, тем самым пропуская запрос SetVisible. В данном примере скрипт проверяет каждое поле каждой темы в Виде, делая все нечисловые поля скрытыми (невидимыми). Скрипт использует оператор Continue, чтобы перейти к следующему полю в списке полей, если текущее поле является числовым, тем самым пропуская запрос SetVisible. © Харитонов А. Ю.