помогите с дикм

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
bicks
Сообщения: 4
Зарегистрирован: 22 ноя 2013, 00:00

народ помогите
нужно написать курсач ,на тему дифференциально импульсная кодовая модуляция...
теорию написал)
А с реализацией программы проблемы ( точнее ,вообще не представляю как её написать и инфу не могу найти ) подскажите , может пример программы или инфу какую небудь ( прога на C++)
всем спасибо )
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

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

Если сам.
Сначала реши, что программа должна получать на вход и что выдавать. Начинай программировать и задавай конкретные вопросы: "У меня не получается сделать это", "Написал вот так, а оно работает не так, как хотелось", и так. далее. И всё сопроводжай кусками кода, чтобы можно было разобраться, что именно не так и помочь.

На заказ.
В этом случае я перенесу тему в "Работа".
Готовь требования к программе. Готовь все формулы. Также готовь деньги, так как бесплатно никто подобную работу делать не станет - это не программа, которая 2 + 2 считает.

Третьего варианта нет.
bicks
Сообщения: 4
Зарегистрирован: 22 ноя 2013, 00:00

есть код ADPCMDecoder
почему не запускает

Код: Выделить всё

const int IndexTable[16] = {
    0xff, 0xff, 0xff, 0xff, 2, 4, 6, 8,
    0xff, 0xff, 0xff, 0xff, 2, 4, 6, 8
};
            const long StepSizeTable[89] = {
    7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
    19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
    50, 55, 60, 66, 73, 80, 88, 97, 107, 118,
    130, 143, 157, 173, 190, 209, 230, 253, 279, 307,
    337, 371, 408, 449, 494, 544, 598, 658, 724, 796,
    876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066,
    2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358,
    5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899,
    15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
};
            long step;                      
signed long predsample;         
signed long diffq;              
int index;                      
            signed long ADPCMDecoder(char code )
{
                predsample = state.prevsample;
index = state.previndex;
    
    step = StepSizeTable[index];
                diffq = step >> 3;
if( code & 4 )
diffq += step;
if( code & 2 )
diffq += step >> 1;
if( code & 1 )
diffq += step >> 2;
                if( code & 8 )
predsample -= diffq;
else
predsample += diffq;
                if( predsample > 32767 )
predsample = 32767;
else if( predsample < -32768 )
predsample = -32768;
                index += IndexTable[ code ];
                if( index < 0 )
index = 0;
if( index > 88 )
index = 88;
                state.prevsample = predsample;
state.previndex = index;
                return( predsample );
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Что именно код должен запускать?

Из того, что сразу бросается в глаза при просмотре текста программы - в нём отсутствует точка входа main. Может в этом дело?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
bicks
Сообщения: 4
Зарегистрирован: 22 ноя 2013, 00:00

может честно говоря я вообще не знаю как программировать в этой теме и что делать
а код я нашел в yahoo
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Для того, чтобы понимать, как должна работать твоя программа (а именно, что она должна получать на вход и что давать на выход), уметь программировать вовсе не обязательно. Предлагаю тебе начать именно с этого, так как иначе не понятно, какой код писать. Так же предлагаю тебе решить сам ты пишешь (с нашей помощью) или, чтобы тебе написали программу на заказ. Но в любом случае ты должен выдвинуть требования к программе. Никто не может сделать работу, если заказчик не сказал, что он хочет получить в результате.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить