Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


При создании баз данных необходимо дописать DB.



Введение

В настоящее время работодателей интересует, прежде всего, скорость и качество создания программ в коллективе.

Эти характеристики могут обеспечить лишь так называемые RAD системы (Rapid Application Development) представляющие собой, интегрированные среды разработчика включающие в себя:

1) Средства быстрого и удобного построения программ в т.ч. и визуального.

2) Встроенные компиляторы и отладчики.

3) Системы коллективной разработки проектов RAD.

Одной из таких систем является Delphi;

 

№1. Среда Delphi 7 и её составляющие.

 

Delphi 7 – объектно-ориентированная среда для визуального проектирования Windows приложений с развитыми механизмами повторного использования программного кода.

Среда Delphi позволяет писать, как крохотные программы и утилиты, так и корпоративные системы, работающие с базами данных на различных платформах, Интернет-решения и всевозможные Web службы. Мощный набор компонентов для работы с БД обеспечивает широкое применение среды при разработке АСУП (Автоматизированные Системы Управления Производством).

В состав Delphi 7 входит набор специализированных программ отвечающих за различные этапы создания готового приложения.

Основные окна системы Delphi 7.

1) Главное окно.

2) Окно стартовой формы (Form1).

3) Окно инспектора объектов (Object Inspector).

4) Окно просмотра списка объектов (Object Tree View).

5) Окно редактора кода (Unit1.pas).

В главном окне находится меню команд, панели инструментов, палитра компонентов.

Окно стартовой формы представляет собой заготовку главного окна, разрабатываемого приложения. Исходный текст программы готовиться в среде Delphi с помощью встроенного редактора исходных текстов. Он отличается, гибкими возможностями цветового выделения различных элементов текста программы и предоставляет возможность быстрого ввода части встречающихся конструкций.

Левая панель редактора представляет собой проводник, позволяющий быстро перемещаться между частями исходного текста и по структуре созданной программы. Одной из важных характеристик разработки программы является удобство её пользовательского интерфейса. В среде Delphi 7 имеется специальный проектировщик форм, с помощью которого окна будущей программы подготовлены в виде форм. Проектировщик позволяет подобрать оптимальные размеры окон разместить и настроить различные элементы управления, меню, добавить изображение, указать подсказки, подписи и т.д.

 

№2. Компонентный подход.

 

На этапе проектирования форм программа как бы состоит из готовых компонентов – частей машинного кода, которые можно добавлять к ней с помощью нескольких щелчков мыши.

Компоненты располагаются на палитре компонентов разделенные на несколько самостоятельных панелей.

Компоненты обладают набором свойств, характеристик их отличительных особенностей.

Свойства компонентов в процессе проектирования формы настраиваются с помощью инспектора объектов. Он показывает список всех доступных свойств у данного компонента. Они отсортированы по категориям или в алфавитном порядке.

Значения любого свойства можно изменить, введя в соответствующее поле инспектора объектов новое значение или выбрав нужное значение в раскрывающемся списке доступных значений.

Кроме свойств компоненты содержат методы – программный код обрабатывающий значение свойств (например, установка переключателя в нужное положение), а также события – сообщения которые компонент принимает от приложения или от среды Windows, если во время работы программы выполняется определенное действие (например, изменение состояния флажка).

Программа может самостоятельно формировать реакции программы на любые события каждого компонента. Компонентный подход позволяет повторно использовать готовые разработки и во многих случаях значительно повышает эффективность работы.

 

 

№3. Отличие Delphi 7 от предыдущей версии

1) Улучшен внешний вид меню. Добавлены дополнительные средства настройки цветов, вывод сообщений, реактора кода.

2) Набор компонент Intra Web даёт возможность визуального создания Интернет-приложений любой сложности.

3) Библиотека импорта интерфейсов теперь поддерживает требование среды Microsoft.net

4) Новый генератор отчетов RAVE содержит гибкую среду формирования статических и динамических отчётов и множество компонентов для настройки внешнего вида отчетов.

5) Внесены новые функции и улучшен ряд подпрограмм в стандартных модулях SySUtils, StrUtils, Stdconvs, Math. Дополнена поддержка данных типов Variant.

6) Система ModelMaker позволяет создавать UML диаграммы и автоматически генерировать на их основе программный код Delphi, и наоборот строить диаграммы на основе исходных текстов Delphi приложений.

№4. Структура программы на Object Pascal

Программа на паскале состоит из набора модулей (Unit), в каждом из которых содержится описание логически независимой части программы (например, описание вычисления сложной математической функции). Расширение имени файлов, содержащих модули –.pas. Модули программы часто создаются средой Delphi автоматически, например, при добавлении новой формы.

Модули могут иметь связь друг с другом, т.е. из одного модуля разрешается обращаться к функциям других модулей. Применение модулей во время разработки программы позволяет повторно использовать программный код созданный ранее.

Структура модуля

Unit заголовок модуля

Interface – указание на начало интерфейсной секции

Uses – модули

Const – константы

Type – типы

Var – переменные

Implementation – указывает на начало описательной секции

Uses – модули

Label – метки

Const – константы

Type – описание типов

Var – переменные

Initialization – начало секции инициализации

Finalization – начало секции деинициализации

End.

 

Исходный текст модуля может содержать 4 секции:

 

1) Интерфейсная секция, в которой расположены заголовки процедур и функций, а также описания констант, нестандартных типов данных и переменных. Все идентификаторы описанные в интерфейсной секции доступны для использования вызывающим (подключающим модуль) частям программы, наряду с их собственными описаниями.

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

3) Секция инициализации содержит команды, которые необходимо выполнить при подключении модуля к программе. Перед выполнением какой-либо программы, к которой подключены внешние модули, сначала выполняются инициализационные части модулей. Данная секция не является обязательной.

4) Секция деинициализации используется только при наличии секции инициализации и содержит команды, которые необходимо выполнить при завершении приложения. Данная секция не является обязательной и может использоваться для освобождения ресурсов занятых в секциях инициализации.

Название модуля должно соответствовать имени файла, в котором находится описание модуля. Именно по названию осуществляется подключение модулей к основной части программы и к другим модулям.

 

Подключение модулей

Модули подключаются к главной программе и другим модулям при помощи конструкции

 

uses список модулей;

 

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

Это необходимо в следующих случаях:

1) Модуль располагается в отдельном каталоге и в настройках Delphi этот каталог не указан.

2) Модули из разных каталогов имеют одинаковые имена.

Для решения этих проблем в операторе uses после названия соответствующего модуля указывается ключевое слово IN, а за ним в одинарных кавычках приводится путь к исходному тексту модуля:

 

Uses Forms, MyUnit in ’C: \projects\MyUnit.pas’;

 

Главный файл проекта

В программе может быть любое количество модулей, но только один главный файл проекта. Этот файл содержит обращения к модулям. Он имеет расширение. dpr и создается средой Delphi 7 автоматически.

------------------------------------------------------------------------------------------------------------------------

F12 – показать\скрыть форму

F11 – переключение в инспектор объектов ( левая нижняя панель)

F7 – пошаговая отладка

F8 – отладка, при которой не осуществляется вход в процедуры и функции

F4 – запуск программы и переход в режим отладки в том месте, где стоит курсор

*.pas – текст программы (программного модуля)

*.dfm – файл экранной формы

*.dpr - файл проекта

Запускать нужно файл с расширением.dpr

Kind – bkclose readonly – true x: =StrToFload(edit1.Text)

Visible – false

Edit2.visible: = true;

label2.visible: = true;

edit1.setfocus – перевод курсора в компонент edit1

 

 

№5 Понятие класса и объекта

В 80-х годах 20 века стали появляться первые коммерческие системы разработки, в которых была реализована новая парадигма – программирование, так называемый объектный подход, что позволило резко повысить производительность труда программиста. Этот подход был основан на понятии объекта - типа данных, в котором сочетаются как свойства (сгруппированные данные), так и методы их обработки (подпрограммы). Специалистам удалось выделить большой набор объектов, которые нужны при создании самых разных программ. Эти объекты используются повторно, без расходования времени на их программирование. Именно такой подход и реализован в среде Delphi 7.

В объектном паскале имеется четкое разграничение между понятиями класса и объекта. Класс – тип данных, а объект – это конкретный существующий в памяти компьютера экземпляр класса, переменная соответствующего типа.

Отметим различия в терминологии турбо паскаля и Delphi. В ранних версиях паскаля для описания объектного типа данных использовалось ключевое слово «object», и в то же время объектами назывались экземпляры этого типа. Применять слово «object» можно и сейчас, но подобная возможность поддерживается только для совместимости со старыми версиями Delphi. Вместо ключевого слова «object» правильно использовать слово «class»

Классы имеют поля (как тип данных record), свойства (напоминающие поля, но имеющие дополнительные описатели, определяющие механизм записи и считывания данных) и методы (подпрограммы, которые обрабатывают поля и свойства класса).

Поля, свойства и методы класса называются членами класса.

Когда создается объект, то однократно вызывается специальный метод, называемый конструктором. В нем выполняются различные действия по начальной инициализации полей объекта. Когда объект уничтожается, то вызывается другой метод – деструктор, который выполняет различные дополнительные действия по освобождению памяти, если это необходимо. Явно вызывать конструктор и деструктор из программного кода нельзя, это происходит только автоматически.

Переменная, описанная как класс, фактически является указателем на экземпляр класса. Это сделано для повышения эффективности работы с ним. При работе с такими переменными достаточно обычного обращения к ним, как к обычным переменным, а к членам класса – как к полям записи – через точку.

 

№6 3 принципа объектно-ориентированного программирования (ООП)

1) Наследование.

Пусть существуют 2 класса: «легковой автомобиль» и «грузовой автомобиль». Эти классы будут иметь как общие поля и методы, так и различия (например, дополнительное свойство грузовой – кузов и связанный с ним метод – разгрузить). Но полностью заново определять новый тип данных, если требуется изменить или добавить несколько новых свойств к старому типу – не рационально. Если в метод, имеющийся в обоих классах, требуется внести изменения, то придется это делать дважды в двух одинаковых копиях подпрограмм.

Чтобы избавиться от этой работы в ООП был введен принцип наследования свойств и методов. Программисту достаточно описать 1 базовый класс (например «автомобиль»), а классы «легковой автомобиль» и «грузовой автомобиль» – основываясь на этом базовом классе. При этом будут наследоваться все поля, свойства и методы базового (или родительского) класса, и дополнительно описывать их не требуется.

Цепочки наследования могут быть неограниченной длины. Например, у класса «легковой автомобиль» могут быть классы-наследники (или дочерние классы): BMW и Citroen, обладающие дополнительными свойствами и методами (это классы, а не объекты, объектом будет конкретный автомобиль – например BMW 5-ой серии, а не марка этого автомобиля). При этом различные методы для каждого из наследников разрешается переопределять.

Наследование – создание нового класса на основе раннее описанного класса.

2) Полиморфизм

Когда происходит обращение к переменной, относящейся к классу Citroen и вызов унаследованного метода «двигаться», то программе приходится решать, какой конкретно метод необходимо вызвать: метод класса «автомобиль», «легковой автомобиль» или «Citroen». В соответствии с принципом полиморфизма решение принимается в зависимости от типа переменной, вызывающей этот метод. То есть если переменная описана как относящаяся к классу «Citroen», то будет вызван метод «двигаться» определенный именно для Citroen’а.

Полиморфизм – правильный выбор виртуального метода, вызываемого из переменной-ссылки на объект.

3) Инкапсуляция

Она позволяет разграничить доступ разработчиков к различным полям и свойствам класса примерно так, как это сделано в модулях Delphi, когда из других модулей видимым является только интерфейсная часть. Внутри классов некоторые поля и методы можно делать свободно доступными (видимыми) для использования в любом месте программы, а другие поля и методы сделать доступными только внутри текущего модуля и собственных методов класса. Нельзя допускать без контрольного изменения значений свойств, так как это может привести к нарушению взаимосвязи между этими свойствами. Лучше вручную не изменять значения свойства, а вызвать соответствующий метод.

