Скачать презентацию ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ Шпак Галина Трофимовна Преподаватель ФСПО Скачать презентацию ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ Шпак Галина Трофимовна Преподаватель ФСПО

Основы офисного программирования.ppt

  • Количество слайдов: 151

ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ Шпак Галина Трофимовна Преподаватель ФСПО ГУАП 1 ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ Шпак Галина Трофимовна Преподаватель ФСПО ГУАП 1

Студент – это не мешок, который надо наполнить, а факел, который надо зажечь. Акад. Студент – это не мешок, который надо наполнить, а факел, который надо зажечь. Акад. В. И. Арнольд 2

Язык программирования – Visual Basic Диалекты Visual Basic: • Visual Basic 6 как автономная Язык программирования – Visual Basic Диалекты Visual Basic: • Visual Basic 6 как автономная система программирования • VBA (Visual Basic for Application) – система программирования, встроенная в MS Office • VBScript – язык программирования Интернет-сценариев, выполняемых на стороне клиента • технология ASP (Active Server Pages) - программирование Интернет-сценариев, выполняемых на стороне сервера • VB. Net – последняя версия языка Visual Basic как часть интегрированной среды программирования Visual Studio. NET Учебная среда программирования – VBA/Word/Excel 3

Интеграция VBA с Visual Studio. NET: Интеграция VBA с Visual Studio. NET: "Корпорация Microsoft объявила о создании Visual Studio Tools for Applications. Этот инструментарий предлагается как созданный на основе. Net преемник пакета Visual Basic for Applications и дает возможность пользователям, независимым производителям программного обеспечения и партнерам настраивать приложения. Visual Studio Tools for Applications поддерживает и Visual Basic, и C# и предлагает такие возможности. Net Framework, как защита и функциональность Windows Forms. 4

Перепись населения у прoграммиста: -Ваш рoднoй язык? - Как этo рoднoй язык? - Ну Перепись населения у прoграммиста: -Ваш рoднoй язык? - Как этo рoднoй язык? - Ну какoй Вы язык с детства изучали, всю жизнь испoльзoвали? - Basic. - Да нет, настoящий. - А! Настoящий! Тoгда Си. 5

ЛИТЕРАТУРА А. Основная: 1. Кузьменко В. Г. VBA 2000 / VBA 2002. – М. ЛИТЕРАТУРА А. Основная: 1. Кузьменко В. Г. VBA 2000 / VBA 2002. – М. : ЗАО "Издательство БИНОМ", 2000; 2002. (Главы 1 – 8 и 11). 2. Михеев Р. Н. VBA и программирование в MS Office для пользователей. – СПб. : БХВ-Петербург, 2006. Гл. 1 -5 и 10. Б. Дополнительная: 1. Гарнаев А. Ю. VBA в подлиннике. – СПб. : БХВ-Петербург, 2005 2. Штайнер Г. Visual Basic 6. 0 для приложений. Справочник. – М. : Лаборатория базовых знаний, 2000. 3. Карпов Б. VBA: специальный справочник – СПб: Питер, 2002. (Главы 1, 2 и Приложение А). 4. Волченков Н. Г. Учимся программировать: Visual Basic 5. – М. : "Диалог-МИФИ", 1998 (и след. изд. ) 5. Санна П. и др. Visual Basic для приложений в подлиннике. – СПб. : BHV – Санкт-Петербург. , 1997 (и след. изд. ) 6 6. Алиев В. К. Visual Basic. – М. : СОЛОН-Р, 2002.

ТЕМАТИЧЕСКИЙ ПЛАН 1. Преимущества офисного программирования 2. Среда VBA. Правила записи программ. Представление данных ТЕМАТИЧЕСКИЙ ПЛАН 1. Преимущества офисного программирования 2. Среда VBA. Правила записи программ. Представление данных в программе. 3. Экранный ввод-вывод. 4. Оператор присваивания. Программирование вычислений. 5. Работа со строками. 6. Управляющие структуры. . 7. Клавиатурные макросы. 8. Общие сведения о технологии программирования. 7

Введение. Определения RAD (Rapidly Application Development) – технология разработки программ, при которых программы составляются Введение. Определения RAD (Rapidly Application Development) – технология разработки программ, при которых программы составляются из уже готовых, отлаженных и проверенных блоков – компонент, после чего их взаимодействие и уникальная логика описывается на языке программирования 8

Определения. Продолжение Событийно-управляемое программирование – стиль или технология программирования, при котором выполнение блоков программы Определения. Продолжение Событийно-управляемое программирование – стиль или технология программирования, при котором выполнение блоков программы происходит в ответ на события, а не в заранее определенном порядке. Источником событий обычно является пользователь. 9

Определения. Продолжение Объектно-ориентированное программирование (ООП) – программирование, основанное на моделировании предметной области при помощи Определения. Продолжение Объектно-ориентированное программирование (ООП) – программирование, основанное на моделировании предметной области при помощи объектов. 10

Определения. Продолжение Каждый объект отражает определенную самостоятельную сущность предметной области со своими данными и Определения. Продолжение Каждый объект отражает определенную самостоятельную сущность предметной области со своими данными и возможностями. На него можно воздействовать вызовом принадлежащих объекту процедур( методов) или установкой его параметров (свойств). Программа состоит из объектов, которые взаимодействуют друг с другом. 11

Определения. Продолжение Класс есть некое множество объектов, имеющих общую структуру и общее поведение. Любой Определения. Продолжение Класс есть некое множество объектов, имеющих общую структуру и общее поведение. Любой конкретный объект является экземпляром какого-либо класса. Класс называют также типом объекта. 12

Пример. Система управления аквариумом Классы: Рыбка, Водоросль, Подсветка. Класс Рыбка состоит из объектов: Рыбка Пример. Система управления аквариумом Классы: Рыбка, Водоросль, Подсветка. Класс Рыбка состоит из объектов: Рыбка 1, Рыбка 2, Рыбка 3 Класс Подсветка состоит из объектов: Подсветка 1, Подсветка 2 Свойство: Яркость (число, определяющее яркость свечения лампочки) Методы: Включить, Выключить 13

Продолжение Пример. Система управления аквариумом Включение лампочки 1: Подсветка 1. Включить Удвоение яркости: Подсветка Продолжение Пример. Система управления аквариумом Включение лампочки 1: Подсветка 1. Включить Удвоение яркости: Подсветка 1. Яркость=Подсветка 1. Яр кость*2 Точка отделяет имя объекта от имени принадлежащего ему метода или свойства 14

Офисное программирование • Пользователь всегда работает в единой офисной среде независимо от документа • Офисное программирование • Пользователь всегда работает в единой офисной среде независимо от документа • Функции пользователю предоставляет офисная среда • Пользователь сам создает простые виды документов 15

Состав Office 2003 • • • Word Excel Power Point Outlook Access Инструментальные средства Состав Office 2003 • • • Word Excel Power Point Outlook Access Инструментальные средства Office Tools 16

Библиотека объектов Office 2003 Совокупность библиотек Office 2003 представляет каркас документов, порождаемых в программной Библиотека объектов Office 2003 Совокупность библиотек Office 2003 представляет каркас документов, порождаемых в программной среде. Открывая новый документ в приложении Office, выбираются автоматически нужные библиотеки, которые и составят каркас этого документа 17

Каркас документа Word 18 Каркас документа Word 18

Добавление новых библиотек в каркас • Войти в режим редактора Tools|Macro выбрать пункт Visual Добавление новых библиотек в каркас • Войти в режим редактора Tools|Macro выбрать пункт Visual Basic Editor ( Alt + F 11) • Меню Tools | References добавить нужные библиотеки 19

Расширения каркаса документов 20 Расширения каркаса документов 20

Объекты Office. Application. Active. Document ' Можно короче Application. Active. Workbook. Active. Sheet. Range( Объекты Office. Application. Active. Document ' Можно короче Application. Active. Workbook. Active. Sheet. Range("A 1") = "Hi” ' Можно и так Active. Sheet. Range ("A 2") = "By-By" 'Можно даже так! Range("A 3") = "I'm glad to see you" ‘А это только так. Quit не является глобальным методом. Application. Quit 21

Практика 22 Практика 22

Основы технологии программирования на языке Visual Basic for Applications (VBA относится к языкам объектно Основы технологии программирования на языке Visual Basic for Applications (VBA относится к языкам объектно -ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с помощью объектов. 23

Объекты Объект - основной элемент VBA. Примеры объектов: лист Excel - Sheet, рабочая книга Объекты Объект - основной элемент VBA. Примеры объектов: лист Excel - Sheet, рабочая книга - Workbook, ячейка - Cell, диапазон ячеек Range, приложение - Application, пользовательская форма - User. Form, кнопка - Command. Button. 24

Семейства Объекты одного и того же типа объединены в семейства. Например, рабочие книги объединены Семейства Объекты одного и того же типа объединены в семейства. Например, рабочие книги объединены в семейство рабочих книг — Workbooks, листы объединены в семейство листов - Sheets, ячейки объединены в семейство ячеек -Cells. 25

Иерархия Все объекты в VBA находятся на разных уровнях иерархии: некоторые объекты содержат другие Иерархия Все объекты в VBA находятся на разных уровнях иерархии: некоторые объекты содержат другие объекты. Например, рабочая книга (Workbook) содержит листы (Sheets), лист содержит ячейки (Cells). Объектом самого высокого уровня является приложение (Application). Иерархия определяет связь между объектами и показывает пути доступа к ним. 26

Указание объекта Application. Workbooks( Указание объекта Application. Workbooks("Учет"). Sheets("Сотр удники"). Cells(2, l) полная ссылка на ячейку А 2 (второй ряд, первый столбец) на листе Сотрудники в рабочей книге Учет 27

Форма Формы позволяют осуществлять ввод данных на листы Excel. Особенно это важно, когда на Форма Формы позволяют осуществлять ввод данных на листы Excel. Особенно это важно, когда на листе создается список. Список - это таблица, строки которой содержат однородную информацию. В терминологии Excel список называют также базой данных, при этом строки таблицы -это записи базы данных, а столбцы - поля записей. 28

Методы Над объектами можно совершать различные действия, например, лист или диапазон выбрать/выделить (Select), очистить Методы Над объектами можно совершать различные действия, например, лист или диапазон выбрать/выделить (Select), очистить ячейку (Clear), закрыть приложение (Quit), показать пользовательскую форму (Show) или скрыть (Hide). Действие, выполняемое над объектом, называется методом. Метод записывают справа от объекта через точку, т. е. синтаксис применения метода: Объект. Метод. 29

Примеры применения методов: • Cells(2, 1 ). С 1 еаг - очистить ячейку А Примеры применения методов: • Cells(2, 1 ). С 1 еаг - очистить ячейку А 2; • Application. Quit - приложение закрыть; • Sheets("Сотрудники"). Select - выбрать лист Сотрудники; • Range("A: A"). Select - выделить столбец А; • User. Form 1. Show - пользовательскую форму номер один показать; • User. Forml. Hide - пользовательскую форму номер один скрыть. 30

Свойства Объекты имеют характеристики, например, такие как имя диапазона (Name), надпись на кнопке (Caption), Свойства Объекты имеют характеристики, например, такие как имя диапазона (Name), надпись на кнопке (Caption), содержимое поля ввода (Text), значение ячейки, переключателя или флажка (Value) и др. Характеристики объекта называются свойствами. Свойствам можно присваивать определенные значения. Синтаксис установки значения свойства: Объект. Свойство=Значение. Свойства. 31

Примеры свойств • Range(“A 2: A 8”). Name=”Opганизации” - свойству Name диапазона Range(“A 2: Примеры свойств • Range(“A 2: A 8”). Name=”Opганизации” - свойству Name диапазона Range(“A 2: A 8”) присвоить значение «Организации» ; • User. Forml. Text. Boxl. Text = “”- очистить (присвоить пустое значение) поле ввода номер один в пользовательской форме номер один; • User. Forml. Check. Boxl. Value = True установить флажок номер один в пользовательской форме номер один. 32

Методы и свойства некоторых объектов VBA 33 Методы и свойства некоторых объектов VBA 33

 События Событие - это действие, распознаваемое объектом, например нажатие кнопки или изменение содержимого События Событие - это действие, распознаваемое объектом, например нажатие кнопки или изменение содержимого поля. На событие можно запрограммировать отклик. Суть программирования на VBA как раз и заключается в этих двух понятиях: событие и отклик на него. Если пользователь, например, нажимает кнопку (т. е. щелкает по ней мышкой), тогда в качестве отклика на это событие выполняется программа, которая называется процедурой обработки события. Если такая программа не создана, то ничего не происходит. 34

Т е м а 1. Среда VBA. Правила записи программ. 1. Среда VBA. Слайд Т е м а 1. Среда VBA. Правила записи программ. 1. Среда VBA. Слайд 5 2. Состав языка VBA. Правила записи программ. Слайд 7 3. Дисциплина программирования (начальные рекомендации) 4. «Моя первая программа» Слайд 9 Слайд 11 35

1. Среда VBA. Вход в среду: Сервис-Макрос-Редактор Visual Basic {Alt+F 11} Сервис-Макросы… {Alt+F 8} 1. Среда VBA. Вход в среду: Сервис-Макрос-Редактор Visual Basic {Alt+F 11} Сервис-Макросы… {Alt+F 8} Способы хранения программ VBA: • в шаблоне (файл Normal. dot) • в документе (файл My. Document. doc) • в архиве (файл My. Programs. bas) Справочная система: • Контекстная справка – {Ctrl + F 1} • Всплывающая подсказка - { Ctrl + I } Специальные обозначения: […] – необязательная часть (optional) { X | Y | Z } – альтернативные элементы 36

37 37

2. Состав языка VBA. Правила записи программ. Состав языка: • Стандартные операторы языка VB. 2. Состав языка VBA. Правила записи программ. Состав языка: • Стандартные операторы языка VB. • Операторы обращения к командам Office-приложения (Word) • Операторы управления курсором (в т. ч. с выделением текста) NB: Все действия, которые пользователь может выполнить в Word'е, используя мышь и клавиатуру, можно запрограммировать в VBA. Например: o изменить форматирование части документа; o выполнить поиск и замену; o открыть новый или сохранить открытый документ и т. д. 38

Правила записи программ: 1) Оформление программы: Sub … End Sub 2) Как правило, 1 Правила записи программ: 1) Оформление программы: Sub … End Sub 2) Как правило, 1 оператор на строке ( ~1000 символов!). Если несколько – разделяются двоеточием: A = 5 : B = 3 3) При необходимости перенести часть оператора на следующую строку – символы " _" 4) В именах рекомендуется использовать префиксы, определяющие тип данных, иногда - систему, в которой определяются данные-константы. Например: int. X – целочисленная переменная X (тип Integer) vb. OKCancel – константа, определяющая набор командных кнопок в окне вывода сообщения (определена в системе программирования VB). 39

3. Дисциплина программирования (начальные рекомендации) 1) Используйте осмысленные имена! Ср. : Заменить (Текст, Строка. 3. Дисциплина программирования (начальные рекомендации) 1) Используйте осмысленные имена! Ср. : Заменить (Текст, Строка. Образец, Строка. Замены) и F 1 (A 1, A 2, A 3) 2) Пишите подробный комментарий; комментируйте назначение имен. Как НЕ надо комментировать: Стоимость = Цена * Количество ' – Умножаем цену на количество или: ' – Вычисляем стоимость товара 3) Все, что уже написано, повторяйте копированием!. 40

4) Форматируйте текст программы (отступы!) For k = 1 To 100 Оператор1 Оператор2 Оператор3 4) Форматируйте текст программы (отступы!) For k = 1 To 100 Оператор1 Оператор2 Оператор3 … Next k 5) Не забудьте о контроле входных данных: Число. Прописью ( Число. Цифрами ) Число. Прописью ( Иванов ) = ? ? 41

3. 3. "Моя первая программа" Sub Box. Hello( ) '========================== ' Box. Hello Макрос № 1 ' Макрос создан 25. 11. 09, разработчик Иванов И. И. ' Простой пример вывода сообщения пользователю. '========================== Msg. Box "Привет, Мир! Это моя первая программа. Иванов И. И. , группа 999. " End Sub 42

Sub Ins. Hello( ) '========================== ' Ins. Hello Макрос № 2 ' Макрос создан Sub Ins. Hello( ) '========================== ' Ins. Hello Макрос № 2 ' Макрос создан 25. 11. 09, разработчик Иванов И. И. ' Простой пример вставки текста в документ '========================== Selection. Type. Text "Привет, Мир! Это моя вторая программа. _ Иванов И. И. , группа 999. " End Sub 43

Тема 2. Представление данных в программе. 1. Константы и переменные. 2. Типы данных и Тема 2. Представление данных в программе. 1. Константы и переменные. 2. Типы данных и их описание в программе. 3. Преобразование данных. 44

1. Константы и переменные. Константы – данные, значения которых фиксированы и при выполнении программы 1. Константы и переменные. Константы – данные, значения которых фиксированы и при выполнении программы не могут меняться. Числовые константы представляются обычным способом: a) как целые числа - 1234 b) как числа с десятичной точкой - 3. 14159 c) как числа с порядком - 9. 1 E – 28 (масса электрона в г. ) = 9. 1 * 10 - 28 Строковые константы – текст в кавычках: "Привет, Мир!" "Иванов" Логические (булевы) константы – True, False 45

В программах часто используются именованные константы. Это улучшает понимание текста программы и позволяет легко В программах часто используются именованные константы. Это улучшает понимание текста программы и позволяет легко изменять значение константы во всей программе, меняя только ее определение. a) стандартные – определяются в системе программирования VB (префикс vb), либо в базовой Office–программе (для Word префикс wd): vb. OKOnly – код кнопки OK ( = 0) vb. Exclamation – код пиктограммы "!" ( = 48) wd. Underline. Single – код, задающий подчеркивание ( = 1) b) пользовательские - определяются пользователем в своей программе. Const PI As Double = 3. 14159 Const tez. SC_Proc As Integer = 6 46

Переменная – это область внутренней памяти, которой присвоено имя, зарезервированная для хранения данных определенного Переменная – это область внутренней памяти, которой присвоено имя, зарезервированная для хранения данных определенного типа. В ходе выполнения программы в эту область памяти могут записываться разные данные, так что значение переменной может меняться. Правила выбора имен переменных: a) начинается с буквы b) может включать буквы, цифры и некоторые спецзнаки ("_") c) не содержит знаков препинания, пробелов, скобок d) не совпадает с именами команд и другими зарезервированными словами VB (If, vb. OKOnly и т. д. ) e) длина не более 255 Письмo в кoмпьютерный сервисный центр: Этанутипауменяпрoбелпoлoмалсячёделатьтo? Ответ: - Настoящие_прoграммисты_не_пoльзуются_прoбелами. 47

2. Типы данных и их описание в программе. Для каждой переменной указывается тип данных, 2. Типы данных и их описание в программе. Для каждой переменной указывается тип данных, для хранения которых она предназначена. Рекомендуется тип переменной указывать в имени в форме типового префикса (префиксы Реддика). 48

49 49

Определение типа данных: Dim int. X As Integer ' - тип можно выбрать из Определение типа данных: Dim int. X As Integer ' - тип можно выбрать из всплывающего списка В общем виде: Dim <имя переменной> As <тип данных> Такая схема определяет правила записи команды – ее синтаксис. <текст в угловых скобках> - используется в качестве «местозаместителя» ; текст поясняет, что должно стоять в указанном месте, например, <строка> означает, что в данном месте должна быть строка, но эта строка произвольна. Переменная, которая перед употреблением в программе не определена, по умолчанию получает тип Variant. Соответственно, int. X будет занимать 2 Б, а vnt. X (или X) - 16 Б. 50

Семантика оператора Dim (выполняемые действия): 1) резервирует область памяти заданного размера; 2) связывает ее Семантика оператора Dim (выполняемые действия): 1) резервирует область памяти заданного размера; 2) связывает ее адрес с именем переменной; 3) инициализирует переменную. Инициализация переменных: • числа - 0; • строки - "" (пустая строка) 51

Массив – перенумерованная совокупность однотипных данных, хранящаяся в оперативной памяти и имеющая одно общее Массив – перенумерованная совокупность однотипных данных, хранящаяся в оперативной памяти и имеющая одно общее имя. Число элементов в совокупности указывается в определении соответствующей переменной: Dim int. X (10) As Integer ' - массив состоит из 11 (!) целых чисел Чтобы указать в программе конкретный элемент массива, нужно указать имя массива и порядковый № элемента (начиная с 0 !): int. X (5) = 1 Номер называется индексом массива. У элементов массива может быть два и более номеров. Соответственно, массивы могут быть одномерными, двумерными и т. д. Dim int. X (9, 1) As Integer ' определение двумерного массива ' – таблица в 10 строк, 2 столбца 52

3. Преобразование данных A. Преобразование число – текст Математические операции могут выполняться только с 3. Преобразование данных A. Преобразование число – текст Математические операции могут выполняться только с числами, представленными в числовых форматах. Двоичный код символа "1" = 49; двоичный код символа "2" = 50 "1" + "2" = 99 ? ! Функция Val ( ) преобразует число, записанное в текстовой форме в число в формате числовой переменной: lng. X = Val ( "1234567" ) ' 7+10= 17 Б преобразуются в 4 Б Функция Str ( ) преобразует число в формате числовой переменной в число, записанное в текстовой форме: str. S = Str ( 1234567 ) ' 4 Б преобразуются в 17 Б 53

B. Преобразование символ – код Функция Asc ( ) возвращает ASCII-код заданного символа: int. B. Преобразование символ – код Функция Asc ( ) возвращает ASCII-код заданного символа: int. Cod = Asc ("1" ) ' int. Cod = 49 int. Cod = Asc ("Aлат" ) ' int. Cod = 65 Функция Chr ( ) возвращает символ, соответствующий заданному коду: str. Symbol = Chr ( 65 ) ' str. Symbol = "Aлат" Замечание: 0. . 31 – управляющие коды: 10 – перевод строки 13 – возврат каретки Chr ( 13 ) – вызовет перевод курсора в начало след. строки (эквивалент символа «конец абзаца» в Word). 54

Тема 3. Экранный ввод-вывод. 1. Ввод-вывод в диалоговом окне 2. Ввод-вывод в окне документа Тема 3. Экранный ввод-вывод. 1. Ввод-вывод в диалоговом окне 2. Ввод-вывод в окне документа 55

1. Ввод-вывод в диалоговом окне 1 А. Вывод сообщения Синтаксис команды Msg. Box: Msg. 1. Ввод-вывод в диалоговом окне 1 А. Вывод сообщения Синтаксис команды Msg. Box: Msg. Box <Текст сообщения>, [<Вид окна>], [<Заголовок окна>] <Вид окна> = <Командные кнопки> + <Пиктограмма> + <№ активной кнопки> Семантика очевидна. Пример: Msg. Box "Конец работы", vb. OKCancel + vb. Exclamation, _ "Завершение процесса" Значение аргументов по умолчанию: <Вид окна> = vb. OKOnly ( =0 ); /Пиктограмма отсутствует/ <Заголовок окна> = "Microsoft Word" 56

1 Б. Ввод сообщения - функция Input. Box Функция - подпрограмма, получающая набор исходных 1 Б. Ввод сообщения - функция Input. Box Функция - подпрограмма, получающая набор исходных данных (аргументы) и возвращающая вычисленное ею значение. Y = F ( X 1 , …) Пример использования: str. Год. Рожд = Input. Box ("Ваш год рождения? ", _ "Вопрос пользователю: ", "1986") Синтаксис функции Input. Box : Input. Box (<Инструкция>, [<Заголовок окна>], [<Умолчание>] ) Функция возвращает текст, введенный пользователем. 57

58 58

2. Ввод-вывод в окне документа 2 А. Вывод сообщения: Selection. Type. Text <Вставляемый в 2. Ввод-вывод в окне документа 2 А. Вывод сообщения: Selection. Type. Text <Вставляемый в документ текст> 2 Б. Получение текста из документа: str. Текст. Из. Документа = Selection. Text 59

Sub Wild. Crd 1() ' ========================= ' Wild. Crd 1 Макрос № 3 ' Sub Wild. Crd 1() ' ========================= ' Wild. Crd 1 Макрос № 3 ' Макрос создан 15. 09. 04 , разработчик Иванов И. И. ' Вывод текста в кавычках (в диалоговое окно) ' ========================= Msg. Box Chr (34) & "Зенит" & Chr (34) & " чемпион!", vb. Yes. No + vb. Exclamation, "Вывод текста в кавычках: " End Sub Wild. Crd 1 A() ' ========================= ' Wild. Crd 1 A Макрос № 3 A ' Макрос создан 15. 09. 04 , разработчик Иванов И. И. ' Вывод текста в кавычках (в окно документа) ' ========================= 60

Sub Wild. Crd 2() ' ========================= ' Wild. Crd 2 Макрос № 4 ' Sub Wild. Crd 2() ' ========================= ' Wild. Crd 2 Макрос № 4 ' Макрос создан 15. 00, разработчик Иванов И. И. 'Вывод текста в несколько строк (в диалоговое окно) ' ========================= Msg. Box "Черный вечер, " & Chr(13) & "Белый снег. " & Chr(13) & "Ветер, ветер!", vb. OKCancel + vb. Exclamation, "Вывод многострочного текста: " End Sub Wild. Crd 2 A() ' ========================= ' Wild. Crd 2 A Макрос № 4 A ' Макрос создан 15. 00, разработчик Иванов И. И. 'Вывод текста в несколько строк (в окно документа) ' ========================= 61

Т е м а 4. Оператор присваивания. Программирование вычислений. 1. Оператор присваивания 2. Программирование Т е м а 4. Оператор присваивания. Программирование вычислений. 1. Оператор присваивания 2. Программирование вычислений 62

1. Оператор присваивания Примеры использования: int. X = 5 str. First. Name = 1. Оператор присваивания Примеры использования: int. X = 5 str. First. Name = "Федор" Синтаксис: <имя переменной> = <выражение, соответствующее типу переменной> Семантика: Вычисляется выражение справа, результат вычисления присваивается переменной слева. Примеры: (1) X = X + 1 (2) T = X: X = Y: Y = T (3) A = X*X: A = A*A: A = A*X 63

Примеры неправильного использования: int. X = Примеры неправильного использования: int. X = "Федор" str. First. Name = 5 - сообщение об ошибке: Type mismatch (Несовпадение типов) Y = 2 X Z = 3 Sin(X) - пропущен знак умножения (в 1 -ом примере: предположение интерпретатора - X лишний) 2*A = 10*B - слева может быть только переменная 64

2. Программирование вычислений Чтобы выполнить математические вычисления, нужно написать формулу, определяющую порядок вычислений, и 2. Программирование вычислений Чтобы выполнить математические вычисления, нужно написать формулу, определяющую порядок вычислений, и получившееся выражение присвоить числовой переменной. В формулах могут использоваться: - знаки арифметических действий: "+", "-", "*", "/" - знак возведения в степень: ^ (X^5) круглые скобки Символы стандартных математических функций: Sin(X), Cos(X), Sqr(X), Int(X), Log (X), Int (X), Exp(X) = ex Пример: Y = (A + B)^2 / Sqr (C^2 + D^2) 65

Sub My. Age() ' ======================== My. Age Макрос № 5 ' Макрос создан 15. Sub My. Age() ' ======================== My. Age Макрос № 5 ' Макрос создан 15. 09. 04, разработчик Иванов И. И. ' Простые вычисления (С ПРЕОБРАЗОВАНИЕМ ФОРМАТОВ) ' и диалог с пользователем ' ======================== Dim str. God. Rozd As String Dim str. Vozrast As String ‘– год рождения и возраст в строковом формате Dim int. God. Rozd As Integer Dim int. Vozrast As Integer ‘– те же переменные в числовом формате Dim str. Out. Message As String ‘текст сообщения пользователю 66

