Calculadora em C

Publicado por Marcelo Ruan (última atualização em 18/01/2016)

[ Hits: 4.283 ]

Homepage: https://sites.google.com/view/marceloruan/

Download projetocalculadora.cpp




O código é de uma Calculadora em C com alguns das funções principais.

  



Esconder código-fonte

//calculadora com dois numero
//operações: soma,subtracação,multiplicação,divisão,resto da divisao,modulo,raiz quadrada,seno,cosseno
//tangente,logaritimo natural,logaritimo base 10,potenciação e faltorial
//Criado por: Marcelo Ruan Moura Araujo 
// inicio:04/01/2016 h:22:37
//fim da primeira parte: 05/01/2015 00:36
//fim da segunda parte:05/01/2015 23:39

#include<stdio.h> 
#include<stdlib.h>
#include<math.h> //biblioteca matematica 
#include<locale.h> //biblioteca para acentuação

void soma(float num1,float num2); //função soma
void subtracao(float num1,float num2); //função subtração
void multiplicacao(float num1,float num2); //função multiplica
void divisao(float num1,float num2); //função divisão
void restodiv(int num1,int num2);  // função restodiv
void modulo(float num1,float num2); //função modulo
void raiz(float num1,float num2); //funçao raiz
void senno(float num1,float num2); //função seno
void tangente(float num1,float num2);//função tangente
void logn(float num1,float num2);//função log natural
void logdez(float num1,float num2);//função log de dez
void expoente(float num1,float num2);//função expoente
void fatorial(float num1,float num2);//funçao fatorial
int main(void){
   
   setlocale(LC_ALL,"PORTUGUESE");//inserindo acentuação do português 
   float num1,num2;
   char ope;
   
   do{
      printf("\n\n Calculadora \n\n");
      
      printf("Operações Disponíveis\n");
      printf("'+' Soma\n");
      printf("'-' Subtração\n");
      printf("'*' Multiplicação\n");
      printf("'/' Divisão\n");
      printf("'%%' Resto da divisão\n");
      printf("'m' Módulo\n");
      printf("'r' Raiz Quadrada\n");
      printf("'s' Seno\n");
      printf("'t' Tangente\n");
      printf("'l' Logartimo Natural\n");
      printf("'L' Logartimo base 10(dez)\n");
      printf("'e' Expoente\n");
      printf("'f' Fatorial\n");
      
      scanf("%f", &num1);
      scanf(" %c", &ope); //imporante inserir espaço para limpar lixo do teclado
      scanf("%f", &num2);
      
      
      switch(ope){ //menu de decisão usa o caracter para a função determinada
         
         case '+':
         soma(num1,num2);
         break;
         
         case '-':
         subtracao(num1,num2);
         break;
         
         case '*':
         multiplicacao(num1,num2);
         break;
         
         case '/':
         divisao(num1,num2);
         break;
         
         case '%':
         restodiv(num1,num2);
         break;
         
         case 'm':
         modulo(num1,num2);
         break;
         
         case 'r':
         raiz(num1,num2);
         break;
         
         case 's':
         senno(num1,num2);
         break;
         
         case 't':
         tangente(num1,num2);
         break;
         
         case 'l':
         logn(num1,num2);
         break;
         
         case 'L':
         logdez(num1,num2);
         break;
         
         case 'e':
         expoente(num1,num2);
         break;
         
         case 'f':
         fatorial(num1,num2);
         break;
           
                   default:
                        if(num1 != 0 && ope != '0' && num2 != 0)
                            printf(" Operador inválido\n\n "); // caso não digite operador válido do menu
                        else
                            printf(" Fechando calculadora!\n "); // para encerrar o programa
         }
     }while(num1!=0 &&  ope!='0' && num2!=0); //fim do laço de parada
   }

void soma(float num1,float num2){
   printf("A soma é igual %2.f",num1+num2);
   }
void subtracao(float num1,float num2){
   printf("A subtração é igual %2.f",num1-num2);
   }
void multiplicacao(float num1,float num2){
   printf("A multiplicação é igual %2.f",num1*num2);
   }
void divisao(float num1,float num2){
   printf("A divisão é igual %2.f",num1/num2);
   }
void restodiv(int num1,int num2){
   printf("O resto da divisão é igual %2.d ",num1%num2);
   }
void modulo(float num1,float num2){
   
   if(num1>0)
      printf("O módolo do primeiro número é igual  %2.f\n",num1);
      else
         printf("O módulo do primeiro número é igual %2.f\n",-num1);
   if(num2>0)
      printf("O módulo do segundo número é igual %2.f\n",num2);
      else
         printf("O módulo do segundo número é igual %2.f\n",-num2);
   }
void raiz(float num1,float num2){
   printf("A raiz do primeiro número é igual %f\n",sqrt(num1)); //função raiz quadrada já está incluida na biblioteca math.h
   printf("A raiz do segundo número é igual %f\n",sqrt(num2));
   }
void senno(float num1,float num2){
   printf("O seno do primeiro número é igual %f\n",sin(num1));//função seno já está incluida na biblioteca math.h
   printf("O seno do segundo número é igual %f\n",sin(num2));
   }
void tangente(float num1,float num2){
   printf("A Tangente do primeiro número é igual %f\n",tan(num1));//função tangente já está incluida na biblioteca math.h
   printf("A Tangente do segundo número é igual %f\n",tan(num2));
   }
void logn(float num1,float num2){
   printf("O logartimo natural do primeiro número é igual %f\n",log(num1));//função logartimo natural já está incluida na biblioteca math.h
   printf("O logaritimo natural do segundo número é igual %f\n",log(num2));
   }
void logdez(float num1,float num2){
   printf("O logaritimo base 10 do primeiro número é igual %f\n",log10(num1));//função logaritimo base 10 já está incluida na biblioteca math.h
   printf("O logartimo base 10 do segundo número é igual %f\n",log10(num2));
   }
void expoente(float num1,float num2){
   float exp;
   printf("Digite o expoete a ser cáculado:");
   scanf("%f",&exp);
   
   printf("\nO primeiro número %f com expoente %f é igual %f\n",num1,exp,pow(num1,exp));//função expoente já está incluida na biblioteca math.h
   printf("O Segundo número %f com expoente %f é igual %f\n\n",num2,exp,pow(num2,exp));
   }
void fatorial(float num1,float num2){
   int i;
   int f1=1,f2=1;
   
   for(i=num1;i>1;i--){
      f1*=i;
      }
   for(i=num2;i>1;i--){
      f2*=i;
      }
   printf("O fatorial do primeiro número é igual %d\n",f1);//função fatorial
   printf("O fatorial do segundo número é igual %d\n",f2);
   }
   

Scripts recomendados

Google Code Jam 2010 - Africa Classification Round A

Jogo defutebol simples (com gráficos)

Sudokou em C feito com matrizes e listas

AGENDA DE COMPROMISSO

Emulador de Chip8 (com gráficos)


  

Comentários
[1] Comentário enviado por Mc.Eagle em 18/01/2016 - 17:46h

Também dispomos de um excelente código no site: http://www.cprogressivo.net/2013/02/Como-criar-uma-calculadora-em-linguagem-C.html . O qual inclusive serviu de fonte de estudo para uma maratona de programação da qual participei.

[2] Comentário enviado por bielinux em 21/01/2016 - 00:15h

Que calculadora chiquérrima é essa? Aqui em casa, a minha só faz 4 operações :O

[3] Comentário enviado por marceloruan em 21/01/2016 - 00:44h


[2] Comentário enviado por bielinux em 21/01/2016 - 00:15h

Que calculadora chiquérrima é essa? Aqui em casa, a minha só faz 4 operações :O


Grato pelo seu comentário :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts