char FMT[14];
int Stereo;
unsigned long Fd;
unsigned long SpeedRead;
int SpeedDegree;
int BitsPerPoint;
char FACT[18];
unsigned long DataSize;
} H;
где
FileSize - Размер файла минус 8;
Stereo - 1=моно 2=стерео;
Fd - частота дискретизации: 8000, 11025, 22050 или 44100 герц;
BitsPerPoint - разрядность данных в битах : 8 или 16;
SpeedRead - скорость считывания = частота дискретизации * стерео * разрядность в байтах (не битах);
SpeedDegree - множитель скорости = стерео * разрядность в байтах;
DataSize - размер данных = скорость считывания * время воспроизведения.
Далее следуют байты данных. В случае стерео — отсчет левого, отсчет правого.
Задание: написать программу, позволяющую генерировать файл с записью звука по задаваемым пользователем характеристикам:
- количество гармоник (синусоидальных составляющих)
- частоты гармоник
- огибающие гармоник (функция изменения амплитуды гармоники во времени)
- продолжительность звучания
- стерео/моно.
12 |
||||||||||||
11 |
||||||||||||
10 |
||||||||||||
9 |
||||||||||||
8 |
||||||||||||
7 |
||||||||||||
6 |
||||||||||||
5 |
||||||||||||
4 |
||||||||||||
3 |
||||||||||||
2 |
||||||||||||
1 |
||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|||||
Номер столбца: __ |
||||||||||||
"Стакан", глубиной 12 строк и шириной 8 столбцов заполняется падающими тройками кубиков разных цветов. Номер столбца, куда следует ронять тройку, вводится по запросу. После опускания новой тройки производится сканирование содержимого "стакана" на выявление "триад" - подряд трех кубиков с одинаковым цветом по горизонтали, вертикали или диагонали. Обнаруженная триада удаляется, и все, что было сверху нее опускается на свободное место. После этого производится повторная проверка на образование новых триад, и так до тех пор, пока триад не останется. Программа останавливается когда новая тройка не влазит в стакан.
Словесное описание алгоритма.
1. Инициализация (обнуление "стакана")
2. Генерация новой тройки
3. Вывод изображения "стакана" и новой "тройки"
4. Запрос номера столбца
5. "Опускание" тройки -> останов при переполнении
6. Вывод изображения "стакана" и новой "тройки"
7. Поиск триад
8. Вывод изображения при удалении каждого кубика
9. Повтор поиска триад, если было удаление.
10.Повтор с п2.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.