Лучше сделать недоступными все поля и свойства для прямого изменения, и создать методы, позволяющие получить значение поля и занести в него новое значение. Сами поля помещаются в скрытую часть класса.

Инкапсуляция – процесс объединения переменных (свойств) и методов, в результате которого и получается класс.

события

В среде Delphi реализована новая характеристика объекта – возможность обработки так называемых сообщений (событий), получаемых от системы Windows или от самой программы. Этот принцип лежит в основе работы всех визуальных компонентов Delphi, которые обрабатывают различные события, возникающие в процессе выполнения программы.

 

№7 Описание класса. Реализация методов

Type имя_класса=class (имя_род_класса)

Список_членов_класса

End;

Имя родительского класса указывается, если новый класс должен наследовать все его характеристики (и характеристики всех родителей этого класса). Если имя родительского класса опустить, то новый класс по умолчанию будет наследовать характеристики базового класса «TObject», который содержит встроенные конструктор, деструктор и общие свойства и методы классов в среде Delphi, предназначенные для создания объектов, инициализации, освобождения памяти и т.д.

Иногда существует необходимость просто ввести в программу новый класс, пока не описывая его структуру, а только определив заголовок:

Type TMyclass=class;

В дальнейшем класс TMyclass должен быть полностью определен.

Type TMyclass=class

Count: integer;

Name: string;

Procedure ShowMyclass(Dis: Boolean);

Function GetCount: integer;

End;

В классе TMyclass имеются 2 поля: Count и Name, 2 метода: Procedure ShowMyclass и Function GetCount, возвращающая значение поля Count. По умолчанию считается, что все члены класса не имеют никаких ограничений на видимость.

Описание полей и свойств в классе должно предшествовать описанию методов.

Опишем объект – экземпляр класса TMyclass:

Var

MyClass: TMyClass;

Если в программе имеется описание,

Type T1=class(TObject);

T2=class(T1);

Var X: T1;

то в переменную «X» можно записывать как объекты типа «Т1» так и объекты типа «Т2».

Доступ к полям и методам объекта осуществляется с указанием нужного поля или метода через «.» (точку).

Var O: TMyClass;

O.Count: =O;

O.Name: =’класс’;

O.ShowMyClass(true);

Реализация методов

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

Function

TMyclass.GetCount: integer;

Begin

Result(либо GetCount): =count;

End;

 

Номер 28

Базы данных (БД)- это множество файлов предназначеных для хранения информации о некоторой предметной области.

БД – совокупность записей различного типа, содержащие перекрестные ссылки.

Записи одного типа в БД хранятся в таблицах.

Во втором определении БД нет упоминания о файле( файл – совокупность записей одного типа, в которой перекрестные ссылки отсутвуют) и о компьютерной архитектуре, т.к. хотя в большинстве случаев БД представляет один ( lotus) или несколько файлов, физической их организация существенно отличается от логической. Таблицы могут храниться как в отдельных файлах так и все вместе. И наоборот для хранения одной таблицы могут использоваться несколько файлов. Для поддержи перекрусных ссылок и быстроо поиска обычно выделяются допольнительные специальные файлы.

Сама по себе БД- это только набор таблиц с перекрестными ссылками. Чтобы универсальным сопосбом извлекать из нее группы записей, обрыбытывать их, измнять и удалять требуется специальные программы называемые системами управления БД (СУБД).

 

№8. Пять уровней инкапсуляции. Вызов родительских методов.

 

Доступность любого из членов класса определяется принадлежностью его к одному из пяти уровней видимости класса, определяемых специальными ключевыми словами Паскаля. По умолчанию видимость родительских членов класса наследуется в точности, но разрешается повышать видимость – т.е. делать поля, свойства и методы более доступными. Понижение видимости не допускается.

  1. Раздел Public:

Члены класса находящиеся в данном разделе доступны из любой точки программы.

 

type TMyclass=class

public

Count: integer;

Name: string;

Pr ShowMyclass(Dis: Boolean);

F Getcount: integer;

End;

  1. Раздел private:

Этот раздел накладывает самые жесткие ограничения на видимость указанных в нем членов класса. Они доступны только в том модуле, где данный класс описан. Как правило, все поля класса помещаются в эту секцию.

type TMyclass=class

private

Count: integer;

Name: string;

Public

Pr ShowMyclass(Dis: Boolean);

F Getcount: integer;

End;

По умолчанию считается, что все поля класса расположены в данном разделе (если перед полями нет ключевого слова то подразумевается слово Private.

  1. Раздел Protected:

Видимость членов класса расположенных в данном разделе совпадает с видимостью раздела Private, но с единственным отличием. Члены класса раздела Protected доступны также внутри методов класса, являющихся наследниками данного класса и описанных в других модулях.

  1. Раздел Published

В этом разделе располагаются свойства класса: т.е. поля доступные для редактирования и изменения значений во время проектирования приложения из инспектора объектов. По видимости свойства не отличаются от членов классов описанных в разделе Public.

  1. Раздел automated:

Правила видимости членов раздела совпадает с правилами видимости для раздела Public. Описание разрешается размещать в данном разделе только, если он является наследником стандартного класса TAutoObject, предназначенного для создания так называемых серверов автоматизации по технологии COM.

Вызов родительских методов

Часто большая часть функциональности наследуемых методов уже реализована в родительских классах.

Чтобы вызвать одноименный метод ближайшего родительского класса необходимо в нужном месте программы указать ключевое слово inherited.

В момент, когда программа встретит это слова работа метода временно прервется и вызовется одноименный метод родительского класса. Если требуется вызвать другой метод, не совпадающий по названию с текущим, то его можно указать после ключевого слова явно

inherited Click;

№9. Пустая форма и её модификации. Размещение нового компонента.

 

Создать заготовку будущего приложения можно выполнив команду:

File-New-Application.

На экране возникнет пустая форма- прообраз будущего главного окна программы, а в редакторе кода откроется файл Unit1.pas, соответствующий модулю Unit1, в котором хранится описание работы этой формы. В разделе реализации выполняется подключение стандартных модулей

Interface

Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

Свойства класса TComponent

Компоненты Cвойства
ComponentCount Число объектов подчиненных данному
ComponentIndex (-//- Index) Номер компонента в свойстве Components
Components Список объектов подчиненных данному.
ComponentState Текущее состояние компонента
ComponentStyle Стиль компонента
Name Название компонента в программе
Owner Хозяин компонента
Tag Дополнительно свойство, хранящее число типа Integer, которое может использоваться для собственных нужд разработчика

 

События формы

Название события Доп. параметры обработчика Описание
OnCreate   Вызывается при создании формы после выполнения конструктора
ONshow   Вызывается при отображении формы (методами showModal)
Onactivate   Вызывается при получении формой фокуса ввода (форма становится активной) автоматически вызывается после отображения формы методами Show and Showmodal т.е. после отображения форма активна.
Onpaint   Вызывается при необходимости прорисовки формы (при затирании области формы другим окном).
OnHide   Вызывается при скрытии формы с экрана методом Hide или при установке свойства Visible в False.
Ondeactivate   Вызывается при потери формой фокуса ввода (при перемещении на другую форму, а также при сворачивании формы или приложения), автоматически вызывается при скрытии формы с экрана методом Hide.
OncloseQuery Var CanClose: Boolean Вызывается для проверки возможности закрытия вне зависимости от действий, которые следует произвести при закрытии формы возможно или нет закрыть форму возвращается в параметры CanClose.
OnClose Var action: TCloseAction Вызывается для определения действий, которые необходимо произвести при закрытии формы. Указание на вид закрытия возвращается в параметр Action.
Ondestroy   Вызывается при разрушении перед вызовом деструктора.

 

События создания и разрушения предназначены для выполнения каких-либо специфических действий при переходе Формы из одного состояния в другое. Событие Onpaint, OncloseQuery, OnClose назначены для настройки поведения формы.

При создании формы, её отображении на экране (вне зависимости от используемого метода) и последующем закрытии события происходят в следующей последовательности:

1) OnCreate; 2) Onshow; 3) OnActivate; 4) OncloseQuery 5) OnClose; 6) OnHide; 7) Ondeactivate; 8) Ondestroy;

При создании новой формы в проектировщике появится сразу новая пустая форма. Переключатся между имеющимися в проекте формами можно с помощью комбинации клавиши Shift-F12.

У программы может быть только одна главная форма – эта форма которая появляется при запуске программы и неограниченное число подчиненных форм, которые исходно на экране не появляются, а вызываются по команде из программы с помощью специальных методов.

Компонент метка (TLabel).

Он используется для отображения текста, который играет роль метки и не изменяется пользователем. Текст метки задаётся в свойстве Caption. Размер меток TLabel определяется свойством AutoSize, если оно установлено в True, то вертикальные и горизонтальные размеры компонента определяются размером надписи. Если Autosize = false то выравнивание текста внутри компонента определяется свойством Alignment, и позволяет выравнивать текст по левому краю, по правому краю или по центу клиентской области метки. Свойство WordWrap определяет допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строку. Для осуществления такого переноса необходимо установить свойство WordWrap в True, свойство Autosize в false и сделать высоту компонента такой, чтобы в нем могло разместиться несколько строк. Если WordWrap= false и Autosize= false, то длинный текст, не помещающийся в рамке, просто обрезается.

Компонент кнопка (TButton).

Он представляет собой стандартную кнопку Windows, инициализирующую какое либо действие. Основное с точки зрения внешнего вида свойства кнопки – свойство Caption. Основное событие кнопки – ONClick, возникающее при щелчке на ней. В обработчике этого события записываются операторы, которые должны выполнятся при щелчке пользователя на ней.

Свойство Cancel, если его установить в True, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку. Свойство Default определяет, что нажатие клавиши Enter будет эквивалентно нажатию на данную кнопку, даже если она в данный момент не находится в фокусе. Если в момент нажатия клавиши ввода в фокусе находится другая кнопка, то сработает кнопка именно в фокусе. Свойство ModalResult используется в модальных формах, в обычных формах его значение должно быть равно None.

Выполнение метода Click эквивалентно щелчку по кнопке, т.е. вызывает свойство Onclick.

Компонент Фрейм (ТFrame).

Этот компонент во многом напоминает форму и может использоваться, как вместе с ней, так и в виде отдельного элемента.

Фрейм может использоваться как заготовка для быстрого создания фреймов нужной структуры. Чтобы добавить к проекту новый фрейм, необходимо выполнить команду File-New-Frame. При этом в менеджере проектов возникнет новый модуль Unit2, только вместо формы в нем будет описан фрейм. Фрейм можно сделать невидимым, тогда его можно отображать по щелчку на кнопке с помощью метода Show.

Компонент рамка (TBevel)

Он используется для создания рамок и отдельных линий оформления. Свойство Shape может принимать одно из следующих значений:

Значение Форма рамки
bsBox Прямоугольник. Область внутри него отображается в соответствии со значением свойства Style.
bsFrame Прямоугольник. Внутренняя область не изменяется.
bsTopLine Для выделенной области показывается только верхняя граница
bsLeftLine –//– только левая граница
bsRightLine –//– только правая граница
bsBottomLine –//– только нижняя граница.
bsSpacer Рамка не отображается

 

В свойстве Style указывается форма окаймляющих линий рамки:

1. bsLowered – вдавленные линии

2. bsRaised – выпуклые линии

Компонент фигура TShape.

Этот компонент предназначен для отображения на форме различных геометрических фигур. Их форма задаётся в свойстве Shape.

Значение Форма фигуры
stCircle Круг
stEllipse Эллипс
stRectangle Прямоугольник
stRoundRect Прямоугольник со скруглёнными углами
stRoundSquare Квадрат со скругленными углами
stsquare Квадрат

Цвет фигуры определяется кистью объекта (свойство Brush), границы фигуры – карандашом (свойство Pen).

Действия над матрицами

А1Перемножение матриц

Пусть дана матрица А размерности m на n, и матрица B размерности p на q. Nb матрицы можно перемножить, если n=p (число столбцов матрицы А = числу строк матрицы В. Матриц перемножаются по принципу строка на столбец

Пример

А=(а11 а12 а13) и В = (b11 b12

а21 а22 а23 b21 b22

b31 b32)

C=A*B=(a11b11+a12b21+a13b31 a11b12+a12b22+a13b32

A21b11+a22b21+a23b31 -//- )

For i: = 1 to m do

For j: =1 to q do

Begin

Sum: =0;

For k: = 1 to n do

Sum: =sum+ A[i, k]*B[k, j];

C[ i, j ]: =sum;

A2 Нахождение обратной матрицы(А-1)

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

Элементарными преобразования матрицы являются следующие:

  1. Транспонирование
  2. Перестановка двух строк (столбцов местами)
  3. Умножение строки (столбца) на любое отличное от нуля число
  4. Прибавление к любой строке (столбцу) любой другой строки(столбца) умноженной на некоторое число

Пример

Нaйти обратную матрицу для матрицы А

А = 3x3 A=(2 7 3

3 9 4

4 1 3)

(273100 ( 1 7/2 3/2 ½ 0 0 (1 0 1/3 -3 7/3 0 (1 0 0 -23/4 9/2 -1/4

394010 = 0 -3/2 -1/2 -3/2 1 0 = 0 1 1/3 1 -2/3 0 = 0 1 0 -7/4 3/2 -1/4

413001) 0 -1 -3 -2 0 1) 0 0 4/3 11 -26/3 1) 0 0 1 33/4 -13/2 ¾ )

 

=…..

На первом шаге мы 1-ый столбец матрицы приводим к виду 1 0 0, на втором шаге к виде 0 1 0, на 3-ем шаге третий – к виду 0 0 1.

  1. A) шаг 1-ую строку делим на а11=2

Б) из второй строки вычитаем первую умноженную на 3/2.

В) из 3-ей строки вычитаем первую умноженную на a31/a11=2

2. A) из 1-ой строки вычитаем вторую умноженную на (7/2)/(-3/2)

Б) 2-УЮ СТОРКУ ДЕЛИМ НА -3/2

В) из 3-ей строки вычитаем 2-ую умноженную на 26/3/ (-13)/(-3/2)=26/3

3. A) из 1-ой строки вычитаем 3-юю умноженную на ¼. (1/3)/4/2

Б) из 2-ой строки вычитаем 3-юю умноженную на ¼. (1/3)/(4/3)=1/4

В) 3-юю строку делим на 4/3

При построении обратной матрицы исходную матрицу А не изменяем. В Матицу A1 заносим матрицу A и работаем с матрицей A1. Верхний цикл будет по шагам (k=1, n).

Для экономии памяти компьютера будем хранить матрицу 3х3 а не 3х6. На первом шаге сохраняем -2ой, 3-ий, 4-ый столбцы полученной матрицы, на 2-ом шаге – 3, 4, 5столбцы полученной матрицы, на 3-ем шаге 4, 5, 6 полученной матрицы.

Причем важна последовательность хранения столбцов…

Продолжение на листике…

 

 

№24 Компоненты страницы System. Mediaplayer, OLE Container.СУРС

№25 Компоненты страницы Dialogs. Диалоги открытия и сохранения файлов. СУРС

№26 Компоненты страницы Dialogs. Диалоги выбора шрифтов, цвета. Диалоги поиска и замены. СУРС

№27 Построение графиков функций. Компонент TChart. Добавление серии в график. Выбор источника данных. СУРС

№28 Понятие базы данных. Модели баз данных.

Базы данных (БД)- это множество файлов предназначенных для хранения информации о некоторой предметной области.

БД – совокупность записей различного типа, содержащие перекрестные ссылки.

Записи одного типа в БД хранятся в таблицах.

