Ir para conteúdo

POWERED BY:

Arquivado

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

LeonardoMendes

Calculadora em C

Recommended Posts

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <conio.h>


int main(int argc, char *argv[])
{
    
char op = 0;
int va11 = 0, va12 = 0, res = 0;

while (op != 's') 
{
system("title C A L C U L A D O R A!");
system("cls");
system("color 0F");
printf("\t\t\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n");
printf("\t\t\t\t\xBA     CALCULADORA     \xBA\n");
printf("\t\t\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n");
printf(" \n");
printf("\t\t\t\tEscolha Operacao: \n");
printf("\t\t\t\t(+) Soma. \n");
printf("\t\t\t\t(-) Subtracao. \n");
printf("\t\t\t\t(/) Divisao. \n");
printf("\t\t\t\t(*) Multiplicacao. \n");
printf("\t\t\t\t(E) Exponenciacao \n");
printf("\t\t\t\t® Raiz Quadrada. \n");
printf("\t\t\t\t(P) Porcentagem \n");
printf("\t\t\t\t(S) Sair. \n");
printf("\t\t\t\tOpcao: ");
op = getch();

printf(" \n\n");
switch (op){
       case '+':
            printf("\t\t\t\tS O M A\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 + va12;
            printf("\n\t\t\t\tSoma de %d + %d = %d", va11, va12, res);
       break;
       case '-':
            printf("\t\t\t\tS U B T R A C A O\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 - va12;
            printf("\n\t\t\t\tSubtracao de %d - %d = %d", va11, va12, res);
       break;
        case '*':
            printf("\t\t\t\tM U L T I P L I C A C A O\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 * va12;
            printf("\n\n\t\t\t\tMultiplicacao de %d * %d = %d", va11, va12, res);
       break;
        case '/':
            printf("\t\t\t\tD I V I S A O\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 / va12;
            printf("\t\t\t\tDivisao de %d / %d = %d", va11, va12, res);
       break;
        case 'e':
             printf("\t\t\t\tE X P O N E N C I A C A O\n\n");
             printf("\t\t\t\tDigite A Base : ");
             scanf("%d",&va11);
             printf("\t\t\t\tDigite o Expoente : ");
             scanf("%d",&va12);
             res = pow(va11,va12);
             printf("\t\t\t\tResultado = %d \n",res);
       break;
        case 'r':
             printf("\t\t\t\tR A I Z   Q U A D R A D A\n\n");
             printf("\t\t\t\tValor: ");
             scanf("%d", va11);
             res = sqrt(va11);
             printf("\t\t\t\tRaiz quadrada de %d: %d", va11, res);
       break;
        case 'p':
             printf("\t\t\t\tP O R C E N T A G E M\n\n");
             printf("\t\t\t\tValor: ");
             scanf("%d", va11);
             printf("\t\t\t\tPorcentagem: ");
             scanf("%d", va12);
             res = (va12 * 100) / va11;
             printf("\t\t\t\t%d de %d = %d", va11, va12, res);
       break;
        case 's':
             return EXIT_SUCCESS;
        default:
                printf("\t\t\t\tOpcao Incorreta.\n\n");
                printf("\t\t\t\tPressione QUALQUER TECLA para sair...");
                
             } 
             system("pause>NULL");
             }   	
return 0;
}

Boa tarde galera, sou iniciante em C e estou com dificuldades na criação da minha calculadora em C..

eu desenvolvi essa calculadora e estou com problemas nas operações EXPONENCIAÇÃO, RAIZ QUADRADA e PORCENTAGEM..

 

alguem poderia me ajudar quanto as operações aritméticas para resolver?

 

muito obrigado :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz a alteração de int pra double.. a raiz quadrada (sqrt) deu certo.. mas a porcentagem ta dando uma inconsistência.. por exemplo:

 

200 + 54 / 100

 

a maneira certa que deveria aparecer:

54% de 200 = 2.54

 

maneira que aparece:

54% de 200 = 2.00

 

oque deu devo alterar para aparecer os numeros decimais depois da virgula? ;s

 

segue o codigo:

 

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <conio.h>


int main(int argc, char *argv[])
{
    
char op = 0;
int va11 = 0, va12 = 0, res = 0;
double res1 = 0, va1 = 0, va2 = 0;

while (op != 's') 
{
system("title C A L C U L A D O R A!");
system("cls");
system("color 0F");
printf("\t\t\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB\n");
printf("\t\t\t\t\xBA     CALCULADORA     \xBA\n");
printf("\t\t\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC\n");
printf(" \n");
printf("\t\t\t\tEscolha Operacao: \n");
printf("\t\t\t\t(+) Soma. \n");
printf("\t\t\t\t(-) Subtracao. \n");
printf("\t\t\t\t(/) Divisao. \n");
printf("\t\t\t\t(*) Multiplicacao. \n");
printf("\t\t\t\t(E) Exponenciacao \n");
printf("\t\t\t\t® Raiz Quadrada. \n");
printf("\t\t\t\t(P) Porcentagem \n");
printf("\t\t\t\t(S) Sair. \n");
printf("\t\t\t\tOpcao: ");
op = getch();

printf(" \n\n");
switch (op){
       case '+':
            printf("\t\t\t\tS O M A\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 + va12;
            printf("\n\t\t\t\tSoma de %d + %d = %d", va11, va12, res);
       break;
       case '-':
            printf("\t\t\t\tS U B T R A C A O\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 - va12;
            printf("\n\t\t\t\tSubtracao de %d - %d = %d", va11, va12, res);
       break;
        case '*':
            printf("\t\t\t\tM U L T I P L I C A C A O\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res = va11 * va12;
            printf("\n\t\t\t\tMultiplicacao de %d * %d = %d", va11, va12, res);
       break;
        case '/':
            printf("\t\t\t\tD I V I S A O\n\n");
            printf("\t\t\t\tPrimeiro Valor: ");
            scanf("%d", &va11);
            printf("\t\t\t\tSegundo Valor: ");
            scanf("%d", &va12);
            res1 = va11 / va12;
            printf("\n\t\t\t\tDivisao de %d / %d = %.1f", va11, va12, res1);
       break;
        case 'e':
             printf("\t\t\t\tE X P O N E N C I A C A O\n\n");
             printf("\t\t\t\tDigite A Base : ");
             scanf("%f",&va1);
             printf("\t\t\t\tDigite o Expoente : ");
             scanf("%f",&va2);
             res1 = pow(va1,va2);
             printf("\t\t\t\tResultado = %f \n",res1);
       break;
        case 'r':
             printf("\t\t\t\tR A I Z   Q U A D R A D A\n\n");
             printf("\t\t\t\tValor: ");
             scanf("%d", &va11);
             res1 = sqrt(va11);
             printf("\n\t\t\t\tRaiz quadrada de %d: %f", va11, res1);
       break;
        case 'p':
             printf("\t\t\t\tP O R C E N T A G E M\n\n");
             printf("\t\t\t\tValor: ");
             scanf("%d", &va11);
             printf("\t\t\t\tPorcentagem: ");
             scanf("%d", &va12);
             res1 = (va11 + va12) / 100;
             printf("\n\t\t\t\t%d%% de %d = %.2f", va12, va11, res1);
       break;
        case 's':
             return EXIT_SUCCESS;
        default:
                printf("\t\t\t\tOpcao Incorreta.\n\n");
                printf("\t\t\t\tPressione ENTER para tentar novamente...");
                
             } 
             system("pause>NULL");
             }   	
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei aonde você pegou essa fórmula de cálculo da porcentagem.

 

Fiz aqui, usando o teu exemplo:

54% de 200 = 108

Usando a fórmula matemática: numero * 100 / 54

Onde, numero é o teu número inteiro. O 100%, o total.

54 é a porcentagem que quer descobrir desse numero.

 

Portanto, a maneira como você está calculando está errada.

 

Explicação sobre o cálculo: http://www.porcentagem.org/

 

Espero ter ajudado, FLW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei aonde você pegou essa fórmula de cálculo da porcentagem.

 

Fiz aqui, usando o teu exemplo:

54% de 200 = 108

Usando a fórmula matemática: numero * 100 / 54

Onde, numero é o teu número inteiro. O 100%, o total.

54 é a porcentagem que quer descobrir desse numero.

 

Portanto, a maneira como você está calculando está errada.

 

Explicação sobre o cálculo: http://www.porcentagem.org/

 

Espero ter ajudado, FLW!

 

 

ajudou siim Gbecker.. muito obrigado cara, valeu pela ajuda.

 

mas e na operação de exponenciação? a formula ta certa? :x

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Mas observe os tipos de dados que a função pow retorna e recebe.

 

http://www.cplusplus.com/reference/cmath/pow/?kw=pow

 

No padrão C90, ela só aceita double.

Já no padrão C99, ela aceita também float. Mas o nome muda para powf.

 

Nesse link aí que passei está tudo explicado.

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.