2009-06-21 17:03:00 ЭФИОП Не понимаю, у меня в коде где-то ошибка... Могу скинуть по асе тем, кто сможет помочь( Или тут, но фрагментами, ибо боюсь не влезет) В общем, задача такова: написать прогу, которая будет считать сумму, разность и т.п. полиномов через 2 класса, через список. У меня в одной из перегрузок ошибка. Вот перегрузка void Polinom::operator=(Polinom s1) { int i=0,k,s; current=first; while(i<=s1.MaxStep()) { cout<<" i="<<i<<"step="<<s1.MaxStep()<<" k="; k=s1[i].koef; s=s1[i].step; this->InsertToEnd(k,s); cout<<k<<" s="<<s<<" "; getch(); //d cvthis->current->ShowPart(); i++; //current=current->next; } } Ошибка в том, что он копирует нулевую и первую степени... А потом просто дублирует все остальные шаги 1вую степень... |
2009-06-21 17:04:30 ЭФИОП Вот функции, которые тут используются: int Polinom::MaxStep() { current=first; int i=current->step; while(current) { if(i<current->step) i=current->step; current=current->next; } return i; } void Polinom::InsertToEnd(int koef,int step) { Odno4len* newOdno4len = new Odno4len(koef,step); if(!first) { first=newOdno4len; return; } else { current=first; while(current->next) current=current->next; current->next=newOdno4len; } } Odno4len::Odno4len(int _koef, int _step):koef(_koef),step(_step),next(0) { } |
2009-06-21 17:27:11 ЭФИОП у я лошара. Забудьте. А кому интересно, где ошибка - стучите в асю :))) |
2009-06-21 18:16:54 Farsh буквы |