Sie sind auf Seite 1von 8

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN

1.1 Funciones en lenguaje C

Recordemos que el lenguaje C se fundamenta en la construccin de programas a base de funciones las cuales tienen una tarea definida, es decir, su aplicacin ya esta predefinida; solo basta con emplearla correctamente siguiendo la declaracin de su sintaxis. Adems el lenguaje C como cualquier otro lenguaje tiene la posibilidad de crear nuevas funciones, tal sera el caso cuando no se cuente con funciones para tareas especficas y se desee agregar una nueva, por ejemplo la funcin pow(x,y); til para elevar x al potencia y, si esta funcin no se encuentra disponible deber ser creada siguiendo los pasos y reglas para su desarrollo. 1.2 Pasos para agregar o crear nuevas funciones en C Cuando se desea agregar o crear nuevas funciones es necesario desarrollar los siguientes pasos: 1. Declaracin de la funcin: La declaracin de una funcin se determina por tres aspectos: b) a) Tipo Nombre (tipo de parmetros); a) Tipo: Se define de acuerdo al resultado obtenido de la funcin o el valor de retorno de la funcin que puede ser void, char, int, float o double. b) Nombre: Es el identificador o nombre con el cual se denomina a la nueva funcin creada. La asignacin del nombre deber seguir reglas tales como no usar la letra , no usar letras acentuadas, no comenzar con nmeros o incluso emplear palabras reservadas del lenguaje C. c) Tipo de parmetros: Cuando una funcin depende de parmetros o datos para desarrollar su tarea se debern especificar en este punto, detallando el tipo y nombre del parmetro. Si la funcin depende de dos o ms parmetros se deber indicar de igual forma separndolos por coma ( ,). 2. Llamado de la funcin: el llamado de la funcin refiere al hecho de emplear una funcin indicando nicamente el nombre y parmetros si los requiere para su funcionalidad o tarea especfica. 3. Elaboracin de la funcin: Previo a la elaboracin de la funcin se deber realizar una predeclaracin de la misma forma indicada en el paso 1 y a continuacin la apertura del cuerpo de la funcin indicado por llaves ( {}) donde se determina el proceso que tiene por objeto la funcin. 1.3 Formas de agregar una funcin en C c)

Elaboro:

M. en C. Garduo Medina Jorge Adrian

Pgina 1

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN


Existen dos formas de agregar nuevas funciones, una es directamente definiendo los tres aspectos antes mencionados en el programa principal y la otra como las tiene predefinidas C mediante archivos de cabecera donde se guarda la declaracin y elaboracin de la funcin dejando solamente el llamado de la funcin en el programa principal, tal es el siguiente ejemplo: # include <conio.h> # include <math.h> void main() { double R; clrscr ( ); R = pow (3.0, 5.0); La funcin clrscr ( ); empleada para limpiar pantalla previamente fue declarada y elaborara en el archivo conio.h. La colocacion de la funcion se hace dentro del } programa principal a esto se le conoce como llamado. Observen que solo se coloca el nombre de la funcion y que no se requiere de ningun parametro para su funcionalidad. Por otra parte la funcion puede ser llamada mas de una ocasin dentro del mismo programa, lo cual no quiere decir que se tenga que colocar nuevamente la librera, basta con hacerlo una vez y llamar la funcion las veces que sea necesario. La funcin pow () empleada para calcular la potencia x y presenta una sintaxis diferente a la funcin clrscr () observen que en el llamado de la funcin adems del nombre se requiere de dos parmetros tipo double para que sea funcional en este caso 3.0 y 5.0 o bien 3.05.0 el resultado que se espera obtener se conoce como retorno de la funcin, el cual se asigna a la variable R del mismo tipo. Las funciones clrscr( ) y pow( ) empleadas anteriormente describen los tres pasos mencionados en el punto 1.2 clrscr ( ); para el caso de la funcin clrscr ( ) se tiene que: Dentro de estos archivos se encuentra la declaracin y elaboracin de la funcin por lo que solo falta el llamado de la funcin. De aqu la importancia acerca de la colocacin de libreras ya que sin ellas quedan indefinidas el uso de las funciones. Funcin principal, la cual marca el inicio y fin de nuestro programa

Paso 1: La declaracin de la funcin es: void clrscr (void) Paso 2: El llamado de la funcin es: clrscr ( ); Paso 3: La elaboracin de la funcin es: void clrscr (void) { //Cuerpo de la funcin } para el caso de la funcin pow ( ) se tiene que:

Paso 1: La declaracin de la funcin es: double pow (double x, double y) Paso 2: El llamado de la funcin es: pow (3.0, 5.0 ); Paso 3: La elaboracin de la funcin es: double pow (double x, double y) { Elaboro: M. en C. Garduo Medina Jorge Adrian Pgina 2

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN


//Cuerpo de la funcin } Nota: Recuerden que la declaracin y la elaboracin de estas funciones se encuentran en el archivo de cabecera es por eso que no las podemos ver. La otra forma de agregar una funcin es directamente al programa principal. Ejemplo: suponga que la funcin pow( ) no existe y que se desea crear una funcin que permita elevar un numero a la potencia indicada, con caractersticas de sintaxis similares a la funcin pow ( ) del lenguaje C. La manera de implementar esta funcin seria: # include <stdio.h> # include <conio.h> double potencia(double x, double y); void main( ) { double R; R = potencia (3.0, 5.0); } double potencia(double x, double y) { double i,c=1; for (i=1; i<=y; i++) c *=x; return (c); } Paso 1: Declaracin de la funcin Observen que la declaracin se realiza entre los archivos de cabecera Libreras y la funcin principal main (). En este caso es de tipo double, nombre potencia y requiere de dos argumentos tipo double x & y. Paso 2: llamado de la funcin Para el llamado de la funcin se especifica nuevamente el nombre, en este caso potencia, e indicando los parmetros para su funcionalidad. El resultado de la funcin se asigna a la variable R. Observen que esta nueva funcin es similar a la funcin pow() a diferencia del nombre Paso 3: Elaboracin de la funcin Como se menciono anteriormente para la elaboracin de la funcin se debe realizar una predeclaracin seguida de la apertura de llaves ({}) donde se realiza el cuerpo de la funcin.

1.4 Tipos de funciones en C En C se pueden clasificar las funciones en 3 principales acorde al tipo y tipo de parmetros que se especifican en la declaracin de la funcin, estas pueden ser: funcin vaca, funcin paso por valor y funcin paso por referencia. Por mencionar algunos ejemplos se muestran a continuacin las siguientes funciones comnmente empleadas en el lenguaje C:
Llamado de la funcin clrscr(); getch(); rand(); Declaracin de la funcin void clrscr (void) int getch (void) int rand (void) Clasificacin de la funcin Funcin vaca sin retorno Funcin vaca con retorno Funcin vaca con retorno

Elaboro:

M. en C. Garduo Medina Jorge Adrian

Pgina 3

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN


gotoxy(5,4); pow(2.0,4.0); sin(1.6); scanf(%d,&a); void gotoxy(int x, int y) double pow (double x , double y) double sin (double x) int scanf(char*f) Funcin paso por valor retorno Funcin paso por valor retorno Funcin paso por valor retorno Funcin paso por referencia retorno sin con con con

Una funcin vaca o Funcin sin parmetros es aquella que no depende de parmetros para su funcionalidad, pero que puede o no retornar un valor, tal sera el caso de la funcin clrscr ( ); y rand ( ); Por el contrario a las funciones paso por valor o por referencia que si dependen de parmetros para su funcionalidad, en el caso de una funcin paso por valor el parmetro esta dado por un valor o dato y la funcin paso por referencia el parmetro esta dado por una direccin. 1.5 Como seleccionar el tipo de funcin adecuada Cuando se desea crear una funcin debemos partir de la necesidad que esta debe cubrir, por ejemplo, si deseo crear una funcin que calcule la hipotenusa de un triangulo rectngulo deber cuestionarme Qu tipo de funcin es la ms adecuada para realizar el clculo? Si sabemos que las funciones se pueden clasificar en:
Tipo de funcin Funcin vaca Funcin paso por valor Funcin paso por referencia Declaracin de la funcin void nombre (void) int nombre (void) void nombre (int) int nombre (int) void nombre (*int) int nombre (*int) Clasificacin Funcin Funcin Funcin Funcin retorno Funcin retorno Funcin retorno vaca sin retorno vaca con retorno paso por valor sin retorno paso por valor con paso por referencia sin paso por referencia con

Y que se puede realizar en las distintas formas. 1.5.1 funcin vaca o sin parmetros Si la seleccin de la funcin es vaca y sin retorno quiere decir que esta no requiere de ningn parmetro para su funcionalidad, y que los valores para calcular la hipotenusa se solicitan dentro de la funcin, por otro lado, no hay retorno de valor lo cual implica mostrar el resultado antes de finalizar la funcin. Ejemplo
# include <stdio.h> # include <conio.h> # include <math.h> void hipotenusa(void); void main( ) { hipotenusa (); }

Declaracin de la funcin hipotenusa : En este caso es una Funcin vaca sin retorno. Llamado de la funcin hipotenusa: Observen que solo se coloca el nombre y sin argumentos. M. en C. Garduo Medina Jorge Adrian Pgina 4

Elaboro:

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN


void hipotenusa(void) { float a,b,c; clrscr(); printf(Ingrese el valor del cateto a:); scanf(%f,&a); printf(Ingrese el valor del cateto b:); scanf(%f,&b); c=sqrt(pow(a,2)+pow(b,2)); printf(La hipotenusa es:%f,c); getch(); }

Elaboracin de la funcin hipotenusa: Observen que los datos para calcular la hipotenusa se piden dentro de la funcin y el resultado se imprime al finalizar.

Si la seleccin de la funcin es vaca y con retorno, de igual manera que la anterior no requiere de ningn parmetro para su funcionalidad, sin embargo si deber retornar el valor de la hipotenusa al programa principal. Ejemplo
# include <stdio.h> # include <conio.h> # include <math.h> float hipotenusa(void); void main( ) { float h; h= hipotenusa (); printf(La hipotenusa es:%f,h); getch(); } float hipotenusa(void) { float a,b,c; clrscr(); printf(Ingrese el valor del cateto a:); scanf(%f,&a); printf(Ingrese el valor del cateto b:); scanf(%f,&b); c=sqrt(pow(a,2)+pow(b,2)); return (c); }

Declaracin de la funcin hipotenusa : En este caso es una Funcin vaca y con retorno. Llamado de la funcin hipotenusa: Observen que solo se coloca el nombre y sin argumentos, adems se espera un valor de retorno que se asigna en h.

Elaboracin de la funcin hipotenusa: Observen que los datos para calcular la hipotenusa se piden dentro de la funcin y el resultado se retorna a la funcin principal por medio de la variable c.

1.5.2 funcin paso por valor Si la funcin es paso por valor y sin retorno, debemos considerar que para su funcionalidad es necesario agregar parmetros, es decir, que los valores para calcular la hipotenusa se solicitan en el programa principal y antes de realizar el llamado. De igual manera una funcin sin retorno implica que el resultado debe mostrarse antes de finalizar la funcin. Ejemplo
# include <stdio.h> # include <conio.h> # include <math.h> void hipotenusa(float a, float b);

Declaracin de la funcin hipotenusa : En este caso es una Funcin paso por valor y sin retorno. M. en C. Garduo Medina Jorge Adrian Pgina 5

Elaboro:

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN

void main( ) { float x, y; clrscr(); printf(Ingrese el valor del cateto a:); scanf(%f,&x); printf(Ingrese el valor del cateto b:); scanf(%f,&y); hipotenusa (x, y); getch(); } void hipotenusa(float a, float b) { float c; c=sqrt(pow(a,2)+pow(b,2)); printf(La hipotenusa es:%f,c); }

Llamado de la funcin hipotenusa: Observen que el llamado de la funcin se realiza de la misma forma empleando el nombre, solo que en este caso para que sea funcional se debe incluir dos parmetros que corresponden al valor del cateto a y b.

Elaboracin de la funcin hipotenusa: Observen que los datos para calcular la hipotenusa se asignaron a las variables a y b de la funcin y el resultado se imprime al finalizar.

Si la seleccin de la funcin es paso por valor y con retorno, entonces quiere decir que requiere de parmetros para su funcionalidad, y que los valores para calcular la hipotenusa se piden en el programa principal en este caso el valor del cateto a y el valor del cateto b, por otro lado, es con retorno lo cual indica que el resultado debe retornar al programa principal. Ejemplo
# include <stdio.h> # include <conio.h> # include <math.h> float hipotenusa(float a, float b); void main( ) { float x, y,h; clrscr(); printf(Ingrese el valor del cateto a:); scanf(%f,&x); printf(Ingrese el valor del cateto b:); scanf(%f,&y); h= hipotenusa (x, y); printf(La hipotenusa es:%f,h); getch(); } float hipotenusa(float a, float b) { float c; c=sqrt(pow(a,2)+pow(b,2)); return(c); }

Declaracin de la funcin hipotenusa: En este caso es una funcin paso por valor y con retorno. Llamado de la funcin hipotenusa: Observen que el llamado de la funcin se realiza de la misma forma empleando el nombre, solo que en este caso para que sea funcional se debe incluir dos parmetros que corresponden al valor del cateto a y b. Adems la funcin retorna un valor que es el clculo de la hipotenusa que se asigna a la

Elaboracin de la funcin hipotenusa: Observen que los datos para calcular la hipotenusa se asignaron a las variables a y b de la funcin y el resultado se retorna a la funcin principal por medio de la variable c.

1.5.3 funcin paso por referencia Elaboro: M. en C. Garduo Medina Jorge Adrian Pgina 6

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN

Si la seleccin de la funcin es paso por referencia, se debe considerar que los parmetros requeridos para su funcionalidad son de tipo apuntador o las direcciones donde se almacenan los datos. Para el manejo de este tipo de funciones debe tenerse cuidado ya que puede generar confusin, sobre todo cuando se realiza el llamado de la funcin. Si las variables fueron declaradas como apuntadores, digamos *p y *q, en un principio sabemos que estas ya almacenan una direccin y que en esa direccin se encuentra el valor requerido para el clculo por lo tanto en el llamado de la funcin se asigna de la misma forma, digamos hipotenusa(p, q); pero si las variables no son apuntadores en un principio de deber hacer de esta forma hipotenusa(&p, &p); donde el & indica que se est pasando la direccin de la variable p y q. Ejemplo. Para el caso en que las variables son apuntadores Declaracin de la funcin hipotenusa : En este caso es una funcin paso por valor y con retorno. Declaracin apuntador. de variables tipo

# include <stdio.h> # include <conio.h> # include <math.h> void hipotenusa(float *a, float *b); void main( ) { float *p, *q; clrscr(); printf(Ingrese el valor del cateto a:); scanf(%f,p); printf(Ingrese el valor del cateto b:); scanf(%f,q); hipotenusa (p, q); getch(); } void hipotenusa(float *a, float *b) { float c; c=sqrt(pow(*a,2)+pow(*b,2)); printf(La hipotenusa es:%f,c); }

Llamado de la funcin hipotenusa: En una funcin paso por referencia se debe tener cuidado en los parmetros, sobre todo si fueron declarados como apuntadores, en este caso el llamado se realiza de la misma forma que si fuese una funcin paso por valor. Elaboracin de la funcin hipotenusa: En este caso los parmetros a y b son apuntadores que guardan las direcciones de p y q, y que finalmente es donde se almacenan los datos para el clculo de la hipotenusa.

Para el caso en que las variables no son apuntadores

# include <stdio.h> # include <conio.h> # include <math.h> void hipotenusa(float *a, float *b); void main( ) { float p, q; clrscr(); printf(Ingrese el valor del cateto a:);

Declaracin de variables. Para este caso las variables no son de tipo apuntador.

Elaboro:

Llamado de la funcin hipotenusa: A diferencia del llamado anterior los parmetros que pasan a la funcin no son apuntadores, lo que se debe indicar el & M. en C.por Garduo Medina Jorge Adriancolocando Pgina 7 previo a la variable y de esta manera indicas que estas pasando la direccin de la variable donde finalmente se almacenan los datos para el clculo de la hipotenusa.

GUIA DE ESTUDIOS DE FUNDAMENTOS DE PROGRAMACIN


scanf(%f,&p); printf(Ingrese el valor del cateto b:); scanf(%f,&q); h= hipotenusa (&p, &q); printf(La hipotenusa es:%f,h); getch(); }

Elaboro:

M. en C. Garduo Medina Jorge Adrian

Pgina 8

Das könnte Ihnen auch gefallen