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

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



Advertisements
Похожие презентации
Приложение 1 к решению Совета депутатов города Новосибирска от Масштаб 1 : 5000.
Advertisements

Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______ Масштаб 1 : 5000.
Переменные задаются именами, которые определяют области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов.
Урок 2. Информационные процессы в обществе и природе.
Циклические алгоритмы Повторение - это многократное выполнение одного или нескольких предписаний алгоритма. Цикл - это оператор языка программирования,
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Основные понятия языка VBA Excel. Объекты Объект - основной элемент VBA Excel. В VBA объектами являются рабочая книга, рабочий лист и его составляющие.
ОДНОМЕРНЫЕ МАССИВЫ. РАБОТА С ЭЛЕМЕНТАМИ СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ.
Тип, имя и значение переменной.. Переменные. В объектно-ориентированных языках программирования, и в частности в языке Visual Basic, переменные играют.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
План-конспект урока (информатика и икт, 9 класс) по теме: Переменные:тип, имя, значение
Основы программирования на Бейсике Массивы. Задание: Найти все 3-хзначные числа, заканчивающихся на 2, 4, 8 и делящихся на 6. Ответ: CLS FOR I=100 TO.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от
Кодирование текстовой информации. Содержание Вопросы для повторения Двоичное кодирование текстовой информации в компьютере Кодовая таблица Код ASCII Принцип.
Программирование
ТестТест Язык программирования Visual Basic. 1. Какие из нижеперечисленных правил являются алгоритмами? А) орфографические правила В) правила выполнения.
Основы программирования В качестве базового языка взят обычный BASIC позволяющий в простой и наглядной форме выполнять основные конструкции программирования.
Формула – выражение, по которым выполняют вычисления. Для активации строки формул надо: 2.В списке команд выбрать пункт «Строка формул» 1.Открыть меню.
Транксрипт:

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

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

3 Язык программирования – 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

4 Интеграция 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21 Объекты Office. Application Application.ActiveDocument ActiveDocument ' Можно короче Application.ActiveWorkbook.ActiveSheet.Range("A1") = "Hi ' Можно и так ActiveSheet.Range ("A2") = "By-By" 'Можно даже так! Range("A3") = "I'm glad to see you" А это только так. Quit не является глобальным методом. Application.Quit

22 Практика

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

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

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

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

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

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

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

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

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

32 Примеры свойств Range(A2:A8).Name=Opганизации - свойству Name диапазона Range(A2:A8) присвоить значение «Организации»; UserForml.TextBoxl.Text = - очистить (присвоить пустое значение) поле ввода номер один в пользовательской форме номер один; UserForml.CheckBoxl.Value = True - установить флажок номер один в пользовательской форме номер один.

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

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

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

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

37

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

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

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

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

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

43 Sub InsHello( ) '=================================================== ' InsHello Макрос 2 ' Макрос создан , разработчик Иванов И. И. ' Простой пример вставки текста в документ '=================================================== Selection.TypeText "Привет, Мир! Это моя вторая программа. _ Иванов И. И., группа 999." End Sub

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

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

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

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

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

49

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

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

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

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

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

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

56 1.Ввод-вывод в диалоговом окне 1А. Вывод сообщения Синтаксис команды MsgBox: MsgBox, [ ], [ ] = + + Семантика очевидна. Пример: MsgBox "Конец работы", vbOKCancel + vbExclamation, _ "Завершение процесса" Значение аргументов по умолчанию: = vbOKOnly ( =0 ); /Пиктограмма отсутствует/ = "Microsoft Word"

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

58

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

60 Sub WildCrd1() ' ================================================= ' WildCrd1 Макрос 3 ' Макрос создан , разработчик Иванов И. И. ' Вывод текста в кавычках (в диалоговое окно) ' ================================================= MsgBox Chr (34) & "Зенит" & Chr (34) & " чемпион!", vbYesNo + vbExclamation, "Вывод текста в кавычках:" End Sub Sub WildCrd1A() ' ================================================= ' WildCrd1A Макрос 3A ' Макрос создан , разработчик Иванов И. И. ' Вывод текста в кавычках (в окно документа) ' =================================================

61 Sub WildCrd2() ' ================================================= ' WildCrd2 Макрос 4 ' Макрос создан , разработчик Иванов И. И. 'Вывод текста в несколько строк (в диалоговое окно) ' ================================================= MsgBox "Черный вечер," & Chr(13) & "Белый снег." & Chr(13) & "Ветер, ветер!", vbOKCancel + vbExclamation, "Вывод многострочного текста:" End Sub Sub WildCrd2A() ' ================================================= ' WildCrd2A Макрос 4A ' Макрос создан , разработчик Иванов И. И. 'Вывод текста в несколько строк (в окно документа) ' =================================================

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

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

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

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

66 Sub MyAge() ' =============================================== MyAge Макрос 5 ' Макрос создан , разработчик Иванов И. И. ' Простые вычисления (С ПРЕОБРАЗОВАНИЕМ ФОРМАТОВ) ' и диалог с пользователем ' =============================================== Dim strGodRozd As String Dim strVozrast As String – год рождения и возраст в строковом формате Dim intGodRozd As Integer Dim intVozrast As Integer – те же переменные в числовом формате Dim strOutMessage As String текст сообщения пользователю

67 Запрашиваем год рождения: strGodRozd = InputBox("Ваш год рождения?", "Вопрос пользователю:", "1986") Преобразуем его в числовой формат: intGodRozd = Val ( strGodRozd ) Вычисляем возраст: intVozrast = Year(Date) - intGodRozd Преобразуем его в строку: strVozrast = Str(intVozrast) Формируем выходное сообщение: strOutMessage = "В этом году Вам исполняется " & strVozrast & " лет" Выводим сообщение о возрасте: MsgBox strOutMessage, vbInformation + vbYesNo, "Ваш возраст:" End Sub

68 Sub MyAge_A() ' =============================================== MyAge_A Макрос 5A ' Макрос создан , разработчик Иванов И. И. ' Простые вычисления и диалог с пользователем ' =============================================== Запрашиваем год рождения: GodRozd = InputBox("Ваш год рождения?", "Вопрос пользователю:", "1986") Вычисляем возраст: Vozrast = Year(Date) - GodRozd Формируем выходное сообщение: OutMessage = "В этом году Вам исполняется " & Vozrast & "лет" Выводим сообщение о возрасте: MsgBox OutMessage, vbInformation + vbYesNo, "Ваш возраст:" End Sub

69 Sub PowX_4() ' =============================================== ' PowX_4 Макрос 6 ' Макрос создан , разработчик Иванов И. И. ' Возведение заданного пользователем числа в 4 степень ' =============================================== Dim intX As Integer ' заданное пользователем число Dim dblY As Double ' результат вычисления Dim strX As String, strY As String ' то же в текстовом формате Просим пользователя ввести любое число: Преобразуем его в числовой формат: Вычисляем степень: Преобразуем полученный результат в строку: Выводим сообщение: (кнопки ДА и НЕТ, пиктограмма "Информация") Сообщение должно иметь, например, вид: 4-ая степень числа 5 ( strX ) равна 625 ( strY ) End Sub

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

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

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

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

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

75 Примеры использования: intN1 = Instr ( "криминалист", "мина" ) ' intN1 = ? intN2 = Instr ("криминалист", "лист" ) ' intN2 = ? intN3 = Instr ( "криминалист", "и" ) ' intN3 = 3 intN4 = Instr (8, "криминалист", "и" ) ' intN4 = 9 intN5 = Instr ( "криминалист", "код" ) ' intN4 = 0 !

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

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

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

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

80 Условия для строк: "=" - означает точное совпадение строк; ("АБВ" "АБВ "). ">", " =", "

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

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

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

