Ir para conteúdo

POWERED BY:

Arquivado

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

Glauco Marcos

calculadora em c++

Recommended Posts

Galera v se vcs podem me ajudar estou tentando fazer uma calculadora e ela n quer rodar está dando um erro na case 1. Por favor me ajudem e tambem tenho que fazer ela calcular seno e cosseno não sei como faz isso.

 

#include <cstdlib>
#include <iostream>

using namespace std;

int adicao (int n1, int n2)
{ 
	int soma;
	
  soma = n1 + n2;
	
	return soma;
}


int subitracao (int n1, int n2)
{ 
	int sub;
	
  sub = n1 - n2;
	
	return sub;
}

int multiplicacao (int n1, int n2)
{ 
	int mult;
	
  mult = n1 * n2;
	
	return mult;
}

int divisao (int n1, int n2)
{ 
	int div;
	
  div = n1 / n2;
	
	return div;
}

int porcentagem (int n1, int n2)
{	
	int porcen;
	
	porcen = (n1*n2)/100;	
	
	return porcen;
}
int main()

{
int op,;
float num1, num2,resultado,result;
char operacao;

do {


cout<<"Digite um numero:\t";
cin>>num1;
cout<<"\nDigite outro numero:\t";
cin>>num2;
cout<<"\n\nInforme a operacao (+ , - , * , /,^,%):\t";
cin>>op;

	if (operacao == '+')op = 1;	
else if (operacao == '-')op = 2;	
else if (operacao == '*')op = 3;	
else if (operacao == '/')op = 4;	
else if (operacao == '%')op = 5; 



{ switch(op){// inicio switch 
						  case 1:// soma
						  {				
											 
								cin>>num2;					
								result = soma(num1, num2);					
								cout<<num1<<" + "<<num2<<" = "<<result;					
								num1 = result				  
								break;  
								}			
						  case 2:// subtração
							  {				  
								cin>>num2;					
								result = subtrai(num1, num2);					
								cout<<num1<<" - "<<num2<<" = "<<result;					
								num1 = result;					
								break;	  
								}		
						  case 3:// multiplicação  
						  {				  
								cin>>num2;					
								result = multiplic(num1, num2);					
								cout<<num1<<" * "<<num2<<" = "<<result;					
								num1 = result;					
								break;		
								}		
						  case 4:// divisão
						  {
								cin>>num2;					
								result = divide(num1, num2);					
								cout<<num1<<" / "<<num2<<" = "<<result;					
								num1 = result;						
								break;	  
								}		  
						  case 5:// porcentagem  
						  {				
								cin>>num2;					
								result = porcento(num1, num2);					
								cout<<num1<<" % "<<num2<<" = "<<result;					
								num1 = result;										
								break;  
								}			
						default:  
									{				  
								cout<<endl;					
								cout<<"NUMERO ERRADO, TENTE DE NOVO"<<endl;					
								cout<<endl;					
								break; 
								}					
}// final switch case
}// final do	
		  
 


	
	system("PAUSE");
	return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Galera v se vcs podem me ajudar estou tentando fazer uma calculadora e ela n quer rodar está dando um erro na case 1.

 

Vou continuar repetindo o que sempre falo e que parece que sempre ofende as pessoas de alguma forma bizarra: "Não quer rodar" não ajuda. Tem gente aqui que responde o fórum do trabalho. Acostume-se a interpretar as mensagens de erro do compilador.

 

 

Por favor me ajudem e tambem tenho que fazer ela calcular seno e cosseno não sei como faz isso.

 

Tem função pronta na math.

 

 

 

int subitracao (int n1, int n2)

 

O 'b' é mudo: subtração.

 

 

 

int divisao (int n1, int n2) {
int div;

div = n1 / n2;

return div;
}

 

E se n2 for zero? Você deve verificar isso antes de executar a operação.

Outra coisa: 3/2 = 1 e não 1,5. É isso que você quer?

 

 

 

int porcentagem (int n1, int n2)
{
int porcen;

porcen = (n1*n2)/100;

return porcen;
}

 

n1=2

n2=5

Resultado = 0

Resultado esperado = 0,1

 

 

int main(){
  int op,;

 

Tem uma vírgula sobrando.

 

int main(){
  int op;
  float num1, num2,resultado,result;
  char operacao;

  do {

   cout<<"Digite um numero:\t";
   cin>>num1;
   cout<<"\nDigite outro numero:\t";
   cin>>num2;
   cout<<"\n\nInforme a operacao (+ , - , * , /,^,%):\t";
   cin>>op;

   if (operacao == '+')op = 1;
   else if (operacao == '-')op = 2;
   else if (operacao == '*')op = 3;
   else if (operacao == '/')op = 4;
   else if (operacao == '%')op = 5;

   { switch(op){// inicio switch
		   case 1:// soma
		   {
				   cin>>num2;
				   result = soma(num1, num2);
				   cout<<num1<<" + "<<num2<<" = "<<result;
				   num1 = result
				   break;
			}
			case 2:// subtração
			{
					cin>>num2;
					result = subtrai(num1, num2);
					cout<<num1<<" - "<<num2<<" = "<<result;
					num1 = result;
					 break;
			 }
			 case 3:// multiplicação
			 {
					cin>>num2;
					result = multiplic(num1, num2);
					cout<<num1<<" * "<<num2<<" = "<<result;
					num1 = result;
					break;
			  }
			  case 4:// divisão
			  {
					  cin>>num2;
					  result = divide(num1, num2);
					  cout<<num1<<" / "<<num2<<" = "<<result;
					 num1 = result;
					   break;
			   }
			   case 5:// porcentagem
			  {
					  cin>>num2;
					  result = porcento(num1, num2);
					  cout<<num1<<" % "<<num2<<" = "<<result;
					  num1 = result;
					  break;
			   }
			   default:
				{
					  cout<<endl;
					  cout<<"NUMERO ERRADO, TENTE DE NOVO"<<endl;
					  cout<<endl;
					   break;
				 }
	   }// final switch case
}// final do

 

 

1 - Trabalho desnecessário. Se você já usa o if pra verificar qual é a operação realizada, chame a função direto ao invés de ficar criando switch.

2- Switch não é if. Ou seja: mais uma diferença entre switch e if: no if os blocos de código são delimitados por chaves. No switch isso fica determinado pelo case e break. Ou seja, chaves não são necessárias.

3 - Você pede um char como entrada e a cláusula default diz que o NÚMERO está errado. O usuário não sabe e nem precisa saber como você escreveu o código.

4 - O do-while está errado.

5- Como o usuário termina a aplicação além de utilizar Ctrl+C?

 

 

 

Tente fazer mais ou menos assim:

 

#include <iostream>
using namespace std;

float adicao (float n1, float n2){
return n1+n2;
}


float subtracao (float n1, float n2) {
return n1+n2;
}

float multiplicacao (float n1, float n2) {
 return n1*n2;
}

float divisao (float n1, float n2) {
 return n1/n2;
}

float porcentagem (float n1, float n2){
  return (n1*n2)/100;
}


int main() {
int op;
float num1, num2,resultado;
char operacao;

while(1) {
	 cout<<"Digite um numero:\t";
	 cin>>num1;
	 cout<<"\nDigite outro numero:\t";
	 cin>>num2;
	 cout<<"\n\nInforme a operacao (+ , - , * , /,^,%):\t";
	 cin>>op;

	 if (operacao == '+')
			resultado = soma(n1,n2);
	 else if (operacao == '-')
			resultado = subtracao(n1,n2);
	 else if (operacao == '*')
			 resultado = multiplicacao(n1,n2);
	 else if (operacao == '/')
			 if (n2) resultado = divisao(n1,n2);
			 else cout << "Não é possível dividir por zero.\n";
	 else if (operacao == '%')
			 resultado = porcentagem(n1,n2);

	 if (operacao == '/' && n2 || operacao)
		  cout << "Resultado: " << resultado << endl;
}
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pessoal obrigado pela moral ae. O ultimo codigo ficou mais facil de fazer mesmo.

 

E para o QUOTE se n puder ajudar n ajuda agora n vem pagar lição de moral n valeu???

 

Ah, tô falando... De alguma forma bizarra pedir para que as pessoas colem as mensagens que o compilador exibe,ofende a mãe, a tia, o cachorro...

 

Filhote, não se trata de lição de moral. Se trata de saber compilar um programa e identificar erros. Isso, num primeiro momento, é trabalho do desenvolvedor e provavelmente uns 98% de erros são resolvidos interpretando-se as mensagens do compilador. E isso é MUITO básico, já que provavelmente quando você escrever um programa com 2500 linhas ninguém vai ter saco de percorrer o código como um favor p/ corrigir os erros de sintaxe e lógica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Glauco

 

Por acaso você leu o tópico: Leia antes de postar??

Temos algumas dicas lá para evitar esse tipo de problema...

 

sobre o tópico, posso marcar como "Resolvido"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi está faltando um ponto e virgula ";" no num1 = result;

finalizando sua função...

Com relação ao seno e cosseno, são funções da biblioteca math.h

 

abraços

 

case 1:// soma
						  {				
											
								cin>>num2;					
								result = soma(num1, num2);					
								cout<<num1<<" + "<<num2<<" = "<<result;					
								num1 = result;				  
								break;  
								}

___________

Ramon Mayor Martins

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.