Documentos de Académico
Documentos de Profesional
Documentos de Cultura
a una Funcin
Material Original: Prof. Flor Narciso
Modificaciones: Prof. Andrs Arcia
Departamento de Computacin
Escuela de Ingeniera de Sistemas
Facultad de Ingeniera
Universidad de Los Andes
27/05/05
Programacin Digital I
Recuerde
Los PARAMETROS FORMALES son prcticamente
VARIABLES LOCALES. La nica diferencia es que son
declarados en la definicin (cabecera) de una funcin.
Segn la sintaxis vista: lista_parmetros_formales.
Al igual que las variables locales, cuando se pasa un
valor desde la lnea de invocacin a una funcin, se crea
una variable temporal dentro de la funcin invocada. Una
vez que termina la ejecucin de la funcin invocada y se
retorna a la lnea inmediata siguiente, donde las variables
locales dejan de existir.
27/05/05
Programacin Digital I
Paso de parmetros
Paso de parmetros:
Por Valor
Por Referencia
Programacin Digital I
27/05/05
Programacin Digital I
Programacin Digital I
27/05/05
Programacin Digital I
void modificar(int);
void main()
{
int a = 2;
printf(antes de la
llamada %i \n,a);
modificar(a);
printf(despues de la
llamada %i \n,a);
}
27/05/05
Programacin Digital I
27/05/05
Programacin Digital I
2389
2
Apuntador
n-1
n
27/05/05
Programacin Digital I
Apuntadores
En C los apuntadores tienen la siguiente
sintaxis:
tipo * nombre_apuntador;
Ej:
int * apuntador_entero;
float * apuntador_flotante;
char * ap_caracter;
27/05/05
Programacin Digital I
10
Programacin Digital I
11
Programacin Digital I
12
Llamada a la funcin:
nombre (parmetro_actual_1, parametro_actual_2, ,
parametro_actual_n);
27/05/05
Programacin Digital I
13
Por valor
Por referencia
27/05/05
Programacin Digital I
14
#include <stdio.h>
// Prototipo de la funcion f1
void f1(int, int);
// Prototipo de la funcion f2
void f2 (int &, int &);
void main( )
{
int u = 1, v = 3;
printf(u = %i v = %i antes de
la llamada a f1,u,v);
f1(u, v);
printf(u = %i v = %i despues
de la llamada a f1,u,v);
f2(u, v);
printf(u = %i v = %i despues
de la llamada a f2,u,v);
}
27/05/05
Programacin Digital I
15
27/05/05
Va r. local
Comentarios
b=0
Dentro de f1
f2
a=0
b=0
Dentro de f2
main
u=1
v=3
u=1
v=3
u=0
v=0
Antes de la
llamada a f1
Despus de la
llamada a f1
Despus de la
llamada a f2
Programacin Digital I
16
CuadradoPorReferencia(z);
printf(z = %i despues de la
llamada a cuadradoPorReferncia\n,x);
}
void main () {
int x = 2,
z = 4;
printf(x = %i antes de la
llamada a cuadradoPorValor,x);
27/05/05
Programacin Digital I
17
CODIFICAR.
27/05/05
Programacin Digital I
18
Programacin Digital I
19
Programacin Digital I
20
27/05/05
Programacin Digital I
21
Ejercicios
Escribir las funciones necesarias para leer cuatro
nmeros reales, calcular y escribir su producto, suma y
su media aritmtica.
Escribir una funcin que compruebe si un nmero dado
es correcto, en cuyo caso la funcin deber devolver el
valor q. En caso negativo, la funcin devolver el valor
-1. Considere los siguientes casos para decidir si un
nmero es o no correcto.
27/05/05
Programacin Digital I
22
Ejercicios
El nmero es correcto si se encuentra en el rango
definido por dos valores constantes MINIMO y
MAXIMO.
El nmero es correcto si es uno de tres valores
constantes VALOR1, VALOR2 o VALOR3.
El nmero es correcto si se encuentra en el rango
definido por dos valores constantes MINIMO y
MAXIMO, o bien es igual al valor constante VALOR1.
El nmero es correcto si se encuentra en el rango
definido por dos valores constantes MINIMO1 y
MAXIMO1, o bien en el definido por los valores
constantes MINIMO2 y MAXIMO2.
27/05/05
Programacin Digital I
23
Ejercicios
Escribir una funcin que tome un carcter como
parmetro de entrada y devuelva su tipo que podr ser
uno de los siguientes: (1) letra mayscula de la A a la
Z, (2) letra minscula de la a a la z, (3) dgito del 0 al
9.
Escribir una funcin que tome como parmetros de
entrada dos instantes de tiempo expresados en horas,
minutos y segundos e indique si el primero es anterior al
segundo.
27/05/05
Programacin Digital I
24
Ejercicios
Dada la longitud, ancho y profundidad (en pies) de una piscina, el
volumen se calcula segn la siguiente frmula:
volumen = longitud*ancho*profundidad
Dado que un pie cbico de agua es equivalente a 7.8 galones, la
capacidad de agua de la piscina viene dada por la frmula:
capacidad = volumen * 7.8
Si la rata de flujo de agua en la piscina es de 20 galones por
minuto, entonces el tiempo (en horas) que se requiere para llenar la
piscina se calcula mediante la frmula:
Tiempo = capacidad/20/60
27/05/05
Programacin Digital I
25