You are on page 1of 5

Universidad Nacional Abierta y a Distancia UNAD CURSO: INTRODUCCIN A LA PROGRAMACIN

PROGRAMA BSICO A continuacin se presentan dos codificaciones sencillas que corresponden a la solucin bsica del siguiente problema: se requiere un programa que solicite dos nmeros enteros, con los cuales se puedan realizar las operaciones de suma, resta, multiplicacin y divisin. Al usuario se le debe presentar un men donde pueda elegir el tipo de operacin 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

Universidad Nacional Abierta y a Distancia UNAD CURSO: INTRODUCCIN A LA PROGRAMACIN

EXPLICACIN PRIMER PROGRAMA 1. Se incluyen las 3 libreras que se utilizarn: stdio.h para trabajar las funciones printf() y scanf() conio.h para trabajar la funcin getch() iostream.h para trabajar la funcin de limpieza de pantalla system(cls) 2. Se realiza la codificacin dentro de la funcin principal main() 3. Declaracin de variables locales: el programa utilizar 3 variables op de tipo char que almacenar la opcin del men elegida por el usuario x1 y x2 que almacenarn los 2 nmeros digitados por el usuario, con los cuales se realizarn las operaciones.

4. Con las funciones printf() y scanf() se solicitan los 2 nmeros al usuario. 5. Para realizar una pausa se utiliza la funcin getch() 6. Utilizando el ciclo do while se realiza el men de operaciones. Observe que dentro del ciclo se utiliza la funcin system(cls) que permite realizar una limpieza de pantalla y luego se escribe el men. Recuerde que \n se utiliza para indicar un salto de lnea y \t para indicar un tabulado. Esto es necesario para organizar la presentacin de la informacin de una manera adecuada y ordenada. Se solicita al usuario que elija una opcin del men, digitando un nmero entre 1 y 5 Se utiliza la funcin fflush(stdin) para garantizar que la variable op de tipo char se almacene de manera correcta, lo anterior para limpiar el buffer antes de almacenar el dato de tipo char. Se aclara que en el lenguaje C, cuando se utiliza scanf() para capturar datos char, a veces se presentan inconvenientes porque el buffer no est vaco, entonces para garantizar que efectivamente el dato char quede bien almacenado, se utiliza fflush(stdin). Luego se necesita switch() para procesar la opcin elegida por el usuario, en cada case se programan las instrucciones que se ejecutarn segn el caso, de tal manera que si el usuario elije: o La opcin 1: se realizar e imprimir la suma de los 2 nmeros o La opcin 2: se realizar e imprimir la resta de los 2 nmeros o La opcin 3: se realizar e imprimir la multiplicacin de los 2 nmeros o La opcin 4: se realizar e imprimir la divisin de los 2 nmeros. En este caso hay que tener en cuenta que si se divide un nmero entre 0, se genera un error, por eso se incluye un condicional que garantice una operacin correcta. o La opcin 5: indica la salida del men. o La opcin default: se ejecutar cuando el usuario elija un nmero 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 nmero diferente de 5. El 5 va entre comillas simples porque es un dato de tipo carcter.

6. Para terminar el programa se cierra la llave correspondiente a la funcin main()

DOCENTE: MIRIAN BENAVIDES RUANO

Universidad Nacional Abierta y a Distancia UNAD CURSO: INTRODUCCIN A LA PROGRAMACIN

SEGUNDO PROGRAMA CON FUNCIONES La siguiente codificacin corresponde al mismo programa anterior con la diferencia que aqu se utilizarn funciones definidas por el usuario. #include <stdio.h> #include <conio.h> #include <iostream> char menu(); char operacion(char); int x1,x2; main() { char z,rta; 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 { z=menu(); rta=operacion(z); } while(rta!='5'); printf("\n\nHasta pronto ... "); getch(); } char menu() { char op; 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); return(op); } char operacion(char a) { system("cls"); switch(a) { case '1': printf("\n\n\t %i + %i = %i ",x1,x2,x1+x2); break; 3

DOCENTE: MIRIAN BENAVIDES RUANO

Universidad Nacional Abierta y a Distancia UNAD CURSO: INTRODUCCIN A LA PROGRAMACIN 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 Fin del programa"); break; default: printf("\n\n\tNo existe esa opcion"); } printf("\n\n\t Digite una tecla para continuar ..."); getch(); return(a); }

EXPLICACIN SEGUNDO PROGRAMA 1. Se incluyen las 3 libreras que se utilizarn: stdio.h para trabajar las funciones printf() y scanf() conio.h para trabajar la funcin getch() iostream.h para trabajar la funcin de limpieza de pantalla system(cls) 2. Se declara el prototipo de las funciones que se utilizarn: char men() es una funcin que mostrar un men y devolver un dato de tipo char donde se encuentra almacenada la opcin elegida por el usuario. char operacion(char) la funcin llamada operacin enva como parmetro una variable de tipo char, y tambin devuelve una variable de tipo char. Esta funcin tiene la tarea de realizar y mostrar la operacin elegida por el usuario, entonces recibe el nmero del men elegido, realiza las operaciones del caso y luego devuelve nuevamente el nmero de la opcin. 3. Declaracin de variables globales: se declaran de tipo global las variables que almacenarn los nmeros a trabajar, puesto que se utilizarn en varias funciones. 4. Se codifica la funcin principal main() Se declaran 2 variables de tipo char para recibir los resultados de las funciones men y operacin. Se solicita los nmeros a operar y se almacenan en las variables globales x1 y x2 Se realiza el ciclo do while, donde se llama a las funciones men y operacin Finaliza la funcin main() 5. Codificacin de la funcin men, 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), esto slo 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 funcin men y vuelve a la funcin principal main() 4

DOCENTE: MIRIAN BENAVIDES RUANO

Universidad Nacional Abierta y a Distancia UNAD CURSO: INTRODUCCIN A LA PROGRAMACIN 6. Codificacin de la funcin operacin, la cual recibe un dato char y devuelve un dato char Limpieza de pantalla mediante system(cls) Utilizacin de la selectiva switch para evaluar el dato recibido Ejecuta las instrucciones de acuerdo al caso Devuelve el valor de la opcin mediante return Finaliza la funcin operacin y vuelve al men principal main()

ACLARACIONES Una vez analizadas las dos codificaciones, se puede observar que los resultados son los mismos, porque se trata de dos soluciones diferentes para el mismo problema. 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 codificacin y la comprensin. Es ms funcional dividir el programa en varias tareas pequeas que realizar el programa con todas las instrucciones en la funcin principal main. Este es un ejemplo muy pequeo, pero imagnese un programa extenso. La magia de la programacin radica en que existen infinidad de soluciones, este mismo ejercicio, por ejemplo, puede resolverse utilizando ms funciones, una para la suma, otra para la resta, etc. Espero que analicen muy bien cada paso, lo interpreten, lo modifiquen, lo mejoren y realicen sus propias propuestas.

DOCENTE: MIRIAN BENAVIDES RUANO

You might also like