Funciones
Dejar de repetir: parámetros, referencias, sobrecarga, recursión y programas que se diseñan de arriba hacia abajo.
13 aulas · 9 horas de práctica · en el navegador, sin instalar nada
Temario
- Por qué funciones: dejar de repetir — Juntar unas líneas bajo un nombre y usarlas las veces que haga falta: definir una función, llamarla, y funciones que llaman a otras.
- Parámetros y return — Funciones que reciben datos (parámetros) y que devuelven un resultado (return): calcular el peso, la aceleración y si el combustible alcanza.
- Por valor o por referencia — Una función recibe una copia de lo que le pasás, salvo que el parámetro lleve &: ahí recibe el original. ¿Arreglás el robot o una copia?
- const &: pasar sin copiar — Pasar algo grande por const & no lo copia y promete no tocarlo. Cuándo usar valor, & o const &, y el & del for de rango.
- Sobrecarga — Varias funciones con el mismo nombre y distintos parámetros: pedir un plato, varios o una lista, y cómo elige el compilador cuál llamar.
- Parámetros por defecto — Un parámetro que casi siempre vale lo mismo puede traer ese valor puesto: la llamada lo omite. Las reglas (de derecha a izquierda) y cómo agregar un parámetro sin romper las llamadas viejas.
- Alcance y static local — Dónde vive cada variable y cuánto dura: las locales nacen en cada llamada, las globales duran todo el programa, y static da una local que se acuerda.
- Recursión I — Una función que se llama a sí misma con un problema más chico: el caso base, el caso recursivo, la pila de llamadas y qué pasa cuando no hay salida.
- Recursión II: salir del laberinto — La recursión que se ramifica: probar un camino, y si no sale, volver y probar otro. Migas de pan, el camino marcado y contar lo alcanzable.
- Declarar antes de usar: prototipos — Avisarle al compilador que una función existe antes de escribirla: main arriba, funciones que se llaman entre sí, errores del linker y qué hay adentro de un header.
- Diseñar de arriba hacia abajo — Un programa grande se escribe empezando por el plan: main con llamadas a funciones que todavía no existen, stubs que compilan, y una pieza por vez. La batalla naval, de arriba hacia abajo.
- Taller: el envido del truco — Contar el envido de una mano del truco con funciones chicas que se apoyan una en otra: el valor de cada carta, el de un par, el de la mano, quién gana y qué se canta.
- Taller: el robot repartidor — El robot del aula 1, ahora con cabeza: moverse en cualquier dirección, seguir una ruta, ir a un punto y elegir solo el paquete más cercano.