Sunteți pe pagina 1din 20

Ing. Julio Torres Tello, MSc.

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

Ing. Julio Torres Tello, MSc.

FUNCIN

SALIDA

Programacin

Estructura de una funcin


La estructura general de una funcin cualquiera es la misma estructura de la funcin
main (que debe ser incluida en todos los programas escritos en C); es decir:
tipo nombre_funcin (lista de parmetros)
{
// Cuerpo de la funcin
}
Donde:
- tipo: Le indica al compilador el tipo de dato devuelto por la funcin. Si no se
especifica ningn tipo, el compilador asume que la funcin devuelve un valor entero.
- nombre_funcin: Es el nombre de la funcin, y de manera general, debe describir de
alguna manera la accin que realiza dicha funcin.
Ing. Julio Torres Tello, MSc.

Programacin

Estructura de una funcin


- lista de parmetros: Es una lista separada por comas, la cual contiene los nombres
de las variables que se usarn en la funcin y que reciben los valores de los
argumentos especificados al momento de invocar a la funcin.
Una funcin puede no tener parmetros, en cuyo caso la lista de parmetros estar
vaca, o se puede incluir la palabra void.
- Cuerpo de la funcin: Se refiere al cdigo escrito dentro de una funcin especfica, y
que es vlido solamente para dicha funcin.
El cdigo de una funcin es exclusivo de esta, a menos que se haga una llamada a
dicha funcin.

Ing. Julio Torres Tello, MSc.

Programacin

Estructura de una funcin


Adems, es importante sealar que dentro de las funciones se definen variables
locales que son exclusivas de una funcin. Es decir, las variables locales empiezan a
existir cuando se entra en una funcin, y se destruyen al salir de ella; por lo que no
pueden conservar sus valores despus de haberse ejecutado la funcin.

IMPORTANTE: En C no se puede definir una funcin dentro de otra (funciones


anidadas), bajo ninguna circunstancia

Ing. Julio Torres Tello, MSc.

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.

Ing. Julio Torres Tello, MSc.

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

Ing. Julio Torres Tello, MSc.

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

// Donde 'clculo' es una funcin que realizar alguna

operacin con la variable 'nmero'.

Ing. Julio Torres Tello, MSc.

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)

// Donde 'var' es el parmetro que toma el valor del

argumento 'nmero'.
{
// Instrucciones
}
Ing. Julio Torres Tello, MSc.

Programacin

Llamadas a una funcin


Existe dos maneras de pasar argumentos a una funcin:
1) Llamada por valor.
2) Llamada por direccin (se usa punteros).
Llamada por valor:
En este caso, el valor del argumento se copia directamente al parmetro de la funcin
en el momento de la llamada.
No se pueden alterar las variables usadas para llamar a la funcin.
Ej.
Realizar una funcin que reciba dos valores enteros, los sume e imprima su resultado.

Ing. Julio Torres Tello, MSc.

Programacin

Llamadas a una funcin


Realizar una funcin que reciba dos valores enteros, los sume e imprima su resultado.

Ing. Julio Torres Tello, MSc.

Programacin

Ejercicio
Escribir un programa que, mediante funciones, sea capaz de realizar la resta y la
multiplicacin de dos nmeros ingresados por teclado.

Ing. Julio Torres Tello, MSc.

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.

Ing. Julio Torres Tello, MSc.

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,);

IMPORTANTE: Una llamada a funcin que no coincide con el prototipo de la funcin


provoca un error de sintaxis. Tambin se genera un error si el prototipo de la funcin y
la definicin de la funcin no concuerdan.

Ing. Julio Torres Tello, MSc.

Programacin

Tipo de una funcin


El tipo de una funcin debe estar explcitamente declarado, caso contrario el
compilador de C asume que se trata de una funcin tipo int.
Este 'tipo' de una funcin hace referencia al tipo de dato que devuelve dicha funcin; y
debe estar especificado antes de hacer la llamada a la misma, porque tipos de datos
diferentes tienen tamaos diferentes y representaciones internas diferentes.
Ej:
float suma (float a, float b);

Ing. Julio Torres Tello, MSc.

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'.

Ing. Julio Torres Tello, MSc.

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.

Ing. Julio Torres Tello, MSc.

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.

Ing. Julio Torres Tello, MSc.

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.

Ing. Julio Torres Tello, MSc.

Programacin

S-ar putea să vă placă și