Você está na página 1de 5

Universidad Nacional Abierta y a Distancia UNAD

CURSO: INTRODUCCIN A LA PROGRAMACIN



1


DOCENTE: MIRIAN BENAVIDES RUANO

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');
}
Universidad Nacional Abierta y a Distancia UNAD

CURSO: INTRODUCCIN A LA PROGRAMACIN

2


DOCENTE: MIRIAN BENAVIDES RUANO


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()


Universidad Nacional Abierta y a Distancia UNAD

CURSO: INTRODUCCIN A LA PROGRAMACIN

3


DOCENTE: MIRIAN BENAVIDES RUANO



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;
Universidad Nacional Abierta y a Distancia UNAD

CURSO: INTRODUCCIN A LA PROGRAMACIN

4


DOCENTE: MIRIAN BENAVIDES RUANO
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()

Universidad Nacional Abierta y a Distancia UNAD

CURSO: INTRODUCCIN A LA PROGRAMACIN

5


DOCENTE: MIRIAN BENAVIDES RUANO
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.

Você também pode gostar