1 5
ESIME CULHUACAN
FUNDAMENTOS de PROGRAMACION
ING. R. OSORNIO
PRÁCTICA No. 12
FUNCIONES.
(PARTE II)
I.- OBJETIVO:
Al término de la practica el alumno podrá manejar el concepto básico de una función, y los
argumentos que se utilizan.
II.- MATERIAL Y EQUIPO:
1 EQUIPO DE CÓMPUTO: Marca_____________ Mod. ____________ N°. ___________
1 JUEGO DE DISCOS DE LENGUAJE C
III.- INTRODUCCIÓN TEÓRICA.
Se devuelve el valor de expresión al punto de llamada. La expresión es opcional, de
forma que se puede escribir la sentencia return sola. Si se omite la expresión, la sentencia
return simplemente devuelve el control al punto del programa donde se llamó al la función,
sin ninguna transferencia de información.
Sólo se puede incluir una sentencia en la expresión return. Por tanto, una función sólo
puede devolver un valor al punto de llamada mediante la sentencia return.
Una definición de función puede incluir varias sentencias return, conteniendo cada una
de ellas una expresion distinta. Las funciones que incluyen varias bifurcaciones suelen
requerir varias sentencias return.
LABORATORIO DE FUNDAMENTOS DE PROGRAMACION ROS PRACTICA 12 PAGINA 1
La sentencia return puede no incluirse en la definición de una función, aunque esto se
considera como una práctica de programación pobre. Si una función alcanza el final del
bloque sin encontrarse una sentencia return, se regresa el control al punto de llamada sin
devolver información alguna. Se recomienda en estos casos utilizar una sentencia return
vacía, para hacer más clara la lógica de la función y más fáciles las futuras modificaciones.
Se puede llamar a una función especificando su nombre, seguido de una lista de
argumentos encerrados entre paréntesis y separados por comas. Si la llamada a la función no
requiere ningún argumento, se debe escribir a continuación del nombre de la función un par
de paréntesis vacíos. La llamada a la función puede aparecer sola (o sea que puede formar
una expresión simple), o puede ser uno de los operandos de una expresión más compleja.
Los argumentos que aparecen en la llamada a una función se denominan argumentos
actuales, mientras que los argumentos formales son los que aparecen en la primera línea de
la definición de la función. En una llamada normal a una función habrá un argumento actual
por cada argumento formal. Los argumentos actuales pueden ser constantes, variables
simples, o expresiones más complejas. No obstante, cada argumento actual debe ser del
mismo tipo de datos que el argumento formal correspondiente, dentro de cada llamada a la
función el número de argumentos actuales debe ser el mismo número de argumentos
formales.
Si una función devuelve una cantidad no entera y se le llama desde una parte del
programa anterior a la definición de la función, debe aparecer en esta parte una declaración
de función. Esto se denomina a veces declaración por adelantado o declaración forward. La
declaración de la función informa al compilador que se accederá a ella antes de que sea
definida. Muchos programas incluyen declaraciones de funciones en sus programas, tanto si
se necesitan como si no, simplemente como una práctica de programación.
En su forma más sencilla se puede escribir una declaración de función de la siguiente
forma:
tipo nombre( );
en donde tipo se refiere al tipo de datos de la cantidad que devuelve la función y
nombre hace referencia al nombre de la función.
Muchos compiladores de C soportan un sistema de manejar las especificaciones de
argumentos en las declaraciones y definiciones de funciones de mejor comprensión. En el
estándar ANSI se permite que el tipo de datos de cada argumento sea seguido del nombre del
argumento dentro de la función, es decir:
tipo nombre (tipo 1 arg 1, tipo 2 arg 2, ..., tipo n arg n);
en donde arg 1, arg 2, arg n hacen referencia al primero, segundo y enésimo
argumento.
Las declaraciones de funciones escritas de esta forma se llaman prototipos de funciones.
No es obligatoria su utilización en C, sin embargo, es deseable usarlas para facilitar la
comprobación de errores en llamadas a una función y definición de la función
correspondiente.
LABORATORIO DE FUNDAMENTOS DE PROGRAMACION ROS PRACTICA 12 PAGINA 2
Cuando se llama a la función no es necesario que los nombres de los argumentos
actuales sean los mismos que aparecen en la declaración. Sin embargo, los tipos de datos de
los argumentos actuales deben adecuarse a los tipos de datos de los argumentos de la
declaración.
El estándar ANSI también permite que las definiciones de las funciones se escriban de
una forma más concisa, combinando las declaraciones de los argumentos formales con la
primera línea de la definición de la función. Por tanto, la definición de la función se puede
escribir como sigue:
tipo nombre (tipo 1 arg 1, tipo 2 arg 2, ..., tipo n arg n)
aquí tipo representa el tipo de la cantidad devuelta por la función y tipo 1 , tipo 2, tipo
n, los tipos de datos de los argumentos arg 1, arg2, arg n., por ejemplo:
int func(int a, int b) /* definición de función*/
IV. DESARROLLO
EL ALUMNO SEGUIRÁ LA SECUENCIA INDICADA, DESCRIBIENDO EN CADA INCISO
LOS PASOS QUE SIGA:
4.1.- Realice el diagrama de flujo de un programa DE FUNCIONES DE USUARIO , que
incluya los programas de la practica 1 a la 10
LABORATORIO DE FUNDAMENTOS DE PROGRAMACION ROS PRACTICA 12 PAGINA 3
4.2. REALICE EL PROGRAMA
LABORATORIO DE FUNDAMENTOS DE PROGRAMACION ROS PRACTICA 12 PAGINA 4
V. CUESTIONARIO (TRABAJO COMPLEMENTARIO).
1. - Dado el programa anterior, además de editarlo, debe guardarlo, compilarlo y ejecutarlo. Describa :
a) los errores que obtuvo (en caso de haberlos)
b) el desplegado obtenido
2.- Marque en el programa donde se realizan:
a) las llamadas a las funciones
b) la declaración de las funciones
c) la definición de las funciones
3.- Una vez que ya haya funcionado el programa, cambie el tipo de datos en la declaración de
funciones y describa qué pasa.
VI.- CONCLUSIONES Y OBSERVACIONES
LABORATORIO DE FUNDAMENTOS DE PROGRAMACION ROS PRACTICA 12 PAGINA 5