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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> error C2660, ошибка 
:(
    Опции темы
Unlock
Дата 1.11.2004, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот проблема

Код
double iterpol(float tv, double interpol[14])
{    
  static float temp[14]={-140,-120,-100,-80,-60,-40,-20,-10,0,10,20,30,40,50};
  int i=0;
  static double k=0;
  static double inter;
  static int stop=0;
  do
  {
     if(tv>=temp[i])
     {
        k=(tv-temp[i])/(temp[i+1]-temp[i]);
        inter=(interpol[i]-interpol[i+1])*k+interpol[i];
     stop=1;
     i++;
     }
     else
     {
     //вписать сообщение об ошибке, если не соответсвует температура диапазону температур.
     };
  }
  while(stop=1);
return inter;
}

int _tmain(int argc, _TCHAR* argv[])
{   float tv=10;
  double pr,vl,pl,te,tp,kv,kdif;
  double interpol[14];
   
  //Ввод табличных данных.
  double pran[14]={0.78,0.763,0.759,0.749,0.74,0.73,0.721,0.717,0.713,0.706,0.705,0.705,0.706,0.728};
     
  //Запуск функции iterpol для интерполяционного расчета данных.
  interpol[14]=pran[14];
  pr=iterpol();


Выдает ошибку...
error C2660: 'iterpol' : function does not take 0 arguments
как вылечить

PM MAIL   Вверх
Step
Дата 1.11.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



передать ей параметры..., причем два параметра
Добавлено @ 19:11
она должна получить два парметра для своей работы


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Unlock
Дата 1.11.2004, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Step очень нужно... посмотри код... где что не так?
Укажи ошибку... программа- крайний срок завтра...
Help me///

Это сообщение отредактировал(а) Unlock - 1.11.2004, 19:21
PM MAIL   Вверх
Step
Дата 1.11.2004, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Цитата(Unlock @ 1.11.2004, 18:58)

pr=iterpol();

вот тут,

pr=iterpol(); надо передать два параметра, первый флоат(как я понимаю граничное значение), а второй на сколько я понял сам масив



ты вообще задачу опиши


и в коде есть логические ошибки цикл может не закончиться


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Unlock
Дата 1.11.2004, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть однострочный массив(температура), есть другой массив(Коэфициент), зависящий от темературы...
Проблема: Значение температуры попадает между данными значениями в массиве, приложение должно выбрать коэфициент, в соответствии с этим положением темературы.
Т.е. интерполяция... А в чем цикл не закончен?

Тут кстати ошибка i++; я перенес в конец do{}
PM MAIL   Вверх
Step
Дата 1.11.2004, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



поставь

((stop==1)| (і==14)



--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Unlock
Дата 1.11.2004, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код
#include "stdafx.h"
#include <iostream>
using namespace std;

double iterpol(float tv, double interpol[14])
{  
static float temp[14]={-140,-120,-100,-80,-60,-40,-20,-10,0,10,20,30,40,50};
int i=0;
static double k=1;
static double inter;
static int stop=0;
do
{
 if(tv>=temp[i])
 {
 
  k=(tv-temp[i])/(temp[i+1]-temp[i]);
  inter=(interpol[i]-interpol[i+1])*k+interpol[i];
 stop=1;
 }
 else
 {
 //вписать сообщение об ошибке, если не соответсвует температура диапазону температур.
 };
 i++;
}
while((stop==1)||(i==13));
return inter;
}

int _tmain(int argc, _TCHAR* argv[])
{ float tv=10;
double pr,vl,pl,te,tp,kv,kdif;
double interpol[14];

//Ввод табличных данных.
double pran[14]={0.78,0.763,0.759,0.749,0.74,0.73,0.721,0.717,0.713,0.706,0.705,0.705,0.706,0.728};
double vlagosod[14]={1.9E-13,8E-11,8E-9,2.5E-7,5.4E-6,8E-5,8E-4,1.63E-3,3.85E-3,7.4E-3,15E-3,27.8E-3,50E-3,88.4E-3};
double plotnost[14]={2.52,2.18,1.94,1.73,1.58,1.44,1.33,1.27,1.22,1.18,1.13,1.08,1.04,0.998};
double teploemkost[14]={1.01E+3,1.01E+3,1.01E+3,1.01E+3,1.005E+3,1.005E+3,1.005E+3,1.005E+3,1.005E+3,0.01E+3,1.013E+3,1.04E+3,1.06E+3,1.1E+3};
double teploprovodnost[14]={0.0114,0.0132,0.0149,0.0166,0.0186,0.0209,0.0228,0.0236,0.0244,0.0251,0.0257,0.0265,0.0270,0.0272};
double kinvyazkost[14]={3.5E-6,4.54E-6,5.8E-6,7.05E-6,8.7E-6,10.6E-6,12.5E-6,13.2E-6,14.2E-6,14.9E-6,15.9E-6,16.6E-6,17.2E-6,18E-6};
double ktdifuzii[14]={6E-6,7.8E-6,9.8E-6,12E-6,14E-6,16.5E-6,19.3E-6,20.8E-6,22.1E-6,23.8E-6,25.4E-6,27E-6,28.6E-6,30.2E-6};

//Запуск функции iterpol для интерполяционного расчета данных.
interpol[14]=pran[14];
pr=iterpol();                          //Ошибка

interpol[14]=vlagosod[14];
vl=iterpol();                           //Ошибка

interpol[14]=plotnost[14];
pl=iterpol();                              //Ошибка

interpol[14]=teploemkost[14];
te=iterpol();                          //Ошибка

interpol[14]=teploprovodnost[14];
tp=iterpol();                            //Ошибка

interpol[14]=kinvyazkost[14];
kv=iterpol();                            //Ошибка

interpol[14]=ktdifuzii[14];
kdif=iterpol();                          //Ошибка


return 0;
}


не понимаю... чего ей надо...

Это сообщение отредактировал(а) Unlock - 1.11.2004, 19:43
PM MAIL   Вверх
Step
Дата 1.11.2004, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



должно быть вот так например
te=iterpol(5.23,іterpol) как так, но в скобках должны быть параметры
Добавлено @ 19:47
и равно не 13 а 14 у тебя 14 элементов


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Unlock
Дата 1.11.2004, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уф, спасибо... помогло
А элеметов у меня и так 14, в массивах С++ есть ещё такой элемент нулевой.
Вот и получилось 0,1,2,3...14...
Спасибо ещё раз теперь со своими косяками разбираться буду....
PM MAIL   Вверх
Step
Дата 2.11.2004, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Unlock, у вас в массиве нету 14 элемента у вас есть от 0 до 13 поэтому условия выхода должны быть когда и равно 14 или больше 13....

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


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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