Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Амплитуда, диапозон чисел |
Автор: SABROG 6.3.2007, 14:04 | ||
Хочу получать в цикле значения например от 0 до 100 и чтобы функция синуса возвращала в таком порядке: 0 1 2 ... 98 99 100 99 98 ... 0 1 2 ... 100 Или диапозон -10 ... +10 -10 -9 -8 ... 0 1 2 ... 10 9 8 ... 1 0 -1 ... -10 А также хочу иметь возможность указать границы типа 65-95 Например чтобы получить диапозон 0-255 подобрал эмпирически значения 127,128. Но часто получаю например десять нулейт, потом десять единиц, три двойки и т.п. Видимо результат округления. Хочу четкий шаг в 1.
|
Автор: aldari 6.3.2007, 15:47 |
Хочешь четкий шаг в единицу -- никогда не используй числа с плавающей точкой. |
Автор: Earnest 6.3.2007, 21:03 |
Четкий шаг в единицу? Это чтобы каждый следующий результат (a) отличался от предыдущего ровно на единицу? С помощью синуса? Наверное, я чего-то не понимаю... Зачем тебе синус-то? |
Автор: SABROG 6.3.2007, 22:09 | ||||
Сам не знаю. Думал это хороший способ генерирования циклических последовательностей кроме этого:
|
Автор: Earnest 7.3.2007, 09:26 |
А чем тебя простые циклы не устраивают? Нужно в виде функции написать что ли? |
Автор: SABROG 7.3.2007, 10:19 | ||
Я написал для проверки этот код:
Как результат получаю в двух Labelaх значения: 94 и 1234 Т.е. первый код работает в 13 раз быстрее. |
Автор: Earnest 9.3.2007, 10:49 |
Самому-то ничего странным не показалось? Синус, видишь ли, у него работает быстрее чем ничего. У тебя второй код содержит вложенные циклы, соответственно общее число итераций умножается на 256*2. Ты бы хоть подумал сколько периодов каждый код тебе генерирует. |
Автор: SABROG 9.3.2007, 13:43 |
С математикой у меня всегда были проблемы, потому и спрашиваю про синусы ![]() Ну раз не судьба, значит не судьба. Будем использовать старые добрые циклы, спасибо за участие. |