09.03.2017, 11:03
|
|
Частый гость
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Как можно инициализировать массив констант в цикле?
Как можно инициализировать массив констант в цикле?
Если бы это был массив переменных то тут все понятно.
Но мне надо константы из за того что они не используют оперативную память и изменять их не планируется.
Нужно создать массив констант, каждый элемент массива рассчитывается по формуле и было бы удобно не расписывать каждый элемент массива в ручную а использовать цыкал.
Это возможно на Си?
Как это можно сделать?
Расчет этих данных будет производится очень часто, вычислять эти значения не посредственно перед использованием, сильно замедлит исполнение программы. Поэтому предварительно рассчитанные данные я решил поместить в массив. И использовать уже рассчитанные числа.
|
|
|
|
09.03.2017, 11:16
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
А чем таки отличаются константы и переменные в Вашем понимании?
По описанию - ничем.
Варианты:
- расчёт на фазе инициализации, используется при зависимости от некоторых условий (температура, напряжение питания, данные с датчиков, калибровка,…);
- расчёт отдельной программой до компиляции и использование полученного в готовом изделии как статического массива;
- комбинация из вышеприведенного для оптимизации объёма вычислений.
Собственно немного больше подробностей могут помочь дать более конкретный ответ. Пока возможны только общие соображения.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
09.03.2017, 11:17
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Подобные массивы создаю в отдельном файле и просто подключаю его.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.03.2017, 11:59
|
|
Частый гость
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Сообщение от akegor
|
Подобные массивы создаю в отдельном файле и просто подключаю его.
|
Подключать файл это хорошо.
Но его нужно сначала написать.
В случае не константного массива это бы выглядело так
[HTML]
int cosi[50];
int i = 0;
for(; i ‹ 50; i++)
{
cosi[i] = (100*cos(i*1. );
}
[/HTML]
Но как только появляется const это становится невозможным.
Сообщение от mike-y-k
|
А чем таки отличаются константы и переменные в Вашем понимании?
По описанию - ничем.
|
Из за того что у нас изменяется в формуле только i то в каждой ячейке памяти соответствующей i будет всегда одно и тоже число. То есть const.
Формула вроде не сложная но cos() это не аппаратная функция и на нее нужно затрачивать ресурсы процессора.
|
|
|
|
09.03.2017, 12:29
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Сообщение от JonRembo
|
Но его нужно сначала написать.
|
Для этого - большой брат и Builder. Константы вывожу в текстовый файл, а потом этот файл маленько допиливаю.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.03.2017, 12:37
|
|
Частый гость
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Сообщение от akegor
|
Для этого - большой брат и Builder.
|
Это что такое, ссылку можно?
|
|
|
|
09.03.2017, 12:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,506
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Константы нельзя инициализовывать методом расчетов в цикле. Тогда это уже переменаая будет.
Таблицу синусов (или косинусов) просто ищем в инете или считаем на калькуляторе. 50 значений - это не много. Полчаса работы максимум.
|
|
|
|
09.03.2017, 12:51
|
|
Частый гость
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Сообщение от NewWriter
|
просто ищем в инете или считаем на калькуляторе. 50 значений - это не много. Полчаса работы максимум.
|
Все таки хотелось автоматизировать этот процесс.
|
|
|
|
09.03.2017, 12:58
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Сообщение от JonRembo
|
Это что такое
|
Обыкновенный писюк (PC). И своя маленькая программка под задачу.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.03.2017, 13:12
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Как можно инициализировать массив констант в цикле?
Пишется на любом языке генератор значений по нужной формуле и выводится в виде исходного текста в отдельный файл. Файл подключается в проект. И в момент выполнения все уже есть.
Стандартная собственно практика.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
Сказали "Спасибо" mike-y-k
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:13.
|
|