Fundamentos de Informática. Primer Curso de Ingenieros Industriales Práctica 7 Sentencias de Control de los Programas 1. Introducción Estas notas sirven de apoyo para la realización de las prácticas de programación en lenguaje C, correspondientes a la asignatura Fundamentos de Informática de primer curso de Ingeniería Industrial. Esta práctica pretende ilustrar algunos conceptos básicos relacionados con el uso de sentencias de control de flujo de programa en el lenguaje C. Las sentencias de control permiten modificar el flujo de ejecución de un programa en C. El lenguaje C permite al programador escribir fácilmente un programa a partir de un diagrama de flujo, o pseudocódigo, bien estructurado. Es decir, dispone de sentencias de control de programas adaptadas a los bloques de la programación estructurada. Los apartados que siguen introducen estos conceptos, y proponen al alumno la realización de un programa simple, pero que emplea buena parte de la estructuras de control de flujo presentes en el lenguaje C. 2. Desarrollo de la práctica Se pretende desarrollar una aplicación que permita al usuario realizar operaciones de cálculo básico, como podrían ser la suma, resta, producto, división, raíz cuadrada y factorial. Para ello se propone realizar un programa que permita introducir los básicos de cálculos (operandos), así como la operación que se desea realizar con ellos (menú de opciones), mostrando el resultado por pantalla. Debe tener en cuenta que las cuatro primeras son operaciones binarias, que por tanto requieren introducir dos operandos (número reales). Las dos últimas en cambio son operaciones unarias (requieren un único valor real). Con el objeto de estructurar apropiadamente el programa, y facilitar el diseño del mismo, se propone al alumno seguir la plantilla que se muestra a continuación. Puede observar que el código propuesto se compone de tres bloques (funciones) • • • Función main(). Bloque principal por el que comienza la ejecución del programa. Función char menu(). Bloque encargado presentar las opciones por pantalla y solicitar una opción dentro de las posibles. Función int factorial(int numero); Bloque encargado de calcular el factorial del número entero que se le pasa como argumento. 1 Fundamentos de Informática. Primer Curso de Ingenieros Industriales /* CALCULADORA BÁSICA Opciones: Suma, resta, producto, división, raíz cuadrada, factorial*/ #include <stdio.h> #include <math.h> #include <stdlib.h> char menu(void);//Función de menú int factorial(int numero);//Cálculo de factorial main() { char opcion;//Guarda la opción del menú char cadaux[20];//Cadena auxiliar para adquisición por teclado float numa,numb,resultado; //numa y numb son las entradas de las operaciones. //resultado es la salida. while((opcion=menu())!='g')//Mientras opción sea distinta de 'g' (salir) { if (opcion<='d')//Adquirir dos valores (operaciones con dos entradas) { printf("\nIntroduzca entrada \”a\”= "); gets(cadaux); //Toma de teclado una cadena de caracteres numa=atof(cadaux);//Conversión de array a flotante printf("\nIntroduzca entrada \”b\”= "); gets(cadaux); //Toma de teclado una cadena de caracteres numb=atof(cadaux);//Conversión de array a flotante } else //Adquirir un valor (operaciones con una entrada) { printf("\nIntroduzca entrada \”a\”= "); gets(cadaux); //Toma de teclado una cadena de caracteres numa=atof(cadaux);//Conversión de array a flotante } switch (opcion)//Selección de la operación segun la opción { case 'a': resultado=numa+numb; break; case 'b': resultado=numa-numb; break; case 'c': resultado=numa*numb; break; case 'd': resultado=numa/numb; break; . COMPLETAR . } printf("\nEl resultado es= %f\n",resultado);//Muestra resultado } printf("\nFin del programa"); } 2 Fundamentos de Informática. Primer Curso de Ingenieros Industriales char menu(void) //Presenta las opciones posibles, y solicita una mientras //no esté entre las válidas. Devuelve la opción seleccionada. { char opcion; do{ printf("\nCALCULADORA BASICA @yo"); printf("\na. SUMA"); printf("\nb. RESTA"); printf("\nc. PRODUCTO"); printf("\nd. DIVISION"); printf("\ne. RAIZ CUADRADA"); printf("\nf. FACTORIAL"); printf("\ng. SALIR"); printf("\n\nIntroduzca opcion: "); opcion=getche(); }while ( COMPLETAR . . } int factorial(int numero) //Funcion que calcula el factorial del numero //que se pasa como argumento { COMPLETAR . . . Con estos datos Se pide: 1. Optimizar en lo posible el código dedicado a toma de entradas. 2. Concluir el código proporcionado en los puntos marcados como COMPLETAR 3. Implementar la función ‘int factorial(int numero)’ mediante el uso de una sentencia ‘for’ . 3