0% encontró este documento útil (0 votos)
16 vistas27 páginas

Funciones

El documento presenta una introducción a las funciones en el lenguaje de programación C, diferenciando entre funciones estándar y funciones creadas por el usuario. Se explican los componentes de una función, su declaración, llamada y ejecución, así como los conceptos de paso por valor y paso por referencia. Además, se incluyen ejemplos prácticos para ilustrar cómo se utilizan las funciones en C.

Cargado por

Daira Rivas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas27 páginas

Funciones

El documento presenta una introducción a las funciones en el lenguaje de programación C, diferenciando entre funciones estándar y funciones creadas por el usuario. Se explican los componentes de una función, su declaración, llamada y ejecución, así como los conceptos de paso por valor y paso por referencia. Además, se incluyen ejemplos prácticos para ilustrar cómo se utilizan las funciones en C.

Cargado por

Daira Rivas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLOGICA DE PANAMA.

FACULTAD DE INGENIERIA DE SISTEMAS


COMPUTACIONALES

“FUNDAMENTOS DE PROGRAMACION”

Preparado por : Msc. Ludia Gómez de Meléndez.


Departamento de Programación y Análisis de Sistemas

Preparado por: Ludia Gómez A. 1


II. FUNCIONES

Una función es aquella que realiza una tarea específica. C como


cualquier otro lenguaje de programación puede manejar funciones
estándares al lenguaje y funciones creadas por el usuario.
A continuación veremos primeramente las Funciones estándares.

Funciones Estándares.
Son aquellas que realizan una tareas específica y cuyo código se
encuentra en la biblioteca estándar del compilador. Existen funciones
estándares para operaciones matemáticas manipulación de cadenas
manipulación de archivos etc.

Preparado por: Ludia Gómez A. 2


Uso de funciones de biblioteca
Todas las versiones del lenguaje c ofrecen una biblioteca ofrecen una biblioteca
Estándar de funciones que proporcionan soporte para operaciones utilizadas con
mas frecuencia. Estas funciones permiten realizar una operación con solo una
llamda a la funicon ) sin necesidad de escribir su codigo fuente. Estas se dividen
en grupos.

Los nombres de los archivos de cabecera estándares son

<assert.h> <string.h> <setjmp.h>


<limits.h> <errno.h> <stdio.h>
<signal.h> <math.h>
<stdlib.h> <stddef.h>
<ctype.h> <time.h>
<stdarg.h> <float.h>
<ctype.h>
• Define un grupo de funciones /maco de
manipulacion de caracteres.

Islower (c) devuelve verdadero si c es una letra minuscula. Devuelve falso


si pasa un caracter distinto de minuscula.
Isalph (c) devuelve verdadero si es minuscula o mayuscula. Falso si no es
una letra.
Isdigit(c) Devolviendo verdadero si comprueba que es un digito del 0 al
9 , y falso si no cumple.
Tolower(c) Convierte el caracter c a minuscula, si ya no lo es.
Toupper(u) Convierte el caracter u a mayuscula, si ya no lo es.
Isspace(u) Devuelve verdadero si u es un espacio, falso si no lo es.
Math.h y stdlib.h
• La mayoria de funciones matematicas estan en el archive
math.h; las funciones de valor absolute fabs, labs, y division
enter div y ldiv estan definidas en stdlib.h

Ceil(x) Redondea el entero mas cercano

Fabs(x) Devuelve el valor absolute de x (valor sin signo)

Floor(x) Redondea de manera predeterminada al entero mas proximo.


Prototipo de la function double floor (double x)
Pow(x,y) Calcual x Elevado a la potencia y, (xY) si x es menor que o igual
a cero, y debe ser un entero. Si x es igual al cero y no puede
ser negative.
Sqrt(x) Devuelve la raiz cuadrada de x; x debe ser mayor o igual a
cero.
Math.h
• Encontraremos en la libreria math.h las funciones
trigonometridas tales como: acos(x), asin(x), atan(x),
atan1(x,y), cos(x), sin(x), etc.
Math.h
• En la libreria math.h, Tambien contramos las logartmicas y
exponenciales, funciones aleatorias

Exp(x) Calcula el exponiencial de ex . Donde e es la base de logaritmos


naturales de valor 2.718282 .

log(x) Calbula el logartimo natural del argumento x; x debe ser positivo.

random(num) Generalmente viene incorporada en los compiladores de c.


Genera un numero aleatorio dentro de un rango especifico (0 o el
limite especificado por el argumento num) devuelve un valor
entero entre 0 y num-1.
Div(num, Cvalcula el cociente y el resto de num, dividido por denom y
denom) almacena el resultado en quot y rem, miembros int de la
esctructura div_t.
Función creadas por el Usuario

El uso de funciones definidas por el


desarrollador permiten dividir un
programa grande en un cierto número de
componentes más pequeños teniendo
cada una de ellas un propósito único.

Al trabajar estos tipos de funciones


debemos considerar lo siguiente:

Función creada por el usuario


llamada suma

Preparado por: Ludia Gómez A. 8


Función creadas por el Usuario.
Las funciones pueden devolver un valor.
a) Si no devuelve nada se declara de tipo void.
b) Si devuelve un valor, la función se declara del tipo de dato que
coincide con el tipo del valor que se devuelve.

Solo para recordar con independencia del número de funciones en que


se descomponga un programa siempre debe existir una y sólo una
función que se llame main( ), ya que cualquier programa C empieza
ejecutándose por la citada función main().

Preparado por: Ludia Gómez A. 9


Función creadas por el Usuario.
Formato de declaración de una función:
Las funciones en C pueden ser declaradas por encima del main o por
debajo de ella, sin embargo la ubicación por debajo del main () trae
consigo lo siguiente: debe ubicar por encima del main() el
encabezado de la función.

Luego de esto, las funciones pueden ser llamadas desde cualquier parte
del programa y una vez que su ejecución finaliza el control retorna al
punto desde donde se llamo.
Las funciones tienen tres componentes principales:

 Encabezado

 Declaraciones Locales de la función.

Cuerpo de la función.

Veamos cada uno de ellos


Preparado por: Ludia Gómez A. 10
Función creadas por el Usuario.
ENCABEZADO: declara el nombre de la función y la lista de parámetros formales con la
cual se va a trabajar. También identifica el tipo de dato que retorna la función.
FORMATO:

tipo de dato nombre de la función (lista de parámetro (s) formal (es))

DECLARACIONES LOCALES: Se definen


todas las constantes, tipos de datos creados por el
usuario, variables. Todo lo que aquí se declara es propio
de la función y no es reconocido fuera de ella. Son de
uso exclusivo de la función.
CUERPO DE LA FUNCIÓN: Se encierra entre
FORMATO:
llaves de apertura { y cierre }, y contiene cualquiera
Tipo de dato nombre de identificador de las sentencia que hasta aquí usted conoce.
FORMATO:
: :
{
sentencia -1
:
sentencia-n;
return expresión ; }

Preparado por: Ludia Gómez A. 11


Lista de parámetros formales
Son el conjunto de variables que se comparten entre el main y la función
llamada o entre funciones. Es el mecanismo de comunicación que existe
entre quien llama y quien responde.

Formato: entre paréntesis se debe ubicar lo siguiente:

tipo de  nombre de  tipo de nombre de ….  tipo de nombre de


dato 1 identificador1 dato 2 identificador2 ….  dato n identificador n

Veamos un ejemplo, manejando este formato.

Preparado por: Ludia Gómez A. 12


Declaración de Funciones.
Encabezado

float suma ( float num1, float num2) {


Declaración Local de la Función

float resp; Cuerpo de


la
Función
resp = num1 + num2 ;
return resp;
}
Valor
devuelto

Preparado por: Ludia Gómez A. 13


. función.
Llamada a una
Las funciones para ser ejecutadas han de ser llamadas o
invocadas. Cualquier expresión puede contener una llamada a una
función que enviará el control del programa a la función nombrada.
Normalmente la llamada a una función se realizará desde el main,
aunque también se puede hacer desde otra función.

Formato de llamada a una función:

Nombre de identificador = nom_función (lista de parámetros actuales);


Nombre de identificador = nombre de la función ( );
printf (nombre de la función (Lista de parámetros actuales));
Formato de llamada de funciones que no devuelven un valor:
Nombre de la función ();
Nombre de la función (lista de parámetros actuales)

14
Lista de parámetro Actuales.
Son el conjunto de variables que se comparten entre el main y la
función llamada o entre funciones. Es el mecanismo de comunicación
que existe entre quien llama y quien responde.

Formato: entre paréntesis se debe ubicar lo siguiente:


( nombre de  nombre de ….  nombre de )
Identificador1 identificador2 identificador n

Identificador 1 a identificador n: pueden ser variables  constantes o


expresiones.

EJEMPLO: suma (42) o suma (xy)

Preparado por: Ludia Gómez A. 15


Llamada a las Funciones.
En los formatos anteriormente descritos los tres primeros son usados
cuando la función debe retornar un valor.
Puede manejar el formato con lista de parámetros o también sin ella.

Todo va a depender de la necesidad de la aplicación que usted este


resolviendo.

Los últimos dos formato son utilizados cuando la función no retorna


un valor al programa principal o a la función que lo llamo y puede o no
tener lista de parámetros actuales

Preparado por: Ludia Gómez A. 16


Llamada a las Funciones.
Una función (en el ejemplo: suma), puede retornar en cada llamada un único
valor a otra función que la invoca (en el ejemplo: main). La palabra reservada
return permite devolver este valor a donde fue invocada la función en el ejemplo:
tot = suma (numnum1) sentencia que pertenece a la función main desde donde
se llamó a suma.
Función main.
#include <stdio.h> Función suma.
int suma (int);
void main (void) int suma (int n int n1)
{ 15 Valor retornado de la { int sum
int num  num1tot; función suma 5
scanf (“%d%d”&num&num1) ; sum = n + n1 10
Parámetros formales
tot = suma (num num1);
printf (“La suma = %d”, tot); return sum 
}
15
} Valor a retornar

Preparado por: Ludia Gómez A. 17


Llamada y Ejecución de una Función

Los valores de las variables o de las constantes que se escriben como


argumentos en la llamada de una función, se copian en las direcciones
de memoria reservada para los parámetros formales de la función
invocada.

A continuación veamos un ejemplo en ejecución paso a paso de como


trabaja un programa que ejecuta a una función llamada media.

Usted observará como se mueven ambos espacios de memoria.


Donde se encuentra localizado el programa que llama a la función y
el área reservada para la función media.

Preparado por: Ludia Gómez A. 18


FUNCIONES
a. Paso por Valor:

La llamada o paso por valor significa que el valor del argumento, es decir, una copia del objeto
que representa el argumento se pasa a la función donde se asigna a una nueva variable, pero,
aunque la función modifique el valor del parámetro, la modificación no se mantendrá después
del retorno de la función. La declaración de un argumento que se pasa por valor se realiza,
simplemente, declarando el tipo de argumento.
Ejemplo:
double cubo(double x)
int main()
{
double lado =10;
double volumen = cubo (lado);
}
double cubo(double n)
{
return n*n*n
}
Ejecución de la Función media().

Memoria #include <stdio.h>


