Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 09.03.2017, 11:03  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию Как можно инициализировать массив констант в цикле?

Как можно инициализировать массив констант в цикле?

Если бы это был массив переменных то тут все понятно.
Но мне надо константы из за того что они не используют оперативную память и изменять их не планируется.

Нужно создать массив констант, каждый элемент массива рассчитывается по формуле и было бы удобно не расписывать каждый элемент массива в ручную а использовать цыкал.
Это возможно на Си?
Как это можно сделать?

Расчет этих данных будет производится очень часто, вычислять эти значения не посредственно перед использованием, сильно замедлит исполнение программы. Поэтому предварительно рассчитанные данные я решил поместить в массив. И использовать уже рассчитанные числа.
Реклама:
JonRembo вне форума  
Непрочитано 09.03.2017, 11:16  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

А чем таки отличаются константы и переменные в Вашем понимании?
По описанию - ничем.
Варианты:
- расчёт на фазе инициализации, используется при зависимости от некоторых условий (температура, напряжение питания, данные с датчиков, калибровка,…);
- расчёт отдельной программой до компиляции и использование полученного в готовом изделии как статического массива;
- комбинация из вышеприведенного для оптимизации объёма вычислений.

Собственно немного больше подробностей могут помочь дать более конкретный ответ. Пока возможны только общие соображения.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 09.03.2017, 11:17  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Подобные массивы создаю в отдельном файле и просто подключаю его.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 09.03.2017, 11:59  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию 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() это не аппаратная функция и на нее нужно затрачивать ресурсы процессора.
JonRembo вне форума  
Непрочитано 09.03.2017, 12:29  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от JonRembo Посмотреть сообщение
Но его нужно сначала написать.
Для этого - большой брат и Builder. Константы вывожу в текстовый файл, а потом этот файл маленько допиливаю.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 09.03.2017, 12:37  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от akegor Посмотреть сообщение
Для этого - большой брат и Builder.
Это что такое, ссылку можно?
JonRembo вне форума  
Непрочитано 09.03.2017, 12:45  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,506
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Константы нельзя инициализовывать методом расчетов в цикле. Тогда это уже переменаая будет.
Таблицу синусов (или косинусов) просто ищем в инете или считаем на калькуляторе. 50 значений - это не много. Полчаса работы максимум.
NewWriter вне форума  
Непрочитано 09.03.2017, 12:51  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от NewWriter Посмотреть сообщение
просто ищем в инете или считаем на калькуляторе. 50 значений - это не много. Полчаса работы максимум.
Все таки хотелось автоматизировать этот процесс.
JonRembo вне форума  
Непрочитано 09.03.2017, 12:58  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от JonRembo Посмотреть сообщение
Это что такое
Обыкновенный писюк (PC). И своя маленькая программка под задачу.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 09.03.2017, 13:12  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Пишется на любом языке генератор значений по нужной формуле и выводится в виде исходного текста в отдельный файл. Файл подключается в проект. И в момент выполнения все уже есть.
Стандартная собственно практика.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
Gerbicid (17.04.2017)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Обзоры покупок товаров на GEARBEST.COM mikesmith Барахолка электронных компонентов 397 12.10.2018 22:51
Ностальжи по школе... Ar-Gen-Tum Отвлекитесь, эмбеддеры! 141 27.02.2015 16:10
Размещение констант в памяти программ в PIC ST_Senya Микроконтроллеры, АЦП, память и т.д 10 15.10.2009 20:12


Часовой пояс GMT +4, время: 09:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot