Ir ao conteúdo
  • Cadastre-se

operações com vários operadores


kanynha

Posts recomendados

void CCalculadoratesteDlg::Onsete()

{

num1=num1+'7';

m_valor=atof(num1);

UpdateData(false);

}

void CCalculadoratesteDlg::Onsoma()

{

num2=num1;

num1=" ";

op='+';

aux1 = m_valor;

}

void CCalculadoratesteDlg::Onigual()

{

aux2=m_valor;

switch (op){

case'+':

m_valor = aux1 + aux2;

aux1=m_valor;

break;

case'-':

m_valor = aux1 - aux2;

break;

case'*':

m_valor = aux1 * aux2;

break;

case'/':

if(aux2 == 0)

m_Erro = "Divisao Impossivel";

else

m_valor=aux1/aux2;

break;

}

UpdateData(false);

}

Estou desenvolvendo uma calculadora em visual c++ para trabalho escola e preciso que ela faça calculos com mais de um operador.ex:4+3-5 e quando carregar no 2º operador ja tem que fazer o calculo em vez de carregar no igual.se alguem puder dá uma ajudinha,agradeço imensamente....:

Link para o comentário
Compartilhar em outros sites

Você pode fazer recursivamente, ou pode usar uma pilha pra gravar o resultado.

A formula vai ser lida como uma string, ex: "1 + 2 - 1 * 3"

Você primeiro cria uma função pra separar essa string entre duas pilhas, de numeros e sinais:

Numeros: 1, 2, 1, 3

Sinais: +, -, *

Depois é só tirar dois números da pilha de números, um sinal da pilha de sinais, fazer o calculo, pegar outro número, outro operador, etc... até o final.

Se a formula conter parenteses, daí precisa pensar num jeito de dar prioridade pros números que estão entre eles

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!