Return to Snippet

Revision: 59449
at September 8, 2012 09:09 by OdnetninI


Initial Code
// Includes of the System
#include <stdio.h>
#include <inttypes.h>
#include <math.h>

// Float variables of numbers
float a = 0;
float b = 0;

// Float variable of result
float result = 0;

// Check Variable
uint8_t lastresult = 0;

// Define PI
#define PI 3.14159265

/*
    Fuction AskNumbers
    Ask for the numbers
*/
void AskNumbers ()
{
    if (lastresult == 0 )
    {
        printf("Elige el primer Número: ");
        scanf("%f", &a);
        printf("Elige el segundo Número: ");
        scanf("%f", &b);
    }
    else if (lastresult == 1)
    {
        a = result;
        printf("Elige el segundo Número (El Primero es el Resultado anterior): ");
        scanf("%f", &b);
    }
    else if (lastresult == 2)
    {
        b = result;
        printf("Elige el Primer Número (El Segundo es el Resultado anterior): ");
        scanf("%f", &a);
    }
}

/*
    Fuction PrintfOptions
    Printf the Options
*/
void PrintfOptions ()
{
    printf("Basic Calculador by OdnetninI\n");
    printf("-----------------------------\n");
    printf("1. Suma\n");
    printf("2. Resta\n");
    printf("3. Multiplicación\n");
    printf("4. División\n");
    printf("5. Potencia\n");
    printf("6. Coseno\n");
    printf("7. Seno\n");
    printf("8. Tangente\n");
    printf("-----------------------------\n");
}

/*
    Main
    Init point of System
*/
int main()
{
    // Temporal vairables
    uint8_t salir = 0;
    uint8_t opcion = 0;

    // Main While
    while(salir == 0)
    {
        // Printf the Options
        PrintfOptions();

        // Ask for the option
        printf("Elija su Opción: ");
        scanf("%d", &opcion);

        // Check if answer is correct
        if (opcion > 0 && opcion < 6)
            AskNumbers();

        else if (opcion >= 6 && opcion < 9)
        {
            if (lastresult == 0 )
            {
                printf("Elige el Número: ");
                scanf("%f", &a);
            }
            else
            {
                a = result;
            }
        }

        // Make the operation
        switch (opcion)
        {
            case 1:
                printf("%5.2f + %5.2f = %5.2f\n", a, b, a + b);
                result = a + b;
                break;

            case 2:
                printf("%5.2f - %5.2f = %5.2f\n", a, b, a - b);
                result = a - b;
                break;

            case 3:
                printf("%5.2f * %5.2f = %5.2f\n", a, b, a * b);
                result = a * b;
                break;

            case 4:
                printf("%5.2f / %5.2f = %5.2f\n", a, b, a / b);
                result = a / b;
                break;

            case 5:
                result = a;
                for (float i = 0; i < b-1; i++)
                    result *= a;
                printf("%5.2f ^ %5.2f = %5.2f\n", a, b, result);
                break;

            case 6:
                result = cos (a*PI/180);
                printf("cos(%5.2f) = %5.2f", a, result);
                break;

            case 7:
                result = sin (a*PI/180);
                printf("sin(%5.2f) = %5.2f", a, result);
                break;

            case 8:
                result = tan (a*PI/180);
                printf("tan(%5.2f) = %5.2f", a, result);
                break;

            default:
                printf("Operación Desconocida\n");
                break;
        }

        // Ask for go out
        printf("¿Desea salir? [0:No, 1:Si]");
        scanf("%d", &opcion);

        // Check the answer
        if (opcion == 1)
            salir = 1;

        else
        {
            salir = 0;
            printf("¿Quieres conservar el resultado? [0:No, 1:Resultado es A, 2: Resultado es B]");
            scanf("%d", &opcion);
            if (opcion == 1) lastresult = 1;
            else if (opcion == 2) lastresult = 2;
            else lastresult = 0;
        }

        // New Line
        printf("\n");
    }

    // Exit of the program
    return 0;
}

Initial URL


Initial Description
New Fuctions

Initial Title
Calculator V 2.5

Initial Tags


Initial Language
C