Executável

Código Fonte

Descrição dos módulos do problema

void __fastcall TForm1::Button20Click(TObject *Sender) - Botão de "=" . Permite chamar as funções para transformar INFIXA em POSFIXA e ainda chamar a função para calcular o resultado.

void TForm1::Desenhar() - Funcão que desenha o gráfico a partir da expressão que se encontra INFIXA e desenha também os eixos.

void TForm1 :: LimparGrafico() - Limpa a imagem deixando sem gráfico e sem eixos.

void TForm1::Numero(char x) - Funcão que recebe como parâmetro um caracter, que neste caso são digito, que depois é adicionado ao editInFixa.

 

Expression::Expression(const Expression& other): - Construtor cópia.

Expression::~Expression() - Destructor

bool Expression::Check() const - Verifica se a expressão INFIXA está bem escrita com parêntesis. Retorna true ou false.

bool Expression::Match(char c, char d) const - Recebe dois caracteres. Compara se o parêntesis em c fecha em d, se não retorna false.

int Expression::Prioridade(String x) const - Recebe com parâmetro uma string. Vai avaliar a prioridade da string recebida e retorna um númeor.

bool Expression::isSignal(String x) - Funcão que verifica se a string passada como parâmetro é um operador ou não. Retorna true ou false conforme o caso.

String Expression::PutSpace() - Retorna uma string com espaços entre os números e os operadores.

String Expression:: newPosFixa() - Função que transforma uma string INFIXA em POSFIXA, através de algumas modificações do algoritmo dado pelo docente da cadeira. Usando iteradores para facilitar a transformação. Retorna uma string.

bool Expression::isFunction(String x) - Recebe como parâmetro uma string. Verifica se a string é uma função ou não.(cos, sen e Sqrt)

double Expression ::Calcular() - Permite calcular o valor da string INFIXA através da POSFIXA usando como base o algoritmo fornecido pelo docente. Sendo necessário fazer algumas modificações como a introdução do X,Y,Z.

double Expression::opCalc(double l, String sig, double r) - Recebe como parametros dois doubles e uma string(neste caso vai ser operador ou uma função). Realiza o cálculo entre o l e o r no caso de ser um operador, ou então, se for uma função apenas utiliza o l. Retorna o resultado, que é um double.

double Expression::getX() - Selector do x, que retorna o valor de x.

double Expression::getY() - Selector do y que retorna o valor de y.

double Expression::getY() - Selector do z, que retorna o valor de z

void Expression::setX(double x) - Modificador do x, que recebe como parâmetro um double. Altera o valor de x

void Expression::setY(double y) - Modificador do y, que recebe como parâmetro um double. Altera o valor de y.

void Expression::setZ(double y) - Modificador do z que recebe como parâmetro um double. Altera o valor de z.

 

definição         implementação

Formulário auxiliar com informações relativas ao programa.

 

definição         implementação

Classe que constrói uma stack.

 

definição         implementação

Classe que pode atribuir excepções.