‘Запрашиваем год рождения: str. God. Rozd = Input. Box( ‘Запрашиваем год рождения: str. God. Rozd = Input. Box("Ваш год рождения? ", "Вопрос пользователю: ", "1986") ‘Преобразуем его в числовой формат: int. God. Rozd = Val ( str. God. Rozd ) ‘Вычисляем возраст: int. Vozrast = Year(Date) - int. God. Rozd ‘Преобразуем его в строку: str. Vozrast = Str(int. Vozrast) ‘Формируем выходное сообщение: str. Out. Message = "В этом году Вам исполняется " & str. Vozrast & " лет" ‘Выводим сообщение о возрасте: Msg. Box str. Out. Message, vb. Information + vb. Yes. No, "Ваш возраст: " End Sub 67

Sub My. Age_A() ' ======================== My. Age_A Макрос № 5 A ' Макрос создан Sub My. Age_A() ' ======================== My. Age_A Макрос № 5 A ' Макрос создан 15. 09. 04, разработчик Иванов И. И. ' Простые вычисления и диалог с пользователем ' ======================== ‘Запрашиваем год рождения: God. Rozd = Input. Box("Ваш год рождения? ", "Вопрос пользователю: ", "1986") ‘Вычисляем возраст: Vozrast = Year(Date) - God. Rozd ‘Формируем выходное сообщение: Out. Message = "В этом году Вам исполняется " & Vozrast & "лет" ‘Выводим сообщение о возрасте: Msg. Box Out. Message, vb. Information + vb. Yes. No, "Ваш возраст: " End Sub 68

Sub Pow. X_4() ' ======================== ' Pow. X_4 Макрос № 6 ' Макрос создан Sub Pow. X_4() ' ======================== ' Pow. X_4 Макрос № 6 ' Макрос создан 28. 12. 99, разработчик Иванов И. И. ' Возведение заданного пользователем числа в 4 степень ' ======================== Dim int. X As Integer ' заданное пользователем число Dim dbl. Y As Double ' результат вычисления Dim str. X As String, str. Y As String ' то же в текстовом формате ‘Просим пользователя ввести любое число: ‘Преобразуем его в числовой формат: ‘Вычисляем степень: ‘Преобразуем полученный результат в строку: ‘Выводим сообщение: (кнопки ДА и НЕТ, пиктограмма "Информация") ‘Сообщение должно иметь, например, вид: ‘ 4 -ая степень числа 5 ( str. X ) равна 625 ( str. Y ) 69 End Sub

Sub Pow. X_4_A() ' ======================== ' Pow. X_4_A Макрос № 6 A ' Макрос Sub Pow. X_4_A() ' ======================== ' Pow. X_4_A Макрос № 6 A ' Макрос создан 28. 12. 99, разработчик Иванов И. И. ' Возведение заданного пользователем числа в 4 степень ' ======================== ' заданное пользователем число X ' результат вычисления Y ‘Просим пользователя ввести любое число: ‘Вычисляем степень: ‘Выводим сообщение: (кнопки ДА и НЕТ, пиктограмма "Информация") End Sub Сообщение должно иметь, например, вид: 4 -ая степень числа 5 ( X ) равна 625 ( Y ) 70

Тема 5. Работа со строками Единственная операция – конкатенация: catena - цепь, связь; concatenate Тема 5. Работа со строками Единственная операция – конкатенация: catena - цепь, связь; concatenate – сцеплять, связывать. - Объединение двух строк в одну & Пример использования: str. S 1 = "кол": str. S 2 = "лекция": str. S 3 = str. S 1 & str. S 2 71

Основные строковые функции 1) Len (<строка>) - возвращает длину строки. (Строка может быть представлена Основные строковые функции 1) Len (<строка>) - возвращает длину строки. (Строка может быть представлена константой, переменной или строковым выражением) Пример использования: int. N = Len ("коллекция") ' int. N = ? 2) Left (<строка>, <число символов>) 3) Right (<строка>, <число символов>) - возвращает начальную (Left) / конечную(Right) часть cтроки указанной длины. Пример использования: str. S = Left ( "коллекция", 3 ) ' str. S = ? 72 str. S = Right ( "коллекция", 6 ) ' str. S = ?

4) Mid ( <строка>, <начало> [, <число символов>] ) - возвращает часть cтроки указанной 4) Mid ( <строка>, <начало> [, <число символов>] ) - возвращает часть cтроки указанной длины, начиная с позиции начало. Если аргумент <число символов> отсутствует, возвращает конец строки. Примеры использования: str. S 1 = Mid ( "криминалист", 4, 4 ) ' str. S 1 = ? str. S 2 = Mid ("криминалист", 8, 4 ) ' str. S 2 = ? str. S 3 = Mid ("криминалист", 8 ) ' str. S 3 = ? str. S 4 = Mid ("криминалист", 44, 4 ) ' str. S 4 = ? 73

5) Instr ( [<начало>, ] <текст>, <строка-образец> [, <способ сравнения>] ) Функция обеспечивает поиск 5) Instr ( [<начало>, ] <текст>, <строка-образец> [, <способ сравнения>] ) Функция обеспечивает поиск нужного слова (фрагмента) в указанном тексте. - возвращает целое число, указывающее, с какой позиции найдена строка-образец в заданном тексте. - Если строка-образец не найдена, возвращает 0. Поиск в заданном тексте производится с позиции начало; если аргумент <начало> отсутствует, поиск производится от начала текста. Аргумент <способ сравнения> задается одной из двух именованных констант: vb. Binary. Compare ( =0 ) – точное сравнение (сравнение кодов символов) vb. Text. Compare ( =1 ) – сравнение на совпадение букв (без учета регистра) 74

Примеры использования: int. N 1 = Instr ( Примеры использования: int. N 1 = Instr ( "криминалист", "мина" ) ' int. N 1 = ? int. N 2 = Instr ("криминалист", "лист" ) ' int. N 2 = ? int. N 3 = Instr ( "криминалист", "и" ) ' int. N 3 = 3 int. N 4 = Instr (8, "криминалист", "и" ) ' int. N 4 = 9 int. N 5 = Instr ( "криминалист", "код" ) ' int. N 4 = 0 ! 75

Чем отличается начинающий программист от законченного? Hачинающий считает, что в килобайте 1000 байт, а Чем отличается начинающий программист от законченного? Hачинающий считает, что в килобайте 1000 байт, а законченный - что в килограмме 1024 грамма. 76

Тема 6. Операторы, управляющие работой программы 1. Оператор условного перехода. 2. Операторы цикла. 3. Тема 6. Операторы, управляющие работой программы 1. Оператор условного перехода. 2. Операторы цикла. 3. Оператор ветвления. 77

1. Оператор условного перехода. Линейный синтаксис: If <условие> Then <операторы. ДА> [ Else <операторы. 1. Оператор условного перехода. Линейный синтаксис: If <условие> Then <операторы. ДА> [ Else <операторы. НЕТ> ] Блочный синтаксис: If <условие> Then <операторы. ДА> [ Else <операторы. НЕТ>] End If Семантика: Проверяется условие; если условие истинно, - выполняются <операторы. ДА>; в противном случае выполняются <операторы. НЕТ>. 78

Условие – операция сравнения двух выражений, результатом которой должны быть Истина (True), либо Ложь Условие – операция сравнения двух выражений, результатом которой должны быть Истина (True), либо Ложь (False). Сравниваемые выражения должны быть одного типа (строковые, числовые, даты, … ) Для сравнения выражений используются отношения: =, >, <, >=, <> Пример использования: If A = B Then Msg. Box "A и B равны" Else Msg. Box "A и B не равны" End If 79

"АБВ "). ">"," src="https://present5.com/presentation/3/104647669_329221275.pdf-img/104647669_329221275.pdf-80.jpg" alt="Условия для строк: "=" - означает точное совпадение строк; ("АБВ" <> "АБВ "). ">"," /> Условия для строк: "=" - означает точное совпадение строк; ("АБВ" <> "АБВ "). ">", "<", ">=", "<=" - проверяют лексикографический (алфавитный) порядок: "Б" > "А", "В" > "Б"; "а (=97)" > "A (=65)"(!) и т. д. "АДАМ" > "АДА", "АДА" > "АД", "АД " > "АД" и т. д. Для сравнения строк дополнительно используется отношение Like, которое обеспечивает сравнение строки с заданным шаблоном. 80

Примеры шаблонов: ? – любой одиночный символ; # – любая одиночная цифра; * – Примеры шаблонов: ? – любой одиночный символ; # – любая одиночная цифра; * – любое число любых символов; […] – любой из символов списка; [!…] – любой из символов, отсутствующих в списке; [symb 1 – symb 2] – любой из символов в диапазоне кодов от symb 1 до symb 2. Примеры использования отношения Like : 1) S 1 Like "bi[!nt]*" - отождествится с "biological"; - не отождествится с "bit", "binary". 2) S 1 Like "*[A-z]*" - отождествится с любой строкой, содержащей хотя бы одну латинскую букву. 81

Программист ставит перед сном на тумбочку два cтакана: Один с водой - на случай, Программист ставит перед сном на тумбочку два cтакана: Один с водой - на случай, если захочет ночью пить. А второй пустой - на случай, если не захочет. 82

Использование логических связок при формулировке условий В условиях можно использовать логические связки And, Or, Использование логических связок при формулировке условий В условиях можно использовать логические связки And, Or, Not Пример использования (проверка на пенсионный возраст): If ( str. Пол = "м" And int. Возраст >= 60 ) Or _ ( str. Пол = "ж" And int. Возраст >= 55 ) Msg. Box "Пенсионер" Else Msg. Box "Нужно купить билет!" End If Then 83

Использование нескольких условий В операторе If можно последовательно проверять несколько условий: Пример – определение Использование нескольких условий В операторе If можно последовательно проверять несколько условий: Пример – определение типа символа: If int. Cod. Symb >= 48 And int. Cod. Symb <= 57 Then Msg. Box "Цифра" Else. If _ ( int. Cod. Symb >= 65 And int. Cod. Symb <= 90 ) Or _ ( int. Cod. Symb >= 97 And int. Cod. Symb <= 122 ) Then Msg. Box "Латинская буква" Else. If _ ( int. Cod. Symb >= 192 And int. Cod. Symb <= 255) Then Msg. Box "Русская буква" Else Msg. Box "Это не цифра и не буква!" 84 End If

Sub Right. Ans() ' ========================= 'Right. Ans Макрос № 7 'Макрос создан 30. 12. Sub Right. Ans() ' ========================= 'Right. Ans Макрос № 7 'Макрос создан 30. 12. 99, разработчик Иванов И. И. ' "ОРАКУЛ" ' – отвечает правильно на любой вопрос, требующий ответа ‘ "ВЕРНО" или "НЕВЕРНО" ' ========================= Dim str. Query As String 'текст вопроса Dim str. Last 2 Char As String 'последние 2 символа ' Принимаем вопрос от пользователя: str. Query = Input. Box ("Задайте любой вопрос, требующий ответа ВЕРНО или НЕВЕРНО", "Компьютерный мозг: ") ' Вырезаем 2 последних символа: str. Last 2 Char = Right(str. Query, 2) 85

' Сравниваем окончание с образцом и выводим ответ: If str. Last 2 Char = ' Сравниваем окончание с образцом и выводим ответ: If str. Last 2 Char = " ? " Then Msg. Box "Верно", vb. Information + vb. Yes. No, "Ответ на Ваш вопрос: " Else Msg. Box "Неверно", vb. Information + vb. Yes. No, "Ответ на Ваш вопрос: " End If End Sub 86

Sub Pens. Age () ' ========================= ' Pens. Age Макрос № 8 ' Макрос Sub Pens. Age () ' ========================= ' Pens. Age Макрос № 8 ' Макрос создан 15. 09. 04, разработчик Иванов И. И. ' Проверяет возраст сотрудника и выводит соответствующее сообщение ' ========================= Dim str. Name As String, str. Sex As String, str. God. Rozd As String, str. Message. Pens As String, str. Message. Not. Pens As String Dim int. God. Rozd As Integer, int. Vozrast As Integer ' Запрашиваем последовательно фамилию, пол ' и год рождения пользователя: str. Name = Input. Box ( "Ваша Фамилия? ", "Введите ответ: “ ) str. Sex = Input. Box ( "Ваш пол? ", "Введите ответ: ", "ж“ ) str. God. Rozd = Input. Box("Ваш год рождения? ", “Введите ответ: ”, “ 1986” ) ' Преобразуем год рождения в числовой формат: 87 int. God. Rozd = Val (str. God. Rozd)

' Вычисляем возраст пользователя: int. Vozrast = Year (Date) - int. God. Rozd ' ' Вычисляем возраст пользователя: int. Vozrast = Year (Date) - int. God. Rozd ' Формируем сообщение для пенсионеров: str. Message. Pens = "Уважаемый(ая) г. " & str. Name & "! Вы заслужили возможность отдыхать!" ' Формируем сообщение для лиц, не достигших пенсионного возраста: str. Message. Not. Pens = "Уважаемый(ая) г. " & str. Name & "! Вы ещ полны сил. Продолжайте так же успешно трудиться!" ' Проверяем возраст и пол и выводим подходящее сообщение: If ( int. Vozrast > 60 And str. Sex = "м“ ) Or _ ( int. Vozrast > 55 And str. Sex = "ж“ ) Then Msg. Box str. Message. Pens , vb. OKCancel + vb. Information, _ "Сообщение пользователю: " Else Msg. Box str. Message. Not. Pens , vb. OKCancel + vb. Information, _ "Сообщение пользователю: " 88 End If : End Sub

Sub Pens. Age () ' ========================= ' Pens. Age Макрос № 8 A ' Sub Pens. Age () ' ========================= ' Pens. Age Макрос № 8 A ' Макрос создан 15. 09. 04, разработчик Иванов И. И. ' Проверяет возраст сотрудника и выводит соответствующее сообщение ' ========================= ' Запрашиваем последовательно фамилию, пол ' и год рождения пользователя: Name = Input. Box ( "Ваша Фамилия? ", "Введите ответ: “ ) Sex = Input. Box ( "Ваш пол? ", "Введите ответ: ", "ж“ ) God. Rozd = Input. Box("Ваш год рождения? ", “Введите ответ: ”, “ 1988” ) ' Вычисляем возраст пользователя: Vozrast = Year (Date) - God. Rozd 89

' Формируем сообщение для пенсионеров: Message. Pens = ' Формируем сообщение для пенсионеров: Message. Pens = "Уважаемый(ая) г. " & Name & "! Вы заслужили возможность отдыхать!" ' Формируем сообщение для лиц, не достигших пенсионного возраста: Message. Not. Pens = "Уважаемый(ая) г. " & Name & "! Вы еще полны сил. Продолжайте так же успешно трудиться!" ' Проверяем возраст и пол и выводим подходящее сообщение: If ( Vozrast > 60 And Sex = "м“ ) Or _ (Vozrast > 55 And Sex = "ж“ ) Then Msg. Box Message. Pens , vb. OKCancel + vb. Information, _ "Сообщение пользователю: " Else Msg. Box Message. Not. Pens , vb. OKCancel + vb. Information, _ "Сообщение пользователю: " End If 90 End Sub

2. ОПЕРАТОРЫ ЦИКЛА. Операторы цикла позволяют организовать многократное повторение некоторой части программы. 2. 1. 2. ОПЕРАТОРЫ ЦИКЛА. Операторы цикла позволяют организовать многократное повторение некоторой части программы. 2. 1. Цикл со счетчиком Простой пример: For k = 1 To 100 Selection. Type. Text k & " " & k*k & Chr (13) Next k Синтаксис: For <переменная цикла> = <начало> To <конец> [ Step <приращение> ] <операторы> ' тело цикла Next <переменная цикла> Если <приращение> не указано, по умолчанию оно равно 1. 91

Семантика: 1) Переменной цикла присваивается начальное значение 2) Проверяется условие: <переменная цикла> <= <конец> Семантика: 1) Переменной цикла присваивается начальное значение 2) Проверяется условие: <переменная цикла> <= <конец> (если <приращение> > 0), либо <переменная цикла> >= <конец> (если <приращение> < 0) 3) Если условие п. 2 истинно, выполняется тело цикла 4) К <переменной цикла> добавляется <приращение>; 5) переход к п. 2. 92

Пример 2: For k = 10 To 9 Selection. Type. Text k & Пример 2: For k = 10 To 9 Selection. Type. Text k & " " & k*k & Chr (13) Next k Пример 3: For k = 1 To 100 Next k Msg. Box k ' k = ? 93

Пример 4 (возможность вложения циклов): N = 0 For i = 1 To 100 Пример 4 (возможность вложения циклов): N = 0 For i = 1 To 100 For k = 1 To 10 N = N + 1 Next k Next i Msg. Box N ' N = ? 94

Зацикливание: Доказывается теорема: Все нечетные числа больше двух – простые. Математик говорит: Зацикливание: Доказывается теорема: Все нечетные числа больше двух – простые. Математик говорит: "3 - простое, 5 - простое, 7 - простое, 9 - не простое. Это контрпример, значит, теорема неверна". Физик, с карандашом и бумагой: "3, 5 и 7 - простые, 9 - ошибка эксперимента, 11 - простое и т. д. " Инженер, взяв в руки калькулятор: "3 - простое, 5 - простое, 7 - простое, 9 - простое, 11 - тоже простое" Программист написал программу и смотрит на экран: "1 - простое, 1 – простое… Да все они простые!" 95

Sub Factrl() ' ========================= 'Factrl Макрос № 9 ' Макрос создан 10. 12. 00, Sub Factrl() ' ========================= 'Factrl Макрос № 9 ' Макрос создан 10. 12. 00, разработчик Иванов И. И. , группа 999 ' Вычисление факториала для заданного пользователем числа ‘ N! = 1 * 2 * 3 *…* N ' ========================= Dim str. N As String Dim int. N As Integer Dim str. Factorial_N As String Dim dbl. Factorial_N As Double ' Запрашиваем целое число: str. N = Input. Box("Введите целое число", "Ввод числа: ") ' Преобразуем N в числовой формат: int. N = Val ( str. N ) 96

'Начальное значение dbl. Factorial_N должно быть = 1: dbl. Factorial_N = 1 'Добавляем N 'Начальное значение dbl. Factorial_N должно быть = 1: dbl. Factorial_N = 1 'Добавляем N раз сомножитель k: For k = 1 To int. N dbl. Factorial_N = dbl. Factorial_N * k Next k ‘Преобразуем dbl. Factorial_N в строку: str. Factorial_N = Str ( dbl. Factorial_N ) 'Выводим результат: Msg. Box "Факториал числа " & str. N & " равен " & str. Factorial_N, _ vb. Information + vb. Yes. No. Cancel, "Сообщение пользователю: " End Sub 97

Sub Pow. X_N ( ) ' ======================= ' Pow. X_N Макрос № 10 ' Sub Pow. X_N ( ) ' ======================= ' Pow. X_N Макрос № 10 ' Макрос создан 28. 12. 99, разработчик Иванов И. И. , группа 999 ' Возведение заданного пользователем числа в заданную пользователем степень ' ======================== ' Запрашиваем число и степень: X = Input. Box("Введите число", "Вопрос пользователю: ") N = Input. Box("В какую степень его возвести? ", "Вопрос пользователю: ") ' Начальное значение Y должно быть = 1: Y = 1 ' Добавляем N раз сомножитель X: For k = 1 To N Y = Y * X Next k 98

' Выводим результат, вычисленный в цикле: Msg. Box N & ' Выводим результат, вычисленный в цикле: Msg. Box N & "-я степень числа " & X & " равна " & Y, vb. Information + vb. Yes. No, "Возведение в степень в цикле: " 'А теперь вычисляем степень непосредственно в сообщении: Msg. Box N & "-я степень числа " & X & " равна " & X ^ N, _ vb. Exclamation + vb. Yes. No, _ "То же с использованием оператора ^: " End Sub 99

2. 1. Цикл с условием Синтаксис оператора с предусловием: Do { While | Until 2. 1. Цикл с условием Синтаксис оператора с предусловием: Do { While | Until } <условие> <операторы> ' тело цикла Loop Условие записывается по тем же правилам, что и в операторе If. Семантика оператора с предусловием: 1) Проверяется <условие> 2) Если условие истинно (While) / ложно (Until) – выполняются <операторы>; возврат к п. 1. NB: Операторы должны как-то менять переменные, содержащиеся в условии, иначе зацикливание! 100

Hанести на влажные волосы Hамылить Подождать Смыть Повтоpить 101 Hанести на влажные волосы Hамылить Подождать Смыть Повтоpить 101

Синтаксис оператора с постусловием: Do <операторы> ' тело цикла Loop { While | Until Синтаксис оператора с постусловием: Do <операторы> ' тело цикла Loop { While | Until } <условие> Пример 5: k = 1 Do While ( k <= 100) Selection. Type. Text k & " " & k*k & Chr (13) k = k + 1 Loop Пример 6 (невыполняемый цикл ): Do While ( 2 > 3) … Loop 102

3. Оператор ветвления (оператор разбора случаев) Пример 1 (выбираем нужное слово по последне цифре 3. Оператор ветвления (оператор разбора случаев) Пример 1 (выбираем нужное слово по последне цифре возраста): Select Case Last. Digit Case "1" Last. Word = " год" Case "2", "3", "4" Last. Word = " года" Case Else Last. Word = " лет" End Select 103

Синтаксис: Select Case <выражение выбора> Case <Case–выражение 1> <операторы1> Case <Case–выражение 2> <операторы2> … Синтаксис: Select Case <выражение выбора> Case <операторы1> Case <операторы2> … Case Else <операторы-Else> End Select NB: должны быть того же типа, что и <выражение выбора>. 104

Семантика (выполнение): 1) Вычисляется <выражение выбора>. 2) Его значяение последовательно сравнивается со значениями <Case–выражений>. Семантика (выполнение): 1) Вычисляется <выражение выбора>. 2) Его значяение последовательно сравнивается со значениями . Если установлено их соответствие, выполняются <операторы>, следующие за . Иначе – переход к следующему , либо к <операторам-Else>. 1) Конец. 105

Синтаксис <Case–выражения>: В качестве <Case–выражения> могут использоваться: 1) Арифметические или строковые выражения – константы, Синтаксис : В качестве могут использоваться: 1) Арифметические или строковые выражения – константы, переменные, функции, математические функции: Sin(X) * PI / 2; Right ( Слово, N ); … 2) Список таковых: A, B, C, D 3) Диапазоны числовых или строковых значений: 10 To 100; A To B; "Абрамов" To "Кац"; … 4) Условие сравнения: Is > 5; Is <= "Смирнов"; 106

Пример 2 (определяем тип символа по коду): Select Case Cod. Symb Case 48 To Пример 2 (определяем тип символа по коду): Select Case Cod. Symb Case 48 To 57 Msg. Box "Это цифра" Case 65 To 122 Msg. Box "Это латинская буква" Case 192 To 255 Msg. Box "Это русская буква" Case Else Msg. Box "Это что-то другое" End Select 107

Sub My. Age. OK ( ) '======================== ' My. Age. OK Макрос № 11 Sub My. Age. OK ( ) '======================== ' My. Age. OK Макрос № 11 ' Макрос создан 25. 11. 99, разработчик Иванов И. И. ' Корректное сообщение о возрасте пользователя ' (Все переменные по умолчанию в универсальном формате) '======================== 'Запрашиваем год рождения: Birth. Year = Input. Box ( "Ваш год рождения? ", "Вопрос пользователю: ", "1980" 'Вычисляем возраст: Age = Year ( Date ) - Birth. Year 'Берем последнюю цифру: Last. Digit = Right ( Age, 1 ) 'Определяем последнее слово: If Age >= 10 And Age <= 19 Then Last. Word = " лет" 'для чисел от 10 до 19 108 Else

Else 'выбираем по последней цифре: Select Case Last. Digit Case

Тема 7. Функции пользователя. Преобразование текста в документах Word. 1. Определение функций пользователя. 2. Тема 7. Функции пользователя. Преобразование текста в документах Word. 1. Определение функций пользователя. 2. Программы преобразования текста в документах Word. 110

1. Определение функций пользователя. Программист может определить и использовать в программе собственные процедуры - 1. Определение функций пользователя. Программист может определить и использовать в программе собственные процедуры - функции. Программная функция – подпрограмма которая выполняет заданные вычисления и возвращает в вызывающую программу их результат. Это позволяет выполнять в разных местах программы или даже в разных программах одни и те же действия с разными исходными данными. Синтаксис определения функции: Function <имя функции> ( [<список аргументов>] ) As <тип возвращаемого значения> <операторы> <имя функции> = < возвращаемое значение > End Function <список аргументов> - 111 <имя переменной> As <тип переменной>, …

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

Функция определяется после текста основной программы, в которой она вызывается. Пример: функция, изменяющая регистр Функция определяется после текста основной программы, в которой она вызывается. Пример: функция, изменяющая регистр символа. Function Изм. Регистр. Символа ( str. Символ 1 As String) As String ' ------------------------------------------'Преобразование регистра заданного символа: ' ------------------------------------------Dim int. Код. Симв 1 As Integer ' код символа на входе Dim int. Код. Симв 2 As Integer ' код символа на выходе int. Код. Симв 1 = Asc ( str. Символ 1 ) ' берем код входного символа 113

Select Case int. Код. Симв 1 Case 65 To 90, 192 To 223 'прописные Select Case int. Код. Симв 1 Case 65 To 90, 192 To 223 'прописные 'превращаем в строчные: int. Код. Симв 2 = int. Код. Симв 1 + 32 Case 168 'прописная "Ё" int. Код. Симв 2 = int. Код. Симв 1 + 16 Case 97 To 122, 224 To 255 'строчные 'превращаем в прописные: int. Код. Симв 2 = int. Код. Симв 1 – 32 Case 184 'строчная "ё" int. Код. Симв 2 = int. Код. Симв 1 - 16 Case Else 'если не буква – оставляем без изменения: int. Код. Симв 2 = int. Код. Симв 1 End Select Изм. Регистр. Символа = Chr (int. Код. Симв 2 ) 114 End Function

2. Программы посимвольного преобразования текста в документах Word. Схема алгоритма: Исходная строка Замена символа 2. Программы посимвольного преобразования текста в документах Word. Схема алгоритма: Исходная строка Замена символа Строка-результат 115

Описание алгоритма: 1. Взять исходную строку (выделенный текст) в программу 2. Вырезать очередной символ Описание алгоритма: 1. Взять исходную строку (выделенный текст) в программу 2. Вырезать очередной символ 3. Заменить символ по заданному правилу (функция пользователя) 4. Добавить полученный символ к строке-результату 5. Удалить исходную строку 6. Вставить построенную строку 116

Sub Chg. Reg() '========================= ' Chg. Reg Макрос № 12 ' Макрос создан 12. Sub Chg. Reg() '========================= ' Chg. Reg Макрос № 12 ' Макрос создан 12. 04, разработчик Иванов И. И. ' Замена прописных строчными и строчных прописными ' в выделенном тексте '(с использованием функции пользователя) ' Запуск комбинацией клавиш {Ctrl + Shift + O} '========================= Dim str. Исходная. Строка As String ' – исходный текст Dim str. Строка. Результат As String ' - результат его перевода в другой регистр Dim str. Исх. Символ As String ' - текущий символа в исходной строке Dim str. Рез. Символ As String ' - соответствующий ему символ в другом регистре 117 Dim int. Len. Select As Integer ' длина выделенного текста

