Calculadora polonesa

280 palavras 2 páginas
Calculadora Polonesa

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define S 1
#define N 0 class pilha { private: int topo, base, m, len; float *a; public: pilha(int); int cheia(); int vazia(); float topo2(); int empilhar(float); int desempilhar(); void mostrar();

};

pilha :: pilha(int len)
{
topo = 0; base = 0; m = 0; this->len = len; a = (float *)malloc(sizeof(float) * len);
};

int pilha :: cheia()
{
if (m==len) return(S); return(N);
};

int pilha :: vazia()
{
if (m==0) return(S); return(N);
};

int pilha :: empilhar(float y)
{
if (cheia() == S) return(-1); a[topo]=y; topo++; m = topo; return(0);
};

int pilha :: desempilhar()
{
if (vazia() == S) return(-1); topo--; m = topo; return(0);
};

float pilha :: topo2()
{
int topoA; topoA = topo; topoA --; return(a[topoA]);
};

void pilha :: mostrar()
{
int i; system("cls"); printf("\nPilha [base=%d, topo=%d, m=%d, A = { ",base,topo,m); printf("\nDigite um numero ou um operador: "); if (vazia() == SIM) printf(" vazia "); for(i=0 ; i < topo ; i++) printf(" %.2f", a[i]); printf(" }\n]\n\n");
};

int main()
{
pilha s(8); char cValor[20]; float fCalcula; do { s.mostrar(); fflush (stdin); scanf("%[^\n]", cValor); if(cValor[0] == '+'){ fCalcula = s.topo2(); s.desempilhar(); fCalcula += s.topo2(); s.desempilhar(); s.empilhar(fCalcula); }else if(cValor[0] == '-'){ fCalcula = s.topo2(); s.desempilhar(); fCalcula -= s.topo2(); s.desempilhar(); s.empilhar(fCalcula); }else

Relacionados

  • calculadora polonesa
    4743 palavras | 19 páginas
  • Calculando com a HP 12c
    838 palavras | 4 páginas
  • Matematica Financeira
    728 palavras | 3 páginas
  • TEORIA DA CONTABILIDADE
    841 palavras | 4 páginas
  • atps matemática financeira 1ª e 2ª etapa
    781 palavras | 4 páginas
  • Elencris
    302 palavras | 2 páginas
  • ATPS 001
    772 palavras | 4 páginas
  • trabahlos
    1491 palavras | 6 páginas
  • Slide notação polonesa
    291 palavras | 2 páginas
  • juros compostos, simples e usando a hp
    1269 palavras | 6 páginas