Documente Academic
Documente Profesional
Documente Cultură
Funciones
Qu son?Para qu sirven?
Son un grupo de sentencias bajo el
mismo nombre que realizan una tarea
especfica.
Sirven para facilitar la resolucin de
problemas mediante la aplicacin del
paradigma Dividir y Conquistar.
Diferencia entre
El Programa y las Funciones
Las funciones y los programas se parecen mucho, pero difieren:
Los programas son usados por un usuario externo.
Las funciones son utilizadas por un programador.
El usuario del programa Hola Mundo no conoce que
es la funcin printf.
El programador que usa printf no siempre conocer
explcitamente como sta hace para mostrar
informacin en pantalla.
El programador que escribi printf conoce
exactamente su funcionamiento interno.
Conceptos Bsicos
Funcin
Grupo de sentencias bajo el mismo nombre
que realizan una tarea especfica.
Llamada a una funcin
Ejecuta el grupo de sentencias de una
funcin.
Retorno
Una vez llamada la funcin, esta hace su
trabajo, y regresa al mismo punto donde fue
llamada.
Funciones
Vamos a conocer tres cosas muy
importantes sobre las funciones:
Cmo se declaran?
Cmo se implementan?, y
Cmo se usan?
Declaracin de Funciones
De forma similar a las variables, las
funciones deben ser declaradas:
La forma de declarar una funcin es
siguiendo la forma predefinida:
tipoDatoRetorno nombreFuncion(lista parmetros);
Por ejemplo:
int potencia(int base, int exponente);
float farenheitACelsius(double celsius);
Implementacin de Funciones
int potencia(int base, int exponente)
{
sentencias; La primera lnea se escribe
igual que en la declaracin,
} pero sin el punto y coma.
Generacin de Nmeros
Aleatorios
Generacin de Nmeros Aleatorios
Funcin rand
Cargar <stdlib.h>
Returnar nmeros aleatorios entre 0 y RAND_MAX (por
lo menos 32767)
i = rand();
Nmeros Pseudoaleatorios
Secuencia pre-establecida de nmeros aleatorios
La misma secuencia para cada llamada a la funcin
Para obtener un nmero aleatorio entre 1 y n:
1 + ( rand() % n );
rand() % n returna un nmero entre 0 y n - 1
Agregando 1 genera nmeros aleatorios entre 1 y n
#include <stdio.h>
la funcin llamada. }
void main()
{
int x, y;
Al retornar la funcin no efectuara el printf(Ingrese x:);
scanf(%d,&x);
cambio, como lo deseamos.
printf(Ingrese y:);
Recordemos que, al pasar parmetros, scanf(%d,&y);
se efecta una copia de los valores. printf(x = %d, y= %d, x, y);
Este tipo de paso de parmetros se intercambiar(x,y);
conoce como PASO DE PARAMETROS printf(x = %d, y= %d, x, y);
POR VALOR. }
main void intercambiar(int a, int b)
y {
x Intercambiar int tmp;
3 a4 b tmp
tmp = a;
a = b;
3
4 4
3 3 }
b = tmp;
Paso de Parmetros por Referencia
Para este tipo de problemas, en los cuales necesitamos modificar
directamente los datos que se reciben como parmetros, se usa la
llamada de parmetros POR REFERENCIA
De esta forma, el prototipo seria:
void main()
void intercambiar(int *a, int *b); {
int x, y;
printf(Ingrese x:);
Al retornar la funcin si
scanf(%d,&x);
habr efectuado el cambio
printf(Ingrese y:);
sobre las variables que se scanf(%d,&y);
pasaron por referencia. printf(x = %d, y= %d, x, y);
intercambiar(&x,&y);
main
printf(x = %d, y= %d, x, y);
x y }
void intercambiar(int *a, int *b)
3
4 4
3 Intercambiar {
int tmp;
a b tmp tmp = *a;
*a = *b;
3
4 3
4 3 *b = tmp;
}
Refinamiento
Cuando un problema es muy grande, se busca separarlo,
para resolver todo por partes. Esto es ventajoso:
Las partes ms pequeas son mas fciles de entender
Si algo falla, el error es mas fcil de encontrar.
Al escribir un programa, usualmente se piensa en el
programa principal (main),y se piensa en las tareas ms
importantes.
Se piensa en dividir el programa en componentes
individuales, los cuales pueden ser a su vez, divididos en
piezas ms pequeas.
Esto se conoce como diseo top-down, o refinamiento
paso a paso.
Un Problema ms Grande
Se requiere escribir un programa que
Darmuestre el calendario completo
Instrucciones
de un ao dado, que no puede ser menor a 1900.
Imprimir Mes
Mostrar Nombre
Ingreso y del Mes
Validacion de
Ao Determinar que
dia de la semana
Dar el respectivo fue el primer dia
marqen para el del mes
primer dia del
mes
Calendario
Dar Imprimir
Pedir Ao
Instrucciones Calendario
Imprimir Calendario de c/
Mes
Imprimir el
Imprimir Determinar Determinar el dia Imprimir
Margen para el
Nombre del Mes cuantos das de la semana el resto
primer dia del
trae el mes donde cayo el de das
mes
primer dia