Está en la página 1de 6

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

.d o

c u-tr a c k

.c

Bienvenidos a la Primera Clase de Funciones en Lenguaje C


Ya hemos visto que en C se utilizan funciones de biblioteca con el fin de realizar operaciones comunes, tales como: printf, scanf, toupper,... Sin embargo, C permite tambin al programador definir sus propias funciones que realicen tareas especficas. En esta clase aprenderemos sobre cmo definir y utilizar funciones

to

lic

lic

to

bu

N
w

O W !
.d o

c u-tr a c k

.c

definidas por el programador.

Introduccin a la Clase
F Sabas que todo programa en C consta de una o ms funciones?

S, todo programa en C consta de una o ms funciones. Una de estas funciones es la funcin main
o funcin principal, que es obligatoria. La ejecucin del programa siempre empieza por las instrucciones contenidas en esta funcin. F Muy Bien! Hasta ahora hemos utilizado un cierto nmero de funciones de biblioteca que realizan varias operaciones y clculos de uso frecuente. Por ejemplo, hemos utilizado las funciones estndar de entrada y salida: printf y scanf. Hemos utilizado funciones para convertir un caracter de mayscula a minscula o viceversa: toupper y tolower. Tambin hemos utilizado funciones matemticas, funciones de cadenas de caracteres... Recuerdas cmo hacamos para utilizar alguna de estas funciones?

Estas funciones estndar se encuentran agrupadas en archivos de biblioteca. Y para utilizarlas es


necesario incluir en el programa como archivo de cabecera el archivo de biblioteca que contiene la funcin a utilizar. Por ejemplo, para utilizar la funcin strcmpy que compara dos cadenas de caracteres, primero debamos indicar en las directrices de inclusin, la instruccin:
include <string.h>

Luego, en el cuerpo del main se escribe el nombre de la funcin, seguida de los argumentos
encerrados entre parntesis. Por ejemplo:
If (strcmpy(nombre, Maria ))

F Okey. Algunas de las funciones de biblioteca estndar ms comunes se muestran a continuacin:


Funcin abs( i ) cos ( d ) exp ( d ) log ( d ) log10( d ) pow ( d1,d2 ) rand( ) sin ( d ) sqrt ( d ) tan ( d ) Tipo int double double double double double int double double double Propsito Devuelve el valor absoluto de i Devuelve el coseno de d Eleva e a la potencia d ( e = 2.718218...) Devuelve el logaritmo natural de d Devuelve el logaritmo de d ( de base 10) Devuelve d1 elevado a la potencia d2 Devuelve un entero positivo aleatorio Devuelve el seno de d Devuelve la raz cuadrada de d Devuelve la tangente de d

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

Funciones
m
C lic

to

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

F Ahora bien. A medida que vamos avanzando en el aprendizaje de programacin, vemos que los programas se hacen cada vez ms complejos. Es que en verdad, la mayor parte de los programas de computacin que resuelven problemas de la vida real, son programas complejos, y la mejor forma de comprender y mantener un programa complejo, es descomponerlo en programas ms pequeos o mdulos. En C los mdulos se conocen como Funciones. F El uso de funciones definidas por el programador permite dividir un programa grande en un cierto nmero de subprogramas ms pequeos, teniendo cada uno de ellos un prposito o tarea especfica por realizar. Por tanto, un programa en C se puede modularizar mediante el uso inteligente de funciones. Las instrucciones que definen la funcin se escriben una sola vez en un mdulo separado del resto del programa y se ejecutan cada vez que el programa principal (main) efecte la llamada a dicha funcin.

Por ejemplo, si tenemos un programa que debe calcular un promedio, un porcentaje y elaborar un
listado, en vez de hacer un programa general para todo, haremos un programa con tres funciones: una para calcular el promedio, otra para calcular el porcentaje y otra para elaborar el listado. Sera algo as:

Programa Principal (main)

Funcin Promedio

Funcin Porcentaje

Funcin Listado

En el programa principal se indicar que se ejecute una funcin mediante una llamada de funcin.
La llamada de funcin se especifica mediante el nombre de la funcin. Al efectuar la llamada de la funcin, la ejecucin del programa salta hacia las instrucciones de la funcin llamada. Se ejecutan todas las instrucciones de la funcin llamada y al finalizar, el control de la ejecucin del programa retorna al programa principal al punto donde se efectu la llamada. Una funcin puede ser llamada varias veces y desde diferentes puntos del programa.

Todas las instrucciones y las variables relacionadas con la tarea especfica que realiza una funcin
son independientes de las dems funciones. Por ejemplo, las variables y las instrucciones relacionadas con el clculo del promedio se encuentran dentro de la funcin promedio. F Muy bien, ahora estamos listos para empezar a definir Funciones en C.

Elaborado por: .........................................................................................NEREYDA CARRERO MIRANDA

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

Funciones
m
C lic

to

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

Cuerpo la Clase
F Cules son las ventajas de la Programacin Modular o Programacin con Funciones?

Existen varias ventajas. Por ejemplo, muchos programas requieren que se ejecute repetidamente
un grupo determinado de instrucciones en diferentes partes del programa. Este grupo de instrucciones se puede incluir en una funcin, y se puede llamar la funcin donde sea necesario. Es decir, el uso de funciones permite evitar el uso redundante de instrucciones.

Por otro lado, es muy importante la claridad lgica resultante de la descomposicin de un


programa en varias funciones especficas. Esta modularizacin del programa, hace que el mismo sea ms fcil de comprender y de manejar.

Adems, la utilizacin de funciones permite al programador construir sus propias bibliotecas de


uso frecuente. Esto es lo que se conoce como reutilizacin de software, o creacin de funciones estandarizadas que varios programas podran utilizar. F Veamos como definir una funcin. Para ello nos vamos a apoyar en el siguiente programa:
// Programa que calcula el mayor entre tres valores enteros # include <stdio.h> # include <conio.h> int mayor( int, int,int ); /* Prototipo de Funcin */

void main( ) { int n1 , n2, n3, may; printf(" \n Ingrese tres numeros enteros diferentes : \n"); scanf("%d %d %d", &n1, &n2, &n3); may = mayor(n1,n2,n3); printf("\n\nEl mayor entre %d, %d y %d es : %d ", n1 , n2,n3, may); getch(); } /* Definicin de la funcin mayor */ int mayor(int x,int y,int z) { int max = x;

if ( y > max ) max = y; if ( z > max) max = z; return max; }

F Como podemos apreciar en el programa anterior, la definicin de la funcin se realiza a continuacin del main. La primera instruccin de la definicin de la funcin es el encabezado de la funcin:
int mayor(int x,int y,int z)

Elaborado por: .........................................................................................NEREYDA CARRERO MIRANDA

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

Funciones
m
C lic

to

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

La definicin de una funcin se hace a continuacin de la funcin main, y se puede decir que consta de las siguientes partes: < tipo de funcin> < nombre de la funcin > ( lista de parmetros ) El tipo de funcin se define de acuerdo al valor que retorna la funcin. En este caso, la palabra reservada int indica que la funcin devuelve un valor entero. Si la funcin devuelve un valor flotante entonces, la funcin ser float. Si devuelve un caracter ser char. A continuacin se encuentra el nombre de la funcin que es cualquier nombre o identificador vlido, en este caso: mayor. Seguidamente entre parntesis, est la lista de parmetros, que es una lista de declaraciones de variables separadas por comas y que son las variables que recibirn los valores que sern pasados a la funcin. Si una funcin no recibe ningn valor, la lista de parmetros se declara como void. El encabezado de esta funcin (mayor), muestra que mayor espera tres parmetros enteros. F La funcin mayor es llamada en el main con el enunciado:
may = mayor(n1,n2,n3);

La funcin mayor recibe una copia de los valores n1, n2 y n3, en los parmetros x , y, z. A continuacin la funcin mayor determina el mayor valor asignndolo a la variable local max. El resultado se guarda en la variable may en el main, donde se llam a la funcin mayor y luego con el printf despliega el resultado. F A travs de la instruccin:
return max;

La funcin retorna el mayor valor a la funcin llamadora ( main ). Si una funcin no retorna un valor de regreso, el tipo de funcin se declara como void y no aparece en la funcin el return. F Antes del main se encuentra la instruccin:
int mayor( int, int,int );

Esta instruccin es lo que se conoce como el Prototipo de Funcin. El prototipo de funcin le indica al compilador el tipo de dato regresado por la funcin, el nmero de parmetros que la funcin espera recibir, los tipos de dichos parmetros, y el orden en el cual se esperan tales parmetros. El compilador utiliza el prototipo de funcin para verificar las llamadas de funcin. En el ejemplo anterior los int entre el parntesis informan al compilador que la funcin mayor espera recibir tres valores enteros. El int a la izquierda de mayor le informa al compilador que la funcin regresa un valor entero. Una llamada a la funcin que no coincida con el prototipo de la funcin, causar un error de sintaxis. Tambin se generar un error de sintaxis si el prototipo de la funcin no coincide con la definicin de la funcin.

Elaborado por: .........................................................................................NEREYDA CARRERO MIRANDA

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

Funciones
m
C lic

to

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

Cierre de la Clase
F Podras mencionar algunas ventajas del uso de las funciones o Programacin Modular?

Hace que los programas sean ms fciles de comprender y manipular. Evita la redundancia de cdigo Permite la reutilizacin de software.
F Dado el siguiente programa,
// Programa que cuenta vocales, consonantes, numeros y espacios en blanco # include <stdio.h> # include <conio.h> # include <ctype.h> void analizar_linea( char [ ] ); void main() { char linea[80]; printf("Ingrese una linea de texto: "); fflush(stdin); gets(linea); analizar_linea( linea ); } //Definicion de la funcion analizar_linea void analizar_linea(char texto[ ] ) { int k=0,convoc=0,concon=0,conum=0,conesp=0; char c; c = toupper(texto[k]); while (c != '\0') { if (c=='A' || c== 'E' || c=='I' || c=='O' || c=='U') convoc++; else if (c >= 'A' && c <= 'Z') concon++; else if (c >= '0' && c<= '9') conum++; else if (c == ' ') conesp++; k++; c = toupper(texto[k]); } printf("\n\nEl total de vocales es de: %d",convoc); printf("\nDe consonantes es: %d",concon); printf("\nDe numeros es: %d",conum); printf("\nY de espacios es: %d",conesp); getch(); }

Elaborado por: .........................................................................................NEREYDA CARRERO MIRANDA

w
w

w
w

PD

H F-XC A N GE

PD

H F-XC A N GE

O W !

bu

Funciones
m
C lic

to

lic

to

bu

N
.c

O W !
w
.d o

.d o

c u-tr a c k

c u-tr a c k

.c

Indica la cul ser la salida despus de su ejecucin, tomando como dato de entrada la lnea de texto: Mara tiene 21 aos Identifica en el programa, cuales son las variables locales de la funcin analizar_linea, cual es el prototipo de la funcin, cual es el encabezado de la funcin, donde se hace el llamado de la funcin, y determinar si la funcin retorna algn valor. F Con frecuencia algunos estudiantes incurren en errores al iniciarse en el uso de los funciones. Algunos errores frecuentes son:

Definir una funcin para realizar ms de una tarea especfica, cuando lo ideal es que cada
funcin se limite a realizar una tarea sencilla y bien definida.

No elegir para la funcin un nombre conciso que exprese lo que ejecuta la funcin. El nombre de
la funcin debera expresar en forma clara lo que hace la funcin.

No colocar el tipo de funcin en la definicin de la funcin. Un error ocurre cuando el prototipo de funcin no coincide con el encabezado de la funcin en
cuanto a nombre y tipo de funcin.

Colocar punto y coma al final del encabezado. El encabezado de la funcin no lleva punto y
coma. F Que tal si mencionan algunas aplicaciones de los conocimientos adquiridos acerca de funciones

Los conocimientos adquiridos acerca de la Programacin Modular nos permite mejorar del
diseo de programas, realizar programas ms fciles de comprender, de depurar y de mantener.

Elaborado por: .........................................................................................NEREYDA CARRERO MIRANDA

w
w

w
w

También podría gustarte