Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с программой 
:(
    Опции темы
harold
Дата 15.12.2010, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.12.2010

Репутация: нет
Всего: нет



Это программа для ADAM-5510, система мониторинга температуры  на основе 8-канального микропроцессорного модуля ADAM-5017.
Я закомментировал те места, где необходим реальный ADAM-5510

Tab[2][21] - это таблица соответствий значения кода АЦП температуре.
Нужно, чтобы программа брала из этой таблицы значения и выдавала температуру (например, при поступлении кода 28573 должна высветиться температура -50 градусов)
А если кода нет в таблице, то значение должно рассчитываться с помощью двух ближайших табличных значений (например, код 22500. 22937-22020=917. 917 разделим на 10 градусов. Получим 91.7. 22500-22020=480. 480/91.7=5.2. Так 22020 соответствует 20 градусам, то 22500 будет соответствовать 25.2 градуса.)

Код
#include <conio.h>
#include <5510drv.h>
int *T0,*T1,*T2,*T3,*T4,*T5,*T6,*T7, i, Ntab;
float T0gr,T1gr,T2gr,T3gr,T4gr,T5gr,T6gr,T7gr;
long int Delay;
unsigned char IOModuleName;
unsigned char SlotNumber;

//float Convert(int T)
float Tab[2][21]={
{28573, 27656, 26607, 25690, 24772, 23855, 22937, 22020, 21233, 20447, 19529, 18874, 18088, 17432, 16646, 15991, 15466, 14811, 14287, 13893, 13500},
{-50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150}
         };
  for(i=0;i<Ntab;i++)
      {if(Tab[i,1]>T0)
break;

main()
{
 SlotNumber=0;
 IOModuleName=0x04;  //Get_BoardID(SlotNumber);
 if(IOModuleName!=ADAM5017_ID)
 {
  printf("\nProverte slot");
  exit(1);
 }
 else{
  printf("\n Inicializaciya ADAM-5017");
  //Init501718(0);
     }

 // while(1)
  {
   //Get501718(0,0,T0); T0gr=Convert(T0);
   //Get501718(0,1,T1); T1gr=Convert(T1);
   //Get501718(0,2,T2); T2gr=Convert(T2);
   //Get501718(0,3,T3); T3gr=Convert(T3);
   //Get501718(0,4,T4); T4gr=Convert(T4);
   //Get501718(0,5,T5); T5gr=Convert(T5);
   //Get501718(0,6,T6); T6gr=Convert(T6);
   //Get501718(0,7,T7); T7gr=Convert(T7);
   printf("\n Temperatura gradusov=%5.1f %5.1f %5.1f %5.1f %5.1f %5.1f %5.1f %5.1f",T0gr,T1gr,T2gr,T3gr,T4gr,T5gr,T6gr,T7gr);
   for(Delay=100000; Delay>0; Delay--);
  }
 }
 return (0);
}


Пожалуйста, помогите с программой.
ОЧЕНЬ НУЖНА ПОМОЩЬ!!!


Модератор: Не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 15.12.2010, 14:19
PM MAIL   Вверх
Игорь1024
Дата 15.12.2010, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 11.5.2009
Где: Дальний Восток

Репутация: нет
Всего: нет



Код

if(Tab[i,1]//так кажется нельзя


А вообще сути проблемы не понял.
Найти значение по табличке?

Добавлено @ 11:37
И вообще то есть тег для кода.

Может выглядеть как то так:

Код

void Get_Temp()
{
   int t;
   for(;;)
 {
   cout<<"Type value";
   cin>>t;
   Get_Value(&t);
  }
}


int Get_Value(int *t)
{
for(int i=0;i<ARRAY_SIZE;i++)//сколько там элементов в массиве...
 {
  if(List[i][1]==*t)cout<<"t= "<<*t;
 }
}



Остальное сами допишите- (объявления массивов, констант)...

ИМХО лучше map<key,value> использовать.


Это сообщение отредактировал(а) Игорь1024 - 15.12.2010, 11:39
--------------------
The God is real,unless he is declared as integer.
PM MAIL   Вверх
bsa
Дата 15.12.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Игорь1024 @  15.12.2010,  12:31 Найти цитируемый пост)
ИМХО лучше map<key,value> использовать.

тут не подойдет. надо использовать двоичный поиск - lower_bound.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.