marcoshuck icon

Punteros a funciones

marcoshuck | PRO | 12/15/16 01:56:57 PM UTC | 0 ⭐ | 402 👁️ | Never ⏰ | []
C++ |

1.54 KB

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <stdlib.h>
 
/* Calculadora - Se requiere realizar una calculadora de números reales */
 
typedef float (*cFunc)(float e1, float e2);
float SUMA(float e1, float e2);
float RESTA(float e1, float e2);
float PRODUCTO(float e1, float e2);
 
int main(int argc, char *argv[])
{
    int op;
    float e1, e2;
    cFunc ObtenerRes;
    /* Ingresar operacion a realizar */
    printf("Ingrese la operación que desea realizar:\n");
    printf("1- Suma\n2- Resta\n3- Producto\n");
    printf("Operacion elegida: ");
    scanf("%d", &op);
    /* Ingresar operandos */
    printf("Ingrese los operandos:\n");
    printf("e1: ");
    scanf("%f", &e1);
    printf("e2: ");
    scanf("%f", &e2);
    switch(op)
    {
        case 1: // Suma
        {
            printf("Suma: \n");
            printf("%.2f + %.2f = ", e1, e2);
            ObtenerRes = SUMA;
            break;
        }
        case 2: // Resta
        {
            printf("Resta: \n");
            printf("%.2f - %.2f = ", e1, e2);
            ObtenerRes = RESTA;
            break;
        }
        case 3: // Producto
        {
            printf("Producto: \n");
            printf("%.2f * %.2f = ", e1, e2);
            ObtenerRes = PRODUCTO;
            break;
        }
    }
    printf("%.2f\n", ObtenerRes(e1, e2));
    system("PAUSE");    
    return 0;
}
 
float SUMA(float e1, float e2)
{
    return e1+e2;
}
 
float RESTA(float e1, float e2)
{
    return e1-e2;
}
 
float PRODUCTO(float e1, float e2)
{
    return e1*e2;
}

Comments