WWW.PROGRAMMA.X-PDF.RU
БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Учебные и рабочие программы
 

Pages:   || 2 | 3 |

«Аннотация Целью данной дипломной работы является разработка комплекса программного обеспечения, включающего в себя медиа-проигрыватель и синхронизируемый с ним сайт, представляющий ...»

-- [ Страница 1 ] --

Аннотация

Целью данной дипломной работы является разработка комплекса

программного обеспечения, включающего в себя медиа-проигрыватель и

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

портал, хранящий информацию о композициях и их исполнителях. В работе

рассматриваются методы работы со сторонними библиотеками и потоками данных в

Delphi, а также работы с PHP, базами данных MySQL, скриптовыми языками

JavaScript и AJAX.

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

Адатпа Дипломды жмысты масаты - медиа ойнатыш, соны ішінде бадарламалы амтамасыз ету кешенін, дамыту болып табылады, жне н мен оларды орындаушылары туралы апаратты амтитын леуметтік желі жне медиа порталды сайтта, оны синхрондаан. шінші тарап кітапханалар мен деректермен жмыс істеу тсілдері бар ааз ммілелер Delphi аындарын, сондай-а PHP, дерекор MySQL, JavaScript сценарий тілдері мен AJAX жмыс істейді.

Жмыс жеке бадарламаларын толы функционалды кешенді бадарламалы амтамасыз етуді зірлеу негіздемесі болып табылады. Ол сондай-а баламалы отанды зірлемелерді ажеттілігін атайды.

Annotation The aim of this thesis is to develop a set of software, including a media player, and synchronized it with the site, which is a social networking and media portal, which contains information about the songs and their performers. The paper deals with the methods of work with third-party libraries and data flows in Delphi, as well as working with PHP, database MySQL, scripting languages JavaScript and AJAX.

The work is the rationale for an integrated software development with the full functionality of individual programs. It is also justified by the need for alternative domestic developments.

Содержание Введение

1 Принципы разработки

1.1 Работа с библиотекой Bass.dll

1.1.1 Общая характеристика

1.1.2 Основные понятия

1.1.3 Проверка версии BASS

1.1.4 Инициализация и завершение работы BASS

1.1.5 Воспроизведение звука

1.1.6 Воспроизведение потокового звука

1.1.7 Воспроизведение аудиоданных из сети Интернет

1.1.8 Воспроизведение музыки

1.1.9 Обработка ошибок

1.2 Работа с потоками в Delphi

1.2.1 Общие сведения

1.2.2 Чтение/запись

1.2.3 Позиционирование

1.2.4 Копирование

1.3 Работа с БД MySQL

1.3.1 Ключи

1.3.2 Индексирование

1.3.3 СУБД Mysql

2 Инструменты разработки

2.1 Язык программирования Delphi

2.1.1 Среда разработки RAD Studio XE7(Delphi XE7)

2.2 Ampps

2.3 Notepad++

3 Разработка комплекса ПО

3.1 Разработка музыкального проигрывателя

3.1.1 Аналоги

3.1.2 Требуемый функционал плеера

3.2 Разработка сайта

3.2.1 Аналоги

4 Технико–экономическое обоснование

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

4.2 Расчет затрат на разработку информационных технологий

4.3 Расчет цены программного продукта

4.4 Вывод по технико–экономической части

5 Безопасность жизнедеятельности

5.1 Анализ условий труда

5.2 Расче сисемы кондиционирования помещения

5.3 Расче есесвенного освещения помещения

5.4 Расчё искуссвенного освещения в помещении

Заключение

Список используемой литературы

Приложение А

Введение

Тема данного дипломного проекта – «Комплекс программного обеспечения медапроигрыватель».

Данный комплекс состоит из двух програмных продуктов.

Первый – аудиопроигрыватель на основе библиотеки Bass.dll. Его задачей является воспроизведение аудиозаписей распространенных форматов.wav и.mp3. А так же множество других функций, присущих аудиоплееру. Востребованность в нем в данной работе заключается в том, что благодаря этому ПП собирается информация в виде тегов и длины треков, и записывается вместе со временем прослушивания в файл.

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

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

–  –  –

1.1 Работа с библиотекой Bass.dll В данной главе рассказывается о библиотеке BASS и даются минимально необходимые сведения о том, как использовать эту библиотеку в прикладных программах. Несмотря на то, что приводимые в качестве иллюстраций фрагменты исходного кода являются рабочими и могут непосредственно использоваться при программировании, эта работа не является исчерпывающим руководством по библиотеке BASS.

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

1.1.1 Общая характеристика

Библиотека BASS разработана un4seen developments. и содержит набор функций для воспроизведения звуковых файлов различных форматов, а также для записи звука. Лицензионным соглашением допускается бесплатное использование BASS в некоммерческих целях.

Существуют варианты BASS для Win32 и MacOSX (платформы PowerPC и Intel). Текущая версия библиотеки (ноябрь, 2006) - 2.3 (.0.1). Ниже речь пойдет преимущественно о дистрибутиве, предназначенном для Win32. Библиотека BASS достаточно проста в использовании, имеет небольшой размер и поддерживает следующие возможности:

воспроизведение звуковых образцов (сэмплов) в формате WAV/AIFF/MP3/MP2/MP1/OGG;

потоковое воспроизведение звуковых файлов в формате MP3/MP2/MP1/OGG/WAV/AIFF;

потоковое воспроизведение звука из интернет (по протоколам http и ftp, с поддержкой серверов Shoutcast, Icecast & Icecast2);

воспроизведение файлов музыкальных форматов (XM, IT, S3M, MOD, MTM, UMX), а также формата MO3 (mod музыка, сжатая MP3/OGG);

запись звука;

поддержка эффектов обработки звуков и эффектов DirectX 8 (только для Win32): Chorus / compressor / distortion / echo / flanger / gargle / parametric eq / reverb и т.д.;

поддержка многоканального (а не только стерео) звука, в том числе и многоканальных OGG/WAV/AIFF файлов;

поддержка многопотоковых звуковых карт;

поддержка позиционируемого 3D звука и EAX;

поддержка расширений (плагинов);

и многое другое.

На платформе Win32 библиотека BASS требует для своей работы DirectX версии 3 и выше. BASS использует аппаратное ускорение функций DirectSound и DirectSound3D(если это поддерживается звуковой картой). На MacOSX для вывода звука используется CoreAudio (рекомендуется OSX 10).

Кроме основного модуля (bass.dll), на сайте можно найти дополнения (плагины), расширяющие возможности библиотеки. Так, для воспроизведения файлов в формате wma необходимо использовать плагин basswma.dll.

Дистрибутив BASS представляет собой zip-архив и содержит библиотеку bass.dll, библиотеку импорта bass.lib, заголовочные файлы и файлы с исходными кодами примеров для C/C++, Delphi, MASM, VisualBasic, а также подробную справку в формате.chm. Следует заметить, что в состав пакета FreeBASIC входят заголовочный файл и библиотека импорта, необходимые для работы с BASS.

BASS не требует инсталляции: достаточно распаковать архив соответствующим архиватором.

Библиотека импорта bass.lib является библиотекой в формате coff, то есть может быть использована только с Visual C++ и MASM. Если предполагается использовать Borland C++ или MINGW (gcc), то придётся изготовить необходимые библиотеки импорта самостоятельно или загрузить.

1.1.2 Основные понятия

Как и в большинстве библиотек для работы со звуковыми данными, в BASS представлены следующие звуковые объекты:

sample (сэмплы) - это звуковые данные из небольших по размеру звуковых файлов различных форматов. "Небольшие" означает, что эти звуковые данные при воспроизведении целиком загружаются в память.

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

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

Непосредственное воспроизведение звука происходит через так называемые "каналы", поэтому все виды звуковых данных (sample, stream и mod music) связываются с каналами воспроизведения звука.

Среди функций, составляющих API библиотеки BASS, можно выделить следующие группы:

функции управления библиотекой (конфигурирование, инициализация, выгрузка, получение информации и т.д.);

функции с префиксом BASS_Sample..., предназначенные для работы с samples (загрузка, управление, выгрузка и т.д.);

функции с префиксом BASS_Stream..., предназначенные для работы с streams (загрузка, выгрузка, управление и т.д.);

функции с префиксом BASS_Music..., предназначенные для работы с mod music (загрузка, выгрузка, управление и т.д.);

функции с префиксом BASS_Channel..., предназначенные для работы с каналами (воспроизведение, остановка, позиционирование, управление громкостью, балансировка каналов и т.д.);

функции с префиксом BASS_Record..., предназначенные для записи звука;

функции с префиксом BASS_FXS..., предназначенные для создания различных звуковых эффектов;

прочие функции.

В каждой группе можно выделить еще и подгруппы.

1.1.3 Проверка версии BASS

Для библиотеки BASS не гарантируется совместимость версий на уровне API, поэтому для того чтобы избежать ошибок при выполнении программы, необходимо проверить версию dll. Для этого используются функция BASS_GetVersion(), которая возвращает номер версии dll, и константа BASSVERSION, которая содержит номер версии библиотеки, необходимой для работы прикладной программы. Константа BASSVERSION соответствует старшим двум цифрам в полном номере версии и не содержит младших цифр номера.

Функция BASS_GetVersion не имеет параметров и возвращает номер версии в виде 32-разрядного шестнадцатеричного числа. Например, результат 0x02030001 соответствует версии 2.3.0.1. Для сравнения с константой BASSVERSION можно использовать макрос HIWORD, а для определения субверсии - макрос LOWORD, например:

if (HIWORD(BASS_GetVersion())!=BASSVERSION) { /*... обработка ошибки... */ } 1.1.4 Инициализация и завершение работы BASS Прежде чем воспользоваться функциями BASS, необходимо выполнить инициализацию звуковой подсистемы. Исключение составляют лишь функции записи звука, которые доступны без предварительной инициализации. Делается это при помощи функции BASS_Init, прототип которой:

BOOL BASS_Init( int device, DWORD freq, DWORD flags, HWND win, GUID *clsid );

Здесь первый параметр device - это номер звукового устройства, с которым будет работать библиотека. Если device равно -1 (минус один), то используется устройство, выбранное в системе по умолчанию. Значение 0 соответствует отсутствию звукового устройства. Значения 1, 2 и так далее указывают первую, вторую и последующие звуковые карты соответственно (если они установлены в системе).

Параметр freq устанавливает частоту дискретизации в Герцах для выходного микшера. Параметр flags содержит комбинацию флагов, объединенных операцией логическое ИЛИ и устанавливающим параметры работы устройства воспроизведения. В частности, при помощи флага BASS_DEVICE_3D устанавливается режим позиционируемого 3D звука. Параметр win содержит дескриптор окна приложения, с которым будет связано воспроизведение звука.

Значение 0 соответствует текущему окну и должно использоваться для консольных приложений. Параметр clsid содержит идентификатор DirectSound, который библиотека BASS должна использовать для инициализации DirectSound. Значение NULL соответствует идентификатору, используемому по умолчанию.

Функция BASS_Init возвращает TRUE в случае успешного выполнения и FALSE в случае ошибки.

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

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

Функция BASS_Free освобождает текущее устройство, поэтому если были инициализированы несколько устройств, то BASS_Free должна вызываться для каждого из них (сменить устройство можно при помощи функции BASS_SetDevice).

Ниже приведен фрагмент исходного кода, который инициализирует BASS, а затем завершает работу библиотеки.

–  –  –

1.1.5 Воспроизведение звука После инициализации устройства можно приступать к воспроизведению звука. Для начала разберём, что необходимо сделать, чтобы воспроизвести небольшой звуковой образец (sample).

Последовательность действий здесь такая:

создать sample из звукового файла при помощи функции BASS_SampleLoad;

создать канал воспроизведения для sample при помощи функции BASS_SampleGetChannel;

установить необходимые параметры воспроизведения (например, громкость, пространственные координаты источника и т.п.);

начать воспроизведение при помощи функции BASS_ChannelPlay;

по окончанию воспроизведения освободить ресурсы при помощи функции BASS_SampleFree.

Прекратить воспроизведение можно, вызвав функцию BASS_ChannelStop, а проверить, играет ли еще канал или нет - функцией BASS_ChannelIsActive.

Остановимся подробнее на некоторых из вышеназванных функций. Функция

BASS_SampleLoad имеет следующий прототип:

HSAMPLE BASS_SampleLoad( BOOL mem, void *file, DWORD offset, DWORD length, DWORD max, DWORD flags );