84 Использование нескольких условий В операторе If можно последовательно проверять несколько условий: Пример – определение типа символа: If intCodSymb >= 48 And intCodSymb = 65 And intCodSymb = 97 And intCodSymb = 192 And intCodSymb

85 Sub RightAns() ' ================================================== 'RightAns Макрос 7 'Макрос создан , разработчик Иванов И. И. ' "ОРАКУЛ" - ' – отвечает правильно на любой вопрос, требующий ответа "ВЕРНО" или "НЕВЕРНО" ' ================================================== Dim strQuery As String 'текст вопроса Dim strLast2Char As String 'последние 2 символа ' Принимаем вопрос от пользователя: strQuery = InputBox ("Задайте любой вопрос, требующий ответа ВЕРНО или НЕВЕРНО", "Компьютерный мозг:") ' Вырезаем 2 последних символа: strLast2Char = Right(strQuery, 2)

86 ' Сравниваем окончание с образцом и выводим ответ: If strLast2Char = " ?" Then MsgBox "Верно", vbInformation + vbYesNo, "Ответ на Ваш вопрос:" Else MsgBox "Неверно", vbInformation + vbYesNo, "Ответ на Ваш вопрос:" End If End Sub

87 Sub PensAge () ' ================================================= ' PensAge Макрос 8 ' Макрос создан , разработчик Иванов И. И. ' Проверяет возраст сотрудника и выводит соответствующее сообщение ' ================================================= Dim strName As String, strSex As String, strGodRozd As String, strMessagePens As String, strMessageNotPens As String Dim intGodRozd As Integer, intVozrast As Integer ' Запрашиваем последовательно фамилию, пол ' и год рождения пользователя: strName = InputBox ( "Ваша Фамилия?", "Введите ответ: ) strSex = InputBox ( "Ваш пол?", "Введите ответ:", "ж ) strGodRozd = InputBox("Ваш год рождения?", Введите ответ:, 1986 ) ' Преобразуем год рождения в числовой формат: intGodRozd = Val (strGodRozd)

88 ' Вычисляем возраст пользователя: intVozrast = Year (Date) - intGodRozd ' Формируем сообщение для пенсионеров: strMessagePens = "Уважаемый(ая) г. " & strName & "! Вы заслужили возможность отдыхать!" ' Формируем сообщение для лиц, не достигших пенсионного возраста: strMessageNotPens = "Уважаемый(ая) г. " & strName & "! Вы еще полны сил. Продолжайте так же успешно трудиться!" ' Проверяем возраст и пол и выводим подходящее сообщение: If ( intVozrast > 60 And strSex = "м ) Or _ ( intVozrast > 55 And strSex = "ж ) Then MsgBox strMessagePens, vbOKCancel + vbInformation, _ "Сообщение пользователю:" Else MsgBox strMessageNotPens, vbOKCancel + vbInformation, _ "Сообщение пользователю:" End If : End Sub

89 Sub PensAge () ' ================================================= ' PensAge Макрос 8A ' Макрос создан , разработчик Иванов И. И. ' Проверяет возраст сотрудника и выводит соответствующее сообщение ' ================================================= ' Запрашиваем последовательно фамилию, пол ' и год рождения пользователя: Name = InputBox ( "Ваша Фамилия?", "Введите ответ: ) Sex = InputBox ( "Ваш пол?", "Введите ответ:", "ж ) GodRozd = InputBox("Ваш год рождения?", Введите ответ:, 1988 ) ' Вычисляем возраст пользователя: Vozrast = Year (Date) - GodRozd

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

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

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

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

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

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

96 Sub Factrl() ' ================================================= 'Factrl Макрос 9 ' Макрос создан , разработчик Иванов И. И., группа 999 ' Вычисление факториала для заданного пользователем числа N! = 1 * 2 * 3 *…* N ' ================================================= Dim strN As String Dim intN As Integer Dim strFactorial_N As String Dim dblFactorial_N As Double ' Запрашиваем целое число: strN = InputBox("Введите целое число", "Ввод числа:") ' Преобразуем N в числовой формат: intN = Val ( strN )

97 'Начальное значение dblFactorial_N должно быть = 1: dblFactorial_N = 1 'Добавляем N раз сомножитель k: For k = 1 To intN dblFactorial_N = dblFactorial_N * k Next k Преобразуем dblFactorial_N в строку: strFactorial_N = Str ( dblFactorial_N ) 'Выводим результат: MsgBox "Факториал числа " & strN & " равен " & strFactorial_N, _ vbInformation + vbYesNoCancel, "Сообщение пользователю:" End Sub

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

99 ' Выводим результат, вычисленный в цикле: MsgBox N & "-я степень числа " & X & " равна " & Y, vbInformation + vbYesNo, "Возведение в степень в цикле:" 'А теперь вычисляем степень непосредственно в сообщении: MsgBox N & "-я степень числа " & X & " равна " & X ^ N, _ vbExclamation + vbYesNo, _ "То же с использованием оператора ^:" End Sub

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

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

102 Синтаксис оператора с постусловием: Do ' тело цикла Loop { While | Until } Пример 5: k = 1 Do While ( k 3) … Loop

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

104 Синтаксис: Select Case Case Case … Case Else End Select NB: должны быть того же типа, что и.

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

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

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

108 Sub MyAgeOK ( ) '=============================================== ' MyAgeOK Макрос 11 ' Макрос создан , разработчик Иванов И. И. ' Корректное сообщение о возрасте пользователя ' (Все переменные по умолчанию в универсальном формате) '================================================ 'Запрашиваем год рождения: BirthYear = InputBox ( "Ваш год рождения?", "Вопрос пользователю:", "1980" ) 'Вычисляем возраст: Age = Year ( Date ) - BirthYear 'Берем последнюю цифру: LastDigit = Right ( Age, 1 ) 'Определяем последнее слово: If Age >= 10 And Age

109 Else 'выбираем по последней цифре: Select Case LastDigit Case "1" LastWord = " год" Case "2", "3", "4" LastWord = " года" Case Else LastWord = " лет" End Select End If 'Формируем выходное сообщение: OutMessage = "В этом году Вам исполняется " & Age & LastWord 'Выводим сообщение о возрасте: MsgBox OutMessage, vbInformation + vbYesNo, "Ваш возраст:" End Sub

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

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

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

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

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

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

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

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

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

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

120 ' ТЕСТ: ' ` = ' qwertyuiop [ ] ' asdfghjkl;' ' zxcvbnm,./\ ' ' QWERTYUIOP{ } ' ASDFGHJKL:" ' ZXCVBNM ?| ' ' Bdfyjd Bdfy Bdfyjdbx? 222 uh/ (Иванов Иван Иванович, 222 гр.) ' End Sub

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

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

123 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

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

125 Sub GetSent() ' ============================================== ' GetSent Макрос 14 ' Макрос записан , разработчик Иванов И. И. ' Перемещает текущее предложение просматриваемого текста в накопительное окно ' !!! Окно просматриваемого текста должно иметь номер 1, ' накопительное окно – номер 2. ' ===============================================

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

127 Дополнительные макросы для оформления текста 1)Отформатировать предложение жирным курсивом - макрос FrmBI ( 15) 2)Форматирование заданного слова жирным курсивом с увеличением размера букв до 16 п. - макрос WrdBI16 ( 16) 3)Сделать текущий символ верхним / нижним индексом - макрос Index ( 17) (спросить у пользователя: "Опустить?" ) 4)Вставить символ ® - макрос InsMark1 ( 18A) или - макрос InsMark2 ( 18Б) 5)Отформатировать предложение прописными буквами жирным шрифтом, с выравниваем по центру - макрос FrmSent ( 19) 6)Замена указанного пользователем слова в тексте и форматирование жирным курсивом произведенных замен -макрос ReplFrm ( 20) 7)*Ритмика стиха (раскраска гласных) ColorChr ( 21)

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

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

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

131

132

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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