diff --git a/calculadora/calc b/calculadora/calc new file mode 100755 index 0000000000000000000000000000000000000000..cb2cd00fc38a60d043c73f4646d78a97ebe4c12f Binary files /dev/null and b/calculadora/calc differ diff --git a/calculadora/calculadora.c b/calculadora/calculadora.c index efd209c79d3acbcaffd92b13e88484ec7630da64..135f58c0fc72351059f872d9e1f379d61358cdce 100644 --- a/calculadora/calculadora.c +++ b/calculadora/calculadora.c @@ -6,24 +6,24 @@ /* Definindo o valor do operador como um inteiro, prevenimos erros de aritmÊtica com ponto flutuante. */ -typedef int t_operador; +typedef double t_operador; #define TAM_ENTRADA 256 #define TAM_PILHA 1024 /* Constantes com valores para identificar os operadores. O valor - antes da casa da unidade define a precedencia entre os operadores, - valores maiores tem maior precedencia. */ -#define SOM 101 -#define SUB 102 -#define MUL 201 -#define DIV 202 -#define EXP 300 + antes do ponto flutuante define a precedÃĒncia entre os operadores, + valores maiores tem maior precedÃĒncia. */ +#define SOM 10.1 +#define SUB 10.2 +#define MUL 20.1 +#define DIV 20.2 +#define EXP 30.0 /* Identificador de '(' para ser empilhado na pilha de operadores */ -#define PAR 990 +#define PAR 99.0 /* Converte os caracteres que representam os operadores na entrada @@ -46,7 +46,7 @@ int converte_operador(t_operador *op, char c) { /* Retorna 1 se o operador op1 tem precedencia sobre o operador op2. Retorna 0 caso contrario. */ int precede(t_operador op1, t_operador op2) { - if((op1 - op2) > 1) + if((op1 - op2) > 1.0) return 1; return 0; } diff --git a/calculadora/calculadora.o b/calculadora/calculadora.o new file mode 100644 index 0000000000000000000000000000000000000000..75aa8ca8394defc602ff5f894730255f6ec58fe2 Binary files /dev/null and b/calculadora/calculadora.o differ diff --git a/calculadora/libpilha.o b/calculadora/libpilha.o new file mode 100644 index 0000000000000000000000000000000000000000..e4ca1a81c13437f0276b87b4cab9877ee68f379a Binary files /dev/null and b/calculadora/libpilha.o differ