Universidad Nacional Abierta y a Distancia – UNAD CURSO: INTRODUCCIÓN A LA PROGRAMACIÓN

PROGRAMA BÁSICO A continuación se presentan dos codificaciones sencillas que corresponden a la solución básica del siguiente problema: se requiere un programa que solicite dos números enteros, con los cuales se puedan realizar las operaciones de suma, resta, multiplicación y división. Al usuario se le debe presentar un menú donde pueda elegir el tipo de operación que desea realizar.

PRIMER PROGRAMA SIN FUNCIONES #include <stdio.h> #include <conio.h> #include <iostream.h> main() { char op; int x1,x2; printf("\n\n\n\n Bienvenido a un sencillo programa de las operaciones basicas "); printf("\n\n\n\t\tDigite un numero entero: "); scanf("%i",&x1); printf("\n\n\t\tDigite otro numero entero: "); scanf("%i",&x2); printf("\n\n\n\n Digite una tecla para continuar ... "); getch(); do { system("cls"); printf("\n\n\t\t\t\t MENU "); printf("\n\n\t\t1 Suma"); printf("\n\n\t\t2 Resta"); printf("\n\n\t\t3 Multiplicacion"); printf("\n\n\t\t4 Division"); printf("\n\n\t\t5 Salir"); printf("\n\n\t Elija el numero de la operacion a realizar : "); fflush(stdin); scanf("%c", &op); switch(op) { case '1': printf("\n\n\t %i + %i = %i ",x1,x2,x1+x2); break; case '2': printf("\n\n\t %i - %i = %i ",x1,x2,x1-x2); break; case '3': printf("\n\n\t %i * %i = %i ",x1,x2,x1*x2); break; case '4': if(x2!=0) printf("\n\n\t %i / %i = %i ",x1,x2,x1/x2); else printf("\n\n\t No es posible la divion entre 0"); break; case '5': printf("\n\n\t Hasta pronto"); break; default: printf("\n\n\tNo existe esa opcion"); } printf("\n\n\ Digite una tecla para continuar ... "); getch(); }while(op!='5'); } 1

DOCENTE: MIRIAN BENAVIDES RUANO

Para realizar una pausa se utiliza la función getch() 6.h para trabajar las funciones printf() y scanf() • conio. Se solicita al usuario que elija una opción del menú. entonces para garantizar que efectivamente el dato char quede bien almacenado. Se incluyen las 3 librerías que se utilizarán: • stdio. Se realiza la codificación dentro de la función principal main() 3. Declaración de variables locales: el programa utilizará 3 variables • • op de tipo char que almacenará la opción del menú elegida por el usuario x1 y x2 que almacenarán los 2 números digitados por el usuario. Luego se necesita switch() para procesar la opción elegida por el usuario. digitando un número entre 1 y 5 Se utiliza la función fflush(stdin) para garantizar que la variable op de tipo char se almacene de manera correcta. en cada case se programan las instrucciones que se ejecutarán según el caso. por eso se incluye un condicional que garantice una operación correcta. Se aclara que en el lenguaje C. de tal manera que si el usuario elije: o La opción 1: se realizará e imprimirá la suma de los 2 números o La opción 2: se realizará e imprimirá la resta de los 2 números o La opción 3: se realizará e imprimirá la multiplicación de los 2 números o La opción 4: se realizará e imprimirá la división de los 2 números.h para trabajar la función de limpieza de pantalla system(“cls”) 2. o La opción 5: indica la salida del menú. • • 6.h para trabajar la función getch() • iostream. cuando se utiliza scanf() para capturar datos char. a veces se presentan inconvenientes porque el buffer no está vacío. Con las funciones printf() y scanf() se solicitan los 2 números al usuario. se genera un error. • • • • Observe que dentro del ciclo se utiliza la función system(“cls”) que permite realizar una limpieza de pantalla y luego se escribe el menú. Para terminar el programa se cierra la llave correspondiente a la función main() 2 DOCENTE: MIRIAN BENAVIDES RUANO . Utilizando el ciclo do while se realiza el menú de operaciones. lo anterior para limpiar el buffer antes de almacenar el dato de tipo char. Esto es necesario para organizar la presentación de la información de una manera adecuada y ordenada.Universidad Nacional Abierta y a Distancia – UNAD CURSO: INTRODUCCIÓN A LA PROGRAMACIÓN EXPLICACIÓN PRIMER PROGRAMA 1. con los cuales se realizarán las operaciones. 5. se utiliza fflush(stdin). El 5 va entre comillas simples porque es un dato de tipo carácter. o La opción default: se ejecutará cuando el usuario elija un número fuera del rango entre 1 y 5 Finalmente se cierra el ciclo while(op!=’5’) esto indica que el ciclo se repetirá mientras el usuario digite un número diferente de 5. Recuerde que \n se utiliza para indicar un salto de línea y \t para indicar un tabulado. 4. En este caso hay que tener en cuenta que si se divide un número entre 0.

break.. char operacion(char). printf("\n\n\n\n Bienvenido a un sencillo programa de las operaciones basicas "). do { z=menu(). scanf("%c". printf("\n\n\n\t\tDigite un numero entero: ").rta. "). printf("\n\n\t\t3 Multiplicacion").. int x1. main() { char z.x1.. #include <stdio. "). printf("\n\n\t\t\t\t MENU ").h> #include <iostream> char menu().x2. switch(a) { case '1': printf("\n\n\t %i + %i = %i ". printf("\n\n\t\t4 Division"). return(op).&x2). scanf("%i". getch(). rta=operacion(z).. } char operacion(char a) { system("cls"). printf("\n\n\n\n Digite una tecla para continuar .&x1). getch().Universidad Nacional Abierta y a Distancia – UNAD CURSO: INTRODUCCIÓN A LA PROGRAMACIÓN SEGUNDO PROGRAMA CON FUNCIONES La siguiente codificación corresponde al mismo programa anterior con la diferencia que aquí se utilizarán funciones definidas por el usuario.h> #include <conio. printf("\n\n\t\tDigite otro numero entero: ").x2. printf("\n\n\t\t2 Resta"). &op). printf("\n\n\t\t5 Salir"). fflush(stdin). system("cls"). } while(rta!='5'). 3 DOCENTE: MIRIAN BENAVIDES RUANO .x1+x2). printf("\n\n\t Elija el numero de la operacion a realizar : "). printf("\n\nHasta pronto . } char menu() { char op. printf("\n\n\t\t1 Suma"). scanf("%i".

la cual devuelve un valor de tipo char • Se declara la variable local de tipo char op • Se limpia pantalla con system(“cls”) • Se imprime el menú() • Se limpia el buffer con fflush(stdin).x1*x2).h para trabajar las funciones printf() y scanf() • conio.x1.x2. break. y también devuelve una variable de tipo char. Se incluyen las 3 librerías que se utilizarán: • stdio. return(a).x1. } EXPLICACIÓN SEGUNDO PROGRAMA 1.x1/x2). Esta función tiene la tarea de realizar y mostrar la operación elegida por el usuario. case '3': printf("\n\n\t %i * %i = %i ". break. realiza las operaciones del caso y luego devuelve nuevamente el número de la opción.x1-x2). getch().. esto sólo se utiliza cuando se trabaja con scanf() para almacenar datos de tipo char • Se almacena en op el valor digitado por el usuario • Se devuelve este valor utilizando return() • Finaliza la función menú y vuelve a la función principal main() 4 DOCENTE: MIRIAN BENAVIDES RUANO . 4.h para trabajar la función de limpieza de pantalla system(“cls”) 2. break. Codificación de la función menú. entonces recibe el número del menú elegido. • char operacion(char) la función llamada operación envía como parámetro una variable de tipo char.. 3. puesto que se utilizarán en varias funciones. break. } printf("\n\n\t Digite una tecla para continuar .x2.x2. donde se llama a las funciones menú y operación • Finaliza la función main() 5. default: printf("\n\n\tNo existe esa opcion"). Declaración de variables globales: se declaran de tipo global las variables que almacenarán los números a trabajar.%i = %i ".h para trabajar la función getch() • iostream. else printf("\n\n\t No es posible la divion entre 0").x1. Se declara el prototipo de las funciones que se utilizarán: • char menú() es una función que mostrará un menú y devolverá un dato de tipo char donde se encuentra almacenada la opción elegida por el usuario.Universidad Nacional Abierta y a Distancia – UNAD CURSO: INTRODUCCIÓN A LA PROGRAMACIÓN case '2': printf("\n\n\t %i . case '4': if(x2!=0) printf("\n\n\t %i / %i = %i ". • Se solicita los números a operar y se almacenan en las variables globales x1 y x2 • Se realiza el ciclo do while. case '5': printf("\n\n\t Fin del programa"). Se codifica la función principal main() • Se declaran 2 variables de tipo char para recibir los resultados de las funciones menú y operación.").

este mismo ejercicio. Este es un ejemplo muy pequeño. pero imagínese un programa extenso. otra para la resta. Es más funcional dividir el programa en varias tareas pequeñas que realizar el programa con todas las instrucciones en la función principal main. se puede observar que los resultados son los mismos. una para la suma. La magia de la programación radica en que existen infinidad de soluciones.Universidad Nacional Abierta y a Distancia – UNAD CURSO: INTRODUCCIÓN A LA PROGRAMACIÓN 6. puede resolverse utilizando más funciones. Codificación de la función operación. Espero que analicen muy bien cada paso. lo modifiquen. lo mejoren y realicen sus propias propuestas. porque se trata de dos soluciones diferentes para el mismo problema. 5 DOCENTE: MIRIAN BENAVIDES RUANO . Lo importante es resaltar que el uso de funciones es una potencialidad del lenguaje C y ayuda a dividir el programas en subtareas que facilitan la codificación y la comprensión. por ejemplo. la cual recibe un dato char y devuelve un dato char • Limpieza de pantalla mediante system(“cls”) • Utilización de la selectiva switch para evaluar el dato recibido • Ejecuta las instrucciones de acuerdo al caso • Devuelve el valor de la opción mediante return • Finaliza la función operación y vuelve al menú principal main() ACLARACIONES Una vez analizadas las dos codificaciones. etc. lo interpreten.