Algebra polinoamelor incomplete de mai multe nedeterminate, implementare dinamica
Structuri de date:
Pentru implementarea unui polinom incomplet de mai mult nedeterminate am definit o clasa ‘poli’ cu urmatoarele date:
Int nr_var Numarul de nedeterminate ale polinomului
Int nr_elem Numarul de elemente
Nu se citeste, ci este initializat în functie de elementele introduse
Float *coef Coeficientii polinomului (nu exista coeficienti de valoare 0 •)
Int *gr[30] Vector de pointeri spre întregi reprezentând pentru fiecare coeficient puterile corespunzatoare fiecarei 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 permisa modificarea lor decât prin functiile clasei. Tot privata este si functia ‘pos’ pentru ca nu trebuie sa fie vizibila din exterior.
Operatiile efectuate asupra polinoamelor:
- Adunare
- Scadere
- Înmultirea a 2 polinoame
- Calculul derivatei în raport cu o variabila specificata prin indice
- Calculul primitivei în raport cu o variabila specificata 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
- initializeaza polinomul ca polinom nul
- nu poate fi decât public
2. void init();
- functie publica ce initializeaza polinomul cu valori citite de la tastatura
- polinomul se considera introdus corect, adica nu trebuie introduse aceleasi secvente de puteri (Ex: P(x)=5x+2+3 )
- se citesc coeficienti pâna când nu se mai introduce unul valid (în mod normal asta s-ar face frumos cu CTRL-Z, dar din pacate cscanf()-ul nu îl recunoaste)
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.