- •Прикладное программирование
- •Часть 1
- •Прикладное программирование
- •Часть 1
- •1. Информация о дисциплине
- •1.1. Предисловие
- •2.1. Рабочая программа (220 часов) Введение
- •Раздел 1. Технология программирования
- •Раздел 2. Ввод данных
- •1.2. Содержание дисциплины и виды учебной работы
- •1.2.2. Перечень видов практических занятий и контроля
- •2. Рабочие учебные материалы
- •Раздел 3. Управляющие окна
- •Раздел 4. Развитые компоненты
- •Раздел 5. Основные понятия субд
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •Раздел 7. Основные приёмы программирования бд
- •Раздел 8. Развитые приёмы программирования бд
- •Раздел 9. Интерфейс прикладного программирования api
- •Заключение
- •2.2. Тематический план изучения дисциплины
- •Тематический план для студентов заочной формы обучения
- •Структурно-логическая схема дисциплины «Прикладное программирование»
- •2.4. Временной график изучения дисциплины при использовании информационно-коммуникационных технологий
- •2.5. Практический блок
- •2.5.1. Практические занятия
- •2.5.2. Лабораторный практикум
- •2.5.2.1. Лабораторные работы для очной формы обучения
- •2.5.2.2. Лабораторные работы для очно-заочной формы обучения
- •2.5.2.3. Лабораторные работы для заочной формы обучения
- •2.6. Балльно-рейтинговая система оценки знаний
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •Опорный конспект Введение
- •Раздел 1. Технология программирования
- •1.1. Основная тенденция технологии программирования
- •Раздел 2. Ввод данных
- •2.1. Организация надежного ввода
- •2.2. Обработка строк
- •2.3. Средства группирования компонентов
- •Раздел 3. Управляющие окна
- •3.1. Управление выбором
- •3.2. Диалоговые окна
- •3.3. Многострочные окна
- •Раздел 4. Развитые компонеты
- •4.1. Работа с данными типа DateTime
- •4.2. Работа с двумерными массивами
- •4.3. Компоненты навигаторов.
- •4.4. Использование указателей
- •Раздел 5. Основные понятия субд
- •5.1. Общие сведения о базах данных (бд)
- •5.2. Концепция управления бд из среды Builder
- •5.3. Файлы и индексы
- •Раздел 6. Программирование баз данных
- •6.1. Невизуальные компоненты для построения бд
- •6.2. Навигация по нд
- •6.3. Доступ к полям нд
- •6.4. Визуальные компоненты для работы с бд
- •Раздел 7. Основные приёмы программирования бд
- •7.1. Сортировка, фильтрация и редактирование нд
- •7.2.Организация надежного ввода данных в бд
- •Раздел 8. Развитые приёмы программирования бд
- •8.1. Построение связей между таблицами бд
- •8.2. Работа с изображениями.
- •Раздел 9. Интерфейс прикладного программирования api
- •9.1 Встраивание звука
- •9.2. Вызов других приложений
- •Заключение
- •3.3. Глоссарий (краткий словарь основных терминов и положений)
- •3.4. Технические средства обеспечения дисциплины
- •3.5. Методические указания к выполнению лабораторных работ
- •3.5.1. Лабораторные работы, семестр 1
- •Работа 1.1. Проектирование программного проекта.
- •Вспомогательный теоретический материал Основная тенденция технологии программирования
- •Компонент ActionList
- •Связь пунктов меню Main Menu1 с действиями ActionList
- •Связь действий ActionList с изображениями ImageList
- •Кнопки быстрого доступа
- •Всплывающие подсказки
- •Использование стандартных действий
- •10 Правил технологии программирования
- •Работа 1.2. Надёжный ввод
- •Работа 1.3. Контейнеры
- •Работа 1.4. Компоненты выбора
- •Работа 1.5. Диалоги
- •Работа 1.6. Многострочные окна
- •Работа 1.7. Определение даты и временного интервала.
- •Работа 1.8. Обработка двумерных массивов.
- •Работа 1.9. Работа с каталогами и файлами.
- •3.5.2. Лабораторные работы, семестр 2
- •Работа 2.1. Начальное создание базы данных
- •Вспомогательный теоретический материал Общие сведения о базах данных
- •Концепция управления бд из среды Builder
- •Средство dbe (Database Borland Engine – машина Borland управления базой данных)
- •Альяс базы данных
- •Поля файла бд
- •Набор данных таблицы бд
- •Управление наборами данных в среде Builder
- •Модуль данных DataModule
- •Файлы и индексы
- •Содержание работы
- •Работа 2.2. Сортировка набора данных, русификация заголовков
- •Работа 2.3. Организация надежного ввода
- •//Проверка полей Panel2 - только для режима замены
- •Работа 2.4. Ввод данных посредством вспомогательных словарей.
- •Работа 2.5. Связи таблиц типа 1:1 и 1:n
- •Работа 2.6. Поля синхронного просмотра типа Lookup
- •Работа 2.7. Поиск и фильтрация
- •Работа 2.8. Особенности сохранения изображений в бд
- •Работа 2.9. Встраивание звука
- •Работа 2.10. Вызов других приложений
- •Методические указания к практическим занятиям
- •Заключение
- •4. Блок контроля освоения дисциплины
- •Часть 1, первый семестр – контрольная работа, зачёт.
- •Часть 1, второй семестр – курсовой проект, экзамен.
- •4.1. Задание на контрольную работу и методические указания к её выполнению
- •Вниманию студентов, обучающихся с элементами дот.
- •Задание на курсовой проект и методические указания к его выполнению
- •Этапы работы над курсовым проектом
- •4.3. Текущий контроль Тренировочные тесты
- •4.4. Итоговый контроль Вопросы к зачёту, семестр 1
- •Вопросы к экзамену, семестр2
Модуль данных DataModule
Очень полезным приёмом программирование при работе с БД является использование модуля данных DataModule. Это модуль, напоминающий форму, но являющийся полностью невизуальным. На нем размещают большинство невизуальных компонентов, и, в первую очередь, таблицы БД. Достоинства DataModule состоят в следующем:
Таблицы БД, помещённые в этом модуле, открываются раньше всех остальных, а закрываются позже. Они являются глобальными по отношению к другим модулям и поэтому всегда доступны. Не требуется также следить за синхронизацией таблиц, поскольку все они существуют в единственном экземпляре и такой вопрос просто не возникает.
Рабочие таблицы освобождаются от многочисленных невизуальных объектов, что упрощает работу программиста.
В модуль можно поместить собственные глобальные процедуры и переменные и тогда они становятся общедоступными.
Подробно с этим компонентом студент знакомится на лабораторных работах.
Файлы и индексы
Каждому построенному с помощью DBD-утилиты индексу соответствует индексный файл. Имя индексного файла формируется автоматически, его ведущая часть совпадает с именем файла данных, которое, напоминаем, имеет расширение db. Расширение имени индексного файла также устанавливается автоматически, так что программист освобожден от этих забот.
Индексный файл содержит столько же записей, сколько и файл данных, но всего одно поле – то, которое программист выбрал в качестве ключевого. Основная роль индексного файла состоит в организации индексного или прямого доступа к файлу данных вместо естественного последовательного доступа. Наличие индексного файла позволяет во много раз ускорить работу с файлом данных, легко организовать сортировку, поиск и фильтрацию.
При открытии таблицы БД индексный файл копируется в оперативную память, где он принимает вид двумерного массива, содержащего столько же строк, сколько записей имеется в файле. В первом столбце массива записываются значения ключевого поля, по которому создавался индекс, во втором столбце заносится номер физической записи в файл. После этого массив упорядочивается по значению ключевого поля. Эта операция связана с физической перестановкой записей массива, но поскольку массив-индекс находится в оперативной памяти, его сортировка занимает пренебрежимо мало времени в абсолютном исчислении.
Наличие такого массива в оперативной памяти позволяет фактически заменить последовательный доступ к записям файла прямым доступом. Это происходит так.
Предположим, программист требует отыскать запись со значением ключевого поля ХХХ. Прежде всего, система отыскивает эту запись по индексу, а поскольку индекс находится в оперативной памяти и он упорядочен, то, применяя методы быстрого поиска, например бинарный, можно отыскать нужное поле за микросекунды, даже для больших массивов. Найдя запись со значением ключа ХХХ, система считывает физический номер записи в реальном файле из второго столбца индекса. Зная параметры магнитного диска и длину записи файла, система пересчитывает номер записи файла в номер кластера диска, где эта запись расположена. Номер кластера передается операционной системе, которая считывает этот кластер за однократную установку считывающей головки дисковода на нужную точку поверхности диска. Поскольку эта операция для современных дисков занимает 10-15 миллисекунд, то этим периодом и можно оценить время поиска нужной записи, причем это время почти не зависит от объема файла данных. Без индекса при естественном последовательном доступе к файлу поиск нужной записи зависит от их количества прямо пропорционально, и для больших файлов, имеющих, например, 100 000 записей, время поиска могло бы составить порядка 15 минут.
