Проблема с массивом

  • Автор темы Charley2
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

Charley2

Гость
#1
Всем здравствуйте. Имеется класс многочленов mng, в котором есть метод nod деления многочлена на его производную. В конструктор передается инициализированный массив, затем через метод pmng создается его производная. В методе nod массивы mass и mas остаток от деления. Сами массивы представляют собой степени много-на с коеф. над полем Z2 (но это кому интересно).
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст №1 (работает правильно)</div></div><div class="sp-body"><div class="sp-content">
Код:
сlass mng {
private:
int N; //кол-во членов в многочлене
int *mass;
int pN;  //кол-во членов производной
int *pmass;
public:
mng (int *kof, int n);
void deriv();
void nod();
~mng();
};
mng::mng (int *kof, int n)
{
int k=0;
int i;
N=n;
mass = new int[N];
.... //здесь передаю kof в поле mass
this->deriv();  //вызов функции производной
}

void mng::deriv () {	 
int pmass = new int[pN];	 //производная
...
}

void mng::nod () {
int n, j, i=0;
int metka, chlen;
int *chas;

chas = new int[20]; //это частное

... //здесь я оперирую с mass и pmass

cout << "\n" << deg;
for (i=0; i<N; i++) {
cout << mass[i] << "  "; //ПРАВИЛЬНЫЙ ОСТАТОК
}
}

mng::~mng() {
delete [] mass;
delete [] pmass;
}

int _tmain(int argc, _TCHAR* argv[])
{
... //здесь я инициализирую массив kof
mng T1 ( kof, n); //kof массив n степень
T1.nod();
getch();
return 0;
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Текст №2 (работает не правильно)</div></div><div class="sp-body"><div class="sp-content">
Код:
class mng {
private:
int N; //кол-во членов в многочлене
int *mass;
int pN;  //кол-во членов производной
int *pmass;
public:
mng (int *kof, int n);
void deriv();
void nod();
~mng();
};
mng::mng (int *kof, int n)
{
int k=0;
int i;
N=n;
mass = new int[N];
.... //здесь передаю kof в поле mass
this->deriv();  //вызов функции производной
}

void mng::deriv () {	 
int pmass = new int[pN];	 //производная
...
}

void mng::nod () {
int n, j, i=0;
int metka, chlen;
int *chas;
int *mas; //это различие	
int *pmas; //это различие  

chas = new int[20]; 
mas = new int[N+1]; //это различие
pmas = new int[pN+1]; //это различие

for (i=0; i<N; i++) {	//это различие
mas[i]=mass[i];  
}
for (j=0; j<pN; j++) {  //это различие
pmas[j]=pmass[j];
}

... //здесь я оперирую с mas и pmas

cout << "\n" << deg;
for (i=0; i<N; i++) {
cout << mas[i] << "  "; // НЕПРАВИЛЬНЫЙ ОСТАТОК
}
}

mng::~mng() {
delete [] mass;
delete [] pmass;
}

int _tmain(int argc, _TCHAR* argv[])
{
... //здесь я инициализирую массив kof
mng T1 ( kof, n); //kof массив n степень
T1.nod();
getch();
return 0;
}
Не пойму в чем проблема?
 
Статус
Закрыто для дальнейших ответов.