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


Макро блок - схема комплекса



Существует много способов описания, представления алгоритмов. Мы остановимся на четырех: естественном языке, графическом языке, алгоритмическом языке и языке программирования.

Каждый вид представления имеет средства описания алгоритмов, ориентированные на своего исполнителя:

- естественный язык - слова на естественном языке общения;

- графический язык - графические схемы (блок-схемы) с описанием действий;

- алгоритмический язык - определенные слова естественного языка, которым придается значение действия или команды для исполнителя;

- язык программирования - команды языка программирования.

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

Алгоритмический язык - это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения.

Алгоритмический язык, с одной стороны, близок к обычному языку, поэтому читается и записывается как обыкновенный текст. С другой стороны, по своей форме алгоритмический язык приближается к языкам программирования, что дает возможность быстрее освоить языки программирования для ЭВМ.

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

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

Синтаксические конструкции языка подразделяются на два типа: описания данных (величин) и операторов (команд).

Представление алгоритмов в виде блок-схем. Наиболее наглядным способом представления алгоритма является его графическое представление в виде блок-схем.

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

 

Выполнил

Муханов А.   05.12.09.

КР 3706002 000009 ПЗ

лист

Проверила

Енсепова Г. К.   07.12.09

 

12

изм лист № докум Подпись Дата

 

Условное обозначение Пояснение
                      Начало алгоритма;   Конец алгоритма;   Процесс или группа действий; Выбор действия в зависимости от истинности или ложности;   Повторение действии заданное количество раз Ввод (вывод) значений переменных;   Направление вычисления.

 

Таблица идентификаторов комплекса

 

Для написания программы Speaker1, мы использовали следующие идентификаторы:

Speaker1 Этот идентификатор является названием программы
Crt В модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие: управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором. Кроме того, в модуль включены функции опроса клавиатуры и процедуры управления встроенным в ПЭВМ динамиком.
Speaker_port Имя константы, которому присвоено значение %61.
Portval Название порядкового типа данных, которое имеет значение Byte.
Byte Порядковый тип данных. Длина, байт=1; Диапазон значений 0…255
Delay Эта процедура приостанавливает выполнение программы на заданное число миллисекунд.
KeyPressed Возвращает значение типа Boolean, указывающее состояние буфера клавиатуры: False означает, что буфер пуст, a True - что в буфере есть хотя бы один символ, еще не прочитанный программой.

 

Выполнил

 Муханов А.   05.12.09.

КР 3706002 000009 ПЗ

лист

Проверила

Енсепова Г.К.   07.12.09.

 

13

изм лист № докум Подпись Дата

 

Описание наборов данных

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

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

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

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

 

Структура записей файлов

Multimedia Streaming – это архитектура, используемая в DirectShow для облегчения жизни программиста. Эта архитектура позволяет работать с мультимедиа данными, как с абстрактным потоком, не вдаваясь в подробности форматов хранения мультимедиа-файлов или специфику устройств-источников мультимедиа. Используя эту архитектуру, программист концентрируется не на расшифровке и преобразовании данных, а на управлении потоком данных, кадрами видео или аудио семплами.

На вершине иерархии находится базовый объект Multimedia Stream, который является контейнером для объектов Media Stream. Объект Multimedia Stream может содержать один или несколько объектов Media Stream. В то время как каждый объект типа Media Stream предназначен для работы с данными какого-то одного типа (видео, аудио и т.п.) – Multimedia Stream – просто содержит методы для обращения к содержащимся в нем объектам Media Stream и не зависит от типа данных.

Сейчас мы создадим объект типа IAMMultiMediaStream. Этот интерфейс унаследован от IMultimediaStream и содержит, кроме прочего, функцию OpenFile, которая автоматически строит граф фильтров для воспроизведения файла:

CoCreateInstance ( CLSID _ AMMultiMediaStream, nil, CLSCTX _ INPROC _ SE RVER, IID _ IAMMultiMediaStream, AMStream );

Здесь переменная AMStream имеет тип IAMMultiMediaStream.

Мы создали контейнер для мультимедийных потоков. Сверяемся с   рисунком - мы на верхнем уровне иерархии. У нас есть объект типа IMultimediaStream – теперь в этот контейнер нужно проинициализировать и добавить один или несколько мультимедиа потоков, нужного нам типа. Сначала инициализация:

AMStream.Initialize(STREAMTYPE_READ,

AMMSF_NOGRAPHTHREAD, nil);

Выполнил

Муханов А.   05.12.09.

КР 3706002 000009 ПЗ

лист

Проверила

Енсепова Г.К.   07.12.09.

 

14

изм лист № докум Подпись Дата

При инициализации указываем, что будут создаваться мультимедиа потоки для чтения, передав значение STREAMTYPE_READ (другие варианты STREAMTYPE_WRITE, STREAMTYPE_TRANSFORM).

Создадим теперь мультимедиа потоки для видео и звука:

AMStream.AddMediaStream(DDraw, MSPID_PrimaryVideo, 0, NewMediaStremVideo);

AMStream.AddMediaStream(nil, MSPID_PrimaryAudio, AMMSF_ADDDEFAULTRENDERER, NewMediaStremAudio);

Вызываем метод OpenFile – файл загружается, и автоматически строится граф фильтов:

AMStream.OpenFile('cool.avi', 0);

Осталось направить видео поток мультимедиа поток на Surface. Вот процедура, которая делает это:

procedure TForm1.RenderStreamToSurface(Surface: IDirectDrawSurface; MMStream: IMultiMediaStream);

Var

PrimaryVidStream: IMediaStream;

DDStream: IDirectDrawMediaStream;

Sample: IDirectDrawStreamSample;

RECT: TRect;

ddsd: TDDSURFACEDESC;

Z: DWORD;

Begin

MMStream.GetMediaStream(MSPID_PrimaryVideo, PrimaryVidStream);

PrimaryVidStream.QueryInterface(IID_IDirectDrawMediaStream, DDStream);

ddsd.dwSize: = sizeof(ddsd);

DDStream.GetFormat(ddsd, Palitra, ddsd, Z);

rect.top: =(480-ddsd.dwHeight)div 2; rect.left: =(640 - ddsd.dwWidth) div 2;

rect.bottom: = rect.top+ddsd.dwHeight; rect.right: = rect.left+ddsd.dwWidth;

DDStream.CreateSample(Surface, Rect, 0, Sample);

MMStream.SetState(STREAMSTATE_RUN);

end ;

Метод IDirectDrawStreamSample.Update выводит очередной кадр на Surface. При достижении конца потока он вернет ошибку с кодом $40002 (MS_S_ENDOFSTREAM), я в этом случае просто перематываю поток к началу, методом Seek.

В этой программе инициализируется DirectDraw, создается Surface, а затем на него выводится видео из avi-файла.

Выполнил

 Муханов А.   05.12.09.

КР 3706002 000009 ПЗ

лист

Проверила

Енсепова Г.К.   07.12.09.

 

15

изм лист № докум Подпись Дата

 

 


Поделиться:



Последнее изменение этой страницы: 2020-02-16; Просмотров: 155; Нарушение авторского права страницы


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