Обработка данных

Содержание

Слайд 2

Элементы языка VBA Особенности организации кода Информатика. 2 семестр. Тема 03. Обработка данных

Элементы языка VBA

Особенности организации кода

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 3

Общие принципы Visual Basic for Application – императивный язык программирования высокого

Общие принципы

Visual Basic for Application – императивный язык программирования высокого уровня.


Линейное: Инструкции разделены и следуют последовательно.
Структурное: Блоки инструкций не содержат пересечений линий исполнения и собираются по принципу вложенности.
Процедурное: Часто повторяющиеся блоки инструкций могут быть выделены в подпрограммы (процедуры и функции) с одним входом и одним выходом.
Модульное: Часть кода приложения может быть вынесена в модули (библиотеки), подключаемые при необходимости использования.

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 4

Общие принципы Visual Basic for Application – интерпретируемый язык программирования высокого

Общие принципы

Visual Basic for Application – интерпретируемый язык программирования высокого уровня.


Компиляция: Построчный разбор кода при выполнении
Проверка: Синтаксис проверяется при вводе
Логические (структурные) ошибки выявляются только на этапе выполнения
Контроль работы с памятью
Хранение: Память может выделяться «по запросу» для использования с необъявленными именами
Типизация: Возможность изменения типа данных при исполнении
Необратимость: Изменения в данных невозможно обратить (вернуть)

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 5

Visual Basic for Application – язык с поддержкой объектно-ориентированного и событийного

Visual Basic for Application – язык с поддержкой объектно-ориентированного и событийного

программирования

Объект: Совокупность данных, характеризующих его состояние, и функций их обработки, моделирующих поведение объекта.
Класс: Программный шаблон, на основе которого создается объект (реализация).
Метод: Функция или процедура, являющаяся частью описания объекта, предназначенная для выполнения каких-либо действий над объектом (данными).
Событие: Информационный эквивалент реакции системы на полученное сообщение.
Обработчик: Метод объекта, предназначенный для обработки специфического события.

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 6

Основной принцип организации кода в Visual Basic for Application – модульно-процедурный

Основной принцип организации кода в Visual Basic for Application – модульно-процедурный

Размещение

кода: Модули в файлах .bas или в составе документа.
Организация кода: Исполняемые инструкции (команды) размещаются в теле процедур (Sub … End Sub) или функций (Function … End Function)
Объявление: В области General и внутри процедур и функций
Видимость: Доступность объекта или процедуры (функции) определяется размещением (например, в том же модуле, в той же процедуре и т.п.)
Модуль ≈ класс объекта (ООП)
Private, public управляют доступом к свойствам (глобальным переменным модуля) и методам (процедурам и функциям)

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 7

Элементы языка VBA Операции с данными Хранение и преобразование Информатика. 2 семестр. Тема 03. Обработка данных

Элементы языка VBA

Операции с данными
Хранение и
преобразование

Информатика. 2 семестр. Тема 03.

Обработка данных
Слайд 8

Литералы Литеральная константа – это данные (число, строковое выражение, дата и

Литералы Литеральная константа – это данные (число, строковое выражение, дата и т.п.),

размещенные непосредственно в коде программы
Константы Схемы алгоритмов и программ. Правила Именованная константа – это какие-либо данные, которые не изменяются при выполнении программы, и для обращения к ним используется специальное символьное имя определённое в коде
Допускается использование типизированных констант при объявлении которых явно задаётся тип данных
Переменные Именованные объекты, предназначенные для временного хранения изменяемых данных

Информатика. 2 семестр. Тема 03. Обработка данных

Представление данных в коде

Слайд 9

Литералы Литеральная константа – это данные (число, строковое выражение, дата и

Литералы Литеральная константа – это данные (число, строковое выражение, дата и т.п.),

размещенные непосредственно в коде программы
Константы Схемы алгоритмов и программ. Правила Именованная константа – это какие-либо данные, которые не изменяются при выполнении программы, и для обращения к ним используется специальное символьное имя определённое в коде
Допускается использование типизированных констант при объявлении которых явно задаётся тип данных
Переменные Именованные объекты, предназначенные для временного хранения изменяемых данных

Информатика. 2 семестр. Тема 03. Обработка данных

Примеры представления данных в коде

Слайд 10

Внутренняя константа – это именованная константа, которая была определена разработчиками VBA.

Внутренняя константа – это именованная константа, которая была определена разработчиками VBA.
Внутренние

константы для работы с host-приложениями. Excel содержит внутренние константы для использования с рабочими книгами электронных таблиц.
Word содержит внутренние константы для работы с документами и шаблонами текстового редактора
Access – константы для операций с базами данных.
Внутренние константы, определяемые VBA, начинаются с букв vb.
Внутренние константы Excel - xl; Word - wd.
Полный список имеющихся в наличии внутренних констант доступен через Object Browser.
Его можно вызвать клавишей F2 в окне редактора VBA.

Информатика. 2 семестр. Тема 03. Обработка данных

Специальные константы

Слайд 11

Информатика. 2 семестр. Тема 03. Обработка данных Использование литералов и констант

Информатика. 2 семестр. Тема 03. Обработка данных

Использование литералов и констант

Sub Vvod_Formuly_Skidki()
'

Макрос записан 1.12.2012
' Быстрый вызов Ctrl + Q
Const A As Integer = 1
ActiveCell.Value = "Hello world"
Cells(ActiveCell.Row, ActiveCell.Column + 1).FormulaR1C1 = "=(RC[-2]*RC[-3]-RC[-1])*usd"
Cells(ActiveCell.Row + A, ActiveCell.Column).Select
End Sub

Наименование макроса (может быть записано кириллицей)

Начало и конец кода макроса

Комментарий к тексту программы

Строковый литерал – последовательность символов в коде программы, интерпретируемых как данные

Объект

Свойство

Метод

Объявление типизированной константы

Использование константы

Числовой литерал

Слайд 12

Информатика. 2 семестр. Тема 03. Обработка данных Объявление переменных Dim i

Информатика. 2 семестр. Тема 03. Обработка данных

Объявление переменных

Dim i
Dim j

As Integer
Sub MySub()
' Макрос записан 1.12.2012
' Быстрый вызов Ctrl + Q
Dim X As Double = 0.5
Y = 1 + X
ActiveCell.Value = "1" + Y
End Sub

Область General модуля

Объявление типизированной глобальной переменной

Оператор присваивания

Объявление типизированной переменной и инициализация значением

Использование переменной

Неявное преобразование типов

Тело процедуры

Неявное объявление через установку (присвоение) значения

Объявление нетипизированной глобальной переменной

Оператор Dim (от dimention) – Объявляет и размещает в памяти одну или несколько переменных.

Слайд 13

Типы данных Информатика. 2 семестр. Тема 03. Обработка данных

Типы данных

Информатика. 2 семестр. Тема 03. Обработка данных

Слайд 14

Информатика. 2 семестр. Тема 03. Обработка данных «Наследие Basic» - явное

Информатика. 2 семестр. Тема 03. Обработка данных

«Наследие Basic» - явное указание

типа

Dim X#
Dim Y As Double

Объявление типизированной переменной

Использование указателя типа переменной

Специальный символ (из не разрешенных к использованию в именах переменных) выступает указателем типа переменной при объявлении и использовании.

Символы объявления типов:

Слайд 15

Информатика. 2 семестр. Тема 03. Обработка данных Операции с переменными Dim

Информатика. 2 семестр. Тема 03. Обработка данных

Операции с переменными

Dim i As

Integer
Public x As Double
Private c As Single
Static b As Boolean
Sub MySub()
Dim b As Integer
Static y As Double
End Sub

Область General

Глобальная переменная модуля

Объявление переменной с тем же именем, что и глобальная, экранирует внешнюю переменную

Объявление статической переменной внутри процедуры – значение сохраняется между вызовами

Тело процедуры

public – переменная доступна во всех модулях приложения
private – переменная доступна только в данном модуле (аналогично Dim в General)
static – переменная размещается в статической памяти

Применение модификаторов области видимости и способа размещения в памяти

Публичная переменная (видна везде)

Приватная переменная модуля

Статическое свойство модуля класса

Слайд 16

Информатика. 2 семестр. Тема 03. Обработка данных Структура памяти приложения Размещение

Информатика. 2 семестр. Тема 03. Обработка данных

Структура памяти приложения

Размещение в памяти

зависит от способа объявления переменной и типа данных

Вершина – предельные доступные приложению адреса

ОЗУ

Дно – минимальные доступные приложению адреса

static

code

heap

stack

system

Аппаратный стек – специально организованная область памяти для обработки вызовов и хранения временных данных

«Куча» («хип») – динамически распределяемая память для хранения данных

Статическая память – статически распределяемая память для хранения данных, структура которой определяется при компиляции

Область кода – область размещения программного кода, в том числе объединенных с ним на этапах сборки и компиляции неизменных данных (констант и ресурсов)

Область для организации системных вызовов

Слайд 17

Информатика. 2 семестр. Тема 03. Обработка данных Использование стека при вычислениях

Информатика. 2 семестр. Тема 03. Обработка данных

Использование стека при вычислениях

При использовании

стека необходимо следить за используемыми размерами типов данных

Вершина стека – указатель на первую свободную ячейку

резерв стека

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

Адрес вершины стека хранится в специальных регистрах процессора SS (селектор регистра стека) и ESP (указатель стека)

стек

Растёт вниз

Инструкция Push (Втолкнуть) используется для внесения в стек промежуточных данных и ссылок, автоматически уменьшает ESP

Инструкция Pop (Извлечь) используются для получения из стека промежуточных данных и ссылок, автоматически увеличивает ESP

Обратная польская нотация позволяет записать математическое выражение в виде последовательности данных (операндов) отдельных бинарных и унарных операций

3 × (4 + 5)

3 4 5 + ×

+

3

4

5

×

3

9

27

Слайд 18

Информатика. 2 семестр. Тема 03. Обработка данных Поддержка стековых операций процессором

Информатика. 2 семестр. Тема 03. Обработка данных

Поддержка стековых операций процессором

Базовое использование

стека – сохранение состояния процессора (всех регистров) при вызове подпрограммы или обработке прерывания

резерв стека

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

Interrupt (Прерывание) – встроенная последовательность операций процессора, выполняемая в ответ на заданное событие. При обработке прерывания в стек помещается текущий адрес выборки команды, затем по номеру прерывания вычисляется ячейка в таблице прерываний, содержащая адрес процедуры обработчика и выполняется переход по этому адресу

стек

Растёт вниз

Инструкция Call (Вызвать) выполняет сохранение всех регистров стек, затем в стек помещается адрес выборки команды, а потом выполняется переход по адресу, указанному в инструкции

Слайд 19

Информатика. 2 семестр. Тема 03. Обработка данных Стековое размещение переменных При

Информатика. 2 семестр. Тема 03. Обработка данных

Стековое размещение переменных

При использовании стека

необходимо следить за используемыми размерами типов данных

Вершина стека – указатель на первую свободную ячейку

резерв стека

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

Адрес вершины стека хранится в специальных регистрах процессора SS (селектор регистра стека) и ESP (указатель стека)

стек

Растёт вниз

Инструкция Push (Втолкнуть) используется для внесения в стек промежуточных данных и ссылок, автоматически уменьшает ESP

Инструкция Pop (Извлечь) используются для получения из стека промежуточных данных и ссылок, автоматически увеличивает ESP

Обратная польская нотация позволяет записать математическое выражение в виде последовательности данных (операндов) отдельных бинарных и унарных операций

3 × (4 + 5)

3 4 5 + ×

+

3

4

5

×

3

9

27

Слайд 20

Элементы языка VBA Основные алгоритмические конструкции Информатика. 2 семестр. Тема 03. Обработка данных

Элементы языка VBA

Основные алгоритмические конструкции

Информатика. 2 семестр. Тема 03. Обработка данных