Document

Anuncio
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
Descargar