Documente Academic
Documente Profesional
Documente Cultură
Programacin
Introduccin
La mayora de los programas de cmputo que resuelven problemas reales son mucho
ms grandes que los programas que se han visto hasta ahora. La experiencia nos ha
mostrado que la mejor manera de desarrollar y mantener un programa grande es
construirlo a partir de piezas pequeas, llamadas mdulos o funciones, los cuales
son ms manejables que el programa original. Esta tcnica se basa en el concepto de
divide y vencers.
La filosofa de diseo de C est basada en el empleo de funciones, puesto que un
programa estructurado a partir de funciones es mas modular, lo que lo hace ms fcil
de leer, modificar y arreglar.
Si una funcin es lo suficientemente general, se la puede emplear en diferentes
programas, tenindola a disposicin en una librera, que se declara mediante el
comando #include.
Ing. Julio Torres Tello, MSc.
Programacin
Introduccin
Una funcin es como una caja negra, en la cual es relevante saber que informacin va
a alimentar la entrada de la misma, y que datos vamos a obtener a la salida. Por lo
tanto, lo que sucede dentro de la funcin no es de inters de quien la usa, sino
solamente de quien la programa. De esta manera el usuario de la funcin puede
ocuparse de la construccin del programa, en lugar de los detalles.
ENTRADA
FUNCIN
SALIDA
Programacin
Programacin
Programacin
Programacin
Tipos de funciones
Se puede clasificar a las funciones en tres tipos:
1) Funciones puras; son aquellas que realizan operaciones con sus argumentos, y
devuelven valores basados en dichas operaciones.
Ej:
pow(), sqrt(); que devuelven potencias de un nmero ingresado como argumento.
2) Funciones de manipulacin; que producen acciones y suministran datos. Estas
funciones manipulan informacin y devuelven un valor que indica solamente si la
manipulacin tuvo xito o no.
Ej:
fclose(); que sirve para cerrar un archivo y devuelve un 0 si la operacin ha tenido
xito, o sino devuelve un cdigo de error.
Programacin
Tipos de funciones
3) Funciones tipo void; son aquellas que no tienen un valor de vuelta especfico, es
decir que realizan una accin concreta pero no regresan un valor en su nombre.
Ej:
exit(); que termina la ejecucin de un programa.
IMPORTANTE: Los valores devueltos por una funcin no se tienen que usar
obligatoriamente. Como en el caso de scanf(), donde usualmente se desecha su valor
de retorno, que es el nmero de argumentos ledos
Programacin
Argumentos y parmetros
de funciones
Argumentos:
Son los valores que se envan a la funcin en el momento en que se realiza su llamada.
Pueden ser constantes, variables o expresiones.
Ej:
int nmero;
clculo(nmero);
Programacin
Argumentos y parmetros
de funciones
Parmetros:
Es la lista de parmetros que reciben los valores de los argumentos que se pasan a la
funcin, por lo que deben ser declarados.
Se comportan como variables locales dentro de la funcin.
Son el interfaz entre el programa de llamada y la funcin.
Ej:
int clculo (int var)
argumento 'nmero'.
{
// Instrucciones
}
Ing. Julio Torres Tello, MSc.
Programacin
Programacin
Programacin
Ejercicio
Escribir un programa que, mediante funciones, sea capaz de realizar la resta y la
multiplicacin de dos nmeros ingresados por teclado.
Programacin
Prototipos de funciones
Una de las caractersticas ms importantes de C es el prototipo de la funcin. Esta
caracterstica fue ideada por los desarrolladores de C++ y fue tomada a prstamo por
el comit del estndar de C.
El prototipo de una funcin le indica al compilador el tipo de dato devuelto por la
funcin, el nmero de parmetros que la funcin espera recibir, los tipos de
parmetros, y el orden en el que se esperan dichos parmetros.
El compilador utiliza los prototipos de funciones para validar las llamadas a stas. Las
versiones previas de C no realizaban esta clase de verificaciones, por lo que era
posible llamar inadecuadamente a las funciones sin que el compilador detectara los
errores. Dichas llamadas podan provocar varios tipos de errores. Los prototipos de las
funciones corrigen esta deficiencia.
Programacin
Prototipos de funciones
Para poder usar una funcin en C, primero hay que declararla. La forma general de un
prototipo de funcin es similar a la declaracin de las variables; es decir, la
especificacin del tipo precede al nombre de la funcin, manteniendo sus parmetros
entre parntesis, y termina con punto y coma.
Ej:
tipo nombre_func (tipo param1, tipo param2, tipo paramN,);
Programacin
Programacin
Devolucin de un valor
Adems de ejecutar una tarea especfica, una funcin es capaz de devolver un valor
cuando se realiza su llamada.
Ej:
int a, b, resultado;
resultado = pow (a, b);
En este caso, la funcin 'pow' adems de ejecutar la tarea de realizar la potenciacin,
devuelve su resultado que en este caso ser almacenado en la variable resultado.
A fin de poder devolver este valor, se utiliza la sentencia 'return'.
Programacin
Sentencia 'return'
Esta sentencia devuelve un valor a nombre de la funcin que la contiene; es decir,
todas las funciones, excepto aquellas de tipo 'void', devuelven un valor. Este valor se
especifica explcitamente en la sentencia 'return'.
Su forma general es:
return expresin;
Si la sentencia 'return' no es especificada en una funcin, el compilador da un mensaje
de advertencia indicando que la funcin debera tomar un valor.
Programacin
Sentencia 'return'
Otro uso de la sentencia 'return' es para la terminacin de una funcin; ya que esta
sentencia obliga a la salida inmediata de la funcin en la que se encuentra, haciendo
que el control del programa vuelva al punto de llamada de la funcin.
No es indispensable el uso de la sentencia 'return' si no se va a devolver un valor, ya
que una funcin terminar de ejecutarse al cerrar las llaves; pero es importante incluirla
a fin de tener un cdigo ms eficiente y libre de errores.
IMPORTANTE: Una funcin puede tener varias sentencias 'return', pero la primera que
se ejecute termina la funcin.
Programacin
Ejercicios
1) Realizar un programa que tenga una funcin para calcular la potencia positiva de un
nmero, en caso de que se ingrese tanto la base como el exponente, por teclado.
2) Realizar un programa que tenga una funcin para calcular el valor absoluto de un
nmero.
Programacin