Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2018, 11:25   #1
Ananas_makedon
Новичок
Джуниор
 
Регистрация: 12.03.2018
Сообщений: 1
По умолчанию Как сделать округление чисел, до заданных значений

Доброго времени суток. Есть программа, которая считывает настуканный ритм, записывает длину тишины между стуками в мсек в массив Data, потом происходит преобразование тишины в интервалы (условно говоря, находится меньший интервал (переменная SrArf), и каждая "тишина" преобразуется в кол-во этих интервалов), интервалы записываются в массив таким образом :

for (size_t i = 0; i < len; i++)
{
Rezult[i] = int(round(float(Data[i]) / SrArf));
}

Проблема в том, что значение в Rezult должны быть из ряда 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64 (степень двойки и полуторные значения). Не могли бы вы толкнуть в правильное направление как можно это правильно реализовать?

Последний раз редактировалось Ananas_makedon; 26.03.2018 в 11:34.
Ananas_makedon вне форума Ответить с цитированием
Старый 26.03.2018, 14:11   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Не могли бы вы толкнуть в правильное направление как можно это правильно реализовать?
двоичное представление числа
000..0100..0 (1,2,4,8,16,32,48,64,...) степени двойки (ровно одна единица)
00..01100..0 ( 3,6,12,24,48, ...) "полуторные" значения (ровно две соседних единицы)
2**n + 2**(n-1) интервал +полуинтервал

1, 2*2**(n-1), 3*2**(n-1) при n=1...32(64)
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.03.2018 в 14:15.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среди заданных чисел найти отрицательные и вывести на экран модули этих чисел reapple Общие вопросы Delphi 4 20.04.2015 11:47
Округление значений в Memo .FROST. Общие вопросы Delphi 5 11.06.2014 12:10
Составить схему алгоритма и программу для вычисления значений функций Y и F для заданных значений Иван Олегович Паскаль, Turbo Pascal, PascalABC.NET 11 04.12.2013 08:49
Округление чисел, как от него отказаться zzz007 Microsoft Office Excel 5 27.07.2009 09:04
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53