Во втором определении БД нет упоминания о файле (файл – совокупность записей одного типа, в которой перекрестные ссылки отсутствуют) и о компьютерной архитектуре, т.к. хотя в большинстве случаев БД представляет один (lotus) или несколько файлов, физической их организация существенно отличается от логической. Таблицы могут храниться как в отдельных файлах, так и все вместе. И наоборот, для хранения одной таблицы могут использоваться несколько файлов. Для поддержки перекрёстных ссылок и быстрого поиска обычно выделяются дополнительные специальные файлы.

Сама по себе БД - это только набор таблиц с перекрестными ссылками. Чтобы универсальным способом извлекать из нее группы записей, обрабатывать их, изменять и удалять требуется специальные программы называемые системами управления БД (СУБД).

 

№29 Архитектура СУБД.

Локальные

Все части локальной СУБД размещается на компьютере пользователя БД. Чтобы с одной и той же БД одновременно могло работать несколько пользователей, каждый пользовательский компьютер должен иметь свою копию локальной БД. Основной проблемой СУБД такого типа является синхронизация копии данных, именно поэтому для решения задач требующих совместной работы нескольких пользователей, локальное СУБД почти не используются.

 

Файл-серверная архитектура

БД расположено на сервере, а персональные компьютеры подключены к нему по локальной сети. На компьютерах установлены клиентские программы, обращающиеся к БД по сети. Преимущество такой архитектуры – возможность одновременной работы нескольких пользователей с одной БД.

Недостатки такой архитектуры:

1) Большие объемы информации, передаваемые по сети.

2) Вся обработка выполняется на клиентских местах, где фактически формируется копия БД.

3) Задержки при работе с БД, которые связаны с тем, что на уровне конкретной таблицы одновременный доступ невозможен. Пока на одном из клиентских компьютерах не завершена работа с таблицей, другие пользователи не могут обращаться к этой таблице. Это называется блокировкой на уровне таблицы и исключает возникновение путаницы в ее содержимом.

 

Распределенная архитектура

В сети работает несколько серверов, таблицы БД распределены между ними для повышения эффективности (так же между серверами может распределяться нагрузка). На каждом сервере работает своя копия СУБД. В такой архитектуре используются специальные программы – серверы приложений. Они позволяют оптимизировать обработку запросов большого числа пользователей и равномерно распределить нагрузку между компьютерами в сети. Для выполнения сложных вычислений используются программы, автоматически запускаемые на более мощных серверах.

Недостаток такой архитектуры – сложный дорогостоящий процесс ее создания и сопровождения, высокие требования к серверным компьютерам.

 

Интернет-архитектура

Доступ к БД и СУБД осуществляется из браузера по стандартному протоколу. Это предъявляет минимальные требования к клиентскому оборудованию. Благодаря стандартизации всех протоколов и интерфейсов взаимодействия в интернете такие системы легко создавать и внедрять, не требуется разрабатывать специальные клиентские программы или придумывать спецификации обмена данным между сервером и клиентским компьютером. Достаточно использовать готовые браузеры и программные решения.

 

 

№ 30 Реляционные БД. Первичные ключи и индексы

Пример

Пусть некоторое предприятие выполняет заказы своих покупателей

Номер заказа Покупатель Дата заказа Количество
Афина 15.12.07
Мазда-центр 10.09.08
Рога и Копыта 19.09.08
Мазда-центр 25.09.08

Заказчики

Покупатель Адрес Телефон
Афина Владимирова 10
Мазда-центр Карбышева 12
Рога и Копыта Скопытная 6а

Связь между таблицами по полю Покупатель

Связанные отношениями таблицы взаимодействую по принципу главная (master) – подчиненная (detail). В нашем примере таблица «заказы» - главная, а таблица «заказчики» - подчиненная. Главную таблицу часто называю родительской, а подчиненную – дочерней. Одна и та же таблица может быть главное по отношению к одной таблице БД и дочерней по отношению к другой.


Поделиться:



Последнее изменение этой страницы: 2017-04-13; Просмотров: 1131; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.145 с.)
Главная | Случайная страница | Обратная связь