Здесь параметр mem указывает, что звуковые данные берутся из памяти (TRUE) или из файла (FALSE). Параметр file указывает на строку символов с именем файла, если звуковые данные должны быть загружены из файла, или является адресом памяти, если данные должны считываться из памяти. Параметр offset задает смещение позиции чтения данных от начала файла (в VASS версии

2.4.x тип этого параметра был изменён на QWORD). Параметр length указывает длину считываемого фрагмента данных. Если этот параметр равен нулю, то считываются все данные до конца файла. Параметр max указывает максимальное число каналов, одновременно воспроизводящих этот звуковой образец. Параметр flags содержит комбинацию флагов, устанавливающих свойства канала воспроизведения. Например, флаг BASS_SAMPLE_LOOP устанавливает циклическое повторение звука при воспроизведении. Флаг BASS_SAMPLE_3D указывает, что для данного канала необходима поддержка функций позиционирования звука в пространстве, а флаг BASS_SAMPLE_MONO принудительно устанавливает монофонический режим при воспроизведении файлов mp3/mp2/mp1. Принудительная установка монофонического режима бывает полезной при работе с 3D звуком, так как в этом случае допускаются только монофонические источники звука. Флаг BASS_UNICODE указывает, что имя файла задано в кодировке Unicode (UDF16). Кроме этих, существуют и другие флаги, о назначении которых можно узнать из входящего в дистрибутив справочного файла.

Функция BASS_SampleLoad в случае успешного завершения возвращает дескриптор HSAMPLE созданного образца звука. Этот дескриптор может быть использован для создания канала воспроизведения звука.

Функция BASS_SampleGetChannel имеет следующий прототип:

HCHANNEL BASS_SampleGetChannel( HSAMPLE handle, BOOL onlynew );

Здесь параметр handle - это дескриптор sample, который был возвращен функцией BASS_SampleLoad. Параметр onlynew указывает, надо ли повторно использовать для воспроизведения один из уже существующих каналов.

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

Функция BASS_ChannelPlay требует передачи двух параметров. Первый параметр - это дескриптор канала. Второй параметр указывает, надо ли начинать воспроизведение звукового образца с самого начала (иначе воспроизведение начнется с текущей позиции).В случае успеха эта функция возвращает TRUE.

Функция BASS_ChannelSet3DPosition задает положение источника звука в трехмерном пространстве и имеет прототип:

BOOL BASS_ChannelSet3DPosition( DWORD handle, BASS_3DVECTOR *pos, BASS_3DVECTOR *orient, BASS_3DVECTOR *vel );

Здесь параметр handle - это дескриптор канала воспроизведения. Параметр pos

- это указатель на структуру, определяющей координаты источника звука. Если этот параметр равен NULL, то координаты источника звука не меняются. Параметр orient

- это указатель на структуру, задающую пространственную ориентацию источника звука. Если этот параметр равен NULL, то ориентация источника не меняется.

Параметр vel - это указатель на структуру, задающую координаты вектора скорости, с которой перемещается объект. Если этот параметр равен NULL, то координаты скорости источника не меняются. Следует помнить, что координаты скорости используются библиотекой BASS исключительно для расчета эффекта Доплера, а не для вычисления новых пространственных координат источника звука.

Функция в случае успеха возвращает TRUE, а в случае ошибки - FALSE.

Структура BASS_3DVECTOR, которая используется для задания векторов и пространственных координат, имеет следующее определение:

typedef struct { float x; float y; float z; } BASS_3DVECTOR;

При работе с функциями позиционирования звука в 3D пространстве следует использовать функцию BASS_Apply3D, чтобы изменения пространственной звуковой картины вступили в силу. Эта функция не имеет параметров.

Ниже представлен фрагмент исходного кода, в котором реализовано воспроизведение движущегося в пространстве источника звука. Звуковые данные загружаются из файла test.mp3. Фрагменты кода, связанные с инициализацией и выгрузкой BASS, в этом и последующих примерах не приводятся.

–  –  –

1.1.6 Воспроизведение потокового звука Термином "потоковый звук" или "потоковое аудио" обозначают такой способ воспроизведения звука, при котором звуковые данные считываются из файла или поступают из сети небольшими порциями, которые и передаются устройству воспроизведения. Такой способ позволяет, например, воспроизвести звуковой файл достаточно большого размера, не загружая его полностью в память.

Для создания потокового звука (stream), связанного с файлом в формате MP3, MP2, MP1, OGG, WAV, AIFF (а также в одном из форматов, поддерживаемых плагинами), в библиотеке BASS предусмотрена функция BASS_StreamCreateFile, которая имеет следующий прототип:

HSTREAM BASS_StreamCreateFile( BOOL mem, void *file, DWORD offset, DWORD length, DWORD flags );

Здесь параметр mem указывает, что звуковые данные берутся из памяти (TRUE) или из файла (FALSE). Параметр file указывает на строку символов с именем файла, если звуковые данные должны быть загружены из файла, или является адресом памяти, если данные должны считываться из памяти.

Параметр offset задает смещение позиции чтения данных от начала файла. Параметр length указывает длину считываемых данных. Если этот параметр равен 0, то при воспроизведении будут считаны все данные до конца файла. Параметр flags является комбинацией флагов, устанавливающих режим воспроизведения потокового звука. Например, флаг BASS_SAMPLE_3D указывает, что для этого stream необходима поддержка функций позиционирования в 3D пространстве. Флаг BASS_SAMPLE_LOOP устанавливает циклический режим воспроизведения, то есть после окончания воспроизведения файла автоматически этот файл зазвучит снова.

Флаг BASS_UNICODE указывает на то, что имя файла задано в Unicode (UDF16). О других флагах и их назначении можно узнать из файла справки.

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

Ниже приводится фрагмент исходного кода, реализующего воспроизведение звукового файла в формате mp3 ("song.mp3").

/* дескриптор потока */ HSTREAM stream;

char filename[] = "song.mp3";

/*... */ /* создаем потоковый звук, связанный с файлом */ stream = BASS_StreamCreateFile(FALSE, filename, 0, 0, 0);

if (!stream) { /*...обработка ошибки... */ return 1;

} /* воспроизводим звук */ BASS_ChannelPlay(stream,TRUE);

/* цикл, прерываемый нажатием клавиши или завершением воспроизведения файла */ while (!kbhit() && BASS_ChannelIsActive(stream) != BASS_ACTIVE_STOPPED) { Sleep (200);

} /* останавливаем звучание */ BASS_ChannelStop(stream);

/* освобождаем ресурсы */ BASS_StreamFree(stream);

1.1.7 Воспроизведение аудиоданных из сети Интернет

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

BASS_StreamCreateURL, которая имеет следующий прототип:

–  –  –

Здесь параметр url - это указатель на строку с интернет-адресом, откуда должны быть получены аудиоданные. Интернет-адрес должен начинаться с указания протокола: "http://" или "ftp://". Параметр offset указывает смещение от начала аудиоданных. Значение этого параметра игнорируется, если отсутствует информация о размере файла (что бывает при "прямом" вещании в Интернет).

Параметр flags является комбинацией флагов, устанавливающих параметры потокового звука. Параметр proc - это адрес пользовательской CALLBACK функции, которая будет вызвана как только файл будет загружен из сети. Если значение этого параметра NULL, то вызов CALLBACK функции не выполняется.

Параметр user содержит данные, которые будут переданы пользовательской CALLBACK функции при ее вызове (если такая функция определена).

Пользовательская CALLBACK функция должна иметь следующий прототип:

void CALLBACK YourDownloadProc( void *buffer, DWORD length, DWORD user );

Эта функция в параметре buffer получает указатель на загруженные данные.

Если этот указатель равен NULL, то загрузка данных завершена. В параметре length функция получает количество загруженных данных в байтах. Параметр user содержит значение, указываемое в последнем параметре функции BASS_StreamCreateURL.

Ниже приведен фрагмент исходного кода, в котором реализовано воспроизведение звуковых данных, поступающих от интернет-радиостанции.

/* дескриптор потока */ HSTREAM stream;

char url[] ="http://radio.echo.msk.ru:8000";

/*... */ /* создаем поток, связанный с url */ stream =BASS_StreamCreateURL(url, 0, 0, NULL, 0);

if (!stream) { /*...обработка ошибки... */ return 1;

} /* воспроизводим звук */ BASS_ChannelPlay(stream,TRUE);

/* цикл, прерываемый нажатием клавиши */ while (!kbhit()) Sleep (200);

/* останавливаем воспроизведение */ BASS_ChannelStop(stream);

/* освобождаем ресурсы */ BASS_StreamFree(stream);

1.1.8 Воспроизведение музыки Для загрузки музыки из файлов в форматах MO3 / IT / XM / S3M / MTM / MOD / UMX необходимо использовать функцию BASS_MusicLoad, которая имеет следующий прототип:

–  –  –

Здесь параметр mem указывает, загружаются ли данные из памяти (TRUE) или из файла (FALSE). Параметр file является указателем на строку с именем файла, если данные загружаются из файла, или адресом памяти, если данные берутся из памяти. Параметр offset задает смещение от начала файла. Параметр length указывает размер данных. Если этот параметр равен 0, то обрабатываются все данные до конца файла. Параметр flags содержит комбинацию флагов, определяющих параметры воспроизведения музыки. Параметр freq устанавливает частоту воспроизведения. Если этот параметр равен 0, то используется значение, указанное при вызове функции BASS_Init.

В случае успешного выполнения функция BASS_MusicLoad возвращает дескриптор типа HMUSIC, который можно использовать в функциях управления каналом воспроизведения вместо дескриптора канала.

Ниже приведен фрагмент исходного кода, реализующего воспроизведение файла в формате s3m ("test.s3m").

HMUSIC mus;

char filename[] = "test.s3m";

/*... */ /* загружаем файл s3m */ /* для примера указан флаг BASS_MUSIC_SURROUND */ mus = BASS_MusicLoad(FALSE,filename, 0, 0, BASS_MUSIC_SURROUND, 0);

if (!mus) { /*...обработка ошибки... */ return 1;

} /* цикл, прерываемый нажатием клавиши или окончанием воспроизведения */ while (!kbhit() && BASS_ChannelIsActive(mus) != BASS_ACTIVE_STOPPED) { Sleep (200);

} /* останавливаем воспроизведение */ BASS_ChannelStop(mus);

/* освобождаем ресурсы */ BASS_MusicFree(mus);

1.1.9 Обработка ошибок

Большинство функций библиотеки BASS в случае ошибки возвращают FALSE. Для того чтобы получить более подробную информацию о возникшей ошибке, необходимо вызвать функцию BASS_ErrorGetCode. Эта функция не имеет параметров и возвращает код ошибки. Функцию BASS_ErrorGetCode следует вызывать сразу после вызова той функции, результат которой необходимо проверить на наличие ошибок. Если ошибок не было функция вернет значение BASS_OK.

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

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

Вот простейший пример вызова функции BASS_ErrorGetCode:

samp =BASS_SampleLoad(FALSE,filename, 0, 0,1, BASS_SAMPLE_3D | BASS_SAMPLE_LOOP );

if (!samp) { printf ("Error code: %d\n", BASS_ErrorGetCode());

}

1.2 Работа с потоками в Delphi 1.2.1 Общие сведения Если вы вспомните определение файла, то оно звучало так: "файл - это устройство с последовательным доступом, к которому можно обратиться по имени".

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

Вы можете читать из него данные или записывать. Некоторые потоки поддерживают позиционирование (вроде физического файла на диске), другие - нет (вроде сетевого сокета).

Потоки данных являются де-факто стандартом для обмена данными в Delphi.

Всюду в своих процедурах, где вам необходимо принимать или отправлять нетипизированный набор данных, используйте потоки данных. Многие механизмы Delphi по умолчанию умеют работать именно с потоками данных, предоставляя методы вроде LoadFromStream и SaveToStream (и иногда предоставляя к ним обёртки-переходники вроде LoadFromFile и SaveToFile).

Примечание: поток данных (stream) не следует путать с потоком кода (thread), который также иногда называют нитью. Они не имеют между собой ничего общего, кроме слова "поток" в названии. Если какой-то текст говорит про "потоки", не уточняя кода или данных, то значение термина должно быть ясно из контекста. Эти понятия не пересекаются, так что здесь не должно быть никаких проблем с пониманием. Замечу, что подобная путаница возможна только в русском языке, где два разных понятия переводятся одинаково. В английском языке для них используются разные слова (stream и thread).

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

В Delphi есть широкий набор классов, предназначенный для работы с чем угодно: от файла на диске до блока памяти. Каждый такой класс-наследник реализует базовые методы TStream по-своему. К примеру, при чтении из потока данных: наследник для работы с файлами вызовет функцию чтения данных с диска, а наследник для работы с блоком памяти использует процедуру Move для копирования данных.

Вот (неполный) список классов-наследников TStream (примеры):

TFileStream (для работы с файлами) TResourceStream (для работы с ресурсами программы) TStringStream (для работы со строками) TMemoryStream (для работы с буфером в памяти) TBlobStream (для работы с BLOB полями) TWinSocketStream (для работы с сетевым сокетом) По сравнению с прошлой темой, где было всего три вполне конкретных файловых типа, это может быть немного непонятно: зачем нужен какой-то абстрактный класс и классы-наследники? Очень просто: пусть вы хотите уметь загружать растровые изображения (bitmap). Но ведь рисунок может лежать не только в файле, он может быть и в ресурсах программы и в памяти. Не писать же три разных метода, которые делают одно и то же? Вот поэтому и нужен абстрактный класс. Он объявляет общий контракт, которому обязуются следовать все его наследники. Поэтому вы можете спокойно написать (один раз) код, который грузит рисунок из TStream. А уж вызывающий подставит вам TFileStream для загрузки рисунка из файла,TResourceStream для загрузки из ресурса и TMemoryStream для загрузки из памяти. В определённом смысле все эти классынаследники представляют собой простые переходники (от общей спецификации, определённой TStream, до конкретного метода доступа: файл, ресурс, память, сеть и так далее; и наоборот). В общем, полиморфизм в действии.

Кроме того, потоки обеспечивают поддержку для загрузки/сохранения компонентов и форм. Именно благодаря этому механизму работает загрузка.dfm файлов в run-time. Этот механизм работает автоматически. Впрочем, вы можете использовать его и в своих целях. Но на это мы посмотрим в другой раз, потому что он тесно связан с RTTI. Это будет темой одной из следующих статей.

1.2.2 Чтение/запись

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

Итак, для чтения класс TStream предлагает методы Read и ReadBuffer, а для записи - методы Write и WriteBuffer. Эти методы используются одинаково: первым параметром указывается буфер (это нетипизированный параметр), а вторым параметром - его размер в байтах, например:

procedure LoadFromStream(AStream: TStream);

var I: array of Integer;

begin // Чтение содержимого AStream в массив I SetLength(I, AStream.Size div SizeOf(I[0]));

AStream.ReadBuffer(I[0], AStream.Size);

–  –  –

// Запись массива I в поток данных AStream AStream.WriteBuffer(I[0], Length(I) * SizeOf(I[0]));

end;

Разница между методами с "Buffer" и без него заключается в том, что методы с суффиксом "Buffer" гарантируют выполнение операции до конца. Если же это невозможно (к примеру, в файле 12 байт, а вы командуете прочитать 24 байта), то будет возбуждено исключение (см. также ниже раздел про обработку ошибок).

А вот методы без суффикса "Buffer" допускают частичное выполнение операции. Они никогда не возбуждают ошибку, а вместо этого возвращают, сколько реально байт было прочитано или записано. Иногда, это может быть и 0 байт. К примеру, если в файле 12 байт, а вы вызываете Read, указывая 24 байта, то метод

Read прочитает 12 байт и вернёт вам число 12 (это метод-функция). Ещё пример:

если у вас поток связан с сетевым сокетом и вы вызываете Read, но пока никаких данных ещё не пришло: метод завершится тут же, возвращая 0.

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

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

Разумеется, некоторые из наследников TStream могут вводить свои специальные методы для чтения/записи.

1.2.3 Позиционирование.

Во-первых, это методы позиционирования. Вы можете вызвать свойство Size, которое вернёт вам размер потока данных в байтах (кроме того, вы можете устанавливать свойство Size, чтобы менять размер потока, но это поддерживается далеко не всеми видами потоков данных). Свойство Position указывает текущую позицию в потоке данных, где 0 соответствует началу, а значение, равное Size, концу. Вы можете читать свойство Position, чтобы узнать текущую позицию, и записывать значение в Position, чтобы изменить текущую позицию (позиционирование поддерживается не всеми видами потоков). К примеру:

–  –  –

Кроме абсолютного позиционирования через свойство Position, потоки данных поддерживают относительное позиционирование в стиле файловых Seek-процедур:

метод Seek. Этот метод имеет два параметра: позицию и точку отсчёта. Причём последнее может иметь значения soBeginning (отсчёт от начала потока, аналог абсолютного позиционирования), soCurrent (отсчёт от текущей позиции, относительное смещение) и soEnd (отсчёт от конца потока). Для soCurrent позиция может быть и положительным числом (смещение в сторону конца потока) и отрицательным (смещение в сторону начала), для soBeginning смещение может быть только положительным (или нулём), а для soEnd - только отрицательным (или нулём). Есть также устаревшие константы вида soFromBeginning, soFromCurrent, soFromEnd - не используйте их в новом коде. При этом метод Seek возвращает предыдущее значение текущей позиции (до позиционирования). К примеру:

var Stream: TStream;

SavedPos: Int64;

begin...

SavedPos := Stream.Seek(0, soBeginning); // Перемещаемся в начало потока, одновременно сохраняя (старую) текущую позицию // что-то сделали...

Stream.Seek(SavedPos, soBeginning); // Вернулись, где были до этого...

Stream.Seek(0, soEnd); // Перешли в конец потока...

end;

1.2.4 Копирование

У TStream есть ещё один метод: CopyFrom. Этот метод копирует указанное количество данных (в байтах) из указанного массива. Копирование производится с текущей позиции. Метод работает аналогично методу записи WriteBuffer, сдвигая текущую позицию на указанное количество байт и возбуждая исключение при ошибках. Использование CopyFrom позволяет избежать создания буфера, чтения в него данных из исходного потока, запись буфера в выходной поток и удаления буфера - все эти действия выполняются автоматически внутри метода CopyFrom. К примеру, вот простейший пример копирования файлов (см. ниже описание

TFileStream):

procedure CopyFile(const ASourceFileName, ATargetFileName: String);

var Source: TFileStream;

Dest: TFileStream;

begin // Открыли исходный файл на чтение Source := TFileStream.Create(ASourceFileName, fmOpenRead or fmShareDenyWrite);

try // Создали целевой файл (в режиме записи)

–  –  –

У CopyFrom есть специальный случай: если последний параметр (размер) равен 0, то CopyFrom скопирует весь поток целиком - начиная с начала потока (вне зависимости от текущей позиции) и до конца. Так что если число байт для записи у вас не фиксировано, а как-то вычисляется, то вставьте перед вызовом CopyFrom проверку на 0: иначе вы скопируете поток целиком вместо 0 байт.

Работа с БД MySQL 1.3 MySQL - свободная реляционная система управления базами данных.

Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией.

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

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

–  –  –

Первичный ключ (primary key, PK) – минимальный набор полей, уникально идентифицирующий запись в таблице. Значит, первичный ключ – это в первую очередь набор полей таблицы, во-вторых, каждый набор значений этих полей должен определять единственную запись (строку) в таблице и, в-третьих, этот набор полей должен быть минимальным из всех обладающих таким же свойством.

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

1.3.2 Индексирование

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

Для этого (для оптимизации производительности запросов) производят индексирование некоторых полей таблицы. Использовать индексы полезно для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице, начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то база данных может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Это происходит потому, что база данных помещает проиндексированные поля поближе в памяти, так, чтобы можно было побыстрее найти их значения. Для таблицы, содержащей 1000 строк, это будет как минимум в 100 раз быстрее по сравнению с последовательным перебором всех записей. Однако в случае, когда необходим доступ почти ко всем 1000 строкам, быстрее будет последовательное чтение, так как при этом не требуется операций поиска по диску.

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

Если говорить о Mysql, то там существует три вида индексов: PRIMARY, UNIQUE, и INDEX, а слово ключ (KEY) используется как синоним слова индекс (INDEX). Все индексы хранятся в памяти в виде B-деревьев.

PRIMARY – уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т.е. они NOT NULL).

Таблица может иметь только один первичный индекс, но он может состоять из нескольких полей.

UNIQUE – ключ (индекс), задающий поля, которые могут иметь только уникальные значения.

INDEX – обычный индекс (как мы описали выше). В Mysql, кроме того, можно индексировать строковые поля по заданному числу символов от начала строки.

–  –  –

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

Работать с Mysql можно не только в текстовом режиме, но и в графическом.

Существует очень популярный визуальный интерфейс (кстати, написанный на PHP) для работы с этой СУБД. Называется он PhpMyAdmin. Этот интерфейс позволяет значительно упростить работу с базами данных в Mysql.

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

Перед тем как переходить к детальному изучению языка SQL, несколько слов об установке Mysql и подготовке к работе. Если вы не собираетесь заниматься администрированием сервера, то информация, приведенная ниже, пригодится вам только для общего развития. Итак, устанавливается Mysql очень просто – автоматически, пару раз нажмите OK, и все. После этого вы можете зайти в директорию, где лежат файлы типа Mysql.exe, Mysqld.exe и т.п. Последний файл запускает Mysql-сервер. В некоторых системах сервер запускается в виде сервиса.

После запуска сервера следует запустить Mysql-клиент, запустив программу Mysql.exe. Здесь даже пароля не спросят. Более того, если вы наберете shell Mysql.exe -u root или shellMysql -u root Mysql то получите все права администратора Mysql сервера. Кстати, выполнять эти команды надо, находясь в той директории, где лежат файлы Mysql.exe.

–  –  –

2.1 Язык программирования Delphi Delphi— императивный, структурированный, объектно-ориентированный язык программирования со строгой статической типизацией переменных.

Основная область использования — написание прикладного программного обеспечения.

Первоначально носил название Object Pascal и исторически восходит к одноименному диалекту языка, разработанному в фирме Apple в 1986 году группой Ларри Теслера. Однако в настоящее время термин Object Pascal чаще всего употребляется в значении языка среды программирования Delphi. Начиная с Delphi 7, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Изначально среда разработки Delphi была предназначена исключительно для разработки приложений Windows, затем был реализован вариант для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и вскоре было объявлено о поддержке Microsoft.NET, которая, в свою очередь, была прекращена с выходом Delphi 2007.

На сегодняшний день, наряду с поддержкой разработки 32 и 64-разрядных программ для Windows, реализована возможность создавать приложения для Apple Mac OS X (начиная с Embarcadero Delphi XE2), iOS (включая симулятор, начиная с XE4 посредством собственного компилятора), а также, в Delphi XE5, для Google Android (непосредственно исполняемые на ARM-процессоре).

Независимая, сторонняя реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE.

Также предпринимались попытки использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC.

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

Так, сложность объектного C++, по сравнению с C, выросла весьма существенно и затруднила его изучение в качестве первого языка программирования, чего нельзя сказать об Object Pascal относительно Pascal.

