Logo Hardware.com.br
Primeiramente bom dia
Primeirament... Novo Membro Registrado
2 Mensagens 0 Curtidas

C++; Ajuda em calculadora de equações

#1 Por Primeirament... 23/11/2014 - 11:51
Querendo fazer um programa onde o usuário pode inserir equações diversas, formando uma lista:
exemplo:
a+b*c
a/b+c-a
b*c-b+a

E depois poder escolher uma dessas equações salvas, inserir valores para as variáveis e o programa calcular e printar o resultado.

Eu tentei salvar as equações como string e depois algum jeito de transformá-las em variável, mas não consigo.
Alguém pode dar uma ideia de como posso fazer, ou se começar salvando em string foi uma ideia pouco interessante?

Desde já obrigado.

Código feito:
[code=C++]
int main()
{

int menu, numeroDeFuncao, iterador, iterador2, escolha, i,it;
string funcao[10];
iterador = 1;
iterador2 = 0;
it = 0;
numeroDeFuncao = 0;
menu = 5;

while(menu !=0)
{
cout << "\n" << endl;
cout << "---------------------------------------------------------------------------" << endl;
cout << "Digite o numero de acordo com o que deseja fazer:" << endl;
cout << "\n" << endl;
cout << "1. Escreva uma funcao para ser salva." << endl;
cout << "2. Mostra todas as funcoes salva, numeradas." << endl;
cout << "3. Escolhe uma funcao salva e a calcula" << endl;
cout << "0. Sai do programa." << endl;
cout << "---------------------------------------------------------------------------" << endl;
cin >> menu;

if (menu == 1)
{
cout << "Voce escolheu escrever uma funcao para ser salva." << endl;
cout << "Digite a funcao que deseja salvar:" << endl;
cin >> funcao[numeroDeFuncao];
numeroDeFuncao++;
cout << "Esta foi a funcao numero " << numeroDeFuncao << " que foi salva." << endl;
}

else if (menu == 2)
{
cout << "Voce escolheu mostrar todas as funcoes salvas, numeradas." << endl;
cout << "Aqui estao todas elas." << endl;

if (numeroDeFuncao <= 0)
{
cout << "Perdao, ainda nao ha funcoes salvas. Insira elas na opcao 1 do menu." << endl;
}

else
{
while (iterador <= numeroDeFuncao)
{
cout << iterador << ". " << funcao[iterador2] << endl;
iterador++;
iterador2++;
}
}
}

else if (menu == 3)
{
cout << "Voce escolheu calcular uma funcao salva." << endl;
cout << "Escolha qual funcao deseja calcular:" << endl;
cin >> escolha;
}

}
}[/code]
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#3 Por tpcvasco
24/11/2014 - 12:10
Vc pensa tb em reconhecer parênteses e ordem de precedência das operações?

Cara, oq normalmente se faz internamente é jogar os dados da equação em uma estrutura de árvore (ou pilha, no caso do algoritimo q o nosso amigo Gokuro passou aí em cima).
Mas já vou adiantando logo, qual seu conhecimento em programação? Se vc é principiante vai sofrer pra fazer algo assim. Tive q fazer um trabalho semelhante na faculdade, mas já estava no 4o. péríodo, foi um trabalho em grupo e ainda assim penamos pra fazer algo q funcionasse certinho.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Primeiramente bom dia
Primeirament... Novo Membro Registrado
2 Mensagens 0 Curtidas
#4 Por Primeirament...
24/11/2014 - 14:41
Obrigado pela ajuda, graças ao link consegui pensar e fazer algo que me ajudasse.
A ordem de precedência é necessária, mas reconhecer parênteses não. E eu sou iniciante sim, por isso a grande dificuldade que tenho.
Apesar de não consegui fazer exatamente o que precisava, deu pra ficar bem próximo: Apenas escrever o cálculo no momento e resolvê-lo. Salvar as fórmulas não foi possível.

Mas grato pelas palavras pessoal,ajudaram bastante.
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#5 Por tpcvasco
25/11/2014 - 07:14
Se ainda tiver um tempo pra fazer e precisar, postaí o código e as suas dúvidas q o pessoal tenta te ajudar a fazer o resto.
[]'s
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal