Calculadora científica

Deixe de lado todos gastos com calculadoras científicas, todo o trabalho caso a perca e ainda por cima todo o incomodo de levá-la todos os dias para a aula! Aprenda aqui a como fazer sua própria calculadora científica que calcula seno, cosseno, tangente e até mesmo Raiz Quadrada!

Calculadora-Burroughs-J284-antiga-20160718012034Índice

  • 1 1. Primeiro Passo
  • 2 2. Segundo Passo
  • 3 3. Terceiro Passo
  • 4 Soma
  • 5 Subtração
  • 6 Multiplicação
  • 7 Divisão
  • 8 Fatorial
  • 9 Seno, Cosseno e Tangente
  • 10 Raiz Quadrada
  • 11 4. Quarto Passo

 

Primeiro Passo

Para começar, vamos de maneira bem simples criar e exibir uma mensagem com as opções do Menu:

       [1 - Soma]
       [2 - Subtração]
       [3 - Multiplicação]
       [4 - Divisão]
       [5 - Fatorial]
       [6 - Seno]
       [7 - Cosseno]
       [8 - Tangente 
       [9 - Raiz Quadrada]
       [S - Fechar Aplicação]

Utilize apenas da função “printf”, lembre-se que só queremos exibir a mensagem por enquanto.

Segundo Passo

Agora iremos aguardar o usuário para que entre com a opção do menu desejada

Para ler opção do usuário como sugestão poderá ser usado o getchar

Terceiro Passo

Agora iremos desenvolver funções para cada opção do menu usando as seguintes funçoes abaixo:

 

 

Soma

Através do algoritmo a seguir, vamos desenvolver função que solicite ao usuário os operandos da soma, efetue o cálculo, e guarde seu resultado

 float soma(float x1, float x2){
     float resultado = x1+x2;
     return resultado;
  }
  • Caso escolhe efetuar soma de mais de dois operandos, o programador poderá ao final da soma dos dois operandos, perguntar se deseja somar outro numero ao resultado, em caso afirmativo desenvolver uma condição para analisar a escolha do usuário e chamar novamente a função soma com os parametros: (resultado, x3), para assim somarmos um terceiro numero ao resultado da soma dos dois primeiros.
 char opcaos;
 float resultado, x1,x2,x3;
 printf("digite os números que você deseja multiplicar:\n");
 scanf("%f%f",&x1,&x2);
 resultado = soma(n1, n2);
 printf("Deseja somar mais um número ao resultado? Digite "s" se sim ou "n" se não."\n);
 scanf("%c",&opcaos);
 if(opcaos=='s')
        printf("Digite o proximo número a ser somado ao resultado anterior:\n);
        scanf("%f",&x3);
        resultado = multiplicacao(resultado, n3);
        printf("O resultado é: %f\n",resultado);
else
        printf("O resultado é: %f\n",resultado);

 

 

Subtração

Para realizarmos a operação de subtração, vamos desenvolver função que solicite ao usuário os operandos da subtração, efetue o cálculo, e retorne seu resultado

  float sub(float x1, float x2){
     float resultado = x1-x2;
     return resultado;
  }
  • Caso escolhe efetuar a subtraçao de mais de dois operandos, o programador poderá ao final da subtração dos dois operandos, perguntar se deseja subtrair outro numero ao resultado, em caso afirmativo, chame novamente a função utilizando como paramtreos as variáveis “resultado” e uma nova variável cuja qual irá armazenar o valor do terceiro número a ser subtraído. Veja o exemplo da Soma logo acima.

 

 

Multiplicação

Agora vamos desenvolver função que solicite ao usuário os operandos da Multiplicação, efetue o cálculo, e guarde seu resultado

 float multiplicacao (float n1, float n2)
  {
     
     float res = n1 * n2;
     return res;
  }
  • Caso escolhe efetuar a multiplicação de mais de dois operandos, o programador poderá ao final do produto dos dois operandos, perguntar se deseja multiplicar por outro numero ao resultado, em caso afirmativo desenvolver uma condição dependendo da escolha do usuário.
  char opcaom;
  float resultado, n1,n2,n3,n4,n5,n6;
  printf("digite os números que você deseja multiplicar:\n");
  scanf("%f%f",&n1,&n2);
  resultado = multiplicacao(n1, n2);
  printf("Deseja multiplicar mais um número ao resultado? Digite "s" se sim ou "n" se não."\n);
  scanf("%c",&opcaom);
  if(opcaom=='s')
         printf("Digite o proximo número a ser multiplicado pelo resultado anterior:\n);
         scanf("%f",&n3);
         resultado = multiplicacao(resultado, n3);
         printf("O resultado é: %f\n",resultado);
 else
         printf("O resultado é: %f\n",resultado);

 

 

Divisão

Vamos desenvolver agora uma função que solicite ao usuário os operandos da Divisão , efetue o calculo e retorne o resultado.

   float divisao(float d1, float d2)
 {
    
    float res = d1 * d2;
    return res;
 }
  • Caso escolhe efetuar a divisão de mais de dois operandos, o programador poderá ao final da divisão dos dois operandos, perguntar se deseja dividir por outro numero ao resultado, em caso afirmativo você deverá desenvolver uma condição para analisar a escolha do usuário e chamar novamente a função divisao com os parametros: (resultado, d3), para assim dividirmos um terceiro número ao resultado da soma dos dois primeiros.
char opcaod;
float resultado, d1,d2,d3;
printf("digite os números que você deseja dividir:\n");
scanf("%f%f",&d1,&d2);
resultado = divisao(d1, d2);
printf("Deseja dividir mais um número ao resultado? Digite "s" se sim ou "n" se não."\n);
scanf("%c",&opcaod);
if(opcaos=='s')
       printf("Digite o proximo número a ser dividido ao resultado anterior:\n);
       scanf("%f",&d3);
       resultado = divisao(resultado, d3);
       printf("O resultado é: %f\n",resultado);
else
       printf("O resultado é: %f\n",resultado);

 

 

Fatorial

Agora vamos desenvolver uma função que solicite ao usuário o número que se deseja encontrar o fatorial. Efetue o cálculo do fatorial e guarde seu resultado.

Exemplo: se o número for igual a zero, o fatorial = 1, senão, fatorial = número* fatorial(número -1)

  int fatorial(int num){
   if(num == 0){
       return 1;
   }
   else{
       return num* fatorial(num -1);
   }

}

O trecho de código acima corresponde a implementação da função que calcula e retorna o fatorial de um número. Note que é utilizado aqui o conceito de recursividade como dito acima.

 

 

Seno, Cosseno e Tangente

Vamos agora desenvolver uma função que solicite ao usuário o ângulo em graus para que seja efetuado os cálculos de seno, cosseno ou tangente de acordo com o índice escolhido.

  • Para implementar tais funçoes, será sugerido o conhecimento dos termos de:
TrigonometriaSerie de TaylorPi

Será desenvolvido entao um algoritmo em cima de cada funçao desejada, seno, cosseno e tangente.
Caso não consiga converter as relções trigonométricas acima, você pode fazer uso das funções já prontas dentro da biblioteca “math.h”. Para isso, basta incluir a biblioteca no começo de seu código e chamar a função correspondente ao seno, cosseno ou tangente, e assimilar com a opção escolhida pelo usuário.

  #include <math.h>

Agora para calcular o seno temos:

  float angulo, seno;
  scanf("%f",&angulo);
  seno = sin(angulo);
  printf("O seno do angulo é: %.6f", seno);

Para calcular o cosseno temos:

  float angulo, cosseno;
  scanf("%f",&angulo);
  cosseno = cos(angulo);
  printf("O cosseno do angulo é: %.6f", cosseno);

Para calcular a tangente temos:

  float angulo, tangente;
  scanf("%f",&angulo);
  tangente = sin(angulo);
  printf("A tangente do angulo é: %.6f", tangente);

 

 

Raiz Quadrada

Para desenvolver uma função que calcule a Raíz quadrada de um numero, é valido lembrar que não poderá fazer a inclusão da biblioteca math.h, será necessario implementar todo o algoritimo dentro da função criada para calcular a raiz quadrada.

  • Implemente a relação de recorrência obtida usando o método de Newton-Raphson.
 xn1 = xn - (xn*xn - a)/(2.0*xn);
  • A condição de parada para obter precisão mínima de 5 casas decimais é
 (xn - xn1)*(xn - xn1) > 0.00001

Essa conta representa uma forma de encontra a raiz da função f(x) = x^2 – a, ou seja, o valor x que faz a função f(x) resultar em zero. Esse valor coincide com a raiz quadrada do número que queremos encontrar.

  • O x_{0} é o valor de chute inicial para a raiz do número a positivo.

 

 

Quarto Passo

– Usando switch case determinar qual função deverá ser chamada para tratar opção selecionada pelo usuário no passo 2.