Ниже перечислены некоторые отличия синтаксических конструкций Delphi от семейства C-подобных языков (C/C++/Java/C#):

- В Delphi формальное начало любой программы четко отличается от других участков кода и расположено в определенном, единственном в рамках проекта, исходном файле с расширением dpr (тогда как другие файлы исходных текстов программы имеют расширение pas) program Project32;

uses System.SysUtils;

begin try { TODO -oUser -cConsole Main : Insert code here } except on E: Exception do Writeln(E.ClassName, ': ', E.Message);

end;

end.

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

- В Delphi идентификаторы типов, переменных, а равно и ключевые слова читаются независимо от регистра: например идентификатор SomeVar полностью эквивалентен somevar. Регистро-зависимые идентификаторы в начале компьютерной эпохи ускоряли процесс компиляции, и кроме того, позволяли использовать очень короткие имена, порой отличающиеся лишь регистром.

Хотя на сегодняшний день, обе эти практики - использование нескольких идентификаторов, отличающиеся только регистрация, а также более-их краткости, осуждены и не рекомендуется для использования, почти все наследство от C языки: C ++, Java, C # - чувствительны к регистру, который, с одной стороны, она требует достаточно большой уход в декларации и использования идентификаторов, и другой разрешено писать код в очень трудно читается стиль.

- В Delphi в исходных файла pas (которые, как правило, и содержат основное тело программы) на уровне языковых средств введено строгое разделение на интерфейсный раздел и раздел реализации. В интерфейсной части содержатся лишь объявления типов и методов, тогда как код реализации в интерфейсной части не допускается на уровне компиляции. Подобное разделение свойственно также языкам C/C++, где в рамках культуры и парадигмы программирования вводится разделение на заголовочные и собственно файлы реализации, но подобное разделение не обеспечивается на уровне языка или компилятора.

В C# и Java такое разделение устранено вовсе реализация метода, как правило, следует сразу же после его объявления. Инкапсуляция обеспечивается лишь принадлежностью метода к той или иной области видимости. Для просмотра одной только интерфейсной части модуля исходного кода используются специальные средства.

- В Delphi метод или функция четко определяются зарезервированными для этого ключевыми словами procedure или function, тогда как в C-подобных языках различие обуславливается ключевым словом, определяющим тип возвращаемого значения:

procedure DoSomething(aParam:integer);//не возвращает значения function Calculate(aParam1, aParam2:integer):integer;//возвращает целочисленный результат //C# void DoSomething(int aParam);//не возвращает значения { //code } int Calculate(int aParam1,aParam2);//возвращает целочисленный результат { //code } Тем сложнее в C#/C++ выглядят такие конструкции, как объявление типа "указатель на метод":

//C++: объявление типа pCalc, указателя на функцию-член, принимающую 2 целочисленных параметра, и возвращающию целочисленный результат typedef int (TSomeClass::*pCalc)(int,int);



Pages:   || 2 | 3 |
 

Похожие работы:

«МБДОУ ДСКВ № 86 «БЫЛИНУШКА»СОДЕРЖАНИЕ: Паспорт программы Целевой раздел 1. Пояснительная записка 1.1. Цели и задачи реализации программы 1.2. Принципы и подходы к формированию Программы 1.3. Значимые характеристики для разработки и реализации программы. 1.4. Планируемые результаты освоения Программы 1.5. Содержательный раздел 2. Ведущие виды деятельности в разный возрастной период 2.1. Система образовательной работы по образовательным областям 2.2. Образовательная область...»

«Муниципальное бюджетное общеобразовательное учреждение «Лозовская основная общеобразовательная школа Ровеньского района Белгородской области» РАССМОТРЕНО СОГЛАСОВАНО УТВЕРЖДЕНО на заседании МО учителей Заместитель директора приказом по предметников МБОУ школы по УВР МБОУ «Лозовская основная «Лозовская основная МБОУ «Лозовская основная общеобразовательная школа» общеобразовательная общеобразовательная школа» школа» № 144 от Протокол № 5 от _ Данькова Н.С. « 25 » июня 2015 г. « 25 » июня 2015 г....»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ» ОТЧЕТ О РЕАЛИЗАЦИИ Программы создания и развития федерального государственного автономного образовательного учреждения высшего профессионального образования «Национальный исследовательский ядерный университет «МИФИ» Ректор, руководитель Программы создания и развития университета _ М.Н. Стриханов Москва 2015 г. Содержание I. Общие сведения об университете II. Наиболее значимые...»

«Отчет «О результатах реализации Национальной образовательной инициативы «Наша новая школа» за 2013 год» Часть I. Переход на новые образовательные стандарты 1.1. Информация о выполнении плана первоочередных действий по реализации национальной образовательной инициативы «Наша новая школа» в 2013 году (далее – инициатива) (в соответствии с приложением 2): В 2013г. продолжилась работа по переходу на обучение по новым Федеральным государственным образовательным стандартам (ФГОС). С сентября 2013г....»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОУВПО «УДМУРТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» УПРАВЛЕНИЕ РАЗВИТИЕМ НАУЧНОЙ И ИННОВАЦИОННОЙ ДЕЯТЕЛЬНОСТИ ИНТЕГРАЦИЯ. ИННОВАЦИЯ. ИНСТИТУЦИАЛИЗАЦИЯ ИТОГИ НАУЧНОЙ ДЕЯТЕЛЬНОСТИ ГОУВПО «УДМУРТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» ЗА 2010 ГОД ИЖЕВСК Составители: Н.И. Леонов, д. психол. н., профессор, С.Г. Морозов, к.х.н. Итоги научной деятельности ГОУВПО «Удмуртский государственный университет» за 2010 год. – ГОУВПО «УдГУ», Ижевск, 2011. – 127 с. Материалы...»

«Приложение 1 к приказу Западно-Каспийского бассейнового водного управления от « 10 » ноября 2014г. №62-П СХЕМА КОМПЛЕКСНОГО ИСПОЛЬЗОВАНИЯ И ОХРАНЫ ВОДНЫХ ОБЪЕКТОВ БАССЕЙНА РЕКИ ТЕРЕК (РОССИЙСКАЯ ЧАСТЬ БАССЕЙНА) Книга 1. Общая характеристика речного бассейна Состав проекта СКИОВО Книга 1. Общая характеристика речного бассейна Книга 2. Оценка экологического состояния и ключевые проблемы речного бассейна Книга 3. Целевые показатели Книга 4. Водохозяйственные балансы и балансы загрязняющих веществ...»

«Рабочая программа «Клуба знатоков» 8 класс (Федеральный государственный образовательный стандарт основного общего образования) (редакция 04.03. 2015 г.) Составитель учитель географии Г.А.Гусельников МБОУ Лицей «Эврика» 2015 г.1. Пояснительная записка Рабочая программа курса «Клуб знатаков» 8 класса составлена на основании Закона РФ от 29 декабря 2012 г. № 273-ФЗ «Об образовании в Российской Федерации», Приказа МО и Н РФ от 17.12.2010 № 1897 «Об утверждении федерального государственного...»

«Департамент образования города Москвы Северное окружное управление образования Образовательный комплекс ГБОУ Гимназия № 20 ПРОГРАММА ЗДОРОВЬЕСБЕРЕЖЕНИЯ «Физическое и нравственное здоровье субъектов образовательной деятельности». Образовательного комплекса Государственного бюджетного образовательного учреждения ордена Трудового Красного Знамени ГИМНАЗИИ № 20 г. Москвы им. Героев Советского Союза Зои и Александра Космодемьянских на 2013 – 2017 годы. Москва, 20 СОДЕРЖАНИЕ 1. Паспорт программы. 2....»

«Инструктивный материал и передовая практика внедрения программы подготовки пилотов самолетов с многочленным составом летного экипажа Действует с июля 2015 г. 2-ое Издание УВЕДОМЛЕНИЕ ОГОВОРКА ОБ ОГРАНИЧЕНИИ ОТВЕТСТВЕННОСТИ. Информация, содержащаяся в настоящем документе, подлежит регулярному пересмотру с учетом изменений государственных требований и правил. Ни один из подписчиков или других пользователей настоящего документа не должен в своих действиях руководствоваться такой информацией без...»

«Рабочая программа 2 младшей группы «Зайчата» Воспитатель: Голубева Е.А. Губаха, 20 Содержание №п стр /п Целевой раздел I Пояснительная записка основной рабочей программы группы 1.1. Цели и задачи реализации программы дошкольного образования 1.2 Принципы и подходы к реализации программы 1.3 Значимые характеристики детей младшего дошкольного возраста. 1.4 Планируемые результаты как ориентиры освоения воспитанниками 1.5. основной образовательной программы дошкольного образования. Целевые...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего профессионального образования «Северный (Арктический) федеральный университет имени М.В. Ломоносова» УТВЕРЖДАЮ Первый проректор по образованию и науке Л.Н.Шестаков « 2 1 » мая 2013 г. Основная образовательная программа высшего профессионального образования Направление подготовки: 250700.68 Ландшафтная архитектура Магистерская программа: «Ландшафтное проектирование»...»

«ТРЕБОВАНИЯ К ДИПЛОМНОЙ РАБОТЕ, СОДЕРЖАНИЮ И ОФОРМЛЕНИЮ Дипломная работа является квалификационной работой обучающегося, осваивающего содержание образовательной программы высшего образования I ступени, по уровню выполнения и результатам защиты которой ГЭК делает заключение о возможности присвоения обучающемуся соответствующей квалификации. Дипломная работа должен включать расчетно-пояснительную (пояснительную) записку и графическую часть (чертежи, графики, схемы, диаграммы, таблицы, рисунки и...»

«НАЦИОНАЛЬНЫЕ КЛИНИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ДИАГНОСТИКЕ И ЛЕЧЕНИЮ МНОЖЕСТВЕННОЙ МИЕЛОМЫ (ВЕРСИЯ 2014) Менделеева Л.П.1, Вотякова О.М.2, Покровская О.С.1, Рехтина И.Г.1, Бессмельцев С.С.3, Голубева М.Е.4, Дарская Е.И.5, Загоскина Т.П.6, Зинина Е.Е.7, Капланов К.Д.8, Константинова Т.С.9, Крючкова И.В.10, Медведева Н.В.11, Моторин С.В.12, Поспелова Т.И.13, Рыжко В.В.1, Самойлова О.С.14, Урнова Е.С.1 1 – ФГБУ Гематологический научный центр МЗ РФ 2 – ФГБУ Российский онкологический научный центр им....»

«СОДЕРЖАНИЕ: Пояснительная записка.. стр. 3-4 1. Содержание рабочей программы. стр. 4-7 2. Требования к уровню подготовки обучающихся.стр. 8 3. Учебно–методическое обеспечение образовательного процесса.стр.8-9 4. Календарно-тематический план.стр. 10-12 5. Пояснительная записка. Рабочая программа учебного курса географии для 11 класса (далее – Рабочая программа) составлена на основе следующих нормативных документов: Федеральный Закон «Об образовании в Российской Федерации» от 29.12.2012 г. №...»

«МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СВЕРДЛОВСКОЙ ОБЛАСТИ ГАОУ СПО СО «ОБЛАСТНОЙ ТЕХНИКУМ ДИЗАЙНА И СЕРВИСА» ПРОГРАММА Государственной итоговой аттестации выпускников по программе подготовки квалифицированных рабочих и служащих по профессии 29.01.04 ХУДОЖНИК ПО КОСТЮМУ Екатеринбург, 2014 год Программа Государственной итоговой аттестации по программе подготовки квалифицированных рабочих и служащих по профессии 29.01.04 ХУДОЖНИК ПО КОСТЮМУ, реализуемой по Федеральному...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Московский государственный лингвистический университет» Евразийский лингвистический институт в г. Иркутске (филиал) АННОТАЦИЯ РАБОЧЕЙ ПРОГРАММЫ ДИСЦИПЛИНЫ Б1.Б.5 Иностранный язык (китайский) (индекс и наименование дисциплины по учебному плану) Направление подготовки/специальность 41.04.01 Зарубежное регионоведение (код и наименование...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Вятский государственный университет» КОЛЛЕДЖ УТВЕРЖДАЮ Ректор ВятГУ _ /Пугач В.Н./ «» _ 20 г. Отчет о результатах самообследования по основной образовательной программе среднего профессионального образования (программа подготовки специалистов среднего звена) 38.02.06 ФИНАНСЫ Шифр и наименование образовательной программы Квалификация «Финансист» Квалификация...»

«Федеральное государственное автономное образовательное учреждение вы сшего образования «Кры мский федеральны й университет имени В.И. Вернадского» Протокол № 8 заседания Ученого совета от 02 июля 2015 года Всего членов совета – 39 Присутствующих – 33 Председатель Ученого совета – Донич С. Г. Секретарь Ученого совета – Митрохина Л. М.1. Об утверждении состава Чуян Елена Николаевна – аттестационно –кадровой комиссии. первый проректор и делегировании полномочий по конкурсному отбору ученым советам...»

«Пункт 10 повестки дня CX/CAC 15/38/19 СОВМЕСТНАЯ ПРОГРАММА ФАО И ВОЗ ПО СТАНДАРТАМ НА ПИЩЕВЫЕ ПРОДУКТЫ КОМИССИЯ КОДЕКС АЛИМЕНТАРИУС 38-я сессия, Женевский международный конференц-центр Женева, Швейцария, 6-11 июля 2015 года ОТНОШЕНИЯ МЕЖДУ КОМИССИЕЙ КОДЕКС АЛИМЕНТАРИУС И ДРУГИМИ МЕЖДУНАРОДНЫМИ ОРГАНИЗАЦИЯМИ ОБЩИЕ СВЕДЕНИЯ В соответствии со Стратегической целью 1.3 Стратегического плана Комиссии 1. Кодекс Алиментариус на 2014-2019 годы продолжается деятельность по совершенствованию координации и...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «СЕВЕРО-КАВКАЗСКАЯ ГОСУДАРСТВЕННАЯ ГУМАНИТАРНО-ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ» ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Направление подготовки: 190600.62 Эксплуатация транспортно-технологических машин и комплексов Профиль подготовки / специализация: «Автомобили и автомобильное хозяйство» Квалификация (степень) выпускника: бакалавр...»







 
2016 www.programma.x-pdf.ru - «Бесплатная электронная библиотека - Учебные, рабочие программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.