westdark 0 Denunciar post Postado Novembro 5, 2007 Pretende-se desenvolver um programa, em linguagem C, que simule o comportamento de uma máquina de calcular simples. O protocolo enconta-se dividido em 2 partes. Uma primeira parte de resolução obrigatória para a obtenção de uma classificação positiva do trabalho, e uma segunda parte que possibilitará a obtenção classificação máxima do trabalho. 1ª parte: A máquina de calcular deverá efectuar as 5 operações aritméticas elementares sobre números inteiros. A calculadora deve aceitar digitos (de 0 a 9) que formam um operando, um operador (+, −, *, /, ^ -exponenciação-) ou o sinal (=). A sequência de caracteres introduzida pelo utilizador da calculadora através do teclado começará, normalmente, por um operando, contudo, a calculadora deverá aceitar como caracter inicial o operador unário (−). Por forma a simplificar o problema a calculadora não precisa de prever a ocorrência de erros na introdução de dados (neste caso o que acontecerá é o mau funcionamento da máquina de calcular). 2ª parte: A calculadora deverá ser capaz de realizar várias operações, numa só expressão, sem respeitar prioridades, isto é, as operações serão realizadas pela ordem que aparecerem. Deverá mostrar o resultado após ler o sinal (=). alguem me pode ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Novembro 5, 2007 O que pode ser feito na primeira parte. - Leia tudo numa string só. - Separe os operandos dos operadores. operandos -> (-?)[0-9] operadores -> +, -, *, \, ^ Observe que o sinal de - nos operandos é opcional, ou seja, pode ocorrer ou não. - Aplique a operação especificada. Exemplo do que falei: entrada: 12 - 5 Dica: se possível introduza um delimitador, por exemplo um espaço " " com isso fica mais fácil separar as coisas. expressao = "12 - 5" veja: // enquanto nao chegar ao fim da string i = 0; while (expressao[i] != '\'){ // separa cada pedaco j = 0; while ((expressao[i] != '\') && (expressao[i] != ' ')){ pedaco[j] = expressao[i]; j++; i++; } pedaco[j] = '\'; pedaco conterá cada pedaço da string delimitado em espaço. Agora voce precisa identificar se é operando ou operador e guardar em variáveis específicas. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
westdark 0 Denunciar post Postado Novembro 5, 2007 [ tu utilizas te vectores mas eu queria utilizandio a estrutura case.. é o nosso primeiro trabalho e se utilizar vectores da muito nas vista...obrigado Compartilhar este post Link para o post Compartilhar em outros sites