marcoshuck

Punteros a funciones

Dec 15th, 2016
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /* Calculadora - Se requiere realizar una calculadora de números reales */
  5.  
  6. typedef float (*cFunc)(float e1, float e2);
  7. float SUMA(float e1, float e2);
  8. float RESTA(float e1, float e2);
  9. float PRODUCTO(float e1, float e2);
  10.  
  11. int main(int argc, char *argv[])
  12. {
  13.     int op;
  14.     float e1, e2;
  15.     cFunc ObtenerRes;
  16.     /* Ingresar operacion a realizar */
  17.     printf("Ingrese la operación que desea realizar:\n");
  18.     printf("1- Suma\n2- Resta\n3- Producto\n");
  19.     printf("Operacion elegida: ");
  20.     scanf("%d", &op);
  21.     /* Ingresar operandos */
  22.     printf("Ingrese los operandos:\n");
  23.     printf("e1: ");
  24.     scanf("%f", &e1);
  25.     printf("e2: ");
  26.     scanf("%f", &e2);
  27.     switch(op)
  28.     {
  29.         case 1: // Suma
  30.         {
  31.             printf("Suma: \n");
  32.             printf("%.2f + %.2f = ", e1, e2);
  33.             ObtenerRes = SUMA;
  34.             break;
  35.         }
  36.         case 2: // Resta
  37.         {
  38.             printf("Resta: \n");
  39.             printf("%.2f - %.2f = ", e1, e2);
  40.             ObtenerRes = RESTA;
  41.             break;
  42.         }
  43.         case 3: // Producto
  44.         {
  45.             printf("Producto: \n");
  46.             printf("%.2f * %.2f = ", e1, e2);
  47.             ObtenerRes = PRODUCTO;
  48.             break;
  49.         }
  50.     }
  51.     printf("%.2f\n", ObtenerRes(e1, e2));
  52.     system("PAUSE");   
  53.     return 0;
  54. }
  55.  
  56. float SUMA(float e1, float e2)
  57. {
  58.     return e1+e2;
  59. }
  60.  
  61. float RESTA(float e1, float e2)
  62. {
  63.     return e1-e2;
  64. }
  65.  
  66. float PRODUCTO(float e1, float e2)
  67. {
  68.     return e1*e2;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment