Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 097
от 27.02.2003, 18:40

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 160
Отправлено ответов: 488
Активность: 305 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ayl
Статус: Профессиональный
Общий рейтинг: 118.55
[Подробней >>]
Tancho
Статус: Доверительный
Общий рейтинг: 144.68
[Подробней >>]
Ace
Статус: Доверительный
Общий рейтинг: 137.83
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 158. Здравствуйте Эксперты. Если у кого есть доки по рекурсии на Pascal-е для начинающих киньте пожалуйст... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 158

Здравствуйте Эксперты.
Если у кого есть доки по рекурсии на Pascal-е для начинающих
киньте пожалуйсто. И еще такой вопрос как сделать что бы в
моей проге играл музыкальный файл (*.wav и т.д).



Вопрос отправлен: 24.02.2003, 18:32
Отправитель: Ilu (ilua_m@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает --- Нет данных ---

Добрый день, Ilu!
Насчет рекурсии:
Насколько я знаю, рукурсия бывает активной и пассивной.
Пассивная - это когда в теле одной ф-ции(1-ой) содержится тело другой ф-ции(2-ой). И соответственно
2-ая ф-ция доступна только из 1-ой ф-ции.
Ну а активная - это когда ф-ция вызывает сама себя. При этом, существует ещё глубина рекурсии, по-моему это
максимальное количество таких вызовов. Рекурсию следует использовать осторожно.
Надо следить за её глубиной и вовремя её останавливать.
Проигрование муз. файлов:
Если под windows, то попробуй ф-цию PlaySound, вот её описание:
function PlaySound(pszSound: PChar; hmod: HMODULE; fdwSound: DWORD): BOOL;
Функция проигрывает звуковой файл, ресурс, или системное событие. ( Системное
событие может быть связано со звуком в реестре или в файле WIN.INI.)
Параметры:
pszSound: Строка определяющая путь к звуковому файлу для проигрывания. Если этот
параметр равен nil(ноль), то любое проигрывание waveform-аудио будет прекращено.
Для того чтобы приостанавливать не waveform-аудио, установите флаг SND_PURGE в
параметре fdwSound.
Флаги SND_ALIAS, SND_FILENAME, и SND_RESOURCE в fdwSound интерпретируются как
псевдонимы для системного события, имени файла, или идентификатора ресурса.
Функция ищет ассоциацию с системным событием или идентификатором ресурса в
реестре или файле WIN.INI. Если ассоциация обнаружена, то событие проигрывается,
если нет, то имя интерпретируется как имя файла.
hmod: Хендл выполняемого файла, который содержит ресурс со звуком для
проигрывания. Этот параметр должен быть nil(ноль) если флаг SND_RESOURCE не
установлен в fdwSound.
fdwSound: Флаги определяющие проигрывание звука.
SND_APPLICATION - Звк проигрывается использую ассоциацию с приложением.
SND_ALIAS - Параметр pszSound является псевдонимом системного события в реестре
или файле WIN.INI. Не используйте этот флаг с флагами SND_FILENAME или
SND_RESOURCE.
SND_ALIAS_ID - Параметр pszSound является идентификатором встроенного ресурса.
SND_ASYNC - Звук проигрывается асинхронно и возварат из PlaySound происходит
сразу после начала проигрывания. Для того чтобы завершить асинхронный
waveform-аудио звук необходимо вызвать PlaySound с pszSound равным nil(ноль).
SND_FILENAME - Параметр pszSound является именем файла. Файл должен быть формата
Wave(*.wav).
SND_LOOP - Будет проигрывать звук многократно(закольцованно), пока PlaySound не
будет вызван с параметром pszSound установленным в nil(ноль). Также необходимо
установить флаг SND_ASYNC для большей надежности.
SND_MEMORY - Файл события загружен в память(RAM). Параметр pszSound должен
содержать указатель на образ звука в памяти.
SND_NODEFAULT - Используется событие не по умолчанию. Если звук не обнаружен
PlaySound ничего не проигрывает.
SND_NOSTOP - Событие будет проиграно сразу после проигрывания уже играющего
события.
SND_NOWAIT - Если драйвер занят, то функция возвращается не проигрывая звук.
SND_PURGE - Звки буду остановлены для вызывающей задачи. Если pszSound не nil то
все звки задачи будут остановлены. Вы должны установить хендл владельца чтобы
остановить событие SND_RESOURCE.
SND_RESOURCE - Параметр pszSound является идентификатором ресурса; hmod должно
идентифицировать владельца, который содержит ресурс.
SND_SYNC - Синхронное воспроизведение звука. PlaySound возвращается после того
как звук будет проигран.
Возвращаемые значения
True если успешно и false в противном случае.
Замечания
Звук указанный в pszSound должен быть установлен в доступную физическую память и
формат должен поддерфивать драйвером waveform-аудио устройства. PlaySound
смотрит в следующих папках: текущая, папка Windows, системная папка Windows,
папки указанные в переменных среды, и список папок в сети.
Если функция не может найти звук, то использует встроенный звук взамен. Если не
может обнаружить ничего взамен, то ничего не играет и возвращает false.
Функция находится в файле winmm.dll
А если под ДОС, то нужно искать документацию.

Ответ отправлен: 25.02.2003, 13:35
Отправитель: --- Нет данных ---


Отвечает Ayl

Здравствуйте, Ilu!
А что тебя в рекурсии интересует? Какие-такие доки? Ты просто в своей процедуре вызываешь ее же. И все. Вот тебе и рекурсия. Пример рекурсивной процедуры см. в Приложении.

Приложение:

Ответ отправлен: 25.02.2003, 12:56
Отправитель: Ayl


Отвечает Tancho

Здравствуйте, Ilu!
1)Рекурсия это фундаментальное понятие ряд математических
дисциплин(математическая логика,теория множеств и т.д.).
Это тоже одну из самых мощных инструментов современного
програмирования.Слова рекирсия это возврат - от латынского
recursus.Рекурсия саммый ефективный сбособ строения
алгоритмов обработка структур данных, такие как динамичные
списки, дерьев, граффом и т.д.Одну из важным применнеии
рекурсии это метод поиска с возвратом(Engl. BackTracking).
Есть узкая связь методом рекурсии и итерации.Проги которые
я тебе шлю рассматрывают паралелно этих двух методов.
Вместе с этом с рекурсии надо быть внимательным, так как
эта самый реальный способ переполнить стек;
2) Если ты говоришь о прогу под MS DOS я не уверен что
у тебя играл бы музикальный файл.
В приложение два из саммых популярных примеров рекурсии,
которые мне кажеться стали класики.


Приложение:

Ответ отправлен: 26.02.2003, 13:05
Отправитель: Tancho


Отвечает Ace

Здравствуйте, Ilu!
В сети куча информации об использовании музыки в своих программах. Можешь поискать MOD, S3M, MID, WAV, HSC.

Ответ отправлен: 26.02.2003, 20:13
Отправитель: Ace



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (33)
C / C++ (25)
Perl (3)
Delphi (17)
Pascal (21)
Basic / VBA (11)
Java / JavaScript (8)
PHP (5)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (25)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (11)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (4)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное