C
Charley2
Всем здравствуйте. Имеется класс многочленов 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">
<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">
Не пойму в чем проблема?
<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;
}
Не пойму в чем проблема?