str. Исходная. Строка = Selection. Text ' берем исходный текст int. Len. Select = str. Исходная. Строка = Selection. Text ' берем исходный текст int. Len. Select = Len ( str. Исходная. Строка ) ' определяем его длину str. Строка. Результат = "" ' строка-результат вначале пуста 'Берем по очереди символы исходной строки; меняем регистр; ' полученный символ добавляем к новой строке: For k = 1 To int. Len. Select str. Исх. Символ = Mid ( str. Исходная. Строка, k, 1) str. Рез. Символ = Изм. Регистр. Символа ( str. Исх. Символ ) str. Строка. Результат = str. Строка. Результат & str. Рез. Символ Next k Selection. Delete 'удаляем исходную строку 'Вставляем строку с символами в другом регистре : Selection. Type. Text str. Строка. Результат ‘ТЕСТ: ‘<Фамилия Имя Отчество>, гр. <номер группы> End Sub 118

Sub Lat. Rus() '========================= 'Lat. Rus Макрос № 13 'Макрос создан 12. 04, разработчик Sub Lat. Rus() '========================= 'Lat. Rus Макрос № 13 'Макрос создан 12. 04, разработчик Иванов И. И. 'Преобразование русского текста, 'случайно набранного в латинском регистре, в кириллицу. 'Преобразуемый текст должен быть предварительно выделен 'Запуск комбинацией клавиш {Ctrl+Shift+R} '========================= … <Программа аналогична программе № 12; нужно изменить только вызов функции> 119

 ' ----------ТЕСТ: ------------- ' `1234567890 -= ' qwertyuiop [ ] ' asdfghjkl; ' ' ----------ТЕСТ: ------------- ' `1234567890 -= ' qwertyuiop [ ] ' asdfghjkl; ' ' zxcvbnm, . / ' ~!@#$%^&*()_+ ' QWERTYUIOP{ } ' ASDFGHJKL: " ' ZXCVBNM< >? | ' -------------------------' Bdfyjdbx? 222 uh/ (Иванович, 222 гр. ) ' -------------------------End Sub 120

Function Лат_Рус (str. Символ 1 As String) As String ' ----------------------------------------- 'Преобразование заданного латинского Function Лат_Рус (str. Символ 1 As String) As String ' ----------------------------------------- 'Преобразование заданного латинского символа в соответствующий ему русский ' ----------------------------------------Dim str. Лат. Клавиатура As String 'символы клавиатуры в ' лат. регистре - за исключением символов @" Dim str. Рус. Клавиатура As String ' - соответствующие им символы в русском регистре Dim str. Символ 2 As String ' - символ русского регистра для замены латинского Dim int. Позиция. Символа As Integer ' - позиция заданного латинского символа на клавиатуре 121

? " str. Рус. Клавиатура" src="https://present5.com/presentation/3/104647669_329221275.pdf-img/104647669_329221275.pdf-122.jpg" alt="str. Лат. Клавиатура = "`1234567890=qwertyuiop[]asdfghjkl; 'zxcvbnm, . /~!#$%&*()_+QWERTYUIOP{} ASDFGHJKL: ZXCVBNM<>? " str. Рус. Клавиатура" /> str. Лат. Клавиатура = "`1234567890=qwertyuiop[]asdfghjkl; 'zxcvbnm, . /~!#$%&*()_+QWERTYUIOP{} ASDFGHJKL: ZXCVBNM<>? " str. Рус. Клавиатура = "ё 1234567890=йцукенгшщзхъфывапролджэячсмитьбю. Ё!№; %? *()_+ЙЦУК ЕНГШЩЗХЪФЫВАПРОЛДЖЯЧСМИТЬБЮ, " int. Позиция. Символа = In. Str ( 1, str. Лат. Клавиатура, str. Символ 1, _ vb. Binary. Compare ) Select Case str. Символ 1 'сначала обрабатываем исключения: Case Chr(34) str. Символ 2 = "Э" ' "-->Э Case "@" str. Символ 2 = Chr(34) ' @-->" 122

Case Else ' в остальных случаях используем таблицу соответствий: If int. Позиция. Символа = Case Else ' в остальных случаях используем таблицу соответствий: If int. Позиция. Символа = 0 Then ' - случай, когда лат. символ не найден str. Символ 2 = str. Символ 1 ' ничего не меняем Else str. Символ 2 = Mid ( str. Рус. Клавиатура, _ int. Позиция. Символа, 1) End If End Select Лат_Рус = str. Символ 2 End Function 123

Тема 8. Создание клавиатурных макросов Клавиатурный макрос – макрос, получаемый протоколированием действий пользователя в Тема 8. Создание клавиатурных макросов Клавиатурный макрос – макрос, получаемый протоколированием действий пользователя в среде MS Office. Вход в режим записи: Сервис – Макрос – Начать запись Рекомендуемый порядок создания: 1) Записать сценарий для выполняемых действий. 2) Выполнить действия без записи и убедиться в правильности получаемого результата. 3) Выполнить программируемые действия в режиме записи. 4) Если нужно – отредактировать макрос в редакторе VBA. 5) Протестировать макрос, убедиться в правильности его работы. 6) Если нужно – добавить горячие клавиши и кнопку для быстрого запуска макроса. 124

Sub Get. Sent() ' ======================= ' Get. Sent Макрос № 14 ' Макрос записан Sub Get. Sent() ' ======================= ' Get. Sent Макрос № 14 ' Макрос записан 27. 01, разработчик Иванов И. И. ' Перемещает текущее предложение просматриваемого текста в накопительное окно ' !!! Окно просматриваемого текста должно иметь номер 1, ' накопительное окно – номер 2. ' ======================== <Добавить комментарий к полученному тексту> 125

Сценарий макроса: 1) переход в режим выделения {F 8} 2) выделяем текущее слово {F Сценарий макроса: 1) переход в режим выделения {F 8} 2) выделяем текущее слово {F 8} 3) выделяем текущее предложение {F 8} 4) копируем его в буфер {Ctrl + Ins} 5) переход в накопительное окно - !!! через меню ОКНО 6) вставляем предложение {Shift + Ins} 7) курсор на следующую строку {Enter} 8) назад в окно текста - !!! кликнуть мышью в меню ОКНО 9) снимаем выделение {Right} Примечание: Переход в другое окно по имени можно выполнить так: Documents("Документ2"). Activate 1) (в скобках указано имя документа) 126

Дополнительные макросы для оформления текста 1) Отформатировать предложение жирным курсивом - макрос Frm. BI Дополнительные макросы для оформления текста 1) Отформатировать предложение жирным курсивом - макрос Frm. BI (№ 15) 2) Форматирование заданного слова жирным курсивом с увеличением размера букв до 16 п. - макрос Wrd. BI 16 (№ 16) 3) Сделать текущий символ верхним / нижним индексом - макрос Index (№ 17) (спросить у пользователя: "Опустить? " ) 4) Вставить символ ® - макрос Ins. Mark 1 (№ 18 A) или ™ - макрос Ins. Mark 2 (№ 18 Б) 5) Отформатировать предложение прописными буквами жирным шрифтом, с выравниваем по центру - макрос Frm. Sent (№ 19) 6) Замена указанного пользователем слова в тексте и форматирование жирным курсивом произведенных замен - макрос Repl. Frm (№ 20) 127 7) *Ритмика стиха (раска гласных) Color. Chr (№ 21)

Тема 9. Общие сведения о технологии программирования 1. Программа и программный продукт. 2. Язык Тема 9. Общие сведения о технологии программирования 1. Программа и программный продукт. 2. Язык и среда программирования. 3. Структура программы. 4. Основные этапы разработки программных систем. 5. Интегрированные технологии проектирования программных систем 128

1. Программа и программный продукт. Программа – последовательность команд, написанных на какомлибо языке программирования, 1. Программа и программный продукт. Программа – последовательность команд, написанных на какомлибо языке программирования, обеспечивающая достижение определенной цели. Спецификация программы должна определять: 1) 2) 3) 4) 5) функциональность программы; интерфейс пользователя; алгоритм; организацию данных; структуру программы. 129

Интерфейс пользователя – определяет способы и средства взаимодействия программы с пользователем. Алгоритм – точное Интерфейс пользователя – определяет способы и средства взаимодействия программы с пользователем. Алгоритм – точное описание последовательности элементарных действий, обеспечивающих решение поставленной задачи. Организация данных - способ размещения в памяти ЭВМ и описания в программе используемых и создаваемых программой данных. Примеры эффективной организации данных: • создание индексов в таблицах реляционных БД; • инверсная организация поискового массива в документальных ИПС; • концептуальные словари: совмещение кода понятия с индексом словарной статьи. 130

131 131

132 132

Коммерческий программный продукт: = ПРОГРАММА + ДОКУМЕНТАЦИЯ + СОПРОВОЖДЕНИЕ Требования к коммерческой программе: a) Коммерческий программный продукт: = ПРОГРАММА + ДОКУМЕНТАЦИЯ + СОПРОВОЖДЕНИЕ Требования к коммерческой программе: a) надежность; устойчивость к нештатным ситуациям (дуракоупорность, foolproof); b) дружественный интерфейс. Документация: a) справочная система; b) печатное руководство (для программ массового пользования); Сопровождение: a) Интернет-сопровождение (консультации, FAQ, и др. ) ; b) развитие; льготы при смене версий; исправление ошибок; c) фирменное обучение, сертификация специалистов (для сложных систем). 133

2. Язык и среда программирования. 2. 1. Языки программирования А. Машино-ориентированные Это языки, набор 2. Язык и среда программирования. 2. 1. Языки программирования А. Машино-ориентированные Это языки, набор команд которых определяется возможностями аппаратуры (совпадает с набором команд процессора. ). Основные типы машинных команд: § арифметические действия; § перемещение данных (ввод с клавиатуры; вывод на экран и печать; запись и чтение МД; прием и передача в сети; вывод на колонки и т. п. ); § команды управления работой программы (сравнение данных и изменение порядка выполнения команд). 134

Типовая структура машинной команды: КОП Адр1 Адр2 Адр3 КОП – код операции Адр1 – Типовая структура машинной команды: КОП Адр1 Адр2 Адр3 КОП – код операции Адр1 – Адрес 1 -го операнда Адр2 – Адрес 2 -го операнда Адр3 – Адрес результата Условный пример (команда "сложить два числа"): 01 127 514 368 (Язык машинных кодов – язык, непосредственно понимаемый процессором) На нем записаны команды в исполняемых файлах (ср. Win. Word. exe) 135

Ассемблер – диалект машиноориентированного языка, предназначенный для использования программистом. По набору команд полностью совпадает Ассемблер – диалект машиноориентированного языка, предназначенный для использования программистом. По набору команд полностью совпадает с языком машинных кодов. Отличия: 1) использует мнемонические имена команд (ADD, SUB, MUL, DIV, MOVE, …) 2) Обеспечивает автоматическое управление памятью – позволяет представлять данные, используемые в программе, мнемоническими именами, а не адресами ячеек памяти. Условный пример записи команды на Ассемблере: SUB Oklad Salary Uderjan Tax Vydacha Cash 136

Программа, написанная на Ассемблере, требует компиляции: My. Progr. asm Слайд 101 (Исходный текст программы, Программа, написанная на Ассемблере, требует компиляции: My. Progr. asm Слайд 101 (Исходный текст программы, написанный на Ассемблере) Программа- компилятор My. Progr. exe (Программа в машинных кодах, готовая к выполнению) 137

Б. Человеко-ориентированные языки (ЯВУ) 1) Обеспечивают автоматическое управление памятью. 2) Позволяют записывать вычисления в Б. Человеко-ориентированные языки (ЯВУ) 1) Обеспечивают автоматическое управление памятью. 2) Позволяют записывать вычисления в виде обычных математических формул. 3) Команды управления работой программы, перемещения данных, операции с нечисловыми данными записываются в виде команд с достаточно ясной мнемоникой (английской!). If … Then … Else … Select Case … Left (…) ЯВУ предыдущих поколений: Фортран, Алгол-60, Кобол, PL/1 Современные ЯВУ: C++, ; C#, Java. Script, Pascal (Дельфи), VB, Perl, PHP, Python; встроенные языки СУБД и других специализированных систем. 138

2. 2. Среда программирования – совокупность программных средств, обеспечивающих разработку программ. Основные компоненты среды 2. 2. Среда программирования – совокупность программных средств, обеспечивающих разработку программ. Основные компоненты среды программирования: 1) Спецредактор • контроль и редактирование кода; • контекстная помощь и всплывающие подсказки. 2) Транслятор – обеспечивает перевод исходного текста программы в машинный код и синтаксический контроль кода. 3) Отладчик (Debuger) – пошаговый просмотр выполнения с контролем данных = поиск логических ошибок в программе. 4) Библиотеки стандартных программ. 5) Примеры программ и документация. 139

Наиболее популярные системы программирования: • Microsoft C++; • C++Builder 6 (фирма Borland); • Delfi Наиболее популярные системы программирования: • Microsoft C++; • C++Builder 6 (фирма Borland); • Delfi (фирма Borland); • VB 6 / VBA (фирма Microsoft); • Studio. Net – интегрированная среда программирования (фирма Microsoft): C++, C#, VB. Net. Java 140

Интегрированные среды проектирования: • IBM Rational – коммерческая платформа http: //rational. aplana. ru/tools • Интегрированные среды проектирования: • IBM Rational – коммерческая платформа http: //rational. aplana. ru/tools • Eclipse Platform– открытая интегрированная среда для разработки на Java и др. языках Проект управляется некоммерческой организацией Eclipse Foundation, открытой для участия всех желающих www. eclipse. org 141

Виды трансляторов: Компилятор – программа, которая переводит исходный текст программы в машинный код целиком. Виды трансляторов: Компилятор – программа, которая переводит исходный текст программы в машинный код целиком. Выполнение отделено от трансляции. Результат работы компилятора -. exe-файл. Слайд 97 Интерпретатор - программа, которая переводит каждый оператор исходной программы в машинный код и сразу же его выполняет. Результат работы интерпретатора – исполнение программы. Компилятор – быстрее, интерпретатор – легче в отладке. 142

3. Структура программы. Простейшей структурной единицей программы является программная функция. Программная функция – подпрограмма 3. Структура программы. Простейшей структурной единицей программы является программная функция. Программная функция – подпрограмма которая: 1) имеет имя; 2) получает входные данные - аргументы функции (могут отсутствовать); 3) возвращает в вызывающую программу вычисленное значение (в некоторых языках программирования может отсутствовать – ср. открытие файла). Y = Sqr ( X ) S 2 = Mid ( S 1, k, n ) Функция как "черный ящик" – механизм знать не обязательно 143 ("инкапсуляция") !

Классификация программных функций a) по типу возвращаемого значения: • числовые; • строковые; • булевы; Классификация программных функций a) по типу возвращаемого значения: • числовые; • строковые; • булевы; • без возвращаемого значения; • др. b) по типу обрабатываемых данных и выполняемых действий: • математические; • строковые; • графические; • преобразования и форматирования данных; • системные. c) по моменту создания: • стандартные функции – разрабатываются как часть среды программирования; • функции пользователя – разрабатываются прикладным 144 программистом.

DLL-библиотеки = Dynamic Linking Library (Динамически присоединяемые библиотеки) Часть используемых в программе собственных функций DLL-библиотеки = Dynamic Linking Library (Динамически присоединяемые библиотеки) Часть используемых в программе собственных функций программист может поместить в отдельный. dll-файл. Он загружается в оперативную память только после вызова одной из находящихся в нем функций. Функции, помещенные в. dll-файл становятся общедоступными и могут использоваться несколькими – даже одновременно работающими - программами. Дальнейшее развитие идеи структурирования программ – методология объектного программирования. Программный объект – совокупность данных и функций, объединенных в относительно самостоятельный программный модуль. 145

4. Основные этапы разработки программных систем. 1) Общая функциональная спецификация программы. A. По схеме 4. Основные этапы разработки программных систем. 1) Общая функциональная спецификация программы. A. По схеме потока данных: Данные на входе Программа Вопросы пользователю Данные на выходе Протокол выполнения (. log-файл) 146

Примеры: • Программа сжатия данных • Программа-переводчик Вопросы пользователю: как поступать с не переведенными Примеры: • Программа сжатия данных • Программа-переводчик Вопросы пользователю: как поступать с не переведенными словами и фрагментами? Какой вариант переводного эквивалента выбрать? и т. д. • Система прогнозирования погоды На входе – данные от метеостанций На выходе – синоптическая карта (давление, температура, влажность, скорость воздушных потоков, …) 147

Б. Функциональная спецификация программы по схеме оконного диалога (совпадает со спецификацией интерфейса пользователя) Программа Б. Функциональная спецификация программы по схеме оконного диалога (совпадает со спецификацией интерфейса пользователя) Программа (главное окно) Пользователь Программа состоит из процедур реагирующих на действия пользователя. Таково большинство программ в среде Windows – напр. , Word и др. 148 офисные программы.

2) Декомпозиция задачи, определение основных функциональных модулей и разработка спецификаций для них (проектирование 2) Декомпозиция задачи, определение основных функциональных модулей и разработка спецификаций для них (проектирование "сверху вниз"). Разработка межмодульных интерфейсов. 3) Разработка интерфейса пользователя. 4) Разработка алгоритмов. 5) Определение организации данных (существенно влияет на скорость работы программы и расход памяти). 6) Подготовка тестовых примеров для отдельных модулей и системы в целом. 7) Собственно программирование ("кодирование"). a) программирование головного модуля в терминах функциональных составляющих; b) программирование функциональных модулей; c) использование готовых компонентов (. DLL-модули, Active. X-модули). 149

8) Компиляция и синтаксическая отладка. Сборка ( 8) Компиляция и синтаксическая отладка. Сборка ("линковка"). 9) Логическая отладка. -тестирование. 10) Документирование (вырастает из спецификаций). a) руководство пользователя; b) руководство прикладного программиста (если требуется); c) разработка справочной системы. 11) -тестирование. 12) Сопровождение. 150

5. Интегрированные технологии проектирования программных систем Функциональные роли участников проектирования в промышленной технологии разработки 5. Интегрированные технологии проектирования программных систем Функциональные роли участников проектирования в промышленной технологии разработки программных комплексов: • Бизнес-руководитель: оценка коммерческой целесообразности проекта; слежение за ходом выполнения проекта • Аналитик: разработка и управление требованиями к программному продукту; подготовка пакета тестовых примеров • Архитектор: разработка архитектуры приложения • Разработчик: создание программных модулей • Инженер по сборке • Тестер • Менеджер по внедрению: организация бета-тестирования; связь с конечным пользователем; 151