Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2010, 15:21   #1
молька
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 2
По умолчанию

В программе в основной функции задаются параметры массивов (значения функции х и у), Почему то на этих строках показывает ошибку - компилятор меня не понимает((...подскажите в чем ошибка

Код:
#include <iostream>
#include <stdio.h>
#include <process.h>
#include <math.h>
#include <stdlib.h>

using namespace std;
float *a,*b,**sums,*x,*y;
int N,K;         //N число заданных точек.К - степень апроксимирующего полинома К<=N


void allomatrix() // память для матрицы
   {
       int i,j,k;
       a=new float[K+1];
       b=new float[K+1];
       x=new float[N];
       y=new float[N];
       sums=new float*[K+1];
       if(x==NULL||y==NULL||a==NULL||sums==NULL)
       {
           cout<<"\nnot.N=%d,K=%d\n"<<N<<K;
           exit(-1);
       }
       for(i=0;i<K+1;i++)
       {
           sums[i]=new float[K+1];
           if(sums[i]==NULL)
           {
               cout<<"\nnot.\n"<<K+1;
           }
       }
       for(i=0;i<K+1;i++)
       {
           a[i]=0;
           b[i]=0;
           for(j=0;j<K+1;j++)
           {
               sums[i][j]=0;
           }
       }
       for(k=0;k<N;k++)
       {
           x[k]=0;
           y[k]=0;
       }

   }

void matrix()
{
   int i=0,j=0,k=0;
   for (k=0;k<N;k++)
   {
       cout<<"\n%f"<<x[k];
       cout<<"\n%f"<<y[k];
   }
   for(i=0;i<K+1;i++) // расчет сумм многочлена
   {
         for(j=0;j<K+1;i++)
         sums[i][j]=0;
         for(k=0;k<N;k++)
         {
             sums[i][j]+=pow(x[k],i+j);
         }
         for(i=0;i<K+1;i++) // расчет свободных членов
   {
         for(k=0;k<N;k++)
         {
         b[i]+=pow(x[k],i)*y[k];
         }
   }
}
}
void printresult()//печать параметров полинома
{
    int i=0;
    cout<<"\n";
    for(i=0;i<K+1;i++)
    {
        printf("a[%d]=%f\n",i,a[i]);
    }

}
int main(void)
{
    int i=0,j=0,k=0;
    float x[N]= {7.5994575, 9.1972266, 10.5710620, 12.2775046, 13.1669275, 15.0697361, 17.9323175, 20.3235298};
    float y[N]= {1.9, 1.91, 1.92, 1.93, 1.94, 1.95,1.96,1.97)};
        cout<<"chislo tochek funccii N="<<N;
    do {
        cout<<"vvedite stepen polinoma K<N:"<<K;
        cin>>K;
    }
    while(K>=N);
    allomatrix();
    //znachmatrix();
    matrix();
    printresult();

}
Вложения
Тип файла: txt Ко main.txt (2.8 Кб, 150 просмотров)

Последний раз редактировалось Stilet; 18.05.2010 в 15:50.
молька вне форума Ответить с цитированием
Старый 18.05.2010, 15:41   #2
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Код:
#include <iostream>
#include <stdio.h>
#include <process.h>
#include <math.h>
#include <stdlib.h>

using namespace std;
float *a,*b,**sums,*x,*y;
int N,K; //N число заданных точек.К - степень апроксимирующего полинома К<=N


void allomatrix() // память для матрицы
{
int i,j,k;
a=new float[K+1];
b=new float[K+1];
x=new float[N];
y=new float[N];
sums=new float*[K+1];
if(x==NULL||y==NULL||a==NULL||sums==NULL)
{
cout<<"\nnot.N=%d,K=%d\n"<<N<<K;
exit(-1);
}
for(i=0;i<K+1;i++)
{
sums[i]=new float[K+1];
if(sums[i]==NULL)
{
cout<<"\nnot.\n"<<K+1;
}
}
for(i=0;i<K+1;i++)
{
a[i]=0;
b[i]=0;
for(j=0;j<K+1;j++)
{
sums[i][j]=0;
}
}
for(k=0;k<N;k++)
{
x[k]=0;
y[k]=0;
}

}

void matrix()
{
int i=0,j=0,k=0;
for (k=0;k<N;k++)
{
cout<<"\n%f"<<x[k];
cout<<"\n%f"<<y[k];
}
for(i=0;i<K;i++) // расчет сумм многочлена
{
 for(j=0;j<K;j++)
sums[i][j]=0;
for(k=0;k<N;k++)
{
sums[i][j]+=pow(x[k],i+j);
}
for(i=0;i<K;i++) // расчет свободных членов
{
for(k=0;k<N;k++)
{
b[i]+=pow(x[k],i)*y[k];
}
}
}
}
void printresult()//печать параметров полинома
{
int i=0;
cout<<"\n";
for(i=0;i<K;i++)
{
printf("a[%d]=%f\n",i+1,a[i]);
}

}
int main(void)
{cout<<"chislo tochek funccii N=";
cin>>N;
do {
cout<<"vvedite stepen polinoma K<N:";
cin>>K;
}
while(K>=N);
//znachmatrix();
allomatrix();
int i=0,j=0,k=0;
x[0]= 7.5994575; x[1]=9.1972266; x[2]= 10.5710620;
x[3]=12.2775046; x[4]=13.1669275;x[5]=15.0697361;
x[6]=17.9323175; x[7]=20.3235298;
float h=1.9;
for (i=0; h<=1.97; i++)
{y[i]=h;
 h+=0.01;
}

matrix();
printresult();

}
Ошибки исправил, насчет правильности далеко не уверен
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.

Последний раз редактировалось mrChester; 18.05.2010 в 15:48.
mrChester вне форума Ответить с цитированием
Старый 18.05.2010, 15:45   #3
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

1 Используйте тег CODE, для чего выделите программу и нажмите значок # на панели сообщения.
2.
Код:
int main(void)
{
int i=0,j=0,k=0;
float x[N]= {7.5994575, 9.1972266, 10.5710620, 12.2775046, 13.1669275, 15.0697361, 17.9323175, 20.3235298};
float y[N]= {1.9, 1.91, 1.92, 1.93, 1.94, 1.95,1.96,1.97)};
cout<<"chislo tochek funccii N="<<N;
do {
cout<<"vvedite stepen polinoma K<N:"<<K;
cin>>K;
}
while(K>=N);
allomatrix();
//znachmatrix();
matrix();
printresult();

}
N не инициализирована.

В общем опередили.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 18.05.2010 в 15:47.
Sweta вне форума Ответить с цитированием
Старый 18.05.2010, 18:12   #4
молька
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 2
По умолчанию

Спасибо огромное!!
"N не инициализирована" - это исправлю: N= 7 (по условию задачи всего восемь точек)

Последний раз редактировалось молька; 19.05.2010 в 12:39.
молька вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделка программы по массиву IDakar Помощь студентам 0 26.11.2009 16:54
распределение по массиву SuBwooFer JavaScript, Ajax 2 31.08.2009 10:48
Вопрос по ассоциативному массиву assasin Общие вопросы C/C++ 10 01.06.2009 19:59
ЗАДАЧИ ПО МАССИВУ!! СРОЧНО! НАСТЯ 18:) Паскаль, Turbo Pascal, PascalABC.NET 4 10.05.2009 15:23