main float media (int a, int b, int c)
{ return (a+b+c)/3.0;
x ? }
void main ()
{
y ? int x, y, z;
float med ;
z ?
med ?

Se declara la función media y se inicia la declaración del programa


principal y se ve como el espacio de memoria asignado a las variables del
programa principal (main) va quedando conformado. Los ? indican que
las variables no tiene aún ningún valor asignado por el usuario.

Preparado por: Ludia Gómez A. 20


Ejecución de la Función media ().
Memoria
main #include <stdio.h>
float media (int a, int b , int c) {
x 3 return (a+b+c)/3.0 
}
void main (void)
y 7 {
int x, y, z;
z 6 float med;
printf (“\n Teclee tres números:”);
scanf (“%d%d%d”, &x, &y,&z);
med ?

Se le proporcionan valores por entrada a las variables de lectura aún media


sigue sin valor definido.

Preparado por: Ludia Gómez A. 21


Ejecución de la función media().
Memoria
main #include <stdio.h>
float media (int, int, int)
x 3 { return (a +b+c)/3.0
}
void main (void)
y 7 {
int x, y, z;
float med;
z 6 printf (“\n Teclee tres números:”);
scanf (“%d%d%d”, &x, &y,&z);
med ? med= media (xyz) ;

3 7 6

La función media es llamada y se lleva como parámetros actuales a 37 y


6. Estos valores son transferidos a la función los cuales los recibe la lista
de parámetros formales y el control se transfiere desde aquí a la función
media.
Preparado por: Ludia Gómez A. 22
Ejecución de la Función media().
Memoria
media
float media (int a, int b, int c)
{
a 3 return ( a + b + c)/3.0;

b 7 }

c 6

Una vez el control se encuentra dentro de la función media las variables


formales reciben la copia de valores enviadas desde el programa que la llamo.
Ahora estamos trabajando con el espacio de memoria asignado a media. Se
realiza los procesos y se retorna al lugar de la llamada el valor de la expresión
evaluada.
Preparado por: Ludia Gómez A. 23
Ejecución de la Funcion media ().
#include <stdio.h>
Memoria main float media_aritmética (int, int, int);
void main (void)
{
a 3 int x, y, z;
float med;
printf (“\n Teclee tres números:”);
b 7 scanf (“%d%d%d”, &x, &y,&z);
med= media (xyz) ;
printf (“La media vale %f\n”,med);
c 6 getch() ; }

med ? 5.33
El control retorna al programa principal y el valor de la media es asignado a
la variable med. Observe que el espacio de memoria con el que se trabaja
ahora es el de la función main. Una vez se sale de la función media el área
de memoria que ocupaba la misma desaparece y el proceso continua donde
fue interumpido.
Preparado por: Ludia Gómez A. 24
FUNCIONES
Paso por referencia:
El paso por referencia de los argumentos permite a una función llamada acceder
a variables de la función llamadora. En el paso por referencia la función puede
modificar el valor del parámetro.
Ejemplo:
void intercambio (int &m, int &n)
{
int aux = m;
m=n;
n=aux;
}
int main () {
int a=5, b=2;
intercambio(a,b);
printf(“%i, %i”, a, b);
return 0}
Recursividad.
Es el proceso mediante el cual una función se llama a si misma de
forma repetida y directa, hasta que se satisface una condición
determinada. El proceso se utiliza para cálculos repetitivos en los que
cada acción se determina en función de un resultado anterior.

Se debe cumplir dos condiciones para que un problema se pueda


resolver recursivamente:
 El problema debe poder escribirse en forma recursiva
 La resolución del problema debe incluir una condición de
finalización.

Preparado por: Ludia Gómez A. 26


Recursividad.
Llamada inicial de la
#include <stdio.h> Condición que función imprimir
controla la
#include <conio.h> finalización de la
void imprime (int num ){ función recursiva

printf ("\n num =%d ",num);


if (num > 1) { printf ("Lea un numero entero ");
num = num - 1; scanf ("%d",&n);
imprime (num); } } imprime (n);
void main () { printf (" \n HEMOS TERMINADO");
int n; getch(); }
Llamada a la función
clrscr (); dentro de ella misma

Preparado por: Ludia Gómez A. 27

También podría gustarte