Title: Introduccin al Lenguaje de Programacin C IV: Funciones
1Introducción al Lenguaje de Programación C
(IV)Funciones
- Clase 6
- Introducción a la Programación
2Para qué sirven las funciones
- No repetir lo mismo varias veces en el código
- Ordenar el código
- Comprender más fácilmente el código
- Separar trabajo entre programadores
- Realizar trabajos más complejos
- La idea de las funciones es generar modularidad,
cajas negras, chips que se conectan entre sà y
que sólo conocen sus interfaces y no cómo
operan por dentro - Las funciones son MUY importantes!
3Ejercicios
- Desarrollar las siguientes funciones
- Calcule el logaritmo en base dos de un número.
- Retorne 0 si un numero es par o 1 si es impar.
- Retorne 0 si un año es bisiesto y 1 si no.
- Retorne el área de un triángulo dado b y h.
4Las funciones también pueden realizar un trabajo
aparte de retornar un valor
- Ejemplo imprime la tabla de un numero
void imprimeTabla(int n) printf("i x 0
0\n", n) printf("i x 1 i\n", n, n)
printf("i x 2 i\n", n, n2) printf("i x
3 i\n", n, n3) printf("i x 4 i\n",
n, n4) main() int numero
printf("Que tabla quieres saber ")
scanf("i", numero) printf("La tabla del i
es", numero) imprimeTabla(numero)
- Las funciones que no retornan un valor deben
tener tipo de datos void
5Paso de parámetros por valor
- Al pasar un parámetro a una función ésta recibe
una copia de la variable original - Cual serÃa la implicancia de esto ?
- Ejemplo
- Más adelante cuando veamos punteros veremos el
paso de parámetros por referencia, caso en el
cual las modificaciones al parámetro si persisten
luego de ejecutar la función
6Vida útil (o ámbito) de las variables
- Las variables sólo existen dentro de la función
en que son creadas. - Que pasarÃa si no fuese asÃ?
- Efectos secundarios
- Código spaghetti
- Sin embargo, y con cuidado, esta regla se puede
saltar, vÃa dos mecanismos - Variables globales
- Variables estáticas
7Variables globales
- Definidas afuera del main ? son visibles por
desde todas partes del programa. Ejemplo
float iva1.18 float conIva(float monto)
return(montoiva) main() int plata
printf("El iva es f\n", (iva-1)100)
printf("Ingrese un monto sin IVA \n")
scanf("i", plata) printf("El monto con iva
es f\n", conIva(plata))
Cuándo conviene usarlas?
8Variables estáticas
- Persisten entre llamadas a la misma función.
Ejemplo
int contador() static c 0 c
printf("la cuenta va en i\n", c) main()
contador() contador() contador()
9Algunos detalles sobre el lenguaje C
- Conversiones de tipos
- Más formatos de entrada y salida
- El problema de intercambiar dos variables
- Resumen estructura de un programa
10Conversiones de tipos
- Conversiones automáticas
- De entero a flotante
- a 4 4.0 ? 4.0 4.0 ? 8.0
- De flotante a entero
- b 3.5 3 ? 3.5 3.0 ? 6.5 ? 6
- Conversiones manuales (casting de tipos)
- (float)1 ? 1.0
- (int)1.5 ? 1.0
Para los ejemplos float a int b
11Más formatos de entrada y salida
- Formatos para imprimir punto flotante
- e 1.234000e-03
- f 0.001234
- 10f 0.001234
- 10.3f 0.001
- Formatos para imprimir enteros
- i ó d 51
- 2d 51
- 4d __51
- Formatos para leer (scanf)
- d ó i int
- h short int
- lx long int
- f float
- lf double
- c char
- s cadena de caracteres (strings, por verse)
12El problema de intercambiar dos variables
tmpA AB Btmp
13Resumen estructura de un programa
include ltlibrerÃasgt define ltidentificadorgt
ltconstantegt typedef ltdefinición_de_nuevos_tipos_
de_datosgt ltvariables_globalesgt ltdefinición_de_fu
ncionesgt lttipogt main() Â Â Â Â Â
ltcuerpo_de_la_función_principalgt
- Inclusión de librerÃas
- Constantes
- Definición de tipos
- Variables globales
- Definición de funciones
- Programa principal
por ver