|
Algebra polinoamelor incomplete de mai multe nedeterminate, implementare dinamic?
Structuri de date:
Pentru implementarea unui polinom incomplet de mai mult nedeterminate am definit o clas? ‘poli’ cu urm?toarele date:
Int nr_var Num?rul de nedeterminate ale polinomului
Int nr_elem Num?rul de elemente
Nu se cite?te, ci este ini?ializat în func?ie de elementele introduse
Float *coef Coeficien?ii polinomului (nu exista coeficien?i de valoare 0 •)
Int *gr[30] Vector de pointeri spre întregi reprezentând pentru fiecare coeficient puterile corespunz?toare fiec?rei nedeterminate
Ex: Pentru polinomul P(x,y,z)=x2y +1
Gr[0][0]=2, Gr[0][1]=1, Gr[0][0]=0
Gr[1][0]=0, Gr[0][1]=0, Gr[0][0]=0
Toate datele de mai sus sunt private pentru a nu fi permis? modificarea lor decât prin func?iile clasei. Tot privat? este ?i func?ia ‘pos’ pentru c? nu trebuie s? fie vizibil? din exterior.
Opera?iile efectuate asupra polinoamelor:
? Adunare
? Sc?dere
? Înmul?irea a 2 polinoame
? Calculul derivatei în raport cu o variabil? specificat? prin indice
? Calculul primitivei în raport cu o variabil? specificat? prin indice
class poli{ private:int nr_var; int nr_elem; float *coef; int *gr[30]; private:int pos(int *,int);
public:poli();
void init();
void af();
void af_t();
void add_sub(poli&,poli&,int op);
void mul(poli&,poli&);
void deriv(int);
void prim(int);
void operator=(poli&);
~poli();
};
Prezentarea programului:
1. poli();
- constructorul clasei
- ini?ializeaz? polinomul ca polinom nul
- nu poate fi decât public
2. void init();
- func?ie public? ce ini?ializeaz? polinomul cu valori citite de la tastatur?
- polinomul se consider? introdus corect, adic? nu trebuie introduse acelea?i secven?e de puteri (Ex: P(x)=5x+2+3 )
- se citesc coeficien?i pân? când nu se mai introduce unul valid (în mod normal asta s-ar face frumos cu CTRL-Z, dar din p?cate cscanf()-ul nu îl recunoa?te)
|