Программирование и основы алгоритмизации

Содержание

Слайд 2

Место раздела в структуре курса: Устройства и принципы функционирования вычислительных машин.

Место раздела в структуре курса:

Устройства и принципы функционирования вычислительных машин.
Прикладное программное

обеспечение.
Основы алгоритмизации и программирования с включенной средой VBA (Visual Basic for Application).
Технология (методы) разработки программного обеспечения.
Современные подходы к разработке информационных систем (объектно-ориентированное программирование).
5+ Управление техническими системами.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 3

Основы алгоритмизации и программирования в среде VBA for Excel (Visual Basic

Основы алгоритмизации и программирования в среде VBA for Excel (Visual Basic

for Application):

Средства автоматизации в Microsoft Office
Среда разработки IDE VBA и редактирование макросов
Базовые алгоритмические конструкции
Взаимодействие с хост-приложением и элементы управления
Разработка приложений на основе пользовательских форм и визуальных компонент
Работа с текстовыми файлами
Взаимодействие с системами управления базами данных
Работа в распределённых вычислительных сетях

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 4

Список рекомендуемой литературы: Кузьменко В.Г., VBA 2002. Самоучитель. – 2-е изд.

Список рекомендуемой литературы:

Кузьменко В.Г., VBA 2002. Самоучитель. – 2-е изд. –

М.: ООО «Бином-Пресс», 2004 г. – 416 с.: ил.
Гарбер Г.З., Основы программирования на Visual Basic и VBA в Excel 2007. – М.: СОЛОН-ПРЕСС, 2008. – 192 с.
Фрай К., Фриз В., Бакингем Ф., Программирование в Office Excel 2003. – С.Пб.: ИД «Пи-тер», 2004;
Гарнаев А.Ю., Использование Ms Excel и VBA в экономике и финансах. – С.Пб.: БХВ – Санкт-Петербург, 1999 

ГОСТ

19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 5

Список рекомендуемых сайтов: Википедия (http://ru.wikipedia.org); Викиучебник (http://ru.wikibook.org) раздел «Информационные технологии»; Электронная

Список рекомендуемых сайтов:

Википедия (http://ru.wikipedia.org);
Викиучебник (http://ru.wikibook.org) раздел «Информационные технологии»;
Электронная библиотека (http://wmate.ru/ebooks/cat10/);
VBA в

MSDN (http://support.microsoft.com/kb/163435/ru);
База готовых кодов на Visual Basic (http://www.vbfaq.ru/);
Справочник по VBA (http://vba-help.ru/);
Литература по Excel и VBA (http://excelvba.ru/books)
И другие не менее интересные сайты по тематике курса.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 6

Введение в ПиОА Включение поддержки средств автоматизации в MsExcel Информатика. 2 семестр. Тема 01. VBA. Введение

Введение в ПиОА

Включение поддержки средств автоматизации в MsExcel

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

01. VBA. Введение
Слайд 7

Включение вкладки «Разработчик» Ms Excel 2007 Включить Нажмите кнопку Microsoft Office

Включение вкладки «Разработчик»

Ms Excel 2007

Включить

Нажмите кнопку Microsoft Office и выберите пункт

Параметры Excel
Откройте вкладку Основные, установите флажок Показывать вкладку "Разработчик" на ленте и нажмите кнопку ОК.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 8

Включение вкладки «Разработчик» Ms Excel 2010 Выбрать Включить На вкладке Файл

Включение вкладки «Разработчик»

Ms Excel 2010

Выбрать

Включить

На вкладке Файл выберите пункт Параметры.
Выберите Настройка

ленты на левой панели.
Установите флажок Разработчик в разделе Основные вкладки справа, а затем нажмите кнопку ОК.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 9

Панель «Разработчик» для работы макросами Вкладка «Разработчик» на ленте Ms Excel

Панель «Разработчик» для работы макросами

Вкладка «Разработчик» на ленте Ms Excel 2007

Работа

с макросами

Создание графического интерфейса

Всплывающая панель системы безопасности

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 10

Безопасность при использовании Макросов макрос должен быть удостоверен цифровой подписью разработчика;

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

макрос должен быть удостоверен цифровой подписью разработчика;
цифровая подпись

должна быть действительной;
цифровая подпись должна быть действующей (не просроченной);
сертификат цифровой подписи должен быть выдан общепризнанным центром сертификации;
разработчик, удостоверивший макрос, должен быть надежным.

Перед включением макроса в документе центр управления безопасностью проверяет следующие сведения:

Предупреждение центра безопасности при хотя бы одной проблеме:

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 11

Настройка параметров безопасности Макрос не подписан – Поскольку макрос не имеет

Настройка параметров безопасности

Макрос не подписан – Поскольку макрос не имеет цифровой

подписи, разработчик макроса не может быть установлен. Следовательно, невозможно определить, безопасен ли данный макрос.
Цифровая подпись макроса не является надежной – Макрос потенциально опасен, поскольку хотя и имеет действительную цифровую подпись, но разработчик, подписавший макрос, не является доверенным издателем.
Цифровая подпись макроса недействительна – Макрос потенциально опасен, поскольку имеет недействительную цифровую подпись.
Цифровая подпись макроса просрочена – Макрос потенциально опасен, поскольку содержит цифровую подпись, срок действия которой уже истек.

Диалоговое окно параметров безопасности позволяет отключить защиту:

Включить

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 12

Панель «Разработчик» для работы макросами Открытие среды разработки VBA Открытие окна

Панель «Разработчик» для работы макросами

Открытие среды разработки VBA

Открытие окна списка макросов

Запись

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

Режим относительных ссылок при переходах

Управление записью макроса

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 13

Создание, выполнение и настройка макроса 1. Ввод наименования 2. Выполнение и

Создание, выполнение и настройка макроса

1. Ввод наименования

2. Выполнение и настройка

Информатика. 2

семестр. Тема 01. VBA. Введение
Слайд 14

Запись последовательности действий пользователя как макроса Нажать для окончания записи Установить

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

Нажать

для окончания записи

Установить курсор в целевую

ячейку
Выбрать режим ссылок (опция)
Включить запись макроса
Настроить свойства
Выполнить запланированную последовательность действий
Завершить запись

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 15

Пример разработки макроса Дано: Сводные данные стоимости аренды автомобилей Цель: Рассчитать

Пример разработки макроса

Дано: Сводные данные стоимости аренды автомобилей

Цель: Рассчитать стоимость аренды

с учётом скидок

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 16

Пример разработки макроса 1. Установить курсор в ячейку H3 2. Начать

Пример разработки макроса

1. Установить курсор в ячейку H3

2. Начать запись макроса

с именем Vvod_Formuly_Skidki

3. Ввести формулу скидки

4. Остановить запись макроса

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 17

Пример разработки макроса (продолжение) 5. Открыть список макросов 6. Выбрать макрос

Пример разработки макроса (продолжение)

5. Открыть список макросов

6. Выбрать макрос и нажать

кнопку Изменить

7. Откроется окно редактора VBA

Формула в стиле «R1C1»

Выделение ячейки «H4»*

Название макроса

*Изменение в режиме «Относительные ссылки»

Сдвиг

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 18

Пример разработки макроса (продолжение) 8. Модифицируем код макроса для заполнения соседней

Пример разработки макроса (продолжение)

8. Модифицируем код макроса для заполнения соседней ячейки

второй формулой

9. Сохраним изменения и вернемся в Excel

10. Присвоим ячейке содержащей курс доллара (L3) имя «usd»

11. Выполним макрос нажатием Ctrl + q

12. Повторим нажатие Ctrl + q нужное количество раз

Нужно следить за включённой раскладкой клавиатуры

… и продолжаем эксперименты самостоятельно !!!

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 19

Пример разработки макроса (окончание) … и продолжаем эксперименты самостоятельно !!! Информатика.

Пример разработки макроса (окончание)

… и продолжаем эксперименты самостоятельно !!!

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

Тема 01. VBA. Введение
Слайд 20

Ключевые моменты кода макроса Sub Vvod_Formuly_Skidki() ' Макрос записан 1.12.2012 '

Ключевые моменты кода макроса

Sub Vvod_Formuly_Skidki()
' Макрос записан 1.12.2012
' Быстрый вызов Ctrl

+ Q
Cells(ActiveCell.Row, ActiveCell.Column).FormulaR1C1 = "=IF(RC[-1]>7,RC[-1]*RC[-2]*0.1,0)"
Cells(ActiveCell.Row, ActiveCell.Column + 1).FormulaR1C1 = "=(RC[-2]*RC[-3]-RC[-1])*usd"
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
End Sub

ActiveWorkBook – активная рабочая книга

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

Начало и конец кода макроса, sub от subprogram (подпрограмма)

Массив (коллекция) ячеек рабочего листа
(сокращенная запись)
Полная форма записи:
Application.Workbooks(1).Worksheets(1).Cells(Row, Column)

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

Объект – активная ячейка (выделенная)

ActiveSheet – активный лист текущей рабочей книги

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 21

Структурные диаграммы Элементы и правила построения блок-схем Информатика. 2 семестр. Тема 01. VBA. Введение

Структурные диаграммы

Элементы и правила построения блок-схем

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

Введение
Слайд 22

Определение Блок-схема является формой представления алгоритма с помощью графических символов. Графические

Определение

Блок-схема является формой представления алгоритма с помощью графических символов.
Графические символы,

их размеры, а также правила построения блок-схем определены государственными стандартами.

ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения.
ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 23

Элементы блок-схем (международная традиция) Процесс. Выполнение операции или группы операций, в

Элементы блок-схем (международная традиция)

Процесс. Выполнение операции или группы операций, в результате

чего изменяется значение, форма представления или расположения данных.
Внутри символа или же в виде комментария на естественном языке или в виде формулы записываются действия, которые производятся при выполнении операции или группы операций.

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

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 24

Элементы блок-схем (продолжение) Решение. Выбор направления выполнения алгоритма или программы в

Элементы блок-схем (продолжение)

Решение. Выбор направления выполнения алгоритма или программы в зависимости

от некоторых переменных условий.
Символ используется для изображения унифицированных структур:
РАЗВИЛКА ПОЛНАЯ
РАЗВИЛКА НЕПОЛНАЯ
ВЫБОР
ЦИКЛ-ДО
ЦИКЛ-ПОКА

Модификация. Выполнение операций, меняющих команды или группу команд, изменяющих программу.
Символ используется для изображения унифицированной структуры ЦИКЛ С ПАРАМЕТРОМ. Внутри символа записывается параметр цикла с указанием начального и конечного значений, а также шаг изменения цикла, если он не равен единице.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 25

Элементы блок-схем (продолжение) Ввод-вывод . Операция обмена данными с внешним устройством

Элементы блок-схем (продолжение)

Ввод-вывод . Операция обмена данными с внешним устройством хранения,

ввода-вывода, базой данных, элементами управления или временным хранилищем в оперативной памяти.

Ручной ввод. Ввод данных оператором в процесс обработки при помощи устройства, непосредственно сопряженного с компьютером (например, клавиатура).

Дисплей. Ввод-вывод данных в случае, если непосредственно подключенное к процессору устройство воспроизводит данные и позволяет оператору вносить изменения в процессе их обработки.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 26

Элементы блок-схем (продолжение) Карта. (устар.) Ввод-вывод данных с использованием в качестве

Элементы блок-схем (продолжение)

Карта. (устар.) Ввод-вывод данных с использованием в качестве носителя

малой ёмкости, стандартизированного дизайна и, как правило, однократной записи – перфоркарты, RFID-метик или штрих-кода.

Лента. (устар.) Ввод-вывод данных в «человеко-читаемом» виде на носитель или устройство, имитирующее бумажную ленту (перфоленту, кассовую ленту, стример, «бегущую строку», последовательный канал передачи данных).

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

Документ. Ввод - вывод данных, носителем которых служит бумага.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 27

Элементы блок-схем (продолжение) Линия потока. Указание последовательности связей между символами. Правила

Элементы блок-схем (продолжение)

Линия потока. Указание последовательности связей между символами.

Правила изображения линий

потока:
1) линии потока должны быть параллельны линиям внешней рамки блок-схемы (границам листа, на котором изображена блок-схема);
2) направление линии потока сверху вниз и слева направо принимается за основное и стрелками не обозначается, в остальных случаях направление линии потока обозначается стрелками;
3) изменение направления линии потока производится под углом 90 градусов;
4) слияние (объединение) линий (кроме тривиальных случаев) должно обозначаться узлом или концевыми стрелками на линиях потоков.

Old style:

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 28

Элементы блок-схем (продолжение) Соединитель. Указание связи между прерванными линиями потока, связывающими

Элементы блок-схем (продолжение)

Соединитель. Указание связи между прерванными линиями потока, связывающими символы.

Если блок-схема состоит из нескольких частей, расположенных на одной странице, то линия потока одной части заканчивается символом СОЕДИНИТЕЛЬ, а линия потока на продолжении блок-схемы начинается с этого же символа. Внутри символов СОЕДИНИТЕЛЬ ставятся одинаковые порядковые номера, соответствующие разорванной линии потока

Межстраничный соединитель. Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах.
Данный символ служит для тех же целей, что и соединитель, но при расположении частей блок-схемы на разных страницах.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 29

Элементы блок-схем (окончание) Пуск - останов. Начало, конец, прерывание процесса обработки

Элементы блок-схем (окончание)

Пуск - останов. Начало, конец, прерывание процесса обработки данных

или выполнения программы.

Комментарий. Связь между элементами схемы и пояснениями.
Позволяет включать в блок-схему пояснения, формулы и другую информацию.

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 30

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 31

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

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

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


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

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 32

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

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 33

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

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

Размещение

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

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 34

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

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

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

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

VBA. Введение
Слайд 35

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

Слайд 36

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

Слайд 37

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

Слайд 38

Информатика. 2 семестр. Тема 01. VBA. Введение Использование литералов и констант

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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

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

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

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

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

Объект

Свойство

Метод

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

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

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

Слайд 39

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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) – Объявляет и размещает в памяти одну или несколько переменных.

Слайд 40

Типы данных Информатика. 2 семестр. Тема 01. VBA. Введение

Типы данных

Информатика. 2 семестр. Тема 01. VBA. Введение

Слайд 41

Информатика. 2 семестр. Тема 01. VBA. Введение «Наследие Basic» - явное

Информатика. 2 семестр. Тема 01. VBA. Введение

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

типа

Dim X#
Dim Y As Double

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

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

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

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

Слайд 42

Информатика. 2 семестр. Тема 01. VBA. Введение Операции с переменными Dim

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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 – переменная размещается в статической памяти

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

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

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

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

Слайд 43

Информатика. 2 семестр. Тема 01. VBA. Введение Структура памяти приложения Размещение

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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

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

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

ОЗУ

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

static

code

heap

stack

system

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

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

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

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

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

Слайд 44

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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

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

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

резерв стека

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

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

стек

Растёт вниз

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

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

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

3 × (4 + 5)

3 4 5 + ×

+

3

4

5

×

3

9

27

Слайд 45

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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

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

резерв стека

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

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

стек

Растёт вниз

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

Слайд 46

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

Информатика. 2 семестр. Тема 01. VBA. Введение

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

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

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

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

резерв стека

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

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

стек

Растёт вниз

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

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

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

3 × (4 + 5)

3 4 5 + ×

+

3

4

5

×

3

9

27

Слайд 47

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

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

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

Информатика. 2 семестр. Тема 01. VBA. Введение