Buscar

CALCULADORA VIRTUAL NA LINGUAGEM C

Prévia do material em texto

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define PI 3.14159265
float angulo, sen, coss, tg;
float soma,sub,mult,divi;
float num1,num2;
float x,y,a,b;
//Trigonometricas//
void Seno() {
 printf("\nDigite o angulo em graus.: ");
 scanf("%f", &angulo);
 sen = sin(angulo*PI/180);
 printf("\nO seno de %.2f = %.2f\n", angulo, sen); 
}
void Cosseno() {
 printf("\nDigite o angulo em graus.: ");
 scanf("%f", &angulo);
 coss = cos(angulo*PI/180);
 printf("\nO cosseno de %.2f = %.2f\n", angulo, coss);	
}
void Tangente() {
 printf("\nDigite o angulo em graus.: ");
 scanf("%f", &angulo);
 tg = tan(angulo*PI/180);
 printf("\nO tangente de %.2f = %.2f\n", angulo, tg);
}
//Funções Básicas//
void Soma() {
 printf("\nDigite o numero 1.: ");
 scanf("%f",&num1);
 printf("\nDigite o numero 2.: ");
 scanf("%f",&num2);
 soma = num1+num2;
 printf("\nO resultado da soma eh= %.2f",soma);
 }
 void Subtracao() {
 printf("\nDigite o numero 1.: ");
 scanf("%f",&num1);
 printf("\nDigite o numero 2.: ");
 scanf("%f",&num2);
 sub = num1- num2;
 printf("\nO resultado da subtracao eh= %.2f",sub);
 }
void multiplicacao() {
 printf("\nDigite o numero 1.: ");
 scanf("%f",&num1);
 printf("\nDigite o numero 2.: ");
 scanf("%f",&num2);
 mult = num1*num2;
 printf("\nO resultado da multiplicacao eh= %.2f ",mult);
 }
 void divisao() {
 printf("\nDigite o numero 1.: ");
 scanf("%f",&num1);
 printf("\nDigite o numero 2.: ");
 scanf("%f",&num2);
 divi = num1/num2;
 printf("\nO resultado da divisao %.2f ",divi);
 }
 //Logaritimicas//
 void logaritmo() {
 printf("\nDigite o valor para calcular o logaritmo.: ");
 scanf("%f",&a);
 x=log(a);
 printf("\nO resultado do log de %.2f = %.2f\n",a,x);
 }
 void logaritmonabase10() {
 printf("\nDigite o valor para calcular o logaritmo na base 10.: ");
 scanf("%f",&b);
 y=log10(b);
 printf("\nO resultado de %.2f = %.2f\n",b,y);
 }
 //EXPONENCIAL//
 void exponencial() {
 printf("\nDigite o valor para a base.: ");
 scanf("%f",&num1);
 printf("\nDigite o valor para o expoente.: ");
 scanf("%f",&num2);
 x=pow(num1,num2);
 printf("\nO resultado da exponencial: %.2f ",x);
 }
int main() {
 int op;
 
 printf("\n*************CALCULADORA COMPLETA************\n");	
 printf("\nMenu:\n"); 
 printf("\n 1-Seno");
 printf("\n 2-Cosseno");
 printf("\n 3-Tangente");
 printf("\n 4-soma");
 printf("\n 5-subtracao");
 printf("\n 6-multiplicacao");
 printf("\n 7-divisao");
 printf("\n 8-logaritmo");
 printf("\n 9-logaritmo na base 10");
 printf("\n 10-exponencial");
 
 printf("\n\nOpcao.: ");
 scanf("%d", &op);
 
 switch(op) {
 case 1:
 Seno();
 break;	
 case 2:
 Cosseno();
 break;
 case 3:
 Tangente();	
 break;
 case 4:
 Soma();	
 break;
	case 5:
 Subtracao();	
 break;
 case 6:
 multiplicacao();	
 break;
 case 7:
 divisao();	
 if(num2 != 0)
 printf("%.2f\n\n", num1 / num2);
 else
 printf("Nao existe divisao por 0\n");
 break;
 case 8:
 logaritmo();	
 break;
 case 9:
 logaritmonabase10();	
 break;
 case 10:
 exponencial();	
 break;
 default: 
 printf("\nErro! Opcao inexistente.\n");
 break;
 }
 while (main () > main ()); 
 return(0);
}
Desenvolvimento do Código.
A calculadora virtual possui funções trigonométricas, soma, subtração, multiplicação, divisão, logarítmicas e exponencial. Na construção do código em linguagem c,no cabeçalho incluímos três bibliotecas para que as funções definidas funcionassem, as bibliotecas foram a stdio.h, a math.h e a stdlio.h. As funções que desejávamos ter na calculadora já possuíam um protótipo na biblioteca math.h, mais esses protótipos estavam incompletos, logo foram definidas funções com parâmetros que completasse e retornasse a função que queríamos.
Utilizamos uma diretiva #define, para a constante PI, uma vez que estávamos trabalhando com funções trigonométricas, a diretiva irá informar ao compilador que durante a execução do código, onde ele encontrar a macro definida como parâmetro, ele irá ter que substituir pelo valor fornecido.
As variáveis que foram estabelecidas foram as do tipo float, pois iremos trabalhar com números reais.
Para cada função que a calculadora irá realizar, foram criados blocos independentes de protótipos de funções, antes da função principal Main para tornar a leitura do código mais clara e coesa. Utilizamos o tipo Void, foram definidos nestes blocos as funções Printf e scanf, que são as funções de entrada e saída de dados.
Dentro da função principal Main, definimos o menu que o usuário poderá escolher as opções disponíveis e foi definida a variável inteira que será utilizada dentro do laço de repetição swicht que definimos para que o código pudesse ser executado corretamente, uma vez que temos muitas funções a serem executada e um laço de repetição if, não seria viável. 
O swicht só recebe variáveis do tipo inteiro ou caracteres. Após definimos os cases que precisávamos, inserimos um break ao terminar o comando sem ter que passar pelas outras instruções, e uma condicional na função de Divisão, para que uma mensagem fosse informada ao usuário, caso esse digitasse o número 0 no divisor.
Inserimos um Default para informar que era opção invalida, caso uma opção que não foi informada nos cases fosse digitada pelo usuário. 
Terminamos o código com o laço de repetição while para a função main, para que o compilador continuasse a executar o código.

Continue navegando