–PAGE_BREAK–1.1 НАЗНАЧЕНИЕ И ЦЕЛИ ОПТИМИЗАЦИИ
Оптимизирующая часть выполняет следующие действия:
1. Устраняет недостатки программы, вызванные небрежностью или низкой квалификацией программиста. Примером может служить вынесение из цикла операторов, не зависящих от управляющих переменных цикла, что приведет к сокращению времени выполнения программы, поскольку вынесенные операторы будут выполняться только один раз, а не многократно.
2. Устраняет излишние вычисления, неизбежно возникающие в процессе трансляции даже при самом тщательном написании программы на языке высокого уровня. Например, устранение повторного вычисления индексных выражений для элементов массива сокращает время выполнения программы и ее длину.
1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК
Для повышения эффективности программы можно произвести над ней последовательность преобразований в различные моменты процесса компиляции. Например, можно оперировать с входной программой, со структурами, порождаемыми на стадии синтаксического анализа, с кодом, порождаемым в качестве выхода фазы генерации кода. Однако оптимизировать программу, уже протранслированную в коды машины, трудно по следующим причинам:
во-первых, единицы действия программы в кодах команд слишком мелки, что уже само по себе затрудняет анализ,
во-вторых, при трансляции входной программы в коды машины возможна потеря имеющейся в ней информации. Например, засылка промежуточных результатов в разные рабочие ячейки памяти делает практически невозможной идентификацию одинаковых частей программы;
в-третьих, из-за нестандартности форматов различных элементов языка и рекурсивных конструкций, широко применяемых в текстах программ.
Поэтому, если транслятор производит оптимизацию программы, необходимо делать специальный проход, переводящий программу с исходного языка, на промежуточный.
Строго сформулировать требования, предъявляемые к промежуточному языку, трудно. Однако уже из самого обоснования необходимости промежуточного языка видно, что:
1 операторы языка не должны быть слишком мелкими;
2 символы, идентификаторы и числа должны иметь фиксированный формат;
3 в строении операторов желательно отсутствие рекурсивности;
4 должна сохраняться вся информация, необходимая для оптимизации, которая есть во входном языке;
5 язык должен быть приспособлен к выполнению оптимизирующих преобразований и удобен для последующей трансляции в коды вычислительной машины.
Требования. «4» и «5» показывают, что разработать единый универсальный промежуточный язык для трансляции с любого языка программирования в коды любой вычислительной машины трудно. В качестве промежуточного языка можно использовать польскую запись, триады, синтаксические деревья.
При рассмотрении вопросов оптимизации будем считать, что программа протранслирована с входного на некоторый промежуточный язык, оператор которого имеет следующий общий вид: (mi) код операции аргументы оператора, где mi — указатель оператора, а также идентификатор результата команды при отсутствии его присваивания некоторой переменной.
Необходимо различать переменные, введенные программистом (программные переменные), и переменные, генерируемые в процессе трансляции на промежуточный язык (mi — идентификаторы). Между определением программной переменной и ее использованием в качестве операнда существует следующая зависимость:
— если программная переменная, используемая в области, не определена в ней, то предполагается, что она определена во всех путях, ведущих к области;
— если программная переменная определена и используется в
области, то внутри области существует путь между определением
переменной и каждым ее использованием;
— если программная переменная определена в области, то, вообще говоря, это не значит, что она определена на каждом выходном пути.
1.3 БЛОК
Вопросы оптимизации обычно связаны с топологией программы, т.е. со способом ее построения. Для того, чтобы локализовать процессы оптимизации и не связывать их с конкретным входным языком, они проводятся внутри отдельных участков программы, называемых блоками и сильно связанными областями.
Блок (линейный участок) — выполняемая по порядку последовательность операторов, имеющая единственную точку входа — первый оператор с меткой, на который может быть передано управление, и единственную точку выхода — последний оператор.
Блок моделирует часть программы на промежуточном языке, которая содержит операторы присваивания.
Формально модель линейного участка может быть представлена следующим образом:
Блок B — это тройка вида (P,I,U), где
1. P — список операторов S1,S2,…Sn (n>=0),
2. I — множество входных переменных,
3. U — множество выходных переменных.
Оператор S в программе называется входом в линейный участок, если он либо первый оператор в программе, либо помечен идентификатором, появляющимся в операторе перехода, либо непосредственно следует за условным оператором.
Линейный участок, относящийся к входу в участок S, состоит из S и всех операторов, следующих за ним вплоть до оператора останова, включая его, или вплоть до входа в следующий блок.
продолжение
–PAGE_BREAK–1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ
Для каждого блока B=(P,I,U) можно найти ориентированный ациклический граф, представляющий этот блок. При этом каждый лист графа (концевая вершина) соответствует одной входной переменной в I, а каждая его внутренняя вершина — оператору из P. Граф отражает порядок выполнения операторов программы и дает более наглядное представление, чем линейная последовательность операторов.
Если вершины i и j графа соответствуют участкам i и j программы, то дуга идет из i в j, если:
последний оператор участка i является оператором перехода на метку L, которой помечен первый оператор участка j.
Сильно связанной областью направленного графа называется такое множество его вершин, что для любых двух вершин x и y (x! = y) существует путь из x в y.
Будем рассматривать сильно связанные области Ri, обладающие следующими свойствами:
1. Ri является сильносвязанной областью, состоящей из множества блоков, каждый из которых предшествует сам себе и следует сам за собой внутри этого множества;
2.Ri != Rj;
3. для каждого i
1.5 СПОСОБЫ ОПТИМИЗАЦИИ
Различают две категории оптимизирующих преобразований:
преобразования исходной программы в ее внутренней форме, которые не зависят от объектного языка (машинно-независимые) и преобразования, осуществляемые на уровне объектной программы
(машинно-ориентированные).
Методы первой категории применимы почти к любому алгебраическому языку — FORTRAN, ALGOL, PL/1 и.т.д.
На практике используется весьма широкий набор машинно-независимых оптимизирующих преобразований, что связано с большим разнообразием неоптимальностей. К ним относятся:
1. — разгрузка участков повторяемости;
2. — упрощение действий;
3. — реализация действий;
4. — чистка программы;
5. — экономия памяти;
6. — сокращение программы.
1.6РАЗГРУЗКА УЧАСТКОВ ПОВТОРЯЕМОСТИ
Такое название получил способ оптимизации, состоящий в вынесении вычислений из многократно проводимых (исполняемых ) участков программы на участки программы, редко проходимые.
К этому виду преобразований относятся различные чистки зон, тел циклов и тел рекурсивных процедур, когда инвариантные (по результату выполнения) в соответствующих участках повторяемости выражения, линейные компоненты (т. е. гамаки, обязательно исполняемые при каждом прохождении участка повторяемости) выносятся из него и размещаются перед входом в участок повторяемости — чистка вверх,- или когда уничтожающие свои предыдущие результаты линейные компоненты или группы линейных компонент участка повторяемости выносятся из него и размещаются за выходы из участка повторяемости — чистка вниз.
При чистке вверх вынесенные вычисления образуют новый непосредственный обязательный предшественник участка повторяемости, а при чистке вниз — непосредственный обязательный преемник участка повторяемости.
Обычно выносятся только такие выражения и линейные фрагменты программы, которые обязательно исполняются при каждом прохождении разгружаемого участка повторяемости.
В группу разгрузок участков повторяемости также входят и различные преобразования, которые осуществляют перемещение гамака по пути, ведущему к месту использования его результатов.При таком преобразовании в отличие от чисток гамак остается в тех же зонах, циклах и процедурах.
1.7 СДВИГ ИНВАРИАНТНЫХ ОПЕРАТОРОВ
Рассмотрим подробнее преобразование сдвига инвариантных операторов, входящее в группу преобразований по разгрузке участков повторяемости.
Оператор инвариантен и может быть вынесен из блока, если он удовлетворяет следующим условиям:
1. Cдвиг оператора не приводит к тому, что результат сдвигаемого оператора перемещается через оператор, в котором результат используется.
Например, для блока (mi) * A,B .
(mk) := C,(mi), если ни A, ни B не определяются в области, то оператор mi может быть сдвинут вниз, но не может быть поставлен после опе-
ратора mk.
2. Cдвиг оператора не приводит к тому, что между определением переменной и ее использованием в качестве операнда появляется новый оператор, присваивающий этой переменной другое значение. Например, для блока
(mi) := A,1
(mj) := A,10
(mk) := C,A
Если больше никакой оператор после mj не присваивает значение переменной A, то оператор mj может быть сдвинут вниз, но не может быть поставлен после оператора mk, операторами mi, а также вверх, но не выше оператора, использующего значение переменной A, присвоенное оператором mi.
3. сдвиг оператора не нарушает связи между сдвигаемым оператором и оператором, использующим результат сдвигаемого в качестве операнда.
Таким образом, оператор инвариантен в области, если его операнды не зависят от места определения переменных в данной области.
Как уже отмечалось, сдвиг инвариантного оператора из тела цикла сокращает время выполнения программы. Особенность рассматриваемого метода заключается в том, что оператор сдвигается из блока во всех случаях, когда он может быть сдвинут независимо от того, находится он внутри цикла или нет. Ухудшение программы произойти не может.
Необходимо также отметить, что перед сдвигом инвариантных операторов нужно устранить идентичные операторы (об этом речь пойдет позже), так как они могут оказаться препятствием для сдвига операторов.
Рассмотрим условия, достаточные для сдвига операторов
I. Сдвиг оператора, не являющегося оператором присваивания, из области назад (на его входные пути) производится, если операнды оператора не зависят от места определения переменных в области, т.е.:
1. mi — идентификаторы, используемые в качестве аргумента оператора, не определены в блоке ни одним предшествующим оператором;
2. программные переменные оператора не определены в области. Если оба эти условия выполняются, то операнды оператора не зависят от места определения переменных в области.
II. Сдвиг оператора присваивания, из области назад (на его
входные пути) производится, если:
1. mi — идентификаторы, используемые в качестве аргумента оператора, не определены в блоке ни одним предшествующим оператором;
2. программные переменные, используемые в качестве операнда оператора не определены в области;
3. блок является артикуляционным, т.е. лежит на пересечении всех входных или всех выходных путей сильно связанной области;
4. не существует другого определения или использования программной переменной на любом пути от входа в область до этого определения.
III. Сдвиг оператора, не являющегося оператором присваивания, из области вперед (на его выходные пути) производится, если:
1.mi — идентификаторы, используемые в качестве аргумента оператора, не переопределяются ни на одном пути между оператором и точкой выхода из области;
2.программные переменные, используемые в качестве аргумента оператора не переопределяются ни на одном пути между оператором и точкой выхода из области;
3.mi — указатель, являющийся результатом действия оператора, не используется на пути между оператором и концом блока.
IV. Сдвиг оператора присваивания, из области назад (на его входные пути) производится, если:
1. mi — идентификаторы, используемые в качестве аргумента оператора, не переопределяются ни на одном пути между оператором и точкой выхода из области;
2. программные переменные, используемые в качестве аргумента оператора не переопределяются ни на одном пути между оператором и точкой выхода из области;
3. блок является артикуляционным пунктом области;
4. не существует другого определения программной переменной ни на одном пути между определением и точкой выхода из области;
5. программная переменная не используется в области.
продолжение
–PAGE_BREAK–1.8 ВСТАВКА ПСЕВДОБЛОКА
В процессе оптимизации операторы, сдвигаемые из блоков, собираются в псевдоблок. После оптимизации области Rk операторы псевдоблока должны быть вставлены в программу так, чтобы они выполнялись до (после) выполнения операторов области Ri.
Для того, чтобы операторы псевдоблока выполнялись на всех входных (выходых) путях области Rk, они должны вставляться во все блоки, непосредственно предшествующие (следующие) области либо из псевдоблока должен быть сформирован блок, который будет вставлен на все входные (выходные) пути области Rk.
Вставка операторов в существующие блоки или формирование из псевдоблока фактического блок выполняется по следующему алгоритму (алгоритм рассматривается для операторов, сдвинутых назад на входные пути, для операторов, сдвинутых вперед, алгоритм аналогичен ):
1) операторы вставляются во все блоки, непосредственно предшествующие области, которые имеют только один непосредственно следующий блок. Вставляемые операторы записываются перед оператором перехода.
2) из псевдоблока создается формальный блок, который вставляется на всех входных путях, идущих от непосредственно предшествующих блоков, имеющих несколько преемников.
3) если входной блок программы принадлежит области Rk, то псевдоблок формируется в формальный блок и ставится на неявном пути между внешним и вызывающим оператором и начальным блоком.Это соответствует созданию нового блока.
4).Набор и последовательность оптимизирующих преобразований.
Каждый из способов оптимизации может быть реализован в виде отдельного преобразования. В то же время практика оптимизирующей трансляции показала, что все эти способы оптимивации, не совпадая друг с другом, реализуют во многом совпадающие процессы обработки программы, в основе которых лежит небольшое число более элементарных и фундаментальных преобразований программ.
Поэтому в реальных оптимизирующих трансляторах разнообразные наборы способов оптимизации программ сводятся к применению более простых преобразований в их сочетании друг с другом и с учетом их совокупного влияния на транслируемую программу.
Реально используемые наборы оптимизирующих преобразований не обладают свойством, позволяющим не следить за порядком применения преобразованнй. Обычно существуют ситуации, когда применение одного преобразования закрывает возможности применения другого (в этом случае говорят, что первое преобравование обладает тупиковостью по отношонию ко второму) или, наоборот, приводит к новым возможностям другого преобразования (т.о. обладает повторностью по отношению к нему).
Поэтому важным для имеющегося набора оптимизирующих преобразований (с точки зрения качества получаемой программы) представляется выбор порядка применения преобразований из набора. Нужно стремиться к тому, чтобы в последовательности применения любое преобразование не предшествовало преобразованию, по отношению к которому оно тупиково, но предшествовало преобравованию, по отношению к которому оно повторно.
Можно дать некоторые частные рекомендации по оптимизации циклов и линейных участков.
Оптимизацию циклов можно осуществлять в три прохода, расположенных между проходом обычного анализа, в котором получается внутреннее представление исходной программы, и проходом, генерирующим объектный код:
1) анализ циклов — выявление циклов, подлежащих оптимизации и получение необходимой для оптимизации информации;
2) вынесение за границу циклов инвариантных операций;
3) замена сложных операций.
Свертка или исключение лишних операций на линейных участках осуществляются непосредственно перед или в процессе обработки инвариантных операций.
–PAGE_BREAK–2.2 ОБОСНОВАНИЕ ВЫБОРА ТЕМЫ
Я выбрал для написания курсовой работы в качестве практического задания – создание программы «База данных компьютерного магазина» именно потому, что меня привлекает работа с компьютерами, а теоретического – Оптимизация программ из-за желания более подробно понять процесс оптимизации компьютерных программ.
Техническое задание
Функции программы компьютерного магазина:
1. Возможность распечатки документа
2. Возможность выбора шрифта
3. Возможность выбора цвета фона
4. Узнать данные о покупателе
5. Узнать вид упаковки данного компьютера
6. Выбрать компьютер
2.3 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ ACCESS
Access — система управления базами данных (СУБД). Использование Access для хранения и поиска данных, представления информации в удобном виде и автоматизации выполнения повторяющихся задач. Разработка с помощью Access простых и удобных форм ввода данных, обрабатки данных и генерации сложных отчетов. Применение Access 97 для размещения форм Access в виде документов HTML на Web-страницах и обмена данными с узлами Internet/Intranet.
Поддержка в Access механизма Запроса по образцу (Query by Example — QBE), обеспечивающая выборку, сортировку и поиск данных. Создание приложений без программирования с использованием макросов Access. Пользователи электронных таблиц и баз данных должны быть знакомы со многими ключевыми понятиями, используемыми в Access. Прежде чем приступить к работе с каким-либо программным продуктом, важно понять его возможности и типы задач, для решения которых он предназначен. Microsoft Access 97 (далее — просто Access) — это многогранный продукт, использование которого ограничено только воображением пользователя.
Access — это, прежде всего, система управления базами данных (СУБД). Как и другие продукты этой категории, она предназначена для хранения и поиска данных, представления информации в удобном виде и автоматизации часто повторяющихся операций (таких, как ведение счетов, учет, планирование и т.п.). С помощью Access можно разрабатывать простые и удобные формы ввода данных, а также осуществлять обработку данных и выдачу сложных отчетов.
Access— мощное приложение Windows; впервые производительность СУБД органично сочетается с теми удобствами, которые имеются в распоряжении пользователей Microsoft Windows. Поскольку оба эти продукта— детища компании Microsoft, они прекрасно взаимодействуют между собой. Система Access работает под управлением Windows 95 или Windows NT, так что при работе с ней пользователю доступны все преимущества Windows. Можно вырезать, копировать и вставлять данные из любого приложения Windows в Access и наоборот; можно создать проект формы в Access и вставить его в конструктор форм. С помощью объектов OLE (Object Linking and Embedding — связывание и внедрение объектов) в Windows 95 и компонентах Microsoft Office 97 (Excel, Word, PowerPoint и Outlook) можно превратить Access в настоящую операционную среду баз данных. С помощью новых расширений для Internet можно создавать формы, которые будут напрямую взаимодействовать с данными из World Wide Web, и транслировать их в представление на языке HTML, обеспечивающее работу с такими продуктами, как Internet Explorer и Netscape Navigator. При всем этом Access — не просто СУБД. Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и позволяет использовать одновременно несколько таблиц базы данных. При этом можно существенно упростить структуру данных, облегчая тем самым выполнение поставленных задач. Таблицу Access можно связать с данными, хранящимися на большой ЭВМ или на сервере. С другой стороны, можно использовать таблицы, созданные в среде Paradox или dBASE. Полученные результаты можно быстро и легко связать и объединить с данными из электронных таблиц Excel. Работая в среде Microsoft Office 97, пользователь получает в свое распоряжение полностью совместимые между собой Access и Word, Excel и PowerPoint.
Система Access — это набор инструментов конечного пользователя для управления базами данных. В ее состав входят конструкторы таблиц, форм, запросов и отчетов. Эту систему можно рассматривать и как среду разработки приложений. Используя макросы или модули для автоматизации решения задач, можно создавать ориентированные на пользователя приложения такими же мощными, как и приложения, написанные непосредственно на языках программирования. При этом они будут включать кнопки, меню и диалоговые окна. Программируя на языке VBA, можно создавать такие мощные программы, как сама система Access. По сути дела, многие инструментальные средства Access (например, мастера и конструкторы) написаны именно на VBA. Мощность и доступность Access делают эту систему лучшей СУБД из представленных сегодня на рынке.
Что предлагает Access
1.Настоящая реляционная модель баз данных
В Access в полной мере реализовано управление реляционными базами данных. Система поддерживает первичные и внешние ключи и обеспечивает целостность данных на уровне ядра (что предотвращает несовместимые операции обновления или удаления данных). Кроме того, таблицы в Access снабжены средствами проверки допустимости данных, предотвращающими некорректный ввод вне зависимости от того, как он осуществляется, а каждое поле таблицы имеет свой формат и стандартные описания, что существенно облегчает ввод данных. Access поддерживает все необходимые типы полей, в том числе текстовый, числовой, счетчик, денежный, дата/время, MEMO, логический, гиперссылка и поля объектов OLE. Если в процессе специальной обработки в полях не оказывается никаких значений, система обеспечивает полную поддержку пустых значений.
Реляционная обработка данных в Access за счет гибкой архитектуры системы способна удовлетворить любые потребности. При этом Access может использоваться как автономная СУБД в режиме файл-сервера или клиентского компонента таких продуктов, как SQL Server. Кроме того. Access поддерживает протокол ODBC (Open Database Connectivity), что позволяет подключаться к базам данных множества различных форматов, таких как SQL Server, Oracle, Sybase и даже DB/2 для больших ЭВМ фирмы IBM.
Система Access поддерживает обработку транзакций с гарантией их целостности. Кроме того, предусмотрена защита на уровне пользователя, что позволяет контролировать доступ к данным отдельных пользователей и целых групп.
Контекстно-зависимая справка и Office Assistant
Организация справочной системы фирмы Microsoft — по-прежнему лучшая в отрасли, причем как для новичков, так и для опытных пользователей. В Access предусмотрена контекстно-зависимая справка, для получения которой достаточно нажать , и на экране сразу же появится справочная информация по тому вопросу, который интересует пользователя в текущий момент. При этом можно легко перейти к оглавлению справочной системы, конкретной информации, журналу предыдущих обращений и закладкам.
В Access 97 компания Microsoft ввела Office Assistant (ассистента) и Screen Tips (всплывающие подсказки). Всплывающие подсказки содержат короткие объяснения чего-либо. В системе предусмотрена целая галерея из десяти возможных персонажей ассистентов (выбрать можно любого во своему вкусу). Если ассистент вам надоест, можете его отключить.
Простые в использовании мастера и конструкторы
Мастер (Wizard) может превратить часы работы в считанные минуты. Мастера задают наводящие вопросы относительно содержания, стиля и формата создаваемого объекта; затем они автоматически строят нужный объект. В составе Access около ста мастеров, помогающих конструировать базы данных, приложения, таблицы, формы, отчеты, диаграммы, почтовые наклейки, элементы управления и свойства. Допускается даже настройка мастеров для решения разных задач.
Импортирование, экспортирование и связывание внешних файлов
Access позволяет импортировать и экспортировать файлы многих известных форматов, включая dBASE, FoxPro, Excel, SQL Server, Oracle, Btrieve, многие текстовые форматы ASCII (в том числе с фиксированной длиной строки или заданным ограничителем), а также данные в формате HTML. В результате импортирования создается таблица Access; в результате экспортирования таблицы Access создается файл в заданном формате.
Связывание (ранее именовавшееся присоединением) означает, что можно использовать внешние данные без создания таблицы Access. Можно устанавливать подобную связь с данными dBASE, FoxPro, Excel, ASCII и SQL. Очень мощная возможность — связывание таблиц Access с их внешними таблицами с последующим совместным использованием; это относится к таблицам Access, dBASE, FoxPro и SQL Server.
Формы и отчеты WYSIWYG
Окна конструкторов форм и отчетов имеют одинаковый интерфейс и предоставляют пользователю много возможностей. Форма или отчет конструируется по принципу WYSIWYG (What You See Is What You Get — что видишь, то и получишь). Добавляя очередной элемент управления, пользователь видит, как при этом изменяется создаваемая форма.
В формы и отчеты можно включать надписи, поля текстовых данных, переключатели, флажки, линии и прямоугольники, а также оформлять их, выделяя элементы цветом и тенью. Более того, можно включать целые рисунки, диаграммы, подформы и подотчеты. При этом все параметры представления данных остаются полностью подконтрольными пользователю. Формы могут занимать много страниц, а в отчетах может быть предусмотрено много уровней группировки данных и подведения итогов.
Формы и отчеты можно просматривать в режиме предварительного просмотра, обеспечивая взгляд «с высоты птичьего полета» путем изменения масштаба. В режиме конструирования отчет можно просматривать с фиктивными данными, чтобы не дожидаться обработки большого реального файла.
Конструктор отчетов — очень мощное средство, допускающее использование до десяти уровней группировки и сортировки. Благодаря ему существует возможность создания отчетов, демонстрирующих процентные и итоговые показатели, получить которые можно лишь за два прохода. Допускается создание многих типов отчетов, которые включают почтовые наклейки и списки рассылки почты.
Многотабличные запросы и отношения
Одна из самых мощных возможностей Access одновременно является и наиболее важной. Отношения позволяют связать таблицы графически. Можно даже связывать таблицы, представляющие файлы разных типов (например, таблицу Access и таблицу dBASE). После подобного связывания таблицы выступают уже как одно целое, и теперь можно строить запросы применительно к любым данным в них. Можно выбирать конкретные поля, определять порядок сортировки, создавать вычисляемые выражения и вводить критерии отбора нужных записей. Можно отображать результаты выполнения запроса в виде таблицы, формы или отчета. От пользователя не требуется предварительной установки связей: вместо этого достаточно войти в конструктор запросов (например, когда требуется построить определенный отчет).
Запросы применяют и в других случаях. Можно создавать запросы, которые обеспечивают вычисление итогов, отображение сгруппированных и построение новых таблиц. Запрос можно использовать даже для обновления данных в таблицах, удаления записей и добавления одной таблицы к другой.
Графики и диаграммы
В Access используется то же самое графическое приложение, что и в Microsoft Word, Excel, PowerPoint и Project. Оно позволяет создавать сотни типов графиков и диаграмм, настраивая их, исходя из конкретных потребностей. Можно создавать гистограммы, линейчатые, круговые, поверхностные и другие диаграммы, причем как двух-, так и трехмерные. Их можно произвольно сопровождать текстом, оформлять разными цветами и узорами. Значения могут отображаться в столбцах или секторах круговых диаграмм. Можно разворачивать изображения диаграмм так, чтобы они воспроизводились под любым удобным углом зрения. Все это обеспечивает программа Access Graph.
Возможности DDE и OLE
С помощью DDE (Dynamic Data Exchange — динамический обмен данными) и OLE (Object Linking and Embedding — связывание и внедрение объектов) в формы и отчеты Access можно добавлять всевозможные новые объекты. Такими объектами могут быть звук, рисунки, диаграммы и даже видеоклипы. Можно внедрять объекты OLE (например, растровые изображения) или документы текстовых процессоров (Word или WordPerfect) или устанавливать связи с электронными таблицами Excel. Связывая эти объекты со своей базой данных, пользователь может создавать динамические формы и отчеты, а также использовать одну и ту же информацию в разных приложениях Windows.
Доступ к Internet
В Access теперь предусмотрены все возможности, обеспечивающие связь приложении с Internet/intranet. Одним щелчком кнопкой мыши можно сохранить таблицы, запросы, формы и отчеты в формате HTML. Соответствующий мастер позволяет даже новичку перенести коды HTML из объекта на Web-страницу, делая их доступными для использования всем, кто путешествует по Internet! Гиперссылки позволяют получать доступ к данным, которые размещены на Web-странице, прямо из форм Access.
Многие считают, что размещение данных на Web-страницах должно осуществляться Web-администраторами. Access 97 с полной определенностью доказывает, что эта операция может быть с успехом выполнена любым пользователем. А поможет ему в этом мастер размещения на Web-странице, обеспечивающий преобразование выбранных объектов базы данных в формат HTML и перенос их уже в таком виде на Web-страницу. С помощью этого мастера можно создать статические либо динамические страницы, перенести их на Web-сервер, создать свою начальную страницу и даже использовать шаблоны для получения стандартного внешнего вида всех HTML-страниц!
Встроенные функции
Access содержит свыше ста функции (небольших встроенных программ, которые в результате выполнения возвращают значение), выполняющих множество разнообразных задач. Есть функции для манипулирования базами данных, строками, числами в формате даты и времени, математические, деловые и финансовые. Их можно использовать для создания вычисляемых выражений в формах, отчетах и запросах.
Макросы: программирование без программирования
Для непрограммистов (или опытных пользователей, которые просто не желают программировать) в Access предусмотрены макросы. Они позволяют автоматизировать выполнение некоторых задач. Около пятидесяти макросов дают возможность манипулировать данными, создавать меню и диалоговые окна, открывать формы и отчеты, словом, автоматизировать выполнение практически любой задачи. С помощью макросов можно решить порядка 90% всех задач обработки данных.
Модули: Visual Basic for Applications программирование баз данных
Access— это серьезная среда разработки приложений с полнофункциональным языком программирования. Язык VBA (ранее известный как Access Basic) реализует объектно-ориентированный подход к программированию и позволяет программисту делать практически все, что только можно себе представить. Это мощный язык структурного программирования. Он является полностью расширяемым и поддерживает процедуры API в любых динамических библиотеках (DLL) операционных систем Windows 95 и Windows NT.
Полнофункциональная среда разработки поддерживает множество мощных современных возможностей: многооконный режим для редактирования и отладки, автоматическую проверку синтаксиса, контрольные точки, пошаговое выполнение и даже синтаксическую справку, отображающую на экране варианты вводимых команд.
Для реализации программы для начала необходимо создать базу данных в Access.
Запускаем Access, и выбираем Новая база данных(рисунок 4).
Рисунок 4 — Новая база данных.
Затем указываем путь где будет храниться база данных и кликнем по кнопки Создать (рисунок 5).
Рисунок 5 -Создание и сохранение базы.
Далее открывается окно, и кликнем по режимам и перейдем в режим конструктор (рисунок 6).
Рисунок 6 — Кликнем по режимам.
Затем заполняем имя поля и выставляем тип данных (рисунок 7).
Рисунок 7заполнение имя поля и выставление типа данных
Далее переходим в режим таблица (рис.8)
Рисунок 8
режим таблица
Далее заполняем таблицу данными (рис.9)
Рисунок 9 Заполнение таблицы данными
Переходим на вкладку создать, и выбираем таблицу(рисунок 10).
Рисунок 10Создание новой таблицы
Затем повторяем все операции, как с таблицей.”О товаре” В результате всего у нас появится три таблицы О товаре, Дата поступления товара, О покупателе (рисунок 11).
Рисунок 11 3 таблицы
На этом разработка Базы данных в среде Accessзакончена.
продолжение
–PAGE_BREAK–2.4 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ DELPHI 7
Delphi 7 содержит развитые библиотеки и инструменты для создания приложений электронного бизнеса и веб-сервисов, полностью интегрирует соответствующие технологии и качественно повышает производительность разработчиков, предоставляя все необходимое для исследования вопросов перехода на Microsoft .NET. При помощи включенного в комплект поставки Kylix 3 для Delphi разработчики могут переносить свои приложения на Linux, повышая отдачу своих инвестиций и расширяя спектр платформ, на которых доступны их приложения. Интегрируя ведущие приложения разработки в единый и легкий в использовании пакет, Delphi 7 сокращает жизненный цикл разработки приложений и ускоряет вывод создаваемых с его помощью продуктов на рынок ПО.
Ключевые возможности, появившиеся в Delphi 7: предварительный вариант средств для работы с Microsoft .NET Framework; Kylix 3.0 для Linux в составе пакета; бесплатная лицензия на развертывание многозвенных приложений (которая до этого была платной), использующих технологию DataSnap (прежнее название — MIDAS); полное решение проектирования и развертывания корпоративных приложений по технологии Model Driven Architecture (MDA); мощные и удобные средства разработки WEB-приложений; средства создания качественных кроссплатформенных отчетов Rave Reports; среда моделирования ModelMaker (по технологии UML).
Компания Borland первой предоставила разработчикам возможность перехода на .NET при помощи Delphi 7. Поддержка компанией Borland платформы .NET позволяет разработчиками, использующим Delphi, быстро и продуктивно создавать приложения для .NET с сохранением существующих инвестиций в информационные технологии. Теперь работа в Delphi 7 позволяет программистам легко переносить имеющиеся у них знания, навыки и ресурсы на платформу .NET.
Delphi 7 обладает возможностями проектирования и развертывания корпоративных приложений. Это позволяет разработчикам быстрее воспользоваться преимуществами разработки корпоративных приложений от концепции до коммерческой версии при помощи новой системы проектирования UML и технологии Model Driven Architecture (MDA).
Визуальная среда WEB-разработки Delphi 7 позволяет визуально строить WEB-приложения и кардинально уменьшает обычные временные затраты, связанные с созданием серверной составляющей приложений, включая управление сессиями в многопользовательском режиме доступа. Разработка корпоративных приложений по технологии модельно-управляемой архитектуры (MDA) ускоряет процесс разработки, обеспечивая весь цикл разработки приложений — от проектирования до развертывания и радикально сокращает объем кода и требуемое время.
Включённая в состав Delphi 7 технология проектирования и моделирования приложений UML позволяет эффективно проектировать свои приложения при помощи средств визуального моделирования и реорганизации кода (refactoring). Возможности Delphi 7 по интеграции, реинжинирингу и мгновенной визуализации позволяют создавать высококачественные проекты и тексты программ, применяя готовые шаблоны проектирования и создавая более крупные модели.
Kylix 3 в составе Delphi 7 является первой высокопроизводительной визуальной интегрированной средой разработки (IDE), предназначенной для быстрого создания приложений баз данных, программ с графическим пользовательским интерфейсом (GUI), Internet-приложений и WEB-сервисов для операционной системы Linux. Возможность создания в Delphi 7 корпоративных кроссплатформенных отчетов обеспечивает высокую эффективность работы приложения. Новые правила лицензирования Delphi 7 на развертывание многозвенных приложений (DataSnap) дают возможность беспрепятственно масштабировать одноуровневые и клиент/серверные приложения до многоуровневых без дополнительных затрат, связанных с развертыванием систем. Delphi 7 включает также поддержку тем Windows XP, позволяя разработчикам создавать приложения, пользующиеся возможностями тем пользовательского интерфейса Windows XP.
Далее запускаем Delphi7 .
Для реализации подобной программы для начала на первой форме разместим компоненты (рисунок 12)
Рисунок 12 Компоненты программы.
Так будут выглядеть компоненты расположенные на форме (рис.13)
Рисунок 13Расположение компонентов на первой форме
На второй форме будут следующие компоненты (рис.14)
Рисунок 14Компоненты второй формы
Так будут выглядеть компоненты расположенные на второй форме (рис.15).
Рисунок 15 Расположение компонентов на второй форме
Данная программа была разработана на следующем программном обеспечении – операционная система MicrosoftWindowsXPверсии 2003 ServicePack2, и протестирована на аппаратном обеспечении – Intel(R) Celeron(R) CPU2.00GHz, 512 МБ ОЗУ, графическая карта 256 MBGeeForceFX5600
2.5 РУКОВОДСТВО ПО НАПИСАНИЮ ПРОГРАММЫ
Для начала расположим на форме компонент «MainMenu», расположенные на вкладке «Standard» (рисунок 16).
Рисунок 16 компонент «MainMenu»
Компонент Menuпредназначен для отображения трех вкладок меню «Файл», «Настройки» и «Помощь». После вызова пункта меню «О программе» вкладки «Помощь» будет отображена вторая форма и для невозможности изменения ее размеров и отображения в заголовке окна только его названия и кнопки «Закрыть» необходимо в свойстве формы «BorderStyle» выбрать значение «bsDialog» (рис.17)
Рисунок 17 Свойство BorderStyle
Далее кликнем по значку два раза, и откроется окно (рисунок 18).
Рисунок 18Окно MainMenu
Затем заполняем меню (рисунок 19).
Рисунок 19 Заполненное меню
Потом добавляем на форму «ColorDialog» расположенный на вкладке «Dialogs» (рисунок 20).
Рисунок 20Расположение компонента «ColorDialog».
Этот компонент «ColorDialog» предназначен для определения цвета.
С этой же вкладке добавим на форму «fontdialog» (рисунок 21).
Рисунок 21Расположение компонента «FontDialog»
«PrintDialog».Он отображает стандартное окно печати Windows. (рис.22)
Рисунок 22 Компонент «FontDialog».
Далее на вкладке «System» добавим на форму «Timer» (рисунок 23).
Рисунок 23 Расположение компонента «Timer»
Компонент «Timer» предназначен для показания времени в программе.
Добавляем на форму три «DataSource» (рисунок 24).
Рисунок 24 Расположение компонента «DataSource»
Этот компонент служит посредником между таблицами СУБД и экранными элементами управления.
Далее на вкладке «ADO» располагаем компонент «ADOConnection» (рисунок 25).
Рисунок 25 Расположение компонента «ADOConnection»
Компонент «ADOConnection» предназначен для соединения с БД.
Добавим компонент «TADOTable» располагаемый на вкладке «ADO» (рисунок 26) .
Рисунок 26 Расположение компонента «ADOTable»
И последние четыре компонента добавляем на форму это «RadioGroup» и «Label» (расположенный на вкладке Standart), а так же «DBNavigator» на вкладке «DataControls» и на этой же вкладке «DBGrid».
Теперь перейдём к нашей базе данных и её процедурам:
Процедурыпунктовменю«Файл»:
procedure TForm1.N3Click(Sender: TObject);
begin
PrintDialog1.Execute;
end;
Выход:
procedure TForm1.N5Click(Sender: TObject);
begin
Form1.Close;
end;
Процедурыпунктовменю«Настройки»:
Шрифт:
procedure TForm1.N6Click(Sender: TObject);
begin
FontDialog1.Execute;
DBGrid2.Font:=FontDialog1.Font;
end;
Цвет:
procedure TForm1.N7Click(Sender: TObject);
begin
ColorDialog1.Execute;
DBGrid2.Color:=ColorDialog1.Color;
end
;
Процедуры пунктов меню «Помощь»:
Опрограмме:
procedure TForm1.N9Click(Sender: TObject);
begin
Form2.showmodal;
end;
Осоздателе:
procedure TForm1.N10Click(Sender: TObject);
begin
ShowMessage(‘ñîçäàë Ñàõàðîâ Àíäðåé Íèêîëàåâè÷’);
end;
Руководствопользоваетля:
procedure TForm1.N11Click(Sender: TObject);
begin
ShellExecute(Handle, nil, ‘Ðóêîâîäñòâî ïîëüçîâàòåëÿ ÁÄ.docx’, nil, nil, SW_SHOW);
Процедура«RadioGroup»:
if RadioGroup1.ItemIndex=0 then
begin
DBGrid1.Visible:=True;
DBGrid2.Visible:=False;
DBGrid3.Visible:=False;
DBNavigator1.DataSource:=DataSource1;
end;
if RadioGroup1.ItemIndex=1 then
begin
DBGrid1.Visible:=False;
DBGrid2.Visible:=True;
DBGrid3.Visible:=False;
DBNavigator1.DataSource:=DataSource2;
end;
if RadioGroup1.ItemIndex=2 then
begin
DBGrid1.Visible:=False;
DBGrid2.Visible:=False;
DBGrid3.Visible:=True;
DBNavigator1.DataSource:=DataSource3;
end;
продолжение
–PAGE_BREAK–