/** @file mi-ej.cpp @author mp2 @brief Ejemplo de programa en C++ que será extendido en sucesivas sesiones de prácticas. Se encarga de realizar algunos cálculos sencillos. Contiene errores sintácticos y semánticos. 1. Faltan los prototipos 2. Falta código por hacer. 3. Transcripción del combinatorio semánticamente mal 4. Falta algún ; 5. Asignación del indicador de salida del bucle mal (fin del switch) */ #include int main() { int a, b; /* Variables de entrada */ float c; /* Variables de entrada */ char opc; /* Teclas del menú */ bool salir=false; /* Controla la salida del programa */ while (!salir) { opc = Menu(); /* Opciones del menú */ switch (opc) { /* Factorial */ case 'F': case 'f': a = FiltroPos(); c = Factorial(a); cout << "Resultado = " << c; break; /* Potencia */ case 'P': case 'p': /* NO IMPLEMENTADO */ break /* Combinatorio */ case 'c': case 'C': a = FiltroPos(); b = FiltroPos(); /* NO IMPLEMENTADO */ break; /* Salir del programa */ case 'S': case 's': salir = false; break; } /* del switch */ } /* del while */ return 0; } /** @brief Calcula la potencia @param b La base @param e El exponente @pre \a e > 0 @return \a b elevado a \a e */ float Potencia(float b, int e) { /*NO IMPLEMENTADA */ } /** @brief Calcula el factorial @param x El número al que se le va a calcular el factorial @pre \a x >= 0 @return \a x! */ float Factorial(int x) { float res = 1; int i; for (i=2; i= cero */ int FiltroPos() { int x; do { cout << "Introduce un número entero >=0 "; cin >> x; } while (x < 0); return x; } /** @brief Presenta un menú en la pantalla y lee la opción correspondiente. No filtra esta entrada de caracteres. @return Un carácter que representa a la tecla que se ha pulsado */ char Menu() { char t; cout << "\n\n Menu\n=======\n\n"; cout << "[F]actorial\n[P]otencia\n[C]ombinatorio\n[S]alir\n\n"; cout << "Introduce la opción: "; cin >> t; return t; }