Posted By

OdnetninI on 09/08/12


Tagged


Versions (?)

Calculator V 2.7


 / Published in: C
 

Two new Fuctions and a solved error

  1. // Includes of the System
  2. #include <stdio.h>
  3. #include <inttypes.h>
  4. #include <math.h>
  5.  
  6. // Float variables of numbers
  7. float a = 0;
  8. float b = 0;
  9.  
  10. // Float variable of result
  11. float result = 0;
  12.  
  13. // Check Variable
  14. uint8_t lastresult = 0;
  15. uint8_t error = 0;
  16.  
  17. // Define PI
  18. #define PI 3.14159265
  19.  
  20. /*
  21.   Fuction AskNumbers
  22.   Ask for the numbers
  23. */
  24. void AskNumbers ()
  25. {
  26. if (lastresult == 0 )
  27. {
  28. printf("Elige el primer Número: ");
  29. scanf("%f", &a);
  30. printf("Elige el segundo Número: ");
  31. scanf("%f", &b);
  32. }
  33. else if (lastresult == 1)
  34. {
  35. a = result;
  36. printf("Elige el segundo Número (El Primero es el Resultado anterior): ");
  37. scanf("%f", &b);
  38. }
  39. else if (lastresult == 2)
  40. {
  41. b = result;
  42. printf("Elige el Primer Número (El Segundo es el Resultado anterior): ");
  43. scanf("%f", &a);
  44. }
  45. }
  46.  
  47. /*
  48.   Fuction PrintfOptions
  49.   Printf the Options
  50. */
  51. void PrintfOptions ()
  52. {
  53. printf("Basic Calculador by OdnetninI\n");
  54. printf("-----------------------------\n");
  55. printf(" 1. Suma\n");
  56. printf(" 2. Resta\n");
  57. printf(" 3. Multiplicación\n");
  58. printf(" 4. División\n");
  59. printf(" 5. Potencia\n");
  60. printf(" 6. Coseno\n");
  61. printf(" 7. Seno\n");
  62. printf(" 8. Tangente\n");
  63. printf(" 9. Logaritmo Base 10\n");
  64. printf("10. Raíz Cuadrada\n");
  65. printf("-----------------------------\n");
  66. }
  67.  
  68. /*
  69.   Main
  70.   Init point of System
  71. */
  72. int main()
  73. {
  74. // Temporal vairables
  75. uint8_t salir = 0;
  76. uint8_t opcion = 0;
  77.  
  78. // Main While
  79. while(salir == 0)
  80. {
  81. // Printf the Options
  82. PrintfOptions();
  83.  
  84. // Ask for the option
  85. printf("Elija su Opción: ");
  86. scanf("%d", &opcion);
  87.  
  88. // Check if answer is correct
  89. if (opcion > 0 && opcion < 6)
  90. AskNumbers();
  91.  
  92. else if (opcion >= 6 && opcion < 11)
  93. {
  94. if (lastresult == 0 )
  95. {
  96. printf("Elige el Número: ");
  97. scanf("%f", &a);
  98. }
  99. else
  100. {
  101. a = result;
  102. }
  103. }
  104.  
  105. // Make the operation
  106. switch (opcion)
  107. {
  108. case 1:
  109. printf("%5.2f + %5.2f = %5.2f\n", a, b, a + b);
  110. result = a + b;
  111. break;
  112.  
  113. case 2:
  114. printf("%5.2f - %5.2f = %5.2f\n", a, b, a - b);
  115. result = a - b;
  116. break;
  117.  
  118. case 3:
  119. printf("%5.2f * %5.2f = %5.2f\n", a, b, a * b);
  120. result = a * b;
  121. break;
  122.  
  123. case 4:
  124. printf("%5.2f / %5.2f = %5.2f\n", a, b, a / b);
  125. result = a / b;
  126. break;
  127.  
  128. case 5:
  129. result = a;
  130. for (float i = 0; i < b-1; i++)
  131. result *= a;
  132. printf("%5.2f ^ %5.2f = %5.2f\n", a, b, result);
  133. break;
  134.  
  135. case 6:
  136. result = cos (a*PI/180);
  137. printf("cos(%5.2f) = %5.2f", a, result);
  138. break;
  139.  
  140. case 7:
  141. result = sin (a*PI/180);
  142. printf("sin(%5.2f) = %5.2f", a, result);
  143. break;
  144.  
  145. case 8:
  146. result = tan (a*PI/180);
  147. printf("tan(%5.2f) = %5.2f", a, result);
  148. break;
  149.  
  150. case 9:
  151. result = log10 (a);
  152. printf("log10(%5.2f) = %5.2f", a, result);
  153. break;
  154.  
  155. case 10:
  156. result = sqrt (a);
  157. printf("Raiz Cuadrada(%5.2f) = %5.2f", a, result);
  158. break;
  159.  
  160. default:
  161. printf("Operación Desconocida\n");
  162. error = 1;
  163. break;
  164. }
  165.  
  166. // Ask for go out
  167. printf("¿Desea salir? [0:No, 1:Si]");
  168. scanf("%d", &opcion);
  169.  
  170. // Check the answer
  171. if (opcion == 1)
  172. salir = 1;
  173.  
  174. else
  175. {
  176. salir = 0;
  177. if (error == 0)
  178. {
  179. printf("¿Quieres conservar el resultado? [0:No, 1:Resultado es A, 2: Resultado es B]");
  180. scanf("%d", &opcion);
  181. if (opcion == 1) lastresult = 1;
  182. else if (opcion == 2) lastresult = 2;
  183. else lastresult = 0;
  184. }
  185. error = 0;
  186. }
  187.  
  188. // New Line
  189. printf("\n");
  190. }
  191.  
  192. // Exit of the program
  193. return 0;
  194. }

Report this snippet  

You need to login to post a comment.