Calculadora simples

Publicado por Reginaldo de Matias 08/11/2006

[ Hits: 16.673 ]

Homepage: http://mundodacomputacaointegral.blogspot.com/

Download simples.c




O presente script efetua os cálculos de uma calculadora simples, tais como: adição, subtração, multiplicação, divisão, potenciação, fatorial e raiz quadrada.

  



Esconder código-fonte

//Calculadora Simples                   
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float adicao(float a,float b)
{
    return(a+b);
}
float subtracao(float a,float b)
{
    return(a-b);
}
float multiplicacao(float a,float b)
{
    return(a*b);
}
float divisao(float a,float b)
{
    return(a/b);
}
float potencia(float a,float b)
{
    return(pow(a,b));
}
float raiz(float a)
{
    return(sqrt(a));
}
unsigned long fatorial(unsigned long n)
{
    if(n==1 ||n==0)
    return 1;
    else
    return(n*(fatorial(n-1)));
}    
int main()
{
    char op;
    float z,w;
    int k;
    long a;
    do{
        system("cls");
        system("color F2");
    printf("Este programa executa as mesmas funcoes de uma calculadora simples\n\n");
    printf("Escolha sua opcao:\n");
    printf("1-Soma\n2-Diferenca\n3-Produto\n4-Divisao\n5-Potencia\n6-Raiz\n7-Fatorial\n");
    do{ scanf("%i",&k);
    }while(k<1||k>7);
    if((k==1)||(k<=5))
    {
        printf("Entre com o primeiro valor:");
        scanf("%f",&z);
        printf("Entre com o segundo valor:");
        scanf("%f",&w);
    }
    else
    {
         if((k==6))
         {
            printf("Entre com o valor:");
            scanf("%f",&z);
         }
    }    
    switch(k){
        case 1:
            printf("Soma de %f e %f =%.2f\n",z,w,adicao(z,w));
            break;
        case 2:
            printf("Diferenca de %f e %f =%.2f\n",z,w,subtracao(z,w));
            break;
        case 3:
            printf("Produto de %f e %f =%.2f\n",z,w,multiplicacao(z,w));
            break;
        case 4:
            while((w==0)){
                printf("ERRO!! IMPOSSIVEL DIVIDIR POR ZERO\n");
                scanf("%f",&w);}
                printf("Divisao de %f e %f =%.2f\n",z,w,divisao(z,w));
                break;
        case 5:
            printf("%f elevado a %f =%.2f\n",z,w,potencia(z,w));
            break;
        case 6:
            while((z<0)){
            printf("ERRO!! NAO EXISTE RAIZ QUADRADA DE NUMERO NEGATIVO NO CONJUNTO DOS REAIS\n");
            scanf("%f",&z);}
            printf("Raiz quadrada de %f =%.2f\n",z,raiz(z));
            break;
        case 7:
             printf("Entre com o valor para efetuar o calculo do fatorial:\n");
             scanf("%li",&a);
             while(a<0)
             {
                printf("!!!ERRO!!! NAO EXITE FATORIAL NEGATIVO!\n");
                scanf("%li",&a);
             }
             printf("Fatorial de %li = %li\n",a,fatorial(a));
             break;    
    }
    printf("Deseja efetuar outro calculo. (S)/(N):");
    scanf("%s",&op);
    }while((op=='s')||(op=='S'));
    printf("\n\n\nDesenvolvido por Reginaldo de Matias\n");
    printf("\tCiencia da Computacao - UDESC\t\n\n");
system("Pause");
}//fim do programa   

Scripts recomendados

Números primos da seqüência Fibonacci

Múltiplos de 2 ou 3

Pesquisa da Prefeitura

vetex2.c

MMC


  

Comentários
[1] Comentário enviado por feraf em 08/11/2006 - 16:50h

Só faltou dizer que precisa compilar com '-lm':

gcc -lm simples.c -o simples

Felipe

[2] Comentário enviado por hunz em 08/11/2006 - 18:11h

Você não precisa implementar funções deste tipo:

float adicao(float a,float b)
{
return(a+b);
}

Você pode definí-la como pré-processador, além de seu código ficar mais simples, não chama função nenhuma, apenas troca o código na hora da compilação.
Podes fazer assim:

#define adicao(X, Y) X + Y

Em todo lugar que o compilador achar "adicao(num1, num2)" ele ira substituir por "num1 + num2"

Capisce?

Abraços!
Paz e luz

[3] Comentário enviado por doradu em 29/01/2010 - 13:13h

falta 'segurar' o cursor pra q não fique sujeito ao 'enter'

e tb uma função pra terminar o programa


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts