Sistemas de Controle  0.5
Biblioteca matematica de Controle
polynom.h
Vá para a documentação deste arquivo.
1 #ifndef __POLYNOM_H_INCLUDED
2 #define __POLYNOM_H_INCLUDED
3 #include <cstdlib>
4 #include <iostream>
5 #include <string>
6 #include "matrix.h"
7 
9 
19 template <class TypeOfClass>
20 class Polynom
21 {
22 private:
24  TypeOfClass *num, *den;
25  char x;
26 
28 
35  void init(int NumSize);
36 
38 
46  void init(int NumSize, int DenSize);
47 
49 
56  void init(std::string Num);
57 
59 
67  void init(std::string Num, string Den);
68 
70 
79 
81 
91  bool VefDen(TypeOfClass *den1, TypeOfClass *den2, int sizeden1, int sizeden2);
92 
94 
101  TypeOfClass *initPointer(int Size);
102 
104 
114  TypeOfClass *SumPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2);
115 
117 
127  TypeOfClass *SubPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2);
128 
130 
140  TypeOfClass *MultPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2);
141 
142 public:
143 
145 
151  Polynom();
152 
154 
161  Polynom(int Num);
162 
164 
172  Polynom(int Num, int Den);
173 
175 
182  Polynom(std::string Num);
183 
185 
193  Polynom(std::string Num, std::string Den);
194 
196 
205 
207 
214  Polynom(const Polynom<TypeOfClass> &CopyPolynom);
215 
217 
222  ~Polynom();
223 
225 
234 
236 
244  Polynom<TypeOfClass> operator+(TypeOfClass scalar);
245 
247 
256 
258 
266  Polynom<TypeOfClass> operator-(TypeOfClass scalar);
267 
269 
277  Polynom<TypeOfClass> operator*(TypeOfClass scalar);
278 
280 
289 
291 
300 
302 
310  Polynom<TypeOfClass> operator/(TypeOfClass scalar);
311 
313 
324 
333  Polynom<TypeOfClass> operator^(int scalar);
334 
336 
345  void setNum(TypeOfClass *Num, int sizenum);
346 
348 
356  void setDen(TypeOfClass *Den, int sizeden);
357 
359 
365  void setVar(char var);
366 
368 
375 
377 
384 
386 
392  void print();
393 
395 
404  friend Polynom<TypeOfClass> operator+(TypeOfClass scalar, Polynom<TypeOfClass> P){return P+scalar;}
405 
407 
416  friend Polynom<TypeOfClass> operator-(TypeOfClass scalar, Polynom<TypeOfClass> P){return (-1)*P+scalar;}
417 
419 
428  friend Polynom<TypeOfClass> operator*(TypeOfClass scalar, Polynom<TypeOfClass> P){return P*scalar;}
429 
431 
440  friend Polynom<TypeOfClass> operator/(TypeOfClass scalar, Polynom<TypeOfClass> P){return (P^-1)*scalar;}
441 };
442 
443 
444 #endif // POLYNOM_H
TypeOfClass * den
Definition: polynom.h:24
TypeOfClass * initPointer(int Size)
TypeOfClass * SumPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2)
Polynom< TypeOfClass > operator/(Polynom< TypeOfClass > P)
Sobrecarga do operador / para a divisão entre polinômios.
Polynom()
Construtor padrão da biblioteca polynomio.
friend Polynom< TypeOfClass > operator-(TypeOfClass scalar, Polynom< TypeOfClass > P)
Sobrecarga do operador- para a subtração entre escalar e polinômio.
Definition: polynom.h:416
TypeOfClass * MultPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2)
friend Polynom< TypeOfClass > operator*(TypeOfClass scalar, Polynom< TypeOfClass > P)
Sobrecarga do operador* para a multiplicação entre escalar e polinômio.
Definition: polynom.h:428
int sizeDen
Definition: polynom.h:23
Polynom< TypeOfClass > operator^(int scalar)
Sobrecarga do operador ^ para obter a potenciação de polinômios.
void operator=(Polynom< TypeOfClass > P)
Operador de atribuição entre polinômios.
TypeOfClass * SubPoly(TypeOfClass *value1, TypeOfClass *value2, int SizeValue1, int SizeValue2)
friend Polynom< TypeOfClass > operator+(TypeOfClass scalar, Polynom< TypeOfClass > P)
Sobrecarga do operador+ para a soma entre escalar e polinômio.
Definition: polynom.h:404
Polynom< TypeOfClass > operator+(Polynom< TypeOfClass > P)
Sobrecarga do operador + para a soma entre polinômios.
friend Polynom< TypeOfClass > operator/(TypeOfClass scalar, Polynom< TypeOfClass > P)
Sobrecarga do operador/ para a divisão entre escalar e polinômio.
Definition: polynom.h:440
void init(int NumSize)
Método de inicialização do polinômio.
void print()
Exibe o polinômio.
TypeOfClass * num
Definition: polynom.h:24
Matrix< TypeOfClass > getNum()
Retorna o vetor com os valores do numerador.
Matrix< TypeOfClass > getDen()
Retorna o vetor com os valores do denominador.
char x
Definition: polynom.h:25
void setNum(TypeOfClass *Num, int sizenum)
Inserir um vetor de numerador ao polinômio.
void setDen(TypeOfClass *Den, int sizeden)
Inserir um vetor de denominador ao polinômio.
~Polynom()
Destrutor padrão da classe.
Classe Matriz, com o intuito de realizar operações entre matrizes entre outras funções.
Definition: matrix.h:23
void setVar(char var)
Polynom< TypeOfClass > operator*(TypeOfClass scalar)
Sobrecarga do operador * para a multiplicação entre polinômios.
int sizeNum
Definition: polynom.h:23
Polynom< TypeOfClass > operator-(Polynom< TypeOfClass > P)
Sobrecarga do operador - para a subtração entre polinômios.
Classe responsável por criar e efetuar operações com polinômios.
Definition: polynom.h:20
bool VefDen(TypeOfClass *den1, TypeOfClass *den2, int sizeden1, int sizeden2)
Método responsável por verificar se é possivel efetuar a soma dos polinômios.