¿Qué son las funciones? (10 minutos)
Explicación:
Una función es un bloque de código que realiza una tarea específica y puede ser reutilizado en diferentes partes de un programa. Las funciones hacen el código más organizado, legible y fácil de mantener. Por ejemplo, en lugar de escribir varias veces el código para calcular un promedio, defines una función y la llamas cuando la necesites.
Características de una función:
- Nombre: Identifica la función (por ejemplo, CalcularPromedio).
- Parámetros: Datos que la función recibe para trabajar (opcionales).
- Retorno: Valor que la función devuelve al programa (opcional).
- Cuerpo: Las instrucciones que ejecuta la función.
Analogía: Una función es como una receta de cocina. La defines una vez (ingredientes y pasos) y la usas cada vez que quieras preparar el plato.
Punto clave: En Laravel, usarás funciones (o métodos) para tareas repetitivas, como validar un formulario o procesar datos.
Actividad rápida (2 minutos):
Piensa en una tarea repetitiva que podrías convertir en una función (por ejemplo, saludar a alguien). Escribe en papel qué datos necesitaría (parámetros) y qué devolvería. Ejemplo:
- Función: Saludar
- Parámetro: Nombre de la persona
- Retorno: "Hola, [nombre]"
Definir funciones en PSeInt (15 minutos)
Explicación:
En PSeInt, las funciones se definen como subprocesos o subalgoritmos, que pueden recibir parámetros y devolver valores. Hay dos tipos principales:
- Subprocesos: Ejecutan acciones sin devolver un valor (como mostrar un mensaje).
- Funciones: Devuelven un valor que el programa puede usar (como un cálculo).
Sintaxis básica de un subproceso (sin retorno):
text
SubProceso nombreFuncion(param1, param2)
// Instrucciones
FinSubProceso
Sintaxis de una función (con retorno):
text
Funcion resultado <- nombreFuncion(param1, param2)
// Instrucciones
resultado <- valor
FinFuncion
Llamar una función: Usa Llamar nombreFuncion(valor1, valor2) para subprocesos o variable <- nombreFuncion(valor1, valor2) para funciones.
Punto clave: Las funciones organizan el código en bloques reutilizables, algo que harás constantemente en Laravel con métodos y controladores.
Ejemplo simple:
Subproceso que muestra un mensaje:
text
Algoritmo EjemploSubproceso
SubProceso MostrarMensaje()
Escribir "¡Hola desde la función!"
FinSubProceso
// Llamar la función
Llamar MostrarMensaje()
FinAlgoritmo
Salida:
text
¡Hola desde la función!
Actividad rápida (3 minutos):
Escribe en papel un subproceso que muestre "¡Bienvenido!" sin parámetros. Solución sugerida:
text
SubProceso Saludar()
Escribir "¡Bienvenido!"
FinSubProceso
Funciones con parámetros y retorno (20 minutos)
Explicación:
Las funciones más útiles reciben parámetros (datos de entrada) y devuelven un valor. Esto permite que la función sea flexible y produzca resultados que el programa puede usar.
Ejemplo práctico (como pide la lección):
Función que calcula el cuadrado de un número:
text
Algoritmo CalcularCuadrado
// Definir la función
Funcion resultado <- Cuadrado(numero)
Definir resultado Como Entero
resultado <- numero * numero
FinFuncion
// Programa principal
Definir num Como Entero
Definir res Como Entero
Escribir "Ingrese un número: "
Leer num
res <- Cuadrado(num)
Escribir "El cuadrado de ", num, " es: ", res
FinAlgoritmo
Cómo funciona:
- La función Cuadrado recibe un parámetro numero.
- Calcula numero * numero y lo asigna a resultado.
- El programa principal pide un número, llama a Cuadrado y muestra el resultado.
Cómo ejecutarlo:
- Abre PSeInt.
- Copia el código en un nuevo archivo.
- Ejecuta con F9.
- Ingresa un número (por ejemplo, 4).
Salida de ejemplo:
- Entrada: 4
- Salida: El cuadrado de 4 es: 16
Punto clave: Las funciones con retorno son ideales para cálculos reutilizables, como los que usarás en Laravel para procesar datos (por ejemplo, calcular precios con impuestos).
Actividad rápida (3 minutos):
Modifica el programa anterior (en papel o PSeInt) para que la función calcule el cubo (numero * numero * numero). Solución sugerida:
text
Funcion resultado <- Cubo(numero)
Definir resultado Como Entero
resultado <- numero * numero * numero
FinFuncion
Iterar arrays con funciones (10 minutos)
Explicación:
Las funciones también pueden trabajar con arrays, combinándolas con bucles (vista en Lección 4) para procesar listas de datos.
Ejemplo práctico:
Subproceso que muestra un array de hobbies:
text
Algoritmo MostrarHobbies
// Definir subproceso
SubProceso ImprimirHobbies(hobbies, tam)
Definir i Como Entero
Para i <- 1 Hasta tam Hacer
Escribir "Hobby ", i, ": ", hobbies[i]
FinPara
FinSubProceso
// Programa principal
Definir hobbies Como Caracter
Dimension hobbies[3]
hobbies[1] <- "leer"
hobbies[2] <- "viajar"
hobbies[3] <- "cocinar"
Llamar ImprimirHobbies(hobbies, 3)
FinAlgoritmo
Cómo funciona:
- El subproceso ImprimirHobbies recibe un array (hobbies) y su tamaño (tam).
- Usa un bucle Para para mostrar cada elemento.
- El programa principal crea un array y llama al subproceso.
Salida:
text
Hobby 1: leer
Hobby 2: viajar
Hobby 3: cocinar
Punto clave: En Laravel, usarás funciones para procesar arrays, como mostrar listas de usuarios o productos en una página.
Actividad rápida (2 minutos):
Escribe en papel un subproceso que reciba un array de 2 colores y los muestre. Solución sugerida:
SubProceso MostrarColores(colores, tam)
Para i <- 1 Hasta tam Hacer
Escribir colores[i]
FinPara
FinSubProceso
Resumen y preparación para la tarea (15 minutos)
Resumen:
- Funciones: Bloques de código reutilizables que pueden recibir parámetros y devolver valores.
- Subprocesos: Ejecutan acciones (sin retorno).
- Funciones con retorno: Devuelven un resultado (como un cálculo).
- Uso con arrays: Combinan con bucles para procesar listas.
- En Laravel, las funciones son la base de métodos en controladores y modelos.
Preparación para la tarea:
La tarea pide una función que reciba un nombre y devuelva un saludo personalizado (por ejemplo, "Hola, Ana"). Pensemos en la lógica:
- Define una función que reciba un parámetro (el nombre).
- Construye un string con el saludo.
- Devuelve el string para usarlo en el programa principal.
Pseudocódigo inicial:
text
Funcion saludo <- Saludar(nombre)
Definir saludo Como Caracter
saludo <- "Hola, " + nombre
FinFuncion
Tarea práctica: Escribe una función que reciba un nombre y devuelva un saludo personalizado
Instrucciones:
- Crea un programa en pseudocódigo con PSeInt que:
- Defina una función Saludar que reciba un parámetro nombre (tipo Caracter).
- Construya un saludo como "Hola, [nombre]".
- Devuelva el saludo como un valor de tipo Caracter.
- En el programa principal, pida al usuario un nombre, llame a la función y muestre el resultado.
- Usa el siguiente formato como guía:
text
Algoritmo SaludoPersonalizado
// Definir la función
Funcion saludo <- Saludar(nombre)
Definir saludo Como Caracter
saludo <- "Hola, " + nombre
FinFuncion
// Programa principal
Definir nombreUsuario Como Caracter
Definir resultado Como Caracter
Escribir "Ingrese su nombre: "
Leer nombreUsuario
resultado <- Saludar(nombreUsuario)
Escribir resultado
FinAlgoritmo
- Ejecuta el programa:
- Copia el código en PSeInt y ejecuta con F9.
- Ingresa un nombre (por ejemplo, "Juan").
- Verifica la salida.
- Si no usas PSeInt, escribe el pseudocódigo en papel o un editor, asegurándote de que la lógica sea correcta.
Ejemplo de solución esperada:
El código anterior es funcional. Si lo ejecutas:
- Entrada: Juan
- Salida: Hola, Juan
- Entrada: María
- Salida: Hola, María
Tiempo estimado: 15-20 minutos (puedes hacerlo después de la lección).
Entregable: Pseudocódigo funcional que genere un saludo personalizado. Puedes compartir el código o describirlo para que lo revise.
Consejo: Experimenta con diferentes saludos (por ejemplo, "Bienvenido, [nombre]") o añade un parámetro extra (como un título: "Hola, Sr. [nombre]").