2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ошибка вывода данных в файл
Сообщение24.10.2013, 09:13 
Помогите найти ошибку. Есть программа, которая выводит массив f из р=53 строк. В первой колонке х - целые числа от -26 до 26, во второй некоторые данные у(х) (приближенно у(х)-кубическая парабола). В третьей - результат аппроксимации полиномом третьей степени. Создается файл "D:\\new.txt", но в него записывается нечто странное:
-26 2.42703e+200
-6.27744e+066 2.42703e+200
-6.27744e+066 2.42703e+200
...
и так все 53 строки.

Вывод в блокнот:

Код:
  ofstream fout;
  fout.open("D:\\new.txt");
    for(int k=0;k<p;k++)
     fout<<f[k][0]<<"\t"<<f[k][2]<<"\n";
  fout.close();


Остальные фрагменты, где что-либо записывалось в f:

Код:
                ifstream in;
      in.open("D:\\FFF.txt");
      for (i=0;i<p;i++)
         for(j=0;j<2;j++)
            in>>f[i][j];
      in.close ();


Код:
//построение 3-го столбца таблицы f
   for (i=0;i<p;i++)
   {
      f[i][2]=0;
      for(j=0;j<n;j++)
         f[i][2]+=Ak[j]*pow(f[i][0],j);
   }

 
 
 
 Re: Ошибка вывода данных в файл
Сообщение24.10.2013, 09:36 
Аватара пользователя
По-моему, у Вас в файл и выводится по программе ровно два столбца. А на этапе ввода данных что-то поехало. Первое число ввелось правильно, а потом увы. Бывает. Я бы с помощью промежуточного вывода сначала проконтролировал правильность ввода, потом вывода с фиктивной (например, нулевой) аппроксимацией, а уж потом стал проверять сам метод аппроксимации.

Правило: интерфейс вначале. Некоторые предпочитают вначале отладить математику, но вот часто не получается.

 
 
 
 Re: Ошибка вывода данных в файл
Сообщение24.10.2013, 11:03 
Код:
//объявление динамического массива p на 3: 1 столбец х, 2 столбец у, 3 столбец для аппроксимации полиномом
      double**f=new double*[p];
      for(i=0; i<p;i++) 
         f[i]=new double[3];

 
 
 
 Re: Ошибка вывода данных в файл
Сообщение24.10.2013, 15:14 
Аватара пользователя
Никто не пишет.
Я, если честно, по вашему не понимаю, в смысле синтаксиса, чем написано, но вижу, что выводятся в файл первый и третий столбецы. Причём первый столбец не меняется после ввода, но в нём совсем не то, за исключением первой строки. Надо проверять ввод и вывод.

 
 
 
 Re: Ошибка вывода данных в файл
Сообщение26.10.2013, 23:26 
Аватара пользователя
Лучше объявить структуру
Используется синтаксис C++
struct ApprRecod
{
   double arg, func, appr;   //аргумент, значение функции, аппроксимация (соответственно)
};

int record_count = 53;
ApprRecord *Table = new ApprRecord[record_count];
//и так далее

 
 
 
 Re: Ошибка вывода данных в файл
Сообщение27.10.2013, 00:34 
Alhimik в сообщении #780580 писал(а):
Код:
int record_count = 53;
ApprRecord *Table = new ApprRecord[record_count];

Код:
const int record_count = 53;
std::vector<ApprRecord> table(record_count);

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group