Ir para conteúdo

POWERED BY:

Arquivado

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

westdark

linguagem c++

Recommended Posts

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

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

[ 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.