Высокоуровневые методы информатики и программирования

РОССИЙСКАЯ АКАДЕМИЯ ГОСУДАРСТВЕННОЙ СЛУЖБЫ
ПРИ ПРЕЗИДЕНТЕ РОССИЙСКОЙ ФЕДЕРАЦИИ
А.Н. ПАВЛОВ
ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ
И ПРОГРАММИРОВАНИЯ
МОСКВА
2007
А.Н. Павлов – доктор технических наук, профессор
Рецензент: В.С. Кретов – доктор технических наук, профессор
ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ
И ПРОГРАММИРОВАНИЯ
В модуле содержатся теоретические сведения о тенденциях использования высокоуровневых методов информатики при проектировании программных приложений на основе объектно-ориентированного подхода.
Так же представлены подходы к созданию современных интерфейсов
пользователей, работающих с визуальными языками программирования.
Приведены примеры разработки программных приложений для взаимодействия пользователя с операционной системой в режиме использования
нескольких окон. Отражены практические приемы организации доступа к
файловой системе Windows через приложения пользователя, созданного на
языке Visual Basic.
2
СОДЕРЖАНИЕ
БАЗОВОЕ СОДЕРЖАНИЕ МОДУЛЯ
НАУЧНО-ТЕМАТИЧЕСКИЙ ОБЗОР
СОДЕРЖАНИЕ МОДУЛЯ
1. Направления в области создания технологий программирования
1.1. Жизненный цикл и этапы разработки программного обеспечения
1.2. Структурное программирование
1.3. Нисходящее проектирование
1.4. Концепция создания модульных программ
1.5. Объектно-ориентированное проектирование и программирование
2. Основные принципы объектно-ориентированного программирования (ООП)
2.1. Сущность ООП
2.2. Представление объекта
2.3. Понятие класса в ООП
3. Особенности программирования в оконных операционных средах
3.1. Создание приложений Windows
3.2. Языки программирования высокого уровня
3.3. Типы интерфейсов пользователя
4. Технология создания приложений в среде Visual Basic
4.1. Введение в систему программирования Visual Basic
4.2. Этапы разработки приложений в интегрированной среде проектирования Visual Basic
4.3. Визуальное проектирование приложения
4.4. Разработка программных кодов в среде объектноориентированного программирования
4.4.1. Процедурный подход к программированию
4.4.2. Использование переменных для хранения информации
4.4.3. Создание процедур обработки событий
4.4.4. Разработка программ с использованием операторов
управления
4.4.5. Организация работы с массивами
4.5. Работа с файловой системой Windows
4.5.1. Операторы языка Visual Basic для взаимодействия с файловой системой
4.5.2. Запись данных в последовательный файл
4.5.3. Извлечение данных из файлов и отображение на форме
пользователя
3
5
7
9
9
9
14
16
18
20
22
22
24
25
26
26
29
30
32
32
37
38
41
41
43
46
48
53
56
56
59
62
5. Дополнительные возможности языка программирования Visual
Basic
5.1. Построение графиков функций
5.2. Создание приложения для совместной работы с табличным
процессором Excel
5.3. Создание и использование элемента ActiveX
5.3.1. Постановка задачи
5.3.2. Размещение элемента управления на панели инструментов
5.3.3. Использование разработанного элемента ActiveX в проектах Visual Basic
5.3.4. Использование элементов управления в приложениях MS
Office
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
ЛИТЕРАТУРА
ТЕРМИНОЛОГИЧЕСКИЙ СЛОВАРЬ
ТЕСТОВЫЕ ЗАДАНИЯ ПО УЧЕБНОЙ ДИСЦИПЛИНЕ
4
66
66
69
73
73
79
81
82
85
87
89
90
93
БАЗОВОЕ СОДЕРЖАНИЕ МОДУЛЯ
Настоящее методическое пособие предназначено для активизации
самостоятельной работы студентов при изучении дисциплины «Высокоуровневые методы информатики и программирования». Основное содержание учебного модуля базируется на ОПД.Ф.04 для специальности
00.0034, направленного на изучение высокоуровневых методов информатики, материал методического пособия распределен в четырех темах.
Тема 1. Направления в области создания технологий программирования.
В результате знакомства с указанной темой, студенты получают
представление о жизненном цикле разработки программного обеспечения,
подходах в организации проектирования программного обеспечения, основных этапах выполнения работ при создании и сопровождения программного продукта. Изучение темы позволяет получить теоретические
знания в области структурного программирования, организации нисходящего проектирования сложных проектов. Так же студент получает знания
в области концептуального подхода при создании модульных программ,
который лежит в основе объектно-ориентированного проектирования и
программирования современных приложений.
Тема 2. Основные принципы объектно-ориентированного программирования.
При изучении темы студент получает знания в области использования объектно-ориентрованных языков программирования для создания
приложений. В теме раскрыты понятия объектных типов данных и переменных объектного типа. Показана сущность объектно-ориентированного
подхода, которая базируется на таких понятиях, как инкапсуляция, полиморфизм
и
наследование.
Использование
особенностей
объектно-
ориентированного подхода в программировании и правил разработки программного обеспечения, делает возможным работать с классами объектов,
5
изменять их свойства, применять методы для формирования модулей, использующие одни и те же данные в различных приложениях.
Тема 3. Особенности программирования в оконных операционных
средах.
Изучение темы позволяет студенту овладеть теоретическими знаниями и практическим опытом при знакомстве с особенностями операционных систем на персональных компьютерах. В теме раскрыты вопросы, связанные с технологией взаимодействия пользователя через оконный интерфейс с операционной системой, правила использования языков высокого
уровня для создания интерфейса пользователя, использование стандартных
модулей при разработке программного приложения.
Тема 4. Технология создания приложений в среде Visual Basic.
Изучение темы позволяет студенту овладеть практическими навыками работы с языком высокого уровня Visual Basic, изучить среду визуализации проекта приложения при разработке интерфейса пользователя. На
практических примерах студенту предлагается освоить приемы событийного подхода в программировании. Даны основы визуального программирования с использованием среды отладки стандартного пакета Visual Basic
6.0. Рассмотрены алгоритмы процессов обработки информации при взаимодействии пользователя с компонентами и элементами управления на рабочей форме проекта приложения, позволяющих реагировать на события,
вызываемые пользователем или операционной системой. Раскрыты возможности взаимодействия пользователя с операционной средой через разработанное приложение при создании и сохранении файлов на внешних
носителях информации. Показаны приемы контроля процесса создания
приложений пользователя, и отладки программ.
6
НАУЧНО-ТЕМАТИЧЕСКИЙ ОБЗОР
Вычислительные системы, сети и телекоммуникации являются в современном обществе самыми востребованными ресурсами [1]. Использование компьютеров и средств вычислительной техники позволяет человеку
сократить время на поиск информации, организовать огромные хранилища
данных на электронных носителях, обмениваться сообщениями в режиме
реального времени.
Появление первых вычислительных машин обусловлено потребностями человека для продержки обработки информации и проведения
сложных вычислений в совершенно новых отраслях знаний, таких как, кибернетика, ядерная физика, космонавтика, зародившихся в середине XX-го
века. Считается, что первой вычислительной машиной является ЭВМ, созданная в Соединенных Штатах Америки в 1946 году под названием Univac «Энивак». Вес первой машины, содержащей элементы для поддержки
вычислительного процесса, составлял 30 тонн, располагалась ЭВМ на
площади в 150 кв. метров. При этом производительность машины составляла 300 операций в секунду (в 150 раз быстрее возможностей человека).
На базе вычислительных машин стали строить информационные системы,
которые предназначаются для поддержания деятельности человека при
взаимодействии с информацией. Новая область знаний, которая стала изучать свойства, структуру и функции информационных систем, а также основы их проектирования, создания, использования и оценки информационных процессов, назвали информатикой. Любая научная дисциплина
включает в себя изучение теоретических процессов, а также проектирование и создание практически полезных продуктов. Информатика предложила в качестве практической реализации – создание информационных технологий. Под информационной технологией подразумевается система
процедур преобразования информации с целью формирование, организа-
7
ции, обработки, распространения и использования информации. Основу
информационных технологий составляют:
 компьютерная обработка информации по заданным алгоритмам;
 хранение больших объемов информации на машиночитаемых носителях;
 передача информации на любое расстояние в ограниченное время.
Для поддержки взаимодействия человека с вычислительными средствами создается программное обеспечение. Программирование представляет собой сферу действий, направленную на создание программ. Программа – это последовательность команд компьютера, приводящая к решению задачи. Задача представляет собой часть проблемы, подлежащей решению с помощью технических средств, а приложение (синоним программа) – реализованное на компьютере решение данной задачи. Таким образом, можно заключить, что приложение – это программная реализация решения задачи на компьютере. Совокупность программных продуктов и
технической документации к ним называется программным обеспечением
(ПО).
В настоящее время при создании программных продуктов используют различные подходы при проектировании ПО, которые позволяют существенно снизить затраты на сроки и содержание ресурсов. Вместе с тем,
следует отметить проблемы, которые появляются при разработке программного обеспечения систем: а) частая смена вычислительной техники и
алгоритмических языков программирования из-за морального устаревания;
б) сложность процессов, которые должны поддерживаться приложениями;
в) повсеместное использование групповой работы с приложениями; г)
необходимость создания понятных и удобных интерфейсов для работы
пользователя; д) ограниченные сроки для разработки, тестирования и
внедрения программных продуктов в производственные (деловые) процессы.
8
СОДЕРЖАНИЕ МОДУЛЯ
1. Направления в области создания технологий программирования
Жизненный цикл и этапы разработки программного
обеспечения
Жизненным циклом программного обеспечения называют период от
момента появления идеи создания некоторого программного обеспечения (ПО) до момента завершения его поддержки фирмойразработчиком или фирмой, выполнявшей сопровождение [2]. Структура жизненного цикла программного обеспечения включает три
группы взаимосвязанных процессов (основные, организационные и
вспомогательные). Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые
входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными
данными и результатами. В группу основных процессов входят такие
этапы жизненного цикла программного обеспечения, как: постановка
задач, разработка, эксплуатация и сопровождение. Каждый этап сопровождается вспомогательными процессами, задачами которых являются: документирование ведения разработок и созданного программного обеспечения; обеспечение качества ведением разработок;
верификация и аттестация программного обеспечения; проведение
совместной оценки работоспособности отдельных программных модулей и приложений в целом (аудит системы); разрешение проблем
при анализе проводимого вспомогательного процесса. Организационные процессы имеют направленность на свершение действий при учете фазы жизненного цикла существования программного продукта. К
основным действиям организационных процессов следует отнести:
управление состоянием программного обеспечения (имеется в виду
9
управление процессом разработки, управление процессом эксплуатации, управление процессом обучения и т.п.); усовершенствование
программного обеспечения, находящегося в стадии проектирования,
разработки, эксплуатации; создание инфраструктуры для поддержки
процессов разработки и эксплуатации программного обеспечения;
обучение персонала, участвующего не только в разработке программного обеспечения, а также в поддержке ПО на стадии его эксплуатации.
Процесс разработки (development process) является основным в жизненном цикле ПО, выполняется в соответствии ГОСТ 19.102-77 «Стадии
разработки». Процесс разработки предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию программного обеспечения и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации.
Составной частью процесса является подготовка материалов, необходимых
для проверки работоспособности и соответствия качества программных
продуктов, материалов, необходимых для обучения персонала. Под стадиями разработки ПО, следует понимать выполнение определенных этапов,
которые включают:
 постановка задачи (стадия «Техническое задание»);
 анализ требований и разработка спецификаций (стадия «Эскизный
проект»);
 проектирование (стадия «Технический проект»);
 реализация (стадия «Рабочий проект»).
На протяжении длительного времени, с момента зарождения теории
высокоуровневых методов информатики и программирования, собран значительный опыт в формировании модели организации разработки программного обеспечения. В настоящее время, в зависимости от сложности
задачи, количества участников в разработке программного обеспечения и
10
требований к контролю качества готового продукта, используют три модели разработки (каскадная модель, модель с промежуточным контролем и
спиральная модель разработки программного обеспечения).
Каскадная модель разработки программного обеспечения предполагает переход на следующую стадию только в том случае, если на предыдущей стадии завершены все проектные операции. Схема каскадной модели жизненного цикла разработки программного обеспечения представлена
на рис. 1.
Постановка
задачи
Анализ
Проектирование
Реализация
Модификация
Рис. 1. Каскадная схема разработки программного обеспечения
Модель организации разработки программного обеспечения каскадным методом используют при блочно-иерархическом подходе к разработке
сложных технических объектов, в этом случае обеспечивается полный
набор проектной документации после завершения каждой стадии, что
уменьшает вероятность возникновения проблем при эксплуатации системы
(программного обеспечения). Неудобством, указанного подхода является
то, что требуется на самой ранней стадии при постановке задачи точно
указать все параметры системы и выставить окончательные требования.
Модель с промежуточным контролем. На практике, часто приходится во время разработки пересматривать требования к системе и вносить
11
некоторые изменения, что привело к использованию модели с промежуточным контролем, схема которой представлена на рис. 2.
Постановка
задачи
Анализ
Проектирование
Реализация
Модификация
Рис. 2. Схема разработки программного обеспечения с промежуточным
контролем
Модель поддержки жизненного цикла разработки программного
обеспечения с промежуточным контролем, позволяет осуществлять возврат на любой уровень этапа разработки, в случае возникновения потребностей для внесения изменений и уточнений. Процесс становится итерационным, что вызывает опасения о том, что разработка никогда не закончится во время из-за постоянных изменений и уточнений, которые вносит
заказчик. Тем не менее, появляется возможность проводить параллельно
некоторые стадии разработки, что позволяет равномерно использовать
квалифицированные кадровые ресурсы и сокращать время создания программного продукта при своевременном внесении изменений в предшествующие стадии разработки продукта.
Спиральная (итерационная) модель разработки программного
обеспечения и поддержки его жизненного цикла возникла на основе идеологии создания прототипов. Под прототипом следует понимать некоторый
базовый продукт, который ложится в основу дальнейшего совершенство-
12
вания, разработки модификаций различных версий и специализации, в зависимости от назначения применения. Основная идея формирования спиральной модели заключается в том, что созданный ранее программный
продукт проходит несколько итераций на всем этапе его жизненного цикла.
Схема разработки программного обеспечения на основе спиральной (итерационной) модели представлена на рис. 3.
Постановка
задачи
Анализ
Исходная
постановка
задачи
3
2
1
Внедрение очередной
версии системы
Реализация
Проектирование
Рис. 3. Итерационная (спиральная) схема разработки программного обеспечения
Основным достоинством данной схемы является та, что, начиная с
некоторой итерации, на которой обеспечена определенная функциональная
полнота, продукт можно предоставлять пользователю. В итоге, появляются
возможности:
 сокращать время на создание первых версий программного продукта;
13
 заинтересовать пользователей для приобретения программного продукта, отвечающего их запросам;
 ускорить формирование и уточнение спецификаций за счет появления практики использования продукта в реальных условиях.
Наиболее часто применяют спиральную схему разработки программного продукта в тех случаях, когда он ориентируется на массового
пользователя.
Структурное программирование
Разработка любого программного обеспечения начинается с анализа
требований к будущему программному продукту. В результате анализа получают спецификации разрабатываемого программного обеспечения. При
этом выполняют декомпозицию и содержательную постановку решаемых
задач, уточняют их взаимодействие и эксплуатационные ограничения. В
целом в процессе определения спецификаций строят общую модель предметной области, в которой будет существовать программное обеспечение и
реализовать его основные функции. В рамках структурного подхода на
этапе анализа и определения спецификаций используют три типа моделей:
ориентированные на функции, ориентированные на данные и ориентированные на потоки данных. Непосредственно методология структурного
программирования базируется на системном подходе к анализу, проектированию и реализации программного обеспечения.
Отображением взаимосвязи функций модели будущего программного обеспечения осуществляется посредством построения функциональных
диаграмм. В соответствии с методологией структурного подхода, проект
будущего приложения разделяется на отдельные независимые задачи.
Каждая задача имеет свои конечные функции. Таким образом, добиваются
выделения в задачах входа и выхода, которые однозначно определяют выполняемую функцию. Практическое применение структурного подхода
при разработке проектов программного обеспечения началось в конце 70-х
14
годов ХХ-го века, когда был предложен Д.Россом функциональный подход
к проектированию [4]. Графическое представление функций программных
модулей формируется поэтапно. На первом этапе создается блок, который
отображает общую функцию, выполняемую программным продуктом. На
вход (Input) функции подаются сигналы, которые преобразуются, при этом
ограничениями являются контрольные значения или их называют управляющие параметры (Control). В результате выполняемой функции появляется выходной (Output) сигнал (данные). Соответственно, выполнение
функции осуществляется при использовании некоторых ресурсов и средств,
в нотации функционального проектирования такие средства называют механизмами (Mechanize). Так как внутри описываемой функции существует
множество связей между элементами, то осуществляется операция декомпозиции (разделения) функции на несколько составляющих. Переходя от
верхнего уровня, рассматриваемой функции, к низшим уровням, добиваются того, что каждый элемент на вход получает только один поток данных, и на выходе у него остается тоже один поток данных. Т.е. программные модули, которые выполняют определенные функции, становятся программно независимыми. На рис. 4 представлен функциональный блок задачи и интерфейсные дуги в нотации структурного подхода проектирования ПО.
Управление
(Control)
Вход (Input)
исходные данные
Функция
Выход (Output)
результаты
Механизмы
(Mechanize)
Рис. 4. Функциональный блок и интерфейсные дуги
15
При использовании методологии структурного подхода, разработка
программы должна вестись поэтапно. На каждом этапе должно решаться
ограниченное число четко поставленных задач с ясным пониманием их
назначения и роли в контексте всей задачи. Конечным этапом декомпозиции функциональных блоков по задачам, является этап построения блоксхемы алгоритма. На рис. 5 представлены фрагменты блок-схем алгоритмов (следование, ветвление, цикл).
Алгоритмом называют формально
описанную последовательность действий, которые необходимо выполнить
для получения требуемого результата. На схемах (рис. 5) характерным является то, что они имеют один вход и один выход.
Следование
Ввод документа
Обработка
данных
Ветвление
Цикл
Условие
Параметры
цикла
Оператор 1
Оператор 2
Тело цикла
(операторы)
Рис. 5. Фрагменты блок-схем алгоритма
Нисходящее проектирование
При проектировании программного обеспечения разработчики
столкнулись с таким фактом, как сложность логики, которую следует заложить в реализацию, создаваемого продукта. Это вызвано тем обстоятельством, что конечный продукт должен обладать многофункциональностью, причем циркулирующие потоки с данными содержат схожие (однотипные) реквизиты. Программные системы являются отражением природных и технических систем, которым свойственна иерархическая структура.
16
Чем выше уровень в иерархии, тем степень представления (описания) блока делается менее конкретным. В основе нисходящего проектирования
программного обеспечения лежат декомпозиция объекта на составные
элементы и иерархическое упорядочивание. При выполнении указанных
работ следует соблюдать следующие принципы:
 непротиворечивость – контроль согласованности элементов между
собой;
 полнота – контроль на присутствие лишних элементов;
 повторяемость – необходимость выделения одинаковых блоков для
удешевления и ускорения разработок;
 формализация – строгость в использовании методики проектирования.
На рис. 6 показан пример иерархической структуры проекта программного обеспечения в виде дерева целей, на каждом уровне осуществляется декомпозиция начальной цели, причем, не все уровни проекта
должны быть однозначными.
Цель применения приложения
Подсистема (подцель 1)
Приложение 1
Приложение 2
Подсистема (подцель 2)
Приложение 3
Функция 1
Модуль 1
Модуль 2
Приложение 1
Функция 2
Приложение 2
Модуль 6
Модуль 1
Модуль 7
Модуль 3
Модуль 4
Модуль 2
Модуль 8
Рис. 6. Пример нисходящей структуры проекта программного комплекса
17
Следует обратить внимание на два обстоятельства при использовании нисходящего подхода проектирования. Первое заключается в том, что
в зависимости от сложности задач, глубина проработки уровней различная.
Второе обстоятельство заключается в том, что появляются в отдельных
ветвях аналогичные модули, которые разрабатываются один раз, но используются для решения различных по назначению задач (для наглядности,
одинаковые модули на рис. 6 обведены двойной рамкой).
Концепция создания модульных программ
Конечным продуктом при разработке проекта программного обеспечения информационной системы становится набор программ, которые
обеспечивают выполнение заданных функций. Независимо от выбранного
подхода в проектировании, было замечено, что существуют типовые действия по вводу, обработке и преобразованию информации. На основании
накопленного опыта в программировании и соблюдения соглашений в использовании языков программирования, была предложена концепция создания модульных программ.
Модульное программирование основано на понятии модуля. Модуль
представляет собой совокупность логически связанных элементов, предназначенных для использования другими модулями и программами. Модули
предназначены для хранения готовых программ, поэтому, модуль сам по
себе не является выполняемой программой – его объекты используются
другими программными единицами (процедурами, функциями). Модульный подход позволяет безболезненно производить модернизацию программы в процессе ее эксплуатации и облегчает ее содержание. Особенностью концепции использования модулей при реализации проекта является
та, что по установленным правилам, каждый модуль должен отвечать следующим требованиями:
18
 на входе модуль должен получать определенный набор исходных
данных, обрабатывать эти данные и возвращать результаты в определенном наборе, т.е. модуль реализует принцип IPO: вход – процесс
– выход (Input – Process – Output);
 модуль должен обладать функциональной завершенностью, т.е. при
выполнении какого-либо процесса обработка данных в нем должна
осуществляться полностью;
 модуль должен быть логически независимым от других модулей, т.е.
результат работы модуля зависит от состава исходных данных.
Таким образом, можно сделать заключение, что модуль представляет
собой автономную компилируемую программную единицу, которая может
входить в состав программного обеспечения системы, но одновременно
являться независимой. Не случайно, что на основе модулей стали составлять библиотеки программных ресурсов. Под библиотекой программных
ресурсов следует понимать отдельные подпрограммы, константы, наборы
переменных, описания типов, классы объектов, все перечисленные наименования хранятся в операционной системе или в отдельных библиотеках, к
которым обращаются из тела приложения, варианты организации взаимодействия приложения с модулями приведены на рис. 7.
Функция 1
Функция 2
Функция 1
Внешний
модуль
Функция 2
Функция 3
Внутренний
модуль
А) Связь двух функций в приложении через внешний модуль
Внешний
модуль
Б) Объединение работы внутреннего модуля
приложения с внешним модулем системы
Рис. 7. Примеры организации взаимодействия приложений с модулями
19
1.5. Объектно-ориентированное проектирование и программирование
Реальный мир, который нас окружает, состоит из отдельных объектов. Каждый объект обладает собственными свойствами и для чего-то
предназначен. Между объектами устанавливаются связи, а проявлять себя
объект начинает тогда, когда к нему обращаются. В результате выполнения каких-либо действий с объектом, появляется выходная информация,
которая необходима для дальнейшей работы или для передачи на другой
объект. Получается, что в реальном мире происходит событие с объектом,
которое порождает выходные сигналы для передачи другим объектам. Событие порождает действие, на которое необходимо реагировать. Стремление создавать системы, состоящие из объектов, реагирующих на определенные события только в виртуальном мире, привело к разработке процедурных методов программирования. Т.е. таких методов, которые позволили описать внутреннее поведение объекта, в зависимости от заданных
условий. Отображение действий, происходящих внутри объекта, стали
называть процедурой, которая оформляется в виде инструкции. Инструкции, как правило, являются типовыми, поэтому из них стало возможным
собирать модель поведения объекта. Задачей разработчика программного
обеспечения стало – дать описание объекта, который выполняет некоторые
действия. Следовательно, в отличие от функционального подхода, потребовалось сосредоточить внимание на построении таких схем, в которых
главное внимание, следует уделять событию, происходящее с объектом и
процедурам, которые должны реагировать на свершившееся событие.
Непосредственно реализация проекта программного обеспечения стало
осуществляться с помощью объектно-ориентированного программирования.
Объектно-ориентированное программирование определяется как
технология создания сложного, программного обеспечения, основанная на
представлении программы в виде совокупности объектов, каждый из кото20
рых является экземпляром определенного типа (класса), а классы образуют
иерархию с наследованием свойств[4].
В идеологии объектно-ориентрованного подхода используются достижения, накопленные в структурном подходе проектирования и модульном представлении описания предметной области. В частности, выделяется предметная область, в которой существует объект, выделяются его
функциональные возможности, определяются информационные связи
между объектами, каждое событие описывается в виде отдельного модуля
(процедуры). На рис. 8 представлена обобщенная схема идеологии объектно-ориентированного подхода при проектировании системы.
Предметная область, в которой существует конкретный объект
Событие, которое
вызывает работу
объекта
Объект 3
Объект 4
Объект 5
Объект 1
Процедура обработки
события и генерации
выходного сигнала
Объект 2
Новое событие, которое инициирует работу другого объекта
Рис. 8. Обобщенная схема объектно-ориентированного подхода при проектировании систем
Удобством использования объектно-ориентированного подхода является то, что появляется возможность при разработке программного
обеспечения вести отладку описания каждого события, которое происходит с объектом. На приведенной схеме (рис. 8), видно, что объект 1 порож21
дает два события, которые воздействуют на два независимых объекта (объекты 2 и 3), внутри этих объектов происходит преобразование информации
по различным алгоритмам, для которых можно разрабатывать и отлаживать программные модули в любой последовательности. Действие объекта
4 будет определяться наличием двух событий, которые сгенерируют по
итогам работы объекты 2 и 3, это значит, что заранее можно определить
порядок поведения объекта 4, и проводить разработку алгоритма его работы независимо от готовности предыдущих программных модулей.
2.
Основные принципы объектно-ориентированного
программирования (ООП)
Сущность ООП
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых
является экземпляром определенного типа (класса), а классы образуют
иерархию с наследованием свойств. Когда вы открываете любую программу Windows, вы видите окно с множеством кнопок, разделов меню, окон
редактирования, списков и т.п. Все это объекты. Причем сами по себе они
ничего не делают. Они ждут каких-либо событий – нажатия пользователем
клавиш и кнопок мыши, перемещения курсора и т.д. Когда происходит подобное событие, объект получает сообщение об этом и как-то на него реагирует: выполняет некоторые вычисления, разворачивает список, заносит
символ в окно редактирования. Вот такая программа Windows и есть объектно-ориентированная программа, часто такие программы называют приложениями.
Приложение, построенное по принципам объектной ориентации –
это не последовательность каких-либо операторов, не некий жесткий алгоритм. Объектно-ориентированная программа – это совокупность объектов
22
и способов их взаимодействия. Отдельным (и главным) объектом при таком подходе во многих случаях можно считать пользователя программы.
Он же служит и основным, но не единственным, источником событий,
управляющих приложением.
Базовыми понятиями организации объекта при его взаимодействии с
окружающей средой являются: инкапсуляция, наследование и полиморфизм.
Инкапсуляция (encapsulation) – это способ связывания атрибутов и
процедур для формирования объектов, т.е. объединение в единое целое
данных и алгоритмов (объектных методов) обработки этих данных. Практическое применение инкапсуляции при создании программ проявляется в
том, что программист помещает атрибуты и процедуры их обработки в
специальный класс, следовательно, можно организовывать контроль вводимых данных, таким образом происходит защита (скрытие) программного
кода от вмешательства со стороны. Пользователь может вводить данные,
используя интерфейс пользователя, но не может повлиять на механизм их
контроля. Разработчик может всегда видоизменить процедуру обработки и
контроля данных.
Наследование (inheritance) – свойство объектов порождать своих
«потомков». В отношении «родитель-потомок» потомок наследует все атрибуты и варианты поведения родителя, а родительские спецификаторы
доступа используются для контроля того, каким образом эти унаследованные элементы будут доступны другим классам или функциям. Существует
три способа реализации наследования в программе: простое, множественное и многоуровневое наследование. Каждый из этих типов позволяет
классу обращаться к атрибутам и поведению другого класса, используя
немного разные методы.
Полиморфизм (polymorphism) – свойство родственных объектов решать схожие по смыслу проблемы разными способами. Технически поли23
морфизм означает, что одна вещь может принимать много форм. В терминах программирования «вещь» - это название метода, а «форма» - это поведение, осуществляемое методом. Поэтому полиморфизм в терминах программирования означает, что метод с одним названием может осуществлять множество вариантов поведения. Если привести пример из окружающего мира, то представьте себе, что необходимо включить или выключить
питание компьютера, освещение в доме или управлять напряжением в высоковольтной сети. Во всех случаях, механизмы выполняют одинаковые
действия (включают или выключают), но при этом, они устроены совершенно по-разному.
Представление объекта
В объектно-ориентированном подходе объект представляется в виде
совокупности свойств, методов и событий, на которые он может реагировать. Условно схему объекта можно отобразить так, как это показано на
рис. 9.
Установки при проектировании
- шрифт; цвет; выравнивание; заполнение текстом;
События
Свойства
(значения)
- алгоритм обработки данных, которые поступают в объект; способ изменения данных; правила присвоения
значений переменным;
Методы
(программы)
- реакция на щелчок мыши; изменение свойства объекта при его загрузке; реакция на наезд или увода указателя мыши на объект/ с объекта;
Обработчики
событий
(процедуры)
- щелчок мыши по объекту, наезд
указателя мыши на объект; нажатие
на клавишу и т.п.
События
Рис. 9. Схема организации объекта
24
В реальном мире каждый объект обладает множеством свойств, которые определяются в виде значений. Например, у человека можно выделить огромное количество свойств. Под свойствами человека можно понимать вес, рост, фамилию, пол, возраст, знание иностранного языка, темперамент и т.п. В объектно-ориентированной программе нет необходимости
закладывать все свойства, которыми может обладать объект. Это связано с
тем, что объект должен отображать определенное состояние и реагировать
только на те события, которые направлены либо на изменение его свойств,
либо работать с данными, которые определяют эти свойства. Обработка
данных осуществляется с помощью методов. Под методом в ООП понимают процедуры, встроенные (привязанные) к конкретному объекту. Вызов метода (процедуры) внутри объекта осуществляется при начале работы
обработчика события. Непосредственно событие, создается либо пользователем при взаимодействии с приложением, либо программным путем.
Пользователь создает события с помощью технических средств, например,
щелкает мышью по изображению на экране. Щелчок мыши – это событие,
которое запускает внутреннюю программу обработчик события. Программным путем событие генерируется либо при передаче данных за пределы объекта, либо при открытии приложения или работы таймера.
Понятие класса в ООП
Класс – это структурный тип данных, который включает описание
полей данных, а также процедур и функций, работающих с этими полями
данных. Проектирование классов предполагает окончательное определение структуры и поведения его объектов. Структура объектов определяется совокупностью атрибутов и операций класса. Каждый атрибут – это поле или совокупность полей данных, содержащихся в объекте класса. Поведение объекта класса определяется реализуемыми обязанностями, которые
выполняются посредством операций класса. Класс в отличие от объекта не
25
имеет графического интерфейса. Строительным блоком класса является
модуль – некоторые программные коды, которые обрабатывают входной
поток данных, а выходные данные (результаты) передают непосредственно
объекту. Поэтому, когда речь заходит об экземпляре класса, имеется в виду то обстоятельство, что поведение любого экземпляра идентично, но
любой экземпляр имеет свои особенности, что отражается при просмотре
результатов. Например, можно определить класс – студент. В этом классе
основными параметрами могут являться: пол, специальность, успеваемость
по дисциплине. Любой студент является объектом этого класса, при этом,
у конкретного студента собственные параметры, которые заложены в общий класс. Создание класса, позволяет избежать повторного описания всех
необходимых параметров для каждого экземпляра (в примере, экземпляром является конкретный студент). Таким образом, создается программный модуль, который воспринимает данные об экземпляре класса, обрабатывает эти данные по единому алгоритму, на выходе выдает сведения, касающиеся конкретного экземпляра.
3. Особенности программирования в оконных операционных средах
3.1. Создание приложений Windows
Создание программных средств для семейства операционных систем
Win 32 имеет целый ряд особенностей, без знакомства с которыми невозможно рассматривать применение объектно-ориентированных языков программирования. Необходимо отметить, что приложение Windows взаимодействует с пользователем и операционной системой путем отправки и получения сообщений. Сообщения, полученные приложением, передаются
для обработки так называемым оконным функциям, которые обеспечивают
выполнение требуемых действий. Такое построение обработки в программе получило название событийного программирования.
26
Операционная система типа Windows существенно отличается от
операционной системы MS DOS не только с точки зрения пользователя, но
и сточки зрения разработчика приложений. Основными отличительными
чертами системы Windows являются:
1. Системная поддержка виртуального пространства памяти для каждого приложения. Виртуальное пространство памяти организуется за
счет использования специально зарезервированной области жесткого
диска на компьютере пользователя. Поэтому происходит перенос
данных при работе нескольких приложений одновременно в виртуальную память, с последующим извлечения необходимого потока
данных в оперативную память компьютера для выполнения конкретных действий с данными.
2. Возможность организации работы одновременно с несколькими
приложениями, которые могут использовать одни и те же функции.
Этот режим поддерживается за счет разделения времени между задачами. В современных операционных системах разделение времени
для поддержки многозадачной работы осуществляется за счет квантования времени на каждый цикл работы отдельной задачи. Каждое
приложение считается отдельным процессом, внутри процесса так
же осуществляется квантование по времени, что позволяет использовать одни и те же функции внутри каждого приложения.
3. Интерфейс пользователя в среде Windows представляется из стандартных элементов, что позволяет пользователю размещать на
экране сразу несколько приложений, осуществлять переключение
между ними и вызывать однотипные процедуры.
4. Операционная система Windows постоянно совершенствуется. Вводятся новые возможности, добавляются функции, расширяются
стандартные библиотеки. Но самое главное то, что всегда поддерживается переносимость программного обеспечения. Решаются про27
блемы переносимости программного обеспечения на уровне установки драйверов, которые способны преобразовывать данные независимо от типа устройства, через которое эти данные проходят.
5. В Windows реализована возможность обмена данными между приложениями. Обмен поддерживается специальным механизмом OLE
(Object Linking and Embedding – связывание и внедрение объектов).
Использование механизма OLE позволяет создавать составные документы. Составной документ либо содержит ссылку на независимое
приложение, либо содержит некоторое внедрение из другого приложения. Например, в текстовый редактор Word можно внедрять объекты из Excel (диаграмму). При изменении данных в Excel будет
отображение в диаграмме, которая внедрена на страницы Word.
Схема взаимодействия приложения Windows с операционной системой показана на рис. 10. Благодаря независимости приложения от аппаратных средств, появляется возможность создавать оконные интерфейсы, которые доступны для работы пользователя, но вместе с тем, пользователь не
имеет
доступа
к
правке
программных
кодов
в
приложениях.
Приложения Windows
Windows
Ядро
Интерфейс с графическими
устройствами
Управляющие элементы
пользователя
Драйверы и устройства
Аппаратные средства
Рис. 10 Взаимодействие приложений Windows с операционной системой
28
3.2. Языки программирования высокого уровня
Языки программирования созданы для того, чтобы людям было
проще читать и писать для компьютера набор, выполняемых команд. В результате подготовленной программы на языке программирования, компьютер должен ее преобразовать в машинный код, эта операция называется
транслированием программы. Языки программирования можно разделить
на два класса, к первому классу относятся языки программирования низкого уровня, а ко второму классу относятся языки программирования высокого уровня.
Язык программирования низкого уровня создается для использования на компьютере определенного типа. На языках низкого уровня создаются программы, которые обеспечивают работу устройств. Поэтому, переносить программные коды с одного компьютера на другой не представляется возможным.
Язык программирования высокого уровня предназначен для решения
различных задач. Логика построения хода решения задачи зависит от тех
требований, которые выставляет заказчик. Как правило, для решения конкретных задач, требуется взаимодействие человека с машиной, т.е. ввода и
вывода данных. Поэтому команды, которые вызывает человек, включают в
себя целый набор логических действий. Для удобства разработки программ стали использовать операторы (простые и сложные). Каждый оператор программы включает в себя набор простых команд. Стремление разработчиков языков программирования свести ошибки программистов к минимуму, привело к тому, что были созданы отладчики программ, с помощью которых анализируется правила написания операторов, синтаксис
программного обеспечения, а так же проверяется логика работы алгоритма.
Теория объектно-ориентированного подхода для разработки программного обеспечения, потребовала обеспечения программистов специализированными языками программирования. Считается, что первый объектно29
ориентированный язык программирования появился в 1967 году под
названием SIMULA. В настоящее время лидирующими объектноориентированными языками программирования в области разработки программных приложений являются: C++, Java, C#, Delphi, Visual Basic.Net.
3.3. Типы интерфейсов пользователя
Конечной целью разработки программного приложения является
обеспечение выполнения задачи, которую решает пользователь. Программные приложения могут быть многофункциональными, т.е. пользователь выбирает те возможности приложения, которые поддерживают выполнение определенных функций при участии пользователя в деловом
процессе. Взаимодействие пользователя с программными средствами поддерживается оконными интерфейсами, которые строятся по аналогии с
процедурным и объектным подходом к программированию. На рис. 11
представлены типы интерфейсов, которые создаются для удобства работы
пользователя.
Интерфейсы пользователя
Процедурноориентированные
Примитивные
Меню
Объектноориентированные
Со свободной
навигацией
Прямого манипулирования
Рис. 11. Типы интерфейсов
Применение процедурно-ориентированных интерфейсов обеспечивают пользователей функциями, необходимых для решения задач (акцент
делается на задачи). Примитивным называют интерфейс, который органи30
зует взаимодействие пользователя в консольном режиме. Обычно такой
интерфейс реализует конкретный сценарий работы программного обеспечения. Например, ввод данных – решение задачи – вывод результатов на
экран. Интерфейс типа меню позволяет пользователю выбирать необходимые операции из специальных списков. Эти интерфейсы предполагают реализацию множества сценариев работы, последовательность действий в
которых определяется пользователем. Например, пользователь выбирает
последовательность операций работы с файлами. Как правило, интерфейсы
типа меню строятся в виде иерархических структур. Интерфейсы со свободной навигацией ориентированы на использование экрана в графическом режиме. Графические интерфейсы поддерживают концепцию интерактивного взаимодействия с программным обеспечением. При использовании графического элемента на экране компьютера, в качестве отправной
точки при взаимодействии с приложением, в последующем внешний вид
элемента может поменяться. Кроме того, для взаимодействия с элементами
графического меню, допустимо использования разнообразных интерфейсных компонент, например, манипулятор мышь, клавиатура, сенсорное
взаимодействие, управление голосом и т.п.
Объектно-ориентированные интерфейсы поддерживают взаимодействие пользователя с программным обеспечением посредством выбора и
перемещения пиктограмм. Для реализации таких интерфейсов используют
объектно-ориентированные библиотеки или разрабатывают собственные
компоненты. Пользовательские интерфейсы подобного типа обеспечивают
пользователя возможностью взаимодействовать с объектом. Акцент делается на входные данные, которые относятся к объекту. Объект при этом
понимается в широком смысле слова, например, модель реальной системы
или процесса, база данных, простой текст и т.п. Пользователю предоставляется возможность изменять параметры объекта, а также инициировать
взаимодействие нескольких объектов.
31
4. Технология создания приложений в среде Visual Basic
4.1. Введение в систему программирования Visual Basic
Одним из распространенных языков программирования для поддержки объектно-ориентированного подхода – является язык программирования Visual Basic, разработанный корпорацией Microsoft. Наравне с такими визуальными средами, как: Delphi, C++ Bilder и Visual Java, Visual
Basic, постоянно совершенствуется и обладает всеми возможностями для
поддержки разработки приложений, согласно идеологии объектноориентированного программирования. Широкое применение операционной системы Windows в нашей стране, привело к тому, что модификации
Visual Basic стали использоваться при работе с офисными приложениями
MS Word, Access, Excel, Power Point (VBA – Visual Basic for Application),
при
проектировании
интерактивных
и
динамических
Web-страниц
(VBScript).
Создание независимых приложений для обеспечения работы пользователя, как в автономном режиме, так и в корпоративной сети организации
осуществляется с помощь пакета визуального программирования, основанного на том, что разработчик программного приложения получает
мощное средство для быстрого создания программ.
После запуска системы программирования Visual Basic (VB) на экране
обычно появляются 5 окон (рис. 12). В верхней части экрана размещается
главное окно, содержащее головное меню команд собственно среды программирования VB и пиктографическое меню наиболее часто используемых команд. При закрытии главного окна среда VB выгружается из оперативной памяти и работа с VB заканчивается. Другие окна могут быть не
представлены на экране, в этом случае для их вывода на экран необходимо
раскрыть пункт головного меню “View” и выполнить соответствующую
команду для раскрытия нужного окна. Например, если отсутствует окно
32
свойств, необходимо в строке меню раскрыть:
и
щелкнуть левой клавишей мыши (View/Properties Window).
Панель инструментов
Окно формы
Главное окно
Окно проекта
Окно свойств
Рис. 12. Основные окна среды Visual Basic
Главное окно – включает в свой состав строку заголовка, строку меню, инструментальной линейки и дополнительные окна для размещения
формы, проекта, инструментов с элементами управления и отображения
свойств объектов, используемых при создании программы. Главное окно
является оболочкой для объединения возможностей всех перечисленных
33
элементов. Во время конструирования приложения в строке заголовка окна
отображается название проекта и режима отладки ( в квадратных скобках
[design]). В любой момент можно проверить, как работает объект, расположенный на форме при написании программных кодов для него. Для этого следует перейти в режим исполнения программного кода приложения.
Переход в режим осуществляется выбором в строке меню опции Run или
нажатием на пиктограмму с изображением стрелки, как это представлено
на рис. 13.
Рис. 13. Панель главного окна с указанием элементов для вызова режима
проверки работоспособности приложения
Окно формы (Form) – это полноправный объект Visual Basic, который называется Form. Вначале экранная форма пуста, на ней программист
располагает другие объекты, которые выбирает программист из панели инструментов или добавляет из списка элементов ActiveX. Вместо начальной
экранной формы, можно использовать форму, которая создана ранее. Поэтому, контейнером для сбора программных модулей, тех процедур, которые создает программист и форм является окно проекта Project.
Панель инструментов (Toolbox) – содержит стандартный набор
пиктограмм (21 штуки), которые представляют собой отображение объектов, располагаемых на форме. Такие объекты называют элементами управления, т.к. они связываются с программными кодами, которые выполняются при вызове событий в интерфейсе пользователя или с помощью программных средств. В том случае, если программисту необходимо использовать расширенные возможности Visual Basic, тогда следует воспользо-
34
ваться возможностью команды Components (компоненты), которая открывается при нажатии правой клавиши мыши на панели инструментов. Открывается окно новых компонентов, которые имеют название, пояснения и
переключатель для ввода пометки, что данный элемент следует добавить
на панель инструментов [6].
Окно проекта (Project Explorer) – содержит графическое представление содержимого проекта, который начинают разрабатывать (на рис. 14
представлен вариант с окном нового проекта). В случае загрузки уже готового проекта, в окне проекта отображаются все файлы экранной формы и
модулей, которые входят в проект. При присваивании имен проекту, формам, модулям и другим элементам, в окне проекта отображаются эти имена. Раскрыть дерево, используемых элементов в проекте можно так же, как
при работе с проводником Windows. Дерево проекта отображается при
нажатии на пиктограмму с изображение папки (Toggle folders). Кроме того,
на окне проекта имеется еще две пиктограммы: коды проекта (view code) и
просмотр объекта (view object), которые позволяют обратиться к конкретному объекту и просмотреть программу, которая уже составлена и требует
редактирования.
Рис. 14. Окно проекта (Project) с перечнем пиктограмм для просмотра
форм и папок проекта
35
Окно свойств (Properties) – предназначено для отображения свойств
объекта, который используется для создания приложения (приложением
правильно называть законченную программную разработку, которая прошла этап компиляции и стала иметь отображение в виде загрузочного файла “exe – модуля”). Окно свойств состоит из двух списков. Первый список
отображается в виде одной строки (раскрывающийся список), в котором
содержатся названия всех объектов, используемых для разработки приложения. Этот список постоянно накапливается, т.к. программист заносит на
форму все новые и новые объекты. Выбрав из списка необходимый объект
(щелчок левой клавиши мыши по наименованию объекта), во втором списке отображается перечень и значения свойств данного объекта. Следует
отметить, что объекты наделены индивидуальными свойствами, поэтому
содержание списка свойств готовится системой для каждого объекта отдельно. Второй список отображает все возможные индивидуальные свойства объекта. Разработчик приложения может изменять значения свойств
непосредственно при проектировании или в программных кодах указывать
имя свойства объекта и заменять его (на рис. 15 представлен внешний вид
окна со свойствами объекта).
Рис. 15. Окно свойства (Properties) объектов проекта
36
4.2. Этапы разработки приложений в интегрированной среде проектирования Visual Basic
Интегрированная среда разработки (IDE – Integrated Development Environment) позволяет программисту проводить поэтапную разработку
сложных проектов, проводить отладку отдельных программных модулей,
осуществлять стыковку (интеграцию) уже готовых проектов с разрабатываемым проектом, а так же по ходу разработки видоизменять интерфейс
пользователя. Поэтому, прежде всего, необходимо поставить (сформулировать) задачу, выделить функции для каждого объекта, а затем приступить к этапу проектирования.
Предположим, что необходимо создать приложение, которое позволяет пользователю вводить фамилии сотрудников, накапливать список,
осуществлять выбор из списка необходимых фамилий, а затем сохранять
список выбранных фамилий из общего списка в виде файла. Схему, осуществляемых функций пользователя приложения можно отобразить в виде
схемы, которая представлена на рис. 16.
Накапливание списка в
произвольном порядке
Ввод фамилии
сотрудника
Функция ввода
данных
Выбор фамилии из списка,
перенос в новый список
Новый список фамилий
Функция сохранения данных
Сохранение
нового списка
в виде файла
Рис. 16. Схема разработки приложения для работы с данными
37
Для разработки интерфейса пользователя необходимо учесть то обстоятельство, что пользователь должен иметь возможность выбора, либо
заниматься вводом данных о сотрудниках, либо отбирать необходимые
данные для подготовки файла, либо осуществлять совмещение операций.
Следовательно, целесообразно выделить две основные функции: ввод данных и сохранение данных. Каждая функция должна выполняться независимо, поэтому целесообразно разработать проект, в котором участвуют две
независимые формы, а пользователь может обращаться к любой из них по
мере необходимости.
4.3. Визуальное проектирование приложения
Удобством визуального проектирования приложений заключается в
том, что программист выбирает объекты из списков, либо на панели инструментов, либо из формы с дополнительными компонентами, переносит
их на форму проекта, масштабирует и задает начальные значения свойств
объекту в режиме реального времени, используя при этом только мышь и
клавиатуру компьютера. Безусловно, чтобы добиться выразительности интерфейса пользователя, необходимо продумать порядок расположения
объектов на форме и их назначение для работы пользователя с созданным
приложением. В разделе 4.2. осуществлена постановка задачи, которую
целесообразно реализовать в два этапа. На первом этапе создать пользовательский интерфейс для поддержки функции ввода данных, а на втором
этапе – создать интерфейс пользователя для поддержки функции сохранения данных и собрать в одном проекте разработанные формы.
Для создания интерфейса пользователя, поддерживающего функцию
ввода данных, предлагается выбрать элементы управления и расположить
на форме, как это показано на рис. 17. Разработчик приложения, в первую
очередь стремится разместить элементы управления на форме, для чего
необходимо на панели инструментов выбрать элемент (выделить его
38
щелчком левой клавиши мыши), а затем в нужном месте на форме удерживая левую клавишу мыши отмасштабировать элемент управления. Для реализации рассматриваемого примера, предлагается использовать следующие элементы управления: Label – Метка (2 шт.), Text Box – Текстовое поле, Combo Box – Поле со списком, Image – Изображение, Command Button
– Командная кнопка.
Рис. 17. Окно формы проекта с расположенными на нем элементами будущего приложения
Каждый элемент, который входит в проект имеет собственные свойства, по умолчанию система задает свойства, которые доступны для изменения. При визуальном проектировании интерфейса пользователя, требуется изменять свойства элементов управления, чтобы проект был более
выразительным с точки зрения оформления. Необходимо помнить, что окно формы представляет тот самый элемент, на котором располагаются все
остальные, поэтому следует заменить некоторые стандартные свойства
элемента Form на те, которые должны быть уникальными для проекта.
Задание свойств элементу Form заключается в том, что необходимо
ввести имя формы, изменить цвет подложки интерфейса пользователя и
39
задать наименование формы, которое отображается в информационной
строке. На рис. 18 представлены свойства объекта Form с измененными
свойствами.
Рис. 18. Окно со свойствами объекта Form
Аналогичные действия, необходимо выполнить для объектов, которые располагаются на форме. Для этого необходимо выделить объект на
форме (щелкнуть левой клавишей мыши по объекту) и внести необходимые изменения. Работая с объектом Images, необходимо ввести имя файла
рисунка в свойство Picture. Рисунок выбирается из коллекции рисунков,
которые находятся у программиста на рабочем месте. После того, как будет указан путь к рисунку, система автоматически перенесет рисунок из
указанной папки в среду разработки проекта. В таблице 1 представлены
имена объектов, которые расположены на форме, их наименования, а так
же перечень свойств, которые были изменены во время проектирования.
Следует отметить, что при изменении имени объекта, система автоматиче-
40
ски добавляет это имя в списки окон свойств (Properties) и программных
кодов (Code), об этом окне будет рассказано в следующем разделе.
Таблица 1. Описание объектов и их свойств
№
п.п.
1
Название
объекта
Form1
2
Label1
3
Label2
4
Text Box1
5
6
7
Combo Box1
Image1
Common Button1
Свойство
Содержание
Name
Caption
BackColor
Name
TextAlign
Caption
BackColor
Font
ForeColor
Name
TextAlign
Caption
F1
Ввод данных
Green
L1
Center
Введите фамилию и нажмите клавишу Enter
&H0080FF80&
Arial Cyr 14 pt.
&H00FF0000&
L2
Center
Щелкните по фамилии, чтобы перенести ее в
другую форму
&H0080FFFF&
T1
«» - Пусто
C1
Bitmap (перенести из файла на проект)
Co1
Закрыть все приложения
Arial Cyr 10 pt.
BackColor
Name
Text
Name
Picture
Name
Caption
Font
После того, как создана первая форма в виде интерфейса пользователя, необходимо переходить к разработке программных кодов для выполнения функций ввода данных, формирования общего списка и осуществления перехода к следующей форме.
4.4. Разработка программных кодов в среде объектноориентированного программирования
4.4.1. Процедурный подход к программированию
Язык программирования Visual Basic относится к процедурным языкам программирования, как и другие языки, поддерживающие объектноориентированный подход создания приложений. В процедурных языках
41
управление данными осуществляется с помощью вызова процедур, а не
выполнением строка за строкой всей программы приложения.
В языке программирования Visual Basic понятие процедуры и подпрограммы является синонимом, поэтому часто говорят о процедурах обработки событий, а обозначают их словом Subruatine – подпрограмма (сокращенно – Sub). Вместе с тем, в объектно-ориентированном программировании под процедурой понимают – фрагмент программного кода, с помощью которого решается какая-то локальная задача.
Структура определения процедуры на языке Visual Basic представляется следующими записями:
[Public | Private] [Static] Sub | Function | Property ИМЯ ФУНКЦИИ [(список
аргументов)] [As type]
[Операторы]
Имя функции = Возвращаемое значение
End Sub | Function | Property
В представленной структуре записи показано, что можно использовать три ключевых слова для определения процедуры (Sub, Function, Property). Sub процедура – подпрограмма после завершения не возвращает никакого значения в вызвавшую ее процедуру, т.е. это независимая подпрограмма. Function процедура – функция возвращает после завершения некоторые значения в вызывающую ее процедуру, т.е. она связана некоторыми
данными. Property процедура –предназначена для просмотра и модификации свойств какого-либо объекта, используется с ключевыми словами Let
(оператор) для изменения значения свойства и ключевое слово Get (оператор) для передачи свойства объекту.
Объекты, которые расположены на форме проекта, предназначены
для отображения информации, а так же для обработки событий, которые
вызывает пользователь приложений. Например, объекты Label1, Label2,
Image1 (рис. 17) предназначены для отображения статической информации,
т.е. служат для украшательства или применяются в виде подсказок. Объек42
ты Text Box1, Combo Box1, Command Button1 предназначены для восприятия информации от пользователя или программы, т.е. на них воздействуют
события. По этой причине, когда стремятся «оживить» работу элемента
управления создают программные коды, которые обрабатывают события,
происходящие с элементами. Событием называется характеристика объекта, описывающая внешнее воздействие, на которое реагирует объект во
время работы приложения.
4.4.2. Использование переменных для хранения информации
Переменные предназначены для хранения данных. Прежде чем
начинать обработку данных, следует продумать состав переменных и объявить ее имя и тип данных, которые будут храниться в этой переменной.
Имя переменной должно начинаться всегда с буквы. Тип переменной задается для того, чтобы сэкономить ресурсы памяти, в языке программирования Visual Basic (как и в других языках программирования) предусмотрено
11 различных типов данных. Каждый тип данных имеет диапазон хранимых данных, что влияет на занимаемую память. Например, целые числа
обозначаются Integer, занимают 2 байта памяти, что соответствует диапазону от -32768 до +32767. Следовательно, если организовывать счетчик
данных на основе целых чисел, то максимальное его значение будет равно
32767. Поэтому, для увеличения размера счетчика применяют тип данных
для целых чисел – Long, который занимает 4 байта памяти, что соответствует хранению числа 3.402823Е38 (где Е38 обозначает 38-ю степень
натурального логарифма). Подробные сведения о типах представления
данных можно получить в технической документации или в литературе по
языку Visual Basic [3доп]. В отличие от других языков программирования
объявление переменных в Visual Basic не является обязательным условием.
Т.е., если внутри процедуры используют переменную, то автоматически ей
присваивается тип Variant (произвольный), на хранение переменной выде43
ляется 16 байт плюс 1 байт на каждый символ (слишком нерациональный
расход памяти). Поэтому все же лучше объявлять переменные перед их
использованием, наименования типов переменных в Visual Basic следующие: Integer – Целые числа; Long – Целые числа большие; Single – Десятичные числа; Double – Десятичные числа двойной длины; Currency – Числа, имеющие до 15 цифр перед десятичной точкой и до 4 цифр после нее;
String – Текстовая информация; Byte – Двоичные числа; Boolean – Логические значения; Date – Информация о дате и времени; Object – Рисунки или
ссылки на любой другой объект; Variant – Значения любого из вышеперечисленных типов данных.
Оператор, объявляющий переменную, сообщает Visual Basic о том,
что будет храниться в этой переменной и где эту переменную можно использовать. Для выделения области видимости данных используют четыре
различных оператора (Dim, Private, Static и Public). Область, где используется переменная, называют областью видимости переменной. Синтаксис
создания оператора для создания переменной представляется следующим
образом:
- Ключевое слово, которое сообщает Visual Basic, что вы хотите объявить
переменную.
- Имя переменной.
- As ключевое слово, которое говорит, что вы определяете тип данных для
этой переменной.
- Тип данных для объявленной переменной.
Например, если мы хотим присвоить имя переменной MyDann типа
текстовые, которые будут использоваться внутри процедуры, в этом случае
следует написать выражение: Dim MyDann As String
Область видимости переменной определяется наименованием оператора, который может располагаться внутри процедуры, вне процедуры и за
пределами формы. На рис. 19 представлена схема доступности к перемен44
ной из различных частей приложения с указанием наименований операторов и их расположения в проекте.
Рис. 19. Схема доступности переменных, объявленных в приложении
Оператор Public (общие, глобальные) для определения переменной
используется, тогда, когда данные из переменной должны быть доступны в
любой процедуре приложений этого проекта (имя переменной Dann1). В
тех случаях, когда перемененная используется в нескольких процедурах в
пределах одной формы, используют оператор Dim (определения). В приведенном примере на рис.19 данные из переменной Dann3 доступны в форме
2 для любой процедуры. Если оператор Dim находится внутри процедуры
проекта, как это показано на рис. 19 на форме 1, тогда данные используются только внутри процедуры. Оператор Static (статическая переменная)
позволяет определить видимость переменной внутри действия процедуры,
но при этом данные сохраняются после завершения процедуры. Такой вариант используют в тех случаях, когда требуется вернуться назад, а значение может понадобиться, т.е. к процедуре осуществляется неоднократное
обращение, значение переменной (в примере Dann4) зависит от его предыдущего состояния. Оператор Private (частный) значение переменной
аступно только в том модуле, в котором они определены (Dann5).
45
4.4.3. Создание процедур обработки событий
Для написания программного кода и привязки его к определенному
событию, необходимо раскрыть окно программного кода (Code). Это выполняется либо двойным щелчком левой клавиши мыши по объекту на
форме, либо сначала выделяют объект на форме, а затем раскрываю окно
кодов нажатием на пиктограмму
в окне проекта (Project). Окно для со-
здания процедур обработки событий будет отображено на экране компьютера. В рассматриваемом примере, предусмотрено осуществить несколько
событий с объектами, которые находятся на форме с именем F1 проекта
ввода данных. Во-первых, необходимо ввести данные с клавиатуры в текстовое поле (Text Box – имя T1). Во-вторых, необходимо выбрать нужную
фамилию из списка (Combo Box – имя C1) и отправить ее в форму 2 (имя –
А2), создаваемого проекта приложения. В-третьих, необходимо позаботится, чтобы пользователь мог закрыть приложение, когда кончает с ним
аботу. Для этого введена кнопка (Command Button – имя Co1). Наконец,
в-четвертых, при начале работы с формой 1 список пуст, следовательно,
надпись на форме «Щелкните по фамилии, чтобы перенести ее в другую
форму» (объект Label – имя L2) нужна только тогда, когда проведено заполнение списка. Т.е. должно произойти событие без участия пользователя,
что достигается программным путем.
Рассмотрим простой пример последовательности создания процедуры для обработки события, для этого выберем объект Command Button, который расположен на форме 1 с надписью «Закрыть все приложения» (см.
рис. 17). Открыв окно для написания кодов (дважды щелкнули в проекте
по кнопке), необходимо определить объект, для чего следует раскрыть
список объектов формы (левый список в окне Code), как это показано на
рис. 20. Далее, следует выбрать событие, которое должно произойти. Выбор события осуществляется в правом списке окна Code (в данном случае
мы выбираем событие Click – щелчок), на рис 20 показан раскрытый спи46
сок с перечнем событий. После выполненных действий система создаст запись в окне кодов в виде начала и конца процедуры. Задача разработчика –
ввести программные коды, которые определяют поведение объекта. В данном случае следует ввести всего одно ключевое слово End, которое определяет, что произойдет прерывание исполнения приложения, и оно будет
закрыто автоматически.
Выбор объекта
по имени
Выбор события для
подготовки процедуры
Ввод текста
программного
кода
Рис. 20. Последовательность подготовки окна кодов для создания процедуры обработки события
События, которые не вызывает пользователь, но вместе с тем происходят с приложением, организуются программным путем. Речь идет о
надписи на форме 1 с наименованием «Щелкните по фамилии, чтобы перенести ее в другую форму». Удаление надписи, а точнее делать ее не видимой, осуществляется с помощью события Load (загрузить), которое выполняется при запуске приложения. Программирование события скрытия
надписи осуществляется созданием процедуры Form_Load(), подготовка
осуществляется так же, как и при работе с кнопкой. В окне кодов выбира-
47
ем объект Form, а событие для него Load. Программа для этого события
будет состоять из одного оператора, как это показано на рис. 21.
Private Sub Form_Load()
L2.Visible = False - этот оператор необходимо ввести
End Sub
Имя объекта
(Label2 - метка)
Свойство объекта
Visible - видимость
Значение свойства, которое
изменяется при загрузке
приложения
Рис. 21. Программирование события при загрузке приложения
4.4.4. Разработка программ с использованием операторов управления
Процедура для обработки события может содержать большое количество операторов, которые позволяют организовать вычисления, преобразование данных, осуществлять выполнение сложных логических процессов.
В рассматриваемом примере, будущее приложение содержит форму с именем F1, которая отображает интерфейс пользователя. Основная функция
пользователя – ввести с клавиатуры данные о сотрудниках в текстовое поле с именем T1. Нажатие на клавишу представляет собой событие, которое
необходимо обрабатывать, при этом следует анализировать закончен ввод
данных или нет, давать пользователю право выбора дальнейших действий
и т.п., в программах для реализации функций выбора и управления используют условные операторы. Следует отметить, что существует два типа
условных операторов: операторы If … Then и операторы Select Case. В
рассматриваемом примере, остановимся на использовании условных операторов типа If … Then, и If … Then … Else, эта конструкция используется тогда, когда при определенных условиях требуется выполнить один
набор команд, а при их невыполнении – другой. Чтобы реализовать задачу
с использованием условных операторов, целесообразно составить блоксхему процесса (см. рис. 22), в котором отражаются ключевые моменты,
48
проводимых анализов и вычислений процедурой для ввода и обработки
данных.
Нет
Да
Ввод символа (нажатие на клавишу)
Проверка, нажата ли клавиша Enter
Переменной присвоили значение текста
Подготовка сообщения пользователю
Нет
Да
Пользователь дал ответ
Процесс обработки текста
Завершение действия оператора If
Установка курсора в поле для ввода данных
Завершение действия оператора If
Рис. 22. Блок-схема работы процедуры для ввода и обработки данных
На схеме (рис. 22) условный оператор If обозначен ромбом, после
написания ключевого слова If (если) необходимо указать булево выражение, определяющее выполнение условия. Если условие выполняется, то
после ключевого слова Then (тогда) можно записать ту ветвь с программными кодами (последовательность операторов), которые выполняют действия над переменными. Если условие не выполняется, тогда необходимо
перенаправить выполнение вычислений, либо на конец оператора End If,
либо вставляется ключевое слово Else (еще), после которого записываются
операторы для выполнения каких либо действий с данными. В том случае,
если внутри действия оператора If требуется провести еще одну проверку
на выполнение условий, тогда строят аналогичную конструкцию. Необходимо только помнить, что вложение проверки внутри уже открытого оператор If, должно завершаться раньше, чем завершится его действие. Для
рассматриваемого примера попробуем создать конструкцию из двух
49
условных операторов. Предположим, что пользователь вводит в текстовое
поле (Text Box с именем T1) фамилию сотрудника, с точки зрения технических средств осуществляется вызов события KeyPress – нажатие на какую-либо клавишу клавиатуры. Значение символа имеет собственный код,
который обрабатывается системой и отображается в окне ввода в виде
символа (при нажатии на служебные клавиши, например, Shift, Ctrl, Tab и
другие значения их кодов генерируются, но символы в текстовом поле не
отображаются). Логично предположить, что после того, как введена фамилия целиком, пользователь нажимает на клавишу Enter (ввод), которая
также имеет собственный код в системе. Поэтому целесообразно отслеживать момент нажатия на клавишу Enter, после чего пользователю приложения следует принять решение о дальнейших действиях. Пользователь должен иметь возможность либо исправить ошибки, если их заметил, либо
начать вводить новую фамилию, а уже подготовленную необходимо передать в окно со списком (Combo Box). Программный код, представленный
на рис. 23 (процедура Sub T1_KeyPress(k As Integer)), осуществляет обработку события – нажатие на клавишу.
Рис. 23. Код программы для обработки события при нажатии на клавишу
50
Следует обратить внимание, что переменная K определена непосредственно в процедуре в виде целых чисел (как Integer). Во-первых, коды
клавиш представляют собой уникальный целочисленный код ASCII (American Standard Code for Information Interchange – Американский стандартный
код для обмена информацией) для набора из 128 символов. Во-вторых,
действие данной переменной должно распространяться только на указанную процедуру. Код клавиши Enter соответствует числу 13, поэтому в булевом условии оператора If сравниваются текущее значение кода клавиши
с числом 13. В том случае, если равенство выполняется, переменной fam
присваивается содержимое текстового поля (T1), свойство Text (текстовое)
определяет вид представления переменной. Далее необходимо дать возможность пользователю принять решение, что достигается выводом на
экран сообщения в виде диалогового окна, которое представлено на рис. 24.
Рис. 24. Диалоговое окно с вопросом для пользователя. Ответ «Да» - подтверждение согласия передачи данных в список
Диалоговое окно сформировано с помощью вызова стандартной
функции MsgBox() – Окно для передачи сообщения. Аргументами этой
функции являются: сообщение пользователю, которое отображается на теле окна; наименование кнопок, которые должны отображаться; сообщение
в информационной строке диалогового окна. Следует напомнить, что при
работе в режиме создания проекта в среде Visual Basic, постоянно появляются подсказки для программиста, поэтому совсем необязательно помнить
все наименования методов, названия свойств объекта и тех возможностей,
которые необходимо использовать при обращении к стандартным функци-
51
ям. В зависимости от выбранной кнопки (см. рис. 24), на выходе функции
генерируется код этой кнопки (в данном случае, при нажатии на кнопку с
наименованием «Да» генерируется код равный 6). Поэтому во втором операторе If проверяется условие на равенство цифре 6. Если пользователь
нажал на кнопку «Да» (рис. 24), то выполняются последовательно три оператора.
1) C1.AddItem fam – с помощью метода AddItem (добавить значение) в
комбинированный список с именем C1 добавляется содержимое из переменной fam.
2) T1.Text = “” – текстовое поле T1 очищается (туда заносится пустая
строка).
3) L2.Visible = True – на форме метка с именем L2 становится видимой
(свойству Visible присваивается значение истина).
На этом, действие внутреннего оператора If кончается, поэтому, чтобы подготовить поле ввода для дальнейшей работы, использован метод
SetFocus – установить фокус ввода, в нашем примере курсор помещается в
текстовое поле. Этот метод распространяется на объект T1, запись кода
выглядит следующим образом: T1.SetFocus.
Вторая ветвь работы внутреннего оператора If начинает действовать,
если на диалоговом окне (рис. 24) нажата клавиша «Нет». В тексте программы после оператора Else стоит всего одна запись – T1.SetFocus, т.е.
пользователя ориентируют (ведут) по объектам интерфейса приложения.
Как только курсор устанавливается в текстовом поле, можно манипулировать клавишами для внесения необходимых изменений, при этом, тот текст,
который был ранее введен в текстовое поле, не изменяется. После анализа
текста и внесения исправления можно вновь нажать на клавишу Enter.
52
4.4.5. Организация работы с массивами
Большинство приложений, с которыми работают пользователи,
предназначены для ввода, обработки и преобразования однотипных записей, которые либо должны накапливаться в оперативной памяти компьютера, либо представляются пользователю в виде списков для выбора необходимых сведений. Под массивом следует понимать – набор переменных с
одним и тем же именем и одного типа. Такие объекты, как Combo Box и
List Box в языке Visual Basic по определению работают с массивами. Поэтому, когда пользователь заносит в такой объект данные, то совокупность
данных рассматривается как массив. Вместе с тем, часто требуется создавать собственные массивы, т.е. назначить одно имя переменной для хранения нескольких однотипных данных. Размножение имени осуществляется
вводом индекса, т.е. порядкового номера элемента в массиве (это и есть
проявление полиморфизма). Объявление массива очень похоже на объявление переменной:
Dim | Public | Private Имя массива (индекс) As Тип данных
Область действия массива определяется ключевым словом, например,
ключевое слово Dim позволяет сделать видимыми данные только внутри
процедуры, тогда следует его вводить после определения имени процедуры. В том случае, если слово Dim вынесено за пределы процедуры (использование на уровне модуля), тогда он будет виден из любого места программы (аналогично действию ключевого слова Public). Ключевое слово
Private для определения массива используется только в разделе General
формы или модуля, что сделает его видимым только в пределах формы или
модуля.
Индекс массива, как правило, обозначается целыми числами. При
явном объявлении массива, т.е., когда заранее известно, сколько отвести
места в памяти для хранения всех переменных массива, указывается номер
последнего элемента. Нумерация элементов в массивах начинается с нуля,
53
поэтому указывают на единицу меньше, чем число переменных в массиве.
Если индексы в массиве начинаются не с нуля, а с какой то другой цифры,
тогда в разделе General модуля следует поместить оператор Option Base n,
где n обозначает номер первого элемента в массиве, с которого начинается
индекс.
Примером использования массивов, может являться продолжение
рассмотрения создания проекта для работы с фамилиями сотрудников.
Необходимо создать интерфейс пользователя, с помощью которого он может просмотреть добавления фамилий из первой формы проекта (рис. 17) в
отдельный список для дальнейшего формирования выходного файла.
Новая форма должна быть создана в пределах досягаемости уже созданной ранее формы 1, поэтому форму 2 следует открыть в существующем проекте. Для этого необходимо в главном окне проекта в строке меню
выбрать Project/Add Form. На новой форме целесообразно расположить
окно списка (List Box), две командные кнопки (Command Button) и для
разнообразия можно воспользоваться инструментом Image – Изображение,
чтобы понять его отличие от инструмента Picture Box – Графическое окно.
На рис. 25 представлен окончательный вариант формы 2 для разработанного проекта.
Форма 2 проекта
Командная кнопка
для просмотра новых
добавлений (Co2)
Графическое
окно для
отображения
рисунка
Окно со списком (L2)
Командная кнопка
для записи данных из
списка в файл (Co3)
Рис. 25. Внешний вид формы 2 для проекта
54
В новой форме (F2) создается массив для хранения переданных данных из формы 1 с помощью оператора Dim Mas(15) As String. Данные в
этот массив передаются после того, как будет вызвано событие – нажатие
на кнопку с наименованием «Посмотреть добавления». Одновременно с
записью данных в массив Mas(i), в поле списка, добавляется переменная,
которая выбрана из комбинированного списка формы 1 в виде текстовой
переменной. На рис. 25 показан фрагмент окна с кодами программы.
Рис. 25. Фрагмент окна с программными кодами для формы 2
Необходимо напомнить, что интерфейс пользователя с формой 2
(имя формы F2), появится на экране после того, как пользователь выберет
в списке фамилию на форме 1 и щелкнет по ней левой клавишей мыши.
Произойдет событие, которое необходимо обработать, для этого создается
процедура в форме 1 (имя формы – F1), состоящая из одной записи – вызвать метод «Показать» (Show) объект F2, дополнения к программе показаны на рис. 26.
Рис. 26. Обработка события при нажатии на строку в списке
55
Последовательность действий пользователя при работе с массивами
(с пояснениями), которые создаются на форме 1 и передаются в форму 2,
показано на рис. 27.
Начальное состояние
формы 1 в приложении,
введена фамилия
Раскрывшийся комбинированный список в форме 1
при просмотре введенных
данных
Просмотреть новые
данные на форме 2
можно после нажатия
на кнопку
После щелчка левой клавишей мыши по строке
комбинированного списка в форме 1, данные
(фамилия) переносятся в список на форме 2
Рис. 27. Отображение последовательности работы пользователя с массивами данных на рабочих формах приложения
4.5. Работа с файловой системой Windows
4.5.1. Операторы языка Visual Basic для взаимодействия с файловой
системой
Переменные, которые объявляются в модуле или процедуре программы, способны хранить и накапливать данные только во время работы
с приложением. Пользователю требуется сохранять данные в виде файла
56
(File) на каком-либо носителе информации, чтобы в последствии можно
было воспользоваться для работы с другими приложениями. Приложение
не работает с файлами напрямую, а использует в качестве посредника операционную систему Windows. Использование носителей информации для
хранения файлов, позволяют организовать последовательные файлы и
файлы с произвольным доступом.
Операторы языка, предназначенные для работы с последовательными файлами должны обеспечивать передачу информации операционной
системе о действиях с файлами, к которым относятся: открытие файла, запись или чтение файла, закрытие операций работы с файлом.
Операция открыть текстовый файл содержит информацию о том, что
организуется доступ к его содержимому, либо для записи в него новых
данных, либо для чтения записанной в нем информации. Для открытия
файла используется оператор Open, имеющий следующий синтаксис:
Open Имя файла For Режим работы As #Дескриптор файла
Open – имя оператора для открытия файла.
Имя файла – это либо строка символов, заключенная в кавычках, либо
выражение, значение которого представляет собой путь (маршрут) к открываемому файлу.
Режим работы – это ключевое слово, которое определяет, что будет делаться с данными (существует три варианта):
Output – если файл открывается для записи данных на какой-либо
внешний носитель, данные записываются в файл с первой позиции,
все предыдущие данные, если они были записаны, будут стерты;
Append – если файл уже существует, то новые записи будут добавляться после последней записи;
Input – если файл открывается для чтения из него данных.
Дескриптор файла – это любое целое число (целое число обозначается
символом # - решетка) от 1 до 511, которое служит идентификатором фай57
ла в операционной системе (если открывается одновременно несколько
файлов, то все файлы должны иметь разные номера дескрипторов).
Операция записи данных в файл на носитель организуется с помощью операторов Write и Print, синтаксис записи оператора:
Write #Дескриптор файла, [Список значений]
или Print #Дескриптор файла, [Список значений]
Дескриптор Файла – должен обязательно совпадать с целым числом, которое определено в операторе Open.
Оператор Write просматривает последовательно список значений и записывает их через запятую в файл, после окончания записи ставит служебную пометку – конец записи.
Оператор Print применяется при форматировании данных в записи, для
этого допускается использование функции Sps(n) – вставка n пробелов
между данными или функции Tab(n) – для указания номера n позиции для
записи следующего значения.
Операция чтения файла (доступ к внешнему носителю) можно организовать с помощью операторов Input и Line Input, которые имеют следующий синтаксис:
Input #Дескриптор файла Список переменных
Line Input #Дескриптор файла Переменная
Дескриптор файла – это целое число, совпадающее с идентификатором открытого файла.
Список переменных – должен совпадать со списком переменных и их типом, определенных при записи данных в файл.
Как правило, оператор Input используется в тех случаях, когда в файле существует несколько записей, которые просматриваются с помощью
оператора цикла с условием. Оператор Line Input осуществляет считывание
всей текстовой строки файла в оперативную память компьютера.
58
4.5.2. Запись данных в последовательный файл
В рассматриваемом примере, на форме 2 используется командная
кнопка (Co3 – имя кнопки) с наименованием «Сохранить данные» для того,
чтобы вызвать событие обращения к файловой системе Windows для записи данных в файл последовательного доступа. На рис. 28 представлены
программные коды процедуры? выполняющей действия по записи данных
в файл, которая находится в форме 2 (F2) проекта (Project1).
Рис. 28. Программные коды для записи данных в последовательный файл
Процедура Sub Co3_Click() содержит операторы, с помощью которых организовано:
- вывод на экран пользователя диалогового окна для ввода пути к файлу в
текстовую строку. Для этой цели использован оператор присвоения и
стандартная функция InputBox(), Переменной y присваивается значение
текстовой строки, которую заполняет пользователь. На рис. 29 показан
внешний вид диалогового окна, которое вызывается функцией InputBox().
Аргументами этой функции являются: сообщение пользователю о том, что
следует ввести; текст, который должен быть расположен в информационной строке (стандартное диалоговое окно имеет две кнопки и строку для
ввода текста).
59
Элементы управления в
диалоговом окне InputBox()
Информационная
строка диалогового
окна
Текст с сообщением
для пользователя
Текстовая строка
для ввода данных
Рис. 29. Диалоговое окно, которое формируется при использовании функции InputBox()
При работе с диалоговым окном необходимо анализировать, какую
кнопку нажал пользователь. Логика блока проверки нажатия кнопки
ассзователем основана на использовании условного оператора If …
Then…Else и представлена на рис. 30.
Нажата кнопка
OK
Нажата кнопка
Cancel
Проверка
содержимого
текстового окна
Продолжение
работы
Закрытие
приложения
Рис. 30. Логика работы с диалоговым окном при записи данных в файл
В том случае, если пользователь заполняет текстовое поле в диалоговом окне и нажимает на кнопку “OK”, тогда начинает работать блок запи-
60
си данных в текстовый файл с именем Fio.txt. Путь к файлу в данном примере содержит переменная y = “C:\Pavlov_A_N\Fio.txt”. Обратите внимание, что пользователь выбрал директорию (папку) на диске C:\ с видоизмененным наименованием по отношению к рекомендации в тексте сообщения. Пользователь указал имя папки «Pavlov_A_N», которая находится
на его компьютере.
Запись данных осуществляется после того, как будет объявлен путь
к файлу с помощью оператора Open, который записан во второй строке после оператора Else (см. рис. 28). Данные, которые были накоплены в
асссиве Mas() имеют конечное значение, количество передаваемых данных накапливается в переменной I – это счетчик данных. Передача из массива Mas(j) текущего значения j-го данного на носитель информации (в
примере запись осуществляется на жесткий диск C:\) проводится в цикле.
Циклические процессы с конечным (известным) числом данных организуются в программах с помощью операторов For и Next. Синтаксис цикла со
счетчиком таков:
For [Переменная, которая определена в программе в качестве счетчика] =
To [Число, задающее значение счетчика, при котором цикл завершается]
Step [размер шага счетчика (например, шаг равен 2)], если шаг счетчика
равен 1, то ключевое слово Step можно не использовать.
После оператора For записываются операторы, которые выполняют
действия над переменными. В примере записан только один оператор Print #1, Mas(j), обеспечивающий передачу текущего значения переменной на носитель.
Завершается цикл оператором Next [Переменная, обозначающая
счетчик]. Использовать переменную в операторе Next – не обязательно.
В рассматриваемом примере переменная I – накапливает количество
значений, которые находятся в массиве, а так как индекс массива j начина-
61
ется с нуля, то в счетчике оператора Next задается число циклов на 1
меньше.
4.5.3. Извлечение данных из файлов и отображение на форме пользователя
Доступ к данным, которые находятся на носителе информации, осуществляется с помощью оператора Input, синтаксис которого описан выше.
Для проверки работы оператора чтения создадим новый проект с одной
формой, внешний вид которой показан на рис. 31.
Окно нового проекта
Окно формы с именем F3
для размещения элементов
Командная кнопка для
создания события
поиска файла в системе
Элемент управления
ActiveX, обеспечивающий
работу с диалоговым окном для поиска файлов
Элемент – поле со списком для отображения
данных, читанных из файла
Рис. 31. Расположение элементов управления на форме проекта для поиска
и просмотра (чтения) файла
В качестве нового элемента управления выбран элемент ActiveX –
Microsoft Common Dialog Control 5.0 (элемент управления общим диалоговым окном), который находится в системном реестре Windows и предназначен для создания диалогового окна поиска или сохранения файлов.
Элемент управления ActiveX являются независимыми программами, кото62
рые можно подключать к разрабатываемой программе. Большинство элементов имеют собственный интерфейс, набор методов и свойств, которые
доступны программисту при разработке собственной программы. Внешний
вид элемента общий диалог представлен на рис. 32.
Рис. 32. Внешний вид элемента управления ActiveX – общий диалог
Для того, чтобы воспользоваться элементом управления для ведения
общего диалога, необходимо добавить его на панель инструментов, перенести на проект и установить необходимые свойства, которые понадобятся
при его использовании. Выполняются эти этапы следующим образом:
- щелкните правой клавишей мыши в свободной зоне панели инструментов,
откроется контекстно-всплывающее меню, в котором следует выбрать команду customs (обычные);
- в открывшемся окне с именем Components (компоненты), найдите в списке строку Microsoft Common Dialog Control 5.0, поставьте пометку около
этой строки и нажмите на кнопку «Применить» (Apply);
63
- на панели инструментов появится значок
, выделите этот
значок и поместите на форме проекта, как это показано на рис. 31;
- задайте свойства элементу управления Command Dialog, для этого в окне
свойств щелкните в поле свойства Custom (откроется страница свойств,
которая представлена на рис. 33).
Страница свойств элемента управления
ActiveX – Common Dialog
Заголовок в окне
общего диалога
Начальное значение
файла при
открытии окна
Фильтр для
ограничения списка
видимых файлов
Рис. 33. Страница свойств элемента управления общим диалогом
Устанавливать свойства для элемента управления общим диалогом
можно непосредственно в окне свойств (Properties) проекта, для этого следует заполнять каждое поле отдельно. Напомним, что свойству Name (имя
элемента) было присвоено CD1.
Программный код для поиска необходимого файла и отображения
его данных следует записать в процедуру, которая обрабатывает событие –
нажатие на командную кнопку с наименованием «Загрузить данные из
файла» c именем – Co1.
Чаще всего чтение из текстового файла производится циклически, с
помощью оператора цикла с условием (Do Until…Loop). Условием окончания цикла является попытка прочитать данные после просмотра послед64
ней текстовой строки. Эта попытка приводит к тому, что возникает ошибка.
Поэтому, используют функцию для обработки значения конца файла EOF()
– end of file (конец файла). Для отображения данных, полученных из файла,
используется элемент List Box, которому присвоено имя L1, что отображено на рис. 34.
Использование неявного
задания переменной, когда
тип переменной ставится в
виде префикса, в данном
случае:
Fil – переменная.
$ - обозначает, что тип переменной текстовый.
i - переменная (счетчик).
% - обозначает, что тип
переменной целое число.
Рис. 34. Окно с программным кодом для работы с формой «Чтение файла»
Внешний вид интерфейса пользователя для поиска текстовых файлов
и загрузки на рабочую форму приложения представлен на рис. 35.
Рис. 35. Внешний вид интерфейса пользователя для поиска текстовых файлов и загрузки на рабочую форму приложения.
65
5. Дополнительные возможности языка программирования
Visual Basic
5.1. Построение графиков функций
Для создания экранных изображений графиков функций используются методы Scale – масштаб, Line – линия и Pset – поместить точку (дословно: поместить пятно Point Set). Метод Scale применяется к объектам
класса Экранная форма (Form) и Графическое окно (PictureBox). Эти объекты имеют абсолютные координаты и выражаются (по умолчанию) в
твиксах (один твикс равен 1/1440 логического дюйма). Логический дюйм
это такое расстояние на экранной форме, которое при ее печати на принтере будет равным 1 дюйму. Само собой, трудно ориентироваться в таких
единицах измерения, поэтому при установке масштабов координатных
осей, удобнее все вычислять в сантиметрах или миллиметрах. Правила
разметки координатных осей будут даны в следующем разделе, в данном
случае просто следует просмотреть пример использования перечисленных
выше методов для организации построения графика в окне приложения. На
рисунке 5 показано окно проекта, в котором на переднем плане находится
форма с названием «Построение графика», на которой находятся: Графическое окно с именем PF31, Окно метка с именем LF31, две командные
кнопки с названиями «Построить график» и «Возврат», Окно метка с записью «K=» и Текстовое окно с именем TF31 для ввода значения коэффициента. Все перечисленные элементы управления должны работать в определенной последовательности, после того как к форме будет обращение из
строки меню главной формы «График». Следовательно, необходимо сначала запустить форму, а затем приступить к работе с ней. В качестве учебного примера выбрана простейшая функция: Y = K * Sin (X), хотя можно
выбрать и более сложную функцию, но при этом надо не забывать об ограничениях, которые следует закладывать при выборе масштаба чертежа. В
предложенной модели, поставлены задачи: разработать программу для вы66
черчивания заданной функции в определенных пределах; вводить параметр К для исследования ее поведения; проводить контроль введенного
значения. Результат запуска приложения с заданным коэффициентом К = 9,
представлен на рис. 36. Для выхода из заданного приложения следует
нажать на кнопку «Возврат». В том случае, когда необходимо провести
сравнительный
анализ,
можно
ввести новое значение коэффициента и снова нажать на кнопку
«Построить график».
Рис. 36. Окно с построенным
графиком
В данном примере сначала на экране появляется надпись в объекте
Label, а затем этот объект замещается рисунком (PictureBox), на котором
строится график. Что бы скрыть текст, в программе свойству Visible для
окна с текстом присваивается значение True, после чего появляется всплывающее диалоговое окно с вопросом.
Если не вызывать такое окно, то на
окне PictureBox ничего не появится, это происходит потому, что уже невидимый текст заслоняет окно рисунка, и необходимо провести какое-нибудь
действие. Этим действием и является появление диалогового окна. После
закрытия диалогового окна PictureBox становится полностью видимым.
Программные коды для разработанного приложения представлены в
следующем разделе с некоторыми комментариями автора. Движение линии построения графика по заданной функции осуществляется с помощью
изменения координат точки, которая отображает в каждый момент времени значения координат, выбранной функции. Следует напомнить, что оси
времени может и не существовать, поэтому никакой связи реального времени с происходящим процессом не существует. Временной интервал в
67
данной программе имитируется шагом приращения координат функции,
чем меньше приращение, тем медленнее будет движение линии на экране.
Это не всегда удобно, так как скорость работы процессора компьютера
влияет на скорость движения линии на экране, что требует подбирать величину приращения, поэтому правила работы с таймером были рассмотрены в предыдущем примере. Ниже приведен листинг с программными кодами для рассматриваемого примера.
Листинг программных кодов для построения графика.
Dim k As Variant
Private Sub Form_Load()
F1.Hide
PF31.Visible = True
k=0
End Sub
Переменная k является глобальной для всех процедур
При загрузке формы с отображением графика заданной функции, скрывается начальная форма, и
окно для рисунка делается видимым
После нажатия на кнопку «Показать график», анаPrivate Sub CF31_Click()
лизируется значение введенного коэффициента k
k = TF31.Text
If k = "" Then
y = MsgBox("Вы не ввели значение коэффициента К", 16, "ВНИМАНИЕ !")
Else
LF31.Visible = False
y = MsgBox("Вы ввели К= " & k & " ОСТАВИТЬ ?", 1, "ПРОВЕРИТЬ")
If y = 1 Then
PF31.Scale (-35, 20)-(35, -20)
После того, как принято решение
PF31.Line (-32, 0)-(32, 0), QBColor(13)
о построении графика, устанавPF31.Line (0, -15)-(0, 15), QBColor(12)
ливаются масштаб осей и строFor x = -30 To 30 Step 5
ятся сами оси
PF31.Line (x, -1)-(x, 1)
Next x
For y = -15 To 15 Step 5
На осях наносятся метки через
PF31.Line (1, y)-(-1, y)
каждые 5 миллиметров.
Next y
For z = -30 To 30 Step 0.001
Осуществляется запуск построеPF31.DrawWidth = 3
ния графика с толщиной линии
PF31.PSet (z, k * Sin(z)), vbBlue
(точки) в 3 пиксела
Next z
End If
End If
TF31.SetFocus
End Sub
68
Private Sub CF32_Click()
F3.Hide
Unload F3
F1.Show
End Sub
Для выхода на главную форму, сначала
закрывается форма с графиком, а потом
выгружается из памяти, что позволяет восстановить все прежние значения.
5.2. Создание приложения для совместной работы
с табличным процессором Excel
Данные, которые сосредотачиваются в обычном табличном процессоре Excel, часто удобно просматривать в специальном приложении. Это
позволяет осуществить операции выбора или отбора необходимых сведений, а также использовать удобный интерфейс для пользователя. Язык
программирования Visual Basic, позволяет объединить три функции: поиск
информации в таблице Excel; отбор необходимой информации с последующей ее обработкой, и создание собственного файла, который можно использовать, как отдельный массив.
Последовательность выполнения работы целесообразно рассмотреть поэтапно.
Этап 1. Подготовка таблицы с данными на Excel.
Создадим таблицу на Excel и сохраним в виде файла Таблица1.xls, на
рисунке 6 представлена подготовленная таблица, которая будет базой данных для приложения на VB. Следует отметить две особенности:
- столбцы таблицы, будут представлены как элементы данных, поэтому
таблицу следует расположить с левого верхнего угла (с ячейки A1), заголовки столбцов таблицы в базе данных будут определять имена однотипных элементов;
-
наименование базы данных содержится в названии ярлыка, поэтому при
подготовке данных, целесообразно присвоить имя ярлыку странице, на
которой находится таблица. Внешний вид таблицы, созданной в Excel, и
69
сохраненной на жестком диске под именем Таблица1.xls, показано на
рис. 37.
Рис. 37. Внешний вид таблицы с данными
Этап 2. Разработка проекта приложения на Visual Basic.
Откроем Visual Basic и создадим новый проект, воспользовавшись пиктограммой. На рис. 38 показан внешний вид приложения, в котором использованы элементы управления для выполнения
определенных функций. Элементы Label1, Label2, Label3, предназначены
для обозначения полей базы данных. Текстовые окна Text1, Text2, Text3,
предназначены для отображения содержимого базы данных. При желании
можно провести коррекцию данных. Окно List1, необходимо для формирования окончательной записи, которую можно будет отправить в файл.
Кнопки, предназначены для управления работой с приложением.
Элемент Data
используется для открытия базы дан-
ных, поэтому следует придерживаться определенной последовательности
при задании этому элементу начальных свойств:
- в проекте выделить объект;
- в окне свойства (Properties) выбрать Connect, раскрыть список и подсоединить Excel 8.0;
- свойству DataBaseName присвоить путь к базе Excel (Таблица1.xls);
-
свойству RecordSource присвоить имя базы данных (БД-Сотрудники).
70
Текстовые поля для отображения
сведений, которые находятся на листе Excel с закладкой «Сотрудники»
Окно для сбора необходимых данных
о сотруднике из таблицы, которая
создана на листе Excel
Элемент ActiveX, с помощью которого осуществляется связь между листом Excel и приложением на Visual
Basic
Кнопки для вызова событий при работе с данными
Рис. 38. Внешний вид проекта
Этап 3. Назначение свойств объектам проекта.
Каждому элементу в виде текстового окна, необходимо назначить свойства для связи с базой данных:
- свойству DataSource присвоить имя элемента Data1;
- свойству DataField – Фамилия для окна Text1, соответственно для следующих окон другие названия полей базы данных, которые выбираются
из списка.
Этап 4. Подготовка программных кодов для обработки событий.
Следует подготовить программные коды для управления приложением.
Тут следует отметить то, что просмотр базы данных возможен без разработки программных кодов и передачи данных куда-либо. В этом случае не
понадобятся и другие элементы на приложении, кроме окон для отображения данных и элемента Data1.
71
В разработанном проекте использованы четыре кнопки для работы,
каждой из них назначены программы в виде процедур, обрабатывающие
событие нажатие на кнопку (Click).
Кнопка с именем Command1 (ПЕРЕДАТЬ ЗАПИСЬ В ОКНО), предназначена для организации выбора из текстовых окон Text1, Text2, Text3 значений атрибутов базы данных. Непосредственно атрибуты базы данных
назначены уже в свойстве DataField окна проекта. Объединенные данные
добавляются окно элемента ListBox способом присоединения новых строк,
для чего используется свойство AddItem элемента с именем List1.
Кнопка с именем Command3 (ОЧИСТИТЬ СПИСОК), введена для того,
чтобы удалять сформированную запись, если она по каким-либо причинам
не подходит. В данном примере специально показано, что нумерация имен
кнопок может не соответствовать их истинному расположению на проекте,
свойство Clear для объекта ListBox позволяет очистить его содержимое.
Кнопка с именем Command2 (СОХРАНИТЬ В ФАЙЛЕ), позволяет организовать передачу данных из объекта ListBox в файл последовательного доступа. Для созданного приложения введена глобальная переменная a, которая содержит только последнюю запись из базы данных. Это сделано для
того, что бы показать, как можно накапливать строки с записями из базы
данных в одном месте, а запоминать в отдельном файле только последнюю
строку. Следует напомнить, что в языке Visual Basic требуется указывать
абсолютный путь к файлу (полностью), поэтому в операторе Open такая
запись довольно громоздкая. Избежать жесткого указания пути к файлу
можно только одним способом, необходимо вводить диалоговое окно, в
котором назначается путь к файлу, а затем эту переменную передают оператору Open. При открытии файла (в данном примере Zap1.doc) даже если
его не существует, система сама сформирует данное имя и отправит данные в файл. В том случае, если файл уже создан, новые данные будут добавляться в конец файла, это осуществляется благодаря использованному
72
ключевому слову Append (для создания нового файла используется ключевое слово Output). При осуществлении чтения данных из файла применяется только ключевое слово – Input. Для подтверждения, что запись в файл
прошла успешно, использовано всплывающее окно, вызывается окно
функцией MsgBox(), окну в виде параметра передается значение переменной a.
Кнопка с именем Command4 (ЗАКОНЧИТЬ РАБОТУ), предназначена для
скрытия приложения с экрана компьютера.
Перечень программных кодов в виде листинга для приложения на VB,
представлен ниже.
Листинг программных кодов для работы с приложением
Dim a As Variant
Private Sub Command1_Click()
a = Text1.Text + " " + Text2.Text + " " + Text3.Text
List1.AddItem a
End Sub
Private Sub Command2_Click()
Open "C:\ПримерыVB\Элемент ActiveX\Общие данные\Zap1.doc" For Append
MsgBox a
Write #1, a
Close #1
End Sub
As #1
Private Sub Command3_Click()
List1.Clear
End Sub
Private Sub Command4_Click()
End
End Sub
5.3. Создание и использование элемента ActiveX
5.3.1. Постановка задачи
Создание собственных элементов управления очень увлекательное
дело. Удобство применения такого элемента в стандартных приложениях
73
Ms Office, позволяет освободить пользователя от подготовки специальных
программ на Visual Basic или писать макросы с использованием VBA.
Элемент управления, созданный самостоятельно, помещается в таблицу
ресурсов и может быть подключен простым выбором из списка. Есть некоторые особенности при создании таких элементов, о которых следует помнить. Ниже предложен пример создания элемента управления класса ActiveX и показано, как его можно использовать.
Пусть требуется встроить готовый элемент в виде приложения на
лист Excel, с возможностью вводить сведения о сотрудниках в произвольной форме и постоянно пополнять файл. Это может быть и другое приложение, например, сотрудник организации должен постоянно пополнять
данными таблицу Excel, а некоторые сведения требуется поместить в отдельный файл. Соответственно, можно предложить разнообразные подходы для реализации, поставленной задачи. Одним из таких подходов, является предложение – создать элемент управления, который постоянно находится на открытом листе Excel.
Шаг 1. Подготовка к работе.
Создайте папку на жестком диске, чтобы потом не искать, куда сохранять файлы, например “C:\Pavlov_A_N\Vvod\”
Шаг 2. Создание проекта.
Запустить Visual Basic 6.0 или пятую версию VB и выбрать
пиктограмму, после нажатия на которую, откроется окно проекта с именем User Control. Этот режим позволяет работать с окном форм
в стандартном режиме, но при этом появляется возможность сохранить
проект в виде пользовательского элемента управления. Единственным неудобством выбранного режима, является то, что запустить приложение для
проверки нельзя, поэтому такое приложение можно сначала выполнить в
74
стандартном проекте, и отладить все коды, а затем их перенести в новый
проект формы User Control. Если все выполнять аккуратно, то можно сразу
заняться проектированием элемента ActiveX без дополнительных действий.
Шаг 3. Разработка элемента управления.
В открывшемся окне проводится размещение уже существующих
элементов управления (стандартных), как в обычном окне проектов Visual
Basic. Для поставленной задачи потребуются элементы:
Label , для пояснений;
TextBox , для ввода данных;
CommandButton, для сохранения данных в файле;
Image, для размещения рисунка на приложении.
Расположите элементы на окне проекта и выберете их размеры, по
своему усмотрению, например, как это показано на рис. 39. В качестве совета следует отметить, что элемент управления должен использоваться в
других проектах, поэтому его лучше делать небольших размеров.
Рис. 39. Окно проекта объекта ActiveX
Шаг 4. Задание свойств элементов в окне проекта.
В окне свойств целесообразно изменить некоторые параметры. Так,
например, данный проект имеет имя (Name) – Vvod1, что будет отражено в
последствии. Элемент Label имеет имя L1, выравнивание текста по ширине
75
окна задается значением свойства (Aligment=center) и измененные размер
шрифта и его цвет. Элемент TextBox имеет имя T1, чтобы производился
автоматический перенос слов в строках при их вводе в окно, свойству Multiline присвоено значение True.Свойству ScrollBars присвоено значение
Vertical, что позволит просматривать текст, если он имеет большие размеры. Элемент Image (изображение) введен для того, чтобы показать, что не
имеет значения, из какой библиотеки выбран рисунок, при задании свойства Picture – файл с изображением автоматически запоминается вместе с
проектом.
Шаг 5. Разработка программных кодов.
В разрабатываемом элементе управления с именем Vvod1, при нажатии на кнопку «СОХРАНИТЬ В ФАЙЛЕ», должно произойти событие «перехват» содержимого текстового окна. После нажатия на кнопку, будет
осуществлена записать введенных данных в файл последовательного доступа с именем Sved.doc. Для этого требуется составить программный код,
который будет выглядеть, как это показано на рис. 40.
Private Sub C1_Click()
Open "c:\Pavlov_A_N\Vvod\Sved1.doc" For Append As #1
Write #1, T1.Text
Close #1
a = MsgBox("ФАЙЛ РАСПОЛОЖЕН: C:\Pavlov_A_N\Vvod\Sved1.doc", _
31, "СВЕДЕНИЯ СОХРАНЕНЫ”)
End Sub
Рис. 40. Программные коды приложения
Шаг 6. Сохранение проекта элемента управления.
Выделите форму проекта, в строке меню необходимо выбрать: Make
Projekt1.ocx. . . , после того как откроется окно Make Project, необходимо
активизировать закладку с именем Make, и заполнить необходимые окна,
как это показано на рис. 41. При переходе к закладке с именем Compile,
будет открыто окно, которое представлено на рис. 42.
76
Рис. 41. Заполнение сведений о проекте
Рис. 42. Внешний вид окна проекта с закладкой Compile
На рис. 42 показано окно со свойствами сохраняемого проекта и адрес библиотеки (DLL Base Address) в базе на компьютере пользователя с
элементами ActiveX. Следует отметить, что данные, которые введены в
77
окна для определения свойств (см. рис. 41 и рис. 42), заполнять не обязательно, но так как система будет их предлагать для заполнения, то представлены последовательно два рисунка.
Нажмите кнопку OK и в окне Make Projekt выберете место расположения файла с расширением .ocx, после чего нажмите кнопку OK. Вновь
выберете в строке меню File\Save Project As…, после чего появится окно,
как показано на рис. 43. В этом окне уже будет присутствовать имя проекта, но с расширением .ctl, целесообразно сохранить эту библиотеку в той
же папке, что и элемент с расширением .ocx
Когда библиотека будет сохранена, появится предложение для сохранения проекта в формате Visual Basic со стандартным расширением .vbp. Проекту опять целесообразно присвоить имя: Vvod1.vbp. Скорее
всего появляется окно с предложением записать сведения о приложении в
базу данных Visual Basic, можно отказаться и выбрать собственный путь к
той папке, в которой следует сохранить проект, или заполнить, предложенную форму в указанном системой месте.
Рис. 43. Выбор пути к файлу с библиотекой проекта
78
В результате выполняемых действий, при условии, что все элементы
сохранялись в одной и той же папке, получится набор файлов, которые относятся к элементу управления, созданного пользователем. В данном случае, на рис. 44, показаны файлы, которые сохранены на диске C:\, в определенных папках: C:\Pavlov_A_N\Vvod\
Рис. 44. Набор файлов, созданных при сохранении проекта
пользовательского элемента управления в виде ActiveX
Обратите внимание, что появляются файлы, которые не надо было
специально назначать при сохранении проекта. Одним из таких является
Mssccprj.scc, который будет использован, как системный при вызове элемента управления в любое другое приложение.
Шаг 7. Проверка работоспособности приложения.
Закройте приложение Visual Basic, если все сделано в предложенной
последовательности, то никаких вопросов система задавать не будет, в
противном случае следует заполнить все формы, которые предложит система программирования.
5.3.2. Размещение элемента управления на панели инструментов
Откройте Visual Basic и запустите стандартный проект, в
котором поле проекта используется только для размещения
нового элемента. Смысл действия заключается в том, чтобы на панель инструментов добавить новый элемент ActiveX Control. После нажатия на
79
кнопку ОК, на панель инструментов добавится новый элемент с обозначением, которое присваивает система, хотя этому элементу можно задать
изображение собственной пиктограммы.
Активизируйте окно с инструментами и на свободном месте щелкните правой кнопкой мыши. В контекстно-всплывающем окне, выберете команду Components…, после чего откроется окно с одноименным названием.
Откройте закладку Controls и пролистайте, когда встретится строка
со словом Project, то выделите ее, как это показано на рис. 45. В том случае,
если необходимый пользовательский (вновь созданный) элемент управления не отображается в реестре, то воспользуйтесь кнопкой Browse... (Показать) и найдите файл с расширением .ocx, в данном примере, этот файл
находится: “C:\Pavlov_A_N\Vvod\Vvod1.ocx”.
Рис. 45. Добавление нового элемента на панель управления
Когда пользователь разрабатывает несколько собственных элементов
управления типа ActiveX, тогда может случиться ситуация, которая отоб80
ражена на рис. 45. Т.е. несколько элементов имеют наименование Projeckt1,
тем не менее, свойство Location, отображается на экране и показывает истинное имя пользовательского элемента управления (в данном примере,
созданный элемент с именем Vvod1.ocx).
Дальнейшее использование нового элемента не вызывает каких-либо
сложностей, он будет функционировать точно так же, как и стандартные
элементы управления. Перетащите элемент управления на окно проекта
и отмасштабируйте по своему усмотрению.
5.3.3. Использование разработанного элемента ActiveX в проектах Visual Basic
Пользовательский элемент ActiveX – является независимым приложением, поэтому его можно присоединять в новый проект на Visual Basic,
не составляя какой-либо сложной программы. Для работы с уже имеющимся элементом ActiveX, откройте новый проект, разместите на форме
проекта элемент, в данном примере используется элемент Vvod1, порядок
переноса, описан выше. Проверьте работоспособность проекта. Нажмите
на
кнопку
Start, чтобы запустить проект в режиме отладки.
Рис. 46. Внешний вид формы с встроенным элементом ActiveX
81
На рис. 46 показан внешний вид проекта с встроенным на нем новым
элементом ActiveX Control. Можно было бы добавить на эту форму еще
другие элементы, но в данном примере мы ограничились лишь добавлением к проекту (Form1) метки, в которой записан текст следующего содержания: «Стандартная форма проекта на VB, с размещенным на ней новым
элементом управления Vvod1.ocx».
В созданном элементе управления под именем Vvod1 используется указание пути к файлу с расширением .doc, в котором все время накапливаются данные. Пожалуй, это самое большое неудобство, которое относится к
недостатку Visual Basic. Т.е. необходимо всегда знать, где будут находиться результаты работы. Если создать любой проект на VB и встроить в него
элемент управления, а затем сохранить проект в виде исполнимого файла с
расширением .exe, то помещать этот файл можно в любом месте, независимо от того, где находятся исходные модули элемента ActiveX. Необходимо только помнить, что элементы управления, которые создал пользователь, следует передавать на другой компьютер вместе с библиотеками Visual Basic.
5.3.4. Использование элементов управления в приложениях MS Office
Если создан элемент управления на компьютере пользователя или
установлен с другого компьютера на рабочее место пользователя, то этот
элемент ActiveX можно использовать для работы с приложениями MS Office, например, встраивать в Word или Excel. Предположим, что требуется
встроить приложение Visual Basic на лист Excel. Размещение в Excel, Access, Power Point, Word готовых приложений, созданных на VB, позволяет
пользователю применять дополнительные возможности при работе с данными, которые находятся в приложениях MS Office. Порядок размещения
элемента управления на приложении Ms Office (в данном примере исполь-
82
зуется Excel) заключается в выполнении последовательно нескольких шагов.
Шаг 1. Подготовить Excel для работы.
Создадим новую книгу в Excel, в строке меню выберем: Вид и откроем
панель инструментов Visual Basic, как показано на рис. 47.
Откроем меню: Вид\Панели инструментов\Visual Basic.
Режим конструктора
Панель инструментов
Эти кнопки надо нажать,
тогда можно будет работать
с
таблицей
элементов
управления, которая открывается
кнопкой на
панели инструментов.
Рис. 47. Последовательность открытия панели инструментов для VB
Шаг 2. Размещение элемента управления на приложении MS Office (Excel).
На рис. 49 представлена последовательность
размещения пользовательского элемента ActiveX на
листе Excel. После того, как будет открыта панель инструментов Visual Basic в Excel, необходимо воспользоваться пиктограммой с наименованием «Другие
элементы» (см. рис. 48).
Рис. 48. Панель инструментов VB
Появится список элементов управления, которые присутствуют в системном реестре Windows (количество элементов на каждом компьютере
разное). Необходимо отыскать элемент Project1 Vvod1, и выделить. Затем
перетащить этот элемент на лист Excel и отмасштабировать (см. рис. 49).
83
Рис. 49. Подготовка элемента управления для работы в Excel
Шаг 3. Работа с элементом управления.
Выйти из режима конструктора (рис. 50), для чего следует щелкнуть
по пиктограмме
(режим конструктора).
Кнопка – Режим конструктора,
которую следует освободить
Рис. 50. Переход к запуску элемента управления
Можно приступить к работе с приложением. Следует напомнить,
что необходимо сохранить книгу Excel в любом удобном месте для пользователя, при повторном обращении к листу Excel все будет работать.
84
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1.
Что следует понимать под термином «информационная технология»?
2.
Как вы понимаете термин «программирование»?
3.
Что называют жизненным циклом программного обеспечения?
4.
Что подразумевается под термином «процесс жизненного цикла»?
5.
Поясните, какие этапы входят в основной процесс жизненного цикла
программного обеспечения.
6.
Какие действия затрагивает организационный процесс при разработке
и сопровождении программного обеспечения?
7.
Назовите стадии разработки программного обеспечения.
8.
Приведите схему каскадной модели разработки программного обеспечения.
9.
В чем заключается принцип промежуточного контроля при разработке программного обеспечения?
10. Дайте характеристику спиральной модели разработки программного
обеспечения.
11. В чем заключается сущность структурного подхода при разработке
программного обеспечения?
12. Поясните разновидности составления блок-схем алгоритмов на примере трех разновидностей (следование, ветвление, цикл).
13. Отобразите в виде схемы идеологию нисходящего проектирования
программного обеспечения.
14. В чем заключается концепция модульного проектирования информационных систем?
15. Что следует понимать под термином «библиотека программных ресурсов»?
16. Дайте определение термину «объектно-ориентированное программирование».
85
17. Что лежит в основе идеологии объектно-ориентрованного программирования?
18. Представьте в виде схемы методологию объектно-ориентрованного
подхода при разработке систем.
19. Дайте пояснения основополагающего понятия ООП – «Наследование».
20. Что следует понимать под термином «Полиморфизм»?
21. В чем заключается смысл инкапсуляции при создании программного
обеспечения в объектно-ориентированном подходе?
22. Отобразите схему объекта, дайте пояснение к основным его компонентам.
23. Для чего создаются классы объектов при разработке объектноориентированных приложений?
24. Назовите особенности и отличительные черты операционной системы
Windows от операционной среды DOS.
25. Отобразите в виде схемы взаимодействие приложений Windows с
операционной системой, поясните особенности этой схемы.
26. Что понимается под термином «Язык программирования высокого
уровня»?
27. Приведите классификацию типов интерфейсов, которые создаются
при проектировании программного обеспечения.
86
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
1. Составить алгоритм контроля ввода цифровых данных в текстовое поле с учетом следующих условий:
- информация считается правильной, если с клавиатуры введена цифра;
- если имеется в числе целая и дробная часть, то разделителем может быть
только десятичная точка ( . ).
2. Спроектировать интерфейс пользователя для проведения вычисления
налогов на заработную плату сотрудника, в котором отражено:
- в отдельном поле фамилия сотрудника;
- в отдельном поле заработная плата сотрудника;
- в отдельном поле процент для вычисления налога;
- в отдельном поле итоговая сумма, которую должен получить сотрудник
на руки.
3. Разработать программу на Visual Basic, которая реализует алгоритм и
особенности интерфейса, описанные в пунктах 1 и 2.
4. Составить алгоритм контроля ввода текстовых данных в текстовое поле с учетом следующих условий:
- текстовые данные могут быть только символами русского алфавита (кириллица), символы латинского алфавита не допустимы;
- каждая новая запись должна начинаться с заглавной буквы;
- если в веденном выражении (наборе символов) присутствует запятая, то
после нее обязательно должен стоять пробел.
5. Спроектировать интерфейс пользователя для ввода в текстовые поля
сведения о сотруднике, которые должны отражать:
- фамилию и имя отчество сотрудника;
- должность сотрудника;
- заработную плату сотрудника;
- список с объединенными данными, полученные из текстовых полей, которые контролировались с помощью алгоритма, разработанного в пункте 4.
87
6. Разработать программу на Visual Basic, которая реализует алгоритм и
особенности интерфейса, описанные в пунктах 4 и 5.
7. Спроектировать структуру интерфейса пользователя, которая поддерживает следующие функции:
- ввод данных о сотруднике и сохранении данных в виде массива в оперативной памяти компьютера;
- выбора необходимых записей о сотруднике из массива по заданному номеру (индексу);
- проведения коррекции данных в текстовом поле на экране компьютера;
- формирования и записи откорректированной записи в последовательный
файл на жесткий диск компьютера.
8. Разработать программу на Visual Basic, которая обеспечивает выполнение функций, отмеченных в пункте 7.
9. Составить алгоритм в виде блок-схемы, который описывает события
при просмотре данных из файла последовательного доступа и сохранении каждой записи в элементе управления типа «Список» на рабочей
форме проекта.
10. Разработать программу на языке Visual Basic, поддерживающую работу алгоритма, предложенного в пункте 9.
88
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
Основная:
1. Благодатских В.А., Волнин В.А., Поскакалов К.Ф. Стандартизация
разработки программных средств: Учебн. пособие/ Под ред. О.С. Разумова. – М.: Финансы и статистика, 2005. – 288 с.
2. Бройдо В.Л. /Учебник для ВУЗоВ/. Вычислительные системы, сети и
телекоммуникации. –СПб.: Питер, 2002. -688с.
3. Иванова Г.С. Технология программирования: Учебник для вузов. –М.:
Изд-во МГТУ им. Н.Э. Баумана, 2002. – 320 с.
4. Иванова
Г.С.,
Ничушкина
Т.Н.,
Пугачев
Е.К.
Объектно-
ориентированное программирование: Учебник для вузов/ Под ред. Г.С.
Ивановой. –М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 320 с.
5. Истомин Е.П., Новиков В.В., Новикова М.В. Высокоуровневые методы
информатики и программирования: Учебник. – СПб.: ООО «Андреевский издательский дом», 2006. – 228 с.
6. Лабор В.В., Макарчук Д.В. Microsoft Visual Basic 6.0. – М.: АСТ,
Минск, Харвест, 2001. – 160 с.
7.
Орлов С.А. Технология разработки программного обеспечения: Учебник. –СПб.: Питер, 2002. – 464 с.
Дополнительная:
8. Реселман Боб. Использование Visual Basic 5: Пер. с англ. – Кю; М.;
СПб.: Издательский дом «Вильямс», 1998. – 456 с.
9. Кьоу Дж., Джеванини М. Объектно-ориентированное программирование. Учебный курс. – СПб.: Питер, 2005. – 238 с.
10. Росс Д. Структурный анализ: язык для передачи понимания// Требования и спецификации в разработке программ. – М.: Мир, 1984. – 357 с.
89
ТЕРМИНОЛОГИЧЕСКИЙ СЛОВАРЬ
Алгоритм - формально описанная последовательность действий, которые
необходимо выполнить для получения требуемого результата.
Аргумент (argument) – значение, передаваемое процедуре. Аргумент может быть константой, переменной или выражением.
Атрибут – это поле или совокупность полей данных, содержащихся в
объекте класса.
Бит (bit) – наименьшая единица хранения информации на компьютере.
Принимает только два значения, 0 или 1.
Декомпозиция – процесс разбиения сложного объекта на сравнительно независимые части.
Деструктор – это специальный метод, который освобождает ресурсы,
связанные с экземпляром объекта.
Жизненный цикл программного обеспечения - период от момента появления идеи создания некоторого программного обеспечения до момента
завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение.
Информатика - область знаний, которая изучает свойства, структуру и
функции информационных систем, а также основы их проектирования, создания, использования и оценки информационных процессов.
Информационная технология - система процедур преобразования информации с целью формирование, организации, обработки, распространения и использования информации.
Инкапсуляция – объединение в единое целое данных и алгоритмов (объектных методов) обработки этих данных.
Класс – это набор методов и данных, которые объединены в одной сущности, иногда под этим термином понимают набор функций, которые выполняют некоторую работу или обслуживание.
90
Конструктор – это специальный метод, который инициализирует атрибуты класса.
Массив – это набор переменных с одним и тем же именем и одного типа.
Метод (method) – процедура, связанная с классом, которая управляет объектом. Например, одним из методов кнопки является метод SetFocus.
Модуль - совокупность логически связанных элементов, предназначенных
для использования другими модулями и программами.
Наследование – свойство объектов порождать своих «потомков».
Область видимости переменной - область, где используется переменная,
называют областью видимости переменной.
Объект – это экземпляр класса, который обладает свойствами.
Объектно-ориентированное программирование - технология создания
сложного, программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типии (класса), а классы образуют иерархию с
наследованием свойств.
Полиморфизм – свойство родственных объектов решать схожие по смыслу проблемы разными способами.
Программа – это последовательность команд компьютера, приводящая к
решению задачи.
Программирование – представляет собой сферу действий специалиста,
направленных на создание программ.
Программное обеспечение - совокупность программных продуктов и технической документации к ним (ПО).
Процедура - под процедурой понимают фрагмент программного кода, с
помощью которого решается какая-то локальная задача.
Событие - событием называется характеристика объекта, описывающая
внешнее воздействие, на которое реагирует объект во время работы приложения.
91
Application (приложение) – называют: один или несколько программных
компонентов, обеспечивающих выполнение определенных действий,
например, скомпилированы проект Visual Basic. Приложение часто называют программой.
ASCII Code - (American Standard Code for Information Interchange – Американский стандартный код для обмена информацией) представляет собой
уникальный целочисленный код для набора из 128 символов, состоящего
из чисел, букв и других символов, представленных на стандартной клавиатуре.
Event (событие) – сигнал, генерируемый операционной системой в ответ
на действие пользователя. Например, когда пользователь нажимает на клавишу.
File (файл) – единица хранения информации на внешнем запоминающем
устройстве (носителе).
Form (форма) – основа графического интерфейса приложения. На форме
располагают различные объекты, которые отображаются при запуске приложения в определенном месте формы.
Procedure (процедура) – блок кода, который можно вызвать из другой части приложения. Прцедуру можно использовать для вычисления значений
на основе данных, введенных пользователем.
Sub (подпрограмма) – процедура, которая начинается строкой Sub ИмяПодпрограммы() и заканчивается строкой End Sub, после завершения не
возвращающая никакого значения в вызвавшую ее процедуру.
92
Автор: Павлов Алексей Николаевич
Первый вариант ответа верный _________________ Павлов А.Н.
ТЕСТОВЫЕ ЗАДАНИЯ ПО УЧЕБНОЙ ДИСЦИПЛИНЕ
«ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ
И ПРОГРАММИРОВАНИЯ»
МОДУЛЬ 1
ТЕМА 1. НАПРАВЛЕНИЯ В ОБЛАСТИ СОЗДАНИЙ ТЕХНОЛОГИЙ
ПРОГРАММИРОВАНИЯ
1. Программирование представляет собой . . .
A) сферу действий, направленную на создание программ.
B) научное направление в разделе информатики.
C) искусство специалиста преобразовывать алгоритм в машинные коды.
D) работу специалиста с алгоритмическими языками программирования.
2. Жизненным циклом программного обеспечения называют. . .
A) период от момента появления идеи создания некоторого программного обеспечения до момента завершения его поддержки фирмойразработчиком.
B) период эксплуатации программного обеспечения.
C) время, в течении которого осуществляется разработка и эксплуатация программного обеспечения.
D) временной период поддержки работоспособности программного
обеспечения фирмой-разработчиком.
3. Под процессом жизненного цикла следует понимать . . .
A) совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные.
93
B) работу, осуществляемую специалистами при разработке программного обеспечения.
C) мероприятия, проводимые руководителем проекта, для достижения
поставленных целей.
D) действия специалистов при выполнении работ на определенном этапе разработки программного обеспечения.
4.
К процессам жизненного цикла программного обеспечения отно-
сятся . . .
A) основные, организационные и вспомогательные.
B) основные и вспомогательные.
C) организационные, проектные, отладочные.
D) распределение работ, контроль выполнения, планирование.
5. Каждый процесс характеризуется: . . .
A) определенными задачами и методами их решения, а также исходными данными и результатами.
B) временными параметрами и методами решения задач.
C) исходными данными и регламентом решения задач на основе исходных данных.
D) совокупностью установок на реализацию поставленной задачи.
6. Задачами вспомогательных процессов являются: . . .
A) документирование, обеспечение качества, верификация, аттестация,
проведение оценки работоспособности программных модулей.
B) поддержка процессов разработки, внедрения и эксплуатации.
C) обеспечение дополнительными сведениями и материалами служб
разработки и эксплуатации.
D) проведение мероприятий при возникновении проблемных ситуаций
в основных процессах.
94
7. Процесс разработки программного обеспечения подразумевает такие этапы, как: . . .
A) работы по созданию программного обеспечения и его компонентов,
включая оформление проектной и эксплуатационной документации.
B) создание программного обеспечения и его компонентов с последующим тестированием.
C) подготовку описания задач, видов интерфейсов пользователя и программные модули в виде законченных приложений.
D) набор документации, сопровождающей эксплуатацию, представленного программного продукта.
8. В зависимости от сложности, решаемой задачи, принято использовать модели разработки программного обеспечения: . . .
A) каскадную модель, модель с промежуточным контролем и спиральную модель.
B) модель с промежуточной оценкой результатов, итерационную модель, функциональную модель.
C) каскадную модель, функциональную модель, модель группового
подхода.
D) объектную модель, итерационную модель, модель с промежуточной
оценкой результатов.
9.
Особенностью каскадной модели разработки программного обес-
печения является то, что . . .
A) необходимо на самой ранней стадии при постановке задачи точно
указать все параметры системы и выставить окончательные требования.
B) разработчик программного обеспечения выполняет все работы независимо от изменяющихся условий во внешней среде.
C) после завершения определенной фазы подготовки программного
продукта, создается окончательный вариант технической документации.
95
D) достаточно просто распределить ресурсы на выполнение каждой фазы разработки программного продукта.
10. Особенностью модели с промежуточным контролем является то,
что . . . . . .
A) обеспечивается возврат на любой уровень этапа разработки, в случае возникновения потребностей для внесения изменений и уточнений
сферу действий, направленную на создание программ.
B) требуется создавать структуру управления ведением разработок для
координации их действий.
C) программные модули разрабатываются независимо друг от друга, а
стыковка их осуществляется по мере готовности к эксплуатации.
D) техническая документация создается на завершающем этапе создания системы.
11. Особенностью спиральной модели разработки программного обеспечения является то, что . . .. . .
A) начиная с некоторой итерации, на которой обеспечена определенная
функциональная полнота, продукт можно предоставлять пользователю.
B) внедрение продукта и его эксплуатация затрудняется в связи с тем,
что заказчик может постоянно менять свои требования.
C) сокращается время на проектные работы, т.к. отдельные элементы
программного обеспечения являются общими для всех.
D) требуется создавать подразделение, которое осуществляет координацию взаимодействия с заказчиком.
12. В основе структурного подхода к разработке программного обеспечения лежит . . .
A) методология системного анализа.
B) методология функционального проектирования.
C) методология объектно-ориентированный подхода.
D) методология процессного подхода проектирования
96
13. Структурный подход предусматривает . . .
A) вести проектирование системы сверху вниз.
B) вести проектирование системы снизу вверх.
C) вести проектирование системы по горизонтали, т.е. независимо.
D) вести проектирование системы после полного представления всех
ограничений на задачи.
14. Алгоритмом называют . . .
A) формально описанная последовательность действий, которые необходимо выполнить для получения требуемого результата.
B) схематическое отображение выполняемых действий.
C) описание действий машинных кодов при выполнении процедуры.
D) символическое отображение взаимодействия программных кодов
при выполнении заданных действий.
15. В основе нисходящего проектирования программного обеспечения
лежит. . .
A) декомпозиция объекта на составные элементы.
B) представление программ в виде связанных модулей по горизонтали.
C) разбиение системы на отдельные независимые элементы.
D) формирование представления задачи в виде иерархических связей
между отдельными ее элементами.
16. Под непротиворечивостью программных модулей следует понимать. . .
A) проведение постоянного контроля согласованности элементов, разрабатываемой программы.
B) установление одних и тех же типов представления данных, используемых в разных программных модулях.
C) контроль выходных параметров для выполнения различными процедурами одинаковых функций.
D) наличие в системе модулей с различными выходными функциями.
97
17. Повторяемость программных средств в разработках вызвана . . .
A) необходимостью выделения одинаковых блоков для удешевления и
ускорения разработок.
B) потребностью использования одного и того же программного продукта в независимых модулях.
C) тем, что различные коллективы разрабатывают независимо друг от
друга аналогичные программы.
D) стремлением разработчиков стандартизировать программные продукты при внедрении их в производство.
18. Конечным продуктом при разработке проекта программного обеспечения информационной системы . . .
A) становится набор программ, которые обеспечивают выполнение заданных функций
B) становится описание проекта с перечнем программных модулей.
C) становится функциональная схема объединения модулей в единое
приложение.
D) становится комплект документации для поддержки работоспособности программ.
19. Модуль представляет собой . . .
A) совокупность логически связанных элементов.
B) отдельную программу.
C) несколько процедур, связанных между собой переменными.
D) набор функций, которые предназначены для обработки и преобразования данных.
20. Под библиотекой программных ресурсов следует понимать . . .
A) отдельные подпрограммы, константы, наборы переменных, описания типов, классы объектов.
B) отдельные программы и данные.
C) классы объектов и описания их типов.
98
D) переменные и их значения, константы и их описания.
ТЕМА 2. ОСНОВНЫЕ ПРИНЦИПЫ ОБЪЕКТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ (ООП)
21. Каждый объект обладает . . .
A) собственными свойствами и назначением.
B) набором методов, с помощью которых он запускается.
C) перечнем атрибутов, которые используются при его работе.
D) независимостью и связями с библиотекой объектов.
22. В объектно-ориентированном программировании каждое событие
описывается . . .
A) в виде отдельного модуля (процедуры).
B) функциональной схемой взаимодействия объектов.
C) набором операторов.
D) последовательным выполнением процедур и функций.
23. Объектно-ориентированная программа это . . .
A) - совокупность объектов и способов их взаимодействия.
B) - перечень методов, которые воздействуют на объект.
C) - некоторый набор операторов.
D) - объединение процедур в общий модуль.
24. Инкапсуляция (encapsulation) . . .
A) - объединение в единое целое данных и алгоритмов (объектных методов) обработки этих данных.
B) - разделение действий функций над одними и теми же данными.
C) - выделение основных свойств объектов в отдельные подклассы.
D) - соединение нескольких процедур для обработки событий, связанных с объектом.
99
25. Практическое применение инкапсуляции при создании программ
проявляется в том, . . .
A) пользователь может вводить данные, используя интерфейс пользователя, но не может повлиять на механизм их контроля.
B) пользователю предоставляется право изменять алгоритм обработки
данных.
C) и разработчик программного обеспечения, и пользователь программного обеспечения могут заменять процедуру обработки данных в
приложении.
D) механизм контроля данных в программе становится доступным для
внесения исправлений.
26. Наследование (inheritance) это . . .
A) - свойство объектов порождать своих «потомков».
B) - передача значений данных из одного класса объектов в другой, логически связанных между собой.
C) - способность объекта выполнять действия, которые заложены в
объекте более высокого уровня.
D) - иерархическое представление программного модуля, описывающего поведение объекта.
27. Полиморфизм (polymorphism) . . .
A) это свойство родственных объектов решать схожие по смыслу проблемы разными способами.
B) это описание объекта с использованием различных способов представления его поведения.
C) это поведение объекта во время обращения к нему через интерфейс
пользователя.
D) это способ представления различных событий, осуществленных сна
объекте.
100
28. Практическое применение полиморфизма при программировании
проявляется в том, что . . .
A) метод с одним названием может осуществлять множество вариантов
поведения у различных объектов.
B) для различных объектов используют одни и те же процедуры при
обработке событий.
C) ограничивается сфера действия методов, которые используются для
описания объекта.
D) поведение объекта ставится в зависимость от применения конкретного метода.
29.
В объектно-ориентированном подходе объект представляется в
виде . . .
A) совокупности свойств, методов и событий, на которые он может реагировать.
B) набора процедур, которые описывают поведение объекта в определенных условиях.
C) единого модуля, у которого определены входные и выходные параметры.
D) описания свойств и методов их обработки.
30. Под методом в ООП понимают . . .
A) процедуры, встроенные (привязанные) к конкретному объекту.
B) набор операторов, выполняющих предписанные действия.
C) алгоритм, описывающий реакцию на событие.
D) функцию, которая находится в библиотеке языка программирования.
31. Пользователь создает события с помощью . . .
A) технических средств.
B) вызова программ и модулей.
C) устройств, которые связаны между собой программами.
D) интерфейса взаимодействия с программой.
101
32. В объектно-ориентированном программировании под термином
класс понимают . . .
A) - структурный тип данных, который включает описание полей данных, а также процедур и функций, работающих с этими полями данных.
B) - описание свойств для однотипных объектов, которые используются в различных частях приложения.
C) - наименование кластера, обладающего одинаковыми свойствами
для разных объектов.
D) - несколько объектов, собранных по одинаковым признакам.
33. Под атрибутом в ООП следует понимать . . .
A) поле или совокупность полей данных, содержащихся в объекте
класса.
B) данные, которые принадлежат объекту.
C) значение переменной, которая обрабатывается в программе.
D) результат выполнения функции после обращения к ней.
34. Строительным блоком класса являются . . .
A) некоторые программные коды, которые обрабатывают входной поток данных, а выходные данные (результаты) передают непосредственно
объекту.
B) стандартные функции, которые имеют перечень атрибутов для преобразования данных.
C) машинные команды, описывающие задания для взаимодействия с
техническими устройствами ЭВМ.
D) предписания, которые формируются в результате преобразования
алгоритма в программу.
102
ТЕМА 3. ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ В ОКОННЫХ
ОПЕРАЦИОННЫХ СРЕДАХ
35. Приложение Windows взаимодействует с пользователем и операционной системой путем . . .
A) отправки и получения сообщений.
B) запуска начала работы объекта определенного назначения.
C) вызова интерфейса пользователя для ввода данных.
D) использования стандартных функций из библиотеки приложений
Windows.
36. Виртуальное пространство памяти организуется за счет. . .
A) использования специально зарезервированной области жесткого
диска на компьютере пользователя.
B) подключения дополнительного накопителя на жестком диске.
C) разделения операционной системой оперативной памяти компьютера на рабочую и вспомогательную.
D) назначения пользователем адреса в оперативной памяти компьютера.
37. Возможность организации работы одновременно с несколькими
приложениями в системе Windows поддерживается . . .
A) за счет разделения времени между задачами.
B) установкой очереди выполнения приложений с помощью диспетчера задач.
C) организацией проведения опроса готовности приложения к работе, с
последующим запуском его без участия пользователя.
D) при помощи создания строки меню, с указанием нахождения задач в
оперативной памяти компьютера.
38. Интерфейс пользователя в среде Windows представляется . . .
A) из стандартных элементов.
B) из элементов, которые разработаны и представляют из себя независимые модули.
103
C) набором экранных форм.
D) отдельными приложениями, которые выполняют определенные
функции.
39. В операционной системе Windows драйверы устанавливают . . .
A) для преобразования данных независимо от типа устройства, через
которое эти данные проходят.
B) для подключения технических устройств типа принтер, накопители
на гибких дисках, flash-память и т.п.
C) для сопряжения (шлюзования) электрических сигналов между техническими устройствами.
D) для передачи данных.
40. Механизм Object Linking and Embedding (OLE) в Windows позволяет . . .
A) создавать составные документы.
B) обмениваться данными между различными приложениями.
C) пересылать данные из приложений Windows на машиночитаемые
носители.
D) воспринимать данные и команды из других приложений.
41. Операция транслирования программы заключается . . .
A) в преобразовании ее в машинные коды.
B) в создании модуля, который возможно использовать в других программах.
C) в разделении программы на несколько независимых частей.
D) в формировании предписаний для пользователя при использовании
приложения.
42. Для удобства разработки программ стали использовать операторы,
которые. . .
A) включают в себя набор простых команд.
B) состоят из стандартных функций.
104
C) отображают действия над данными.
D) позволяют задавать условия и данные для выполнения программы.
43. Взаимодействие пользователя с программными средствами поддерживается . . .
A) оконными интерфейсами.
B) средствами отображения на экране в виде подсказок и командной
строки.
C) приложениями Windows.
D) вызовом типовых процедур для обработки команд.
44. Примитивным называют интерфейс, который . . .
A) организует взаимодействие пользователя с приложением в консольном режиме.
B) позволяет выполнять отдельно каждый оператор программы.
C) передает сообщение программе для выполнения события.
D) не имеет, каких-либо пояснений.
45. Интерфейс типа меню позволяет пользователю . . .
A) выбирать необходимые операции из специальных списков.
B) открывать последовательно несколько приложений.
C) формировать перечень предписаний для сбора нескольких модулей в
единое приложение.
D) раскрывать пояснения (help) перед тем, как запустить приложение.
46. Интерфейсы со свободной навигацией . . .
A) поддерживают концепцию интерактивного взаимодействия с программным обеспечением.
B) позволяют пользователю выбирать необходимое приложение в произвольном порядке.
C) служат для работы с оним приложением.
D) предназначены для организации взаимодействия пользователя с
операционной системой компьютера.
105
47. Объектно-ориентированные интерфейсы поддерживают . . .
A) взаимодействие пользователя с программным обеспечением посредством выбора и перемещения пиктограмм.
B) работу пользователя с встроенными объектами в приложения.
C) выполнение функций операционной системы при работе с несколькими приложениями.
D) выполнение запросов пользователя к базам данных.
ТЕМА 4. ТЕХНОЛОГИЯ СОЗДАНИЯ ПРИЛОЖЕНИЙ В СРЕДЕ
VISUAL BASIC
48. Создание независимых приложений для обеспечения работы пользователя осуществляется с помощь:
A) - пакетов визуального программирования.
B) - языков, поддерживающих работу операционной системы компьютера.
C) - стандартных модулей, которые имеют функциональное назначение.
D) – машинных команд, позволяющих сделать приложение независимым от используемой операционной системы на компьютере.
49. Окно формы (Form) Visual Basic . . .
A) это полноправный объект среды разработки.
B) это поле для размещения элементов управления будущего приложения.
C) это общий класс объектов, входящих в интерфейс пользователя.
D) это место, на котором располагаются программные модули приложения.
50. Окно проекта (Project Explorer) Visual Basic предназначено для . . .
A) отображения всех файлов экранной формы и модулей, которые входят в проект.
106
B) отображения свойств элементов управления на форме проекта и методов, которые используются в проекте.
C) записи наименований элементов управления, которые используются
в экранной форме.
D) запуска программных кодов проекта при отладке.
51. Удобством визуального проектирования приложений заключается
в том, что . . .
A) программист выбирает объекты из списков на панели инструментов,
а затем переносит их на форму проекта.
B) заказчик программного продукта может наблюдать за ходом проектирования приложения.
C) используемые объекты в приложении пользователя связаны со стандартными модулями, что не требует навыков в программировании.
D) осуществляется разделение труда при разработке приложения (одни
специалисты создают форму, другие – вносят коды программ.
52. Каждый элемент, который входит в проект имеет собственные
свойства, что требует от программиста:
A) изменять свойства элементов управления при разработке приложения.
B) готовить специальные процедуры, с помощью которых в нужный
момент изменялись свойства элемента управления.
C) подбирать такие элементы управления в стандартной библиотеке,
которые имеют свойства, отвечающие требованиям.
D) учитывать в дальнейшей работе, заданные свойства системой для
элемента управления.
53. Алгоритм это . . .
A) – формально описанная последовательность действий, которые
необходимо выполнить для получения требуемого результата.
107
B) – отображение в виде блок-схемы взаимодействия операторов языка
программирования.
C) – предписание для выполнения процедуры, после свершения события.
D) – средство для программирования на языке высокого уровня.
54. Под словом массив в программировании следует понимать:
A) – одно имя переменной для хранения нескольких однотипных данных.
B) – набор переменных, которые имеют различные имена.
C) – переменные, сохраненные в виде последовательного файла.
D) – сведения об объектах, которые хранятся в базе данных.
55. В языке Visual Basic под словом процедура понимают . . .
A) фрагмент программного кода, с помощью которого решается какаято локальная задача.
B) действие, направленное на изменение свойств объекта.
C) набор операторов, с помощью которых дается предписание системе
для выполнения заданных действий.
D) фрагмент модуля, осуществляющий преобразование данных.
56. В Visual Basic окончание действия процедуры обозначается:
A) – оператором End Sub.
B) – оператором End.
C) – символом точка с запятой (;).
D) – символом фигурная скобка ({).
57. Для определения переменной необходимо . . .
A) указать идентификатор и ее тип.
B) задать размер данных, которые хранятся в переменной.
C) указать тип переменной, длину переменной и ее имя.
D) создать раздел в программе с перечнем имен переменных.
108
58. Переменные, используемые в программах, . . .
A) изменяются в процессе выполнения программы.
B) имеют жестко фиксированное значение.
C) изменяются только при новом определении в процедуре.
D) не изменяются в процессе выполнения программ.
59. Указатель файла должен быть определен . . .
A) - целым числом.
B) - символом латинского алфавита.
C) - значением из переменной, которая формируется заранее.
D) - относительным адресом на внешнем носителе.
60. В программировании событием называется . . .
A) характеристика объекта, описывающая внешнее воздействие, на которое реагирует объект во время работы приложения.
B) то, что совершает пользователь во время работы с приложением.
C) изменение свойств объекта при воздействии на него со стороны.
D) загрузка приложения пользователя в оперативную память ЭВМ.
109