Revision: 59472
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 10, 2012 05:07 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; uint8_t error = 0; // Define PI #define PI 3.14159265 #define RADIAN (PI/180) #define GRADOS (180/PI) /* 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 Calculator 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(" 9. Logaritmo Base 10\n"); printf("10. RaÃÂz Cuadrada\n"); printf("11. Grados a Radianes\n"); printf("12. Radianes a Grados\n"); printf("99. Salir\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 < 13) { 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\n", a, result); break; case 7: result = sin (a*PI/180); printf("sin(%5.2f) = %5.2f\n", a, result); break; case 8: result = tan (a*PI/180); printf("tan(%5.2f) = %5.2f\n", a, result); break; case 9: result = log10 (a); printf("log10(%5.2f) = %5.2f\n", a, result); break; case 10: result = sqrt (a); printf("Raiz Cuadrada(%5.2f) = %5.2f\n", a, result); break; case 11: result = a * RADIAN; printf("%5.2f = %5.2f radianes\n", a, result); break; case 12: result = a * GRADOS; printf("%5.2f = %5.2f Grados\n", a, result); break; case 99: salir = 1; error = 1; return 0; break; default: printf("Operación Desconocida\n"); error = 1; 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; if (error == 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; } error = 0; } // New Line printf("\n"); } // Exit of the program return 0; }
Initial URL
Initial Description
Two new fuctions and two bugs repaired
Initial Title
Calculator V 2.9
Initial Tags
Initial Language
C