Lección 81 — Funciones en Programación: Qué Son, Tipos y Ejemplos
Las funciones en programación son bloques de instrucciones que realizan una tarea específica y pueden utilizarse tantas veces como sea necesario dentro de un programa. Permiten organizar el código, evitar repeticiones innecesarias y construir soluciones más claras, eficientes y fáciles de mantener.
Imagina que desarrollas un programa para una tienda y necesitas calcular el importe de varios productos. En lugar de escribir la misma operación una y otra vez, puedes crear una función que realice el cálculo y utilizarla cada vez que la necesites.
Las funciones son fundamentales en prácticamente todos los lenguajes de programación. Aunque su sintaxis puede variar, comparten un principio esencial: dividir un problema en tareas más pequeñas que pueden resolverse y reutilizarse de manera independiente.
En esta lección aprenderás qué son las funciones, cuáles son sus tipos, cómo se definen y utilizan, qué diferencia existe entre parámetros y argumentos, cómo funcionan los valores de retorno y de qué manera contribuyen a la programación modular.
¿Qué son las funciones en programación?
Una función es un bloque de código identificado mediante un nombre que agrupa instrucciones destinadas a realizar una tarea determinada.
Una función puede recibir datos, procesarlos y devolver un resultado. Sin embargo, no todas las funciones necesitan recibir parámetros ni devolver valores.
Por ejemplo, una función puede encargarse de:
Mostrar un mensaje de bienvenida.
Sumar dos números.
Calcular el promedio de varias calificaciones.
Determinar si un número es par.
Calcular el precio de un producto con descuento.
Verificar si un dato cumple determinada condición.
Convertir una cantidad de una unidad a otra.
Ejemplo cotidiano
Piensa en una calculadora.
Cuando presionas una tecla para realizar una operación, esperas que la calculadora ejecute una tarea y muestre el resultado.
En programación podemos organizar esas operaciones mediante funciones como:
sumar()
restar()
multiplicar()
dividir()
Cada una representa una operación específica.
La idea central es que una función se encargue de una tarea claramente definida.
¿Para qué sirven las funciones en programación?
Las funciones permiten construir programas más organizados y evitar duplicar instrucciones.
Sus principales beneficios son:
Reutilización del código: una misma función puede utilizarse varias veces.
Organización: el programa se divide en tareas más pequeñas.
Legibilidad: resulta más sencillo comprender qué hace cada parte.
Mantenimiento: las modificaciones pueden concentrarse en una función.
Detección de errores: facilita revisar y probar cada operación.
Trabajo colaborativo: diferentes programadores pueden desarrollar componentes separados.
Modularidad: favorece la construcción de programas mediante bloques relacionados.
Escalabilidad: ayuda a ampliar las funcionalidades sin desorganizar todo el código.
Ejemplo: evitar instrucciones repetidas
Supongamos que un programa necesita mostrar el mismo mensaje en diferentes momentos.
Sin funciones:
ESCRIBIR "Bienvenido a PCUniverseOne"
ESCRIBIR "Selecciona una opción"
ESCRIBIR "Bienvenido a PCUniverseOne"Podemos definir una función:
FUNCIÓN mostrarBienvenida()
ESCRIBIR "Bienvenido a PCUniverseOne"
FIN FUNCIÓNDespués, simplemente la llamamos:
mostrarBienvenida()
ESCRIBIR "Selecciona una opción"
mostrarBienvenida()De esta manera, el mensaje se encuentra definido en un solo lugar.
Si necesitamos modificarlo, basta con actualizar la función.
¿Cuáles son las partes de una función?
Aunque existen diferencias entre lenguajes, una función suele incluir varios elementos.
| Elemento | Descripción |
|---|---|
| Nombre | Identifica la función |
| Parámetros | Variables que reciben datos de entrada |
| Cuerpo | Instrucciones que realiza |
| Valor de retorno | Resultado que puede entregar |
| Llamada | Instrucción que solicita ejecutar la función |
No todas las funciones contienen todos estos elementos. Por ejemplo, algunas no reciben parámetros y otras no devuelven valores.
Estructura general en pseudocódigo
FUNCIÓN nombreFuncion(parámetros)
instrucciones
RETORNAR resultado
FIN FUNCIÓNEste pseudocódigo representa una función que recibe datos y devuelve un resultado.
Ejemplo: sumar dos números
FUNCIÓN sumar(a, b)
resultado ← a + b
RETORNAR resultado
FIN FUNCIÓNLa función recibe dos números, los suma y devuelve el resultado.
Para utilizarla:
total ← sumar(8, 5)
ESCRIBIR totalResultado:
13La función puede utilizarse nuevamente con otros valores:
total ← sumar(20, 10)
ESCRIBIR totalResultado: 30.
¿Cómo se crea y utiliza una función?
Para comprender su funcionamiento, seguiremos un procedimiento sencillo.
Definir la tarea
Primero identificamos qué necesitamos resolver.
Problema: calcular el cuadrado de un número.
Elegir el nombre
Podemos utilizar:
calcularCuadrado
Es recomendable seleccionar nombres descriptivos que indiquen la finalidad de la función.
Determinar los datos de entrada
La función necesita recibir un número.
Utilizaremos el parámetro:
numero
Escribir las instrucciones
Multiplicaremos el número por sí mismo.
Devolver el resultado
La función retornará el valor calculado.
Ejemplo completo
FUNCIÓN calcularCuadrado(numero)
resultado ← numero * numero
RETORNAR resultado
FIN FUNCIÓN
INICIO
cuadrado ← calcularCuadrado(6)
ESCRIBIR cuadrado
FINResultado:
36
¿Qué ocurrió?
Se definió la función
calcularCuadrado.El programa llamó a la función con el argumento 6.
El parámetro
numerorecibió ese valor.La función calculó
6 × 6.Devolvió 36.
El programa almacenó el resultado y lo mostró.
Importante: definir una función no significa necesariamente ejecutarla. Generalmente, sus instrucciones se ejecutan cuando el programa la llama.
¿Qué significa llamar a una función?
Una llamada a una función es la instrucción mediante la cual el programa solicita ejecutar las operaciones definidas dentro de ella.
Por ejemplo:
mostrarBienvenida()Esta instrucción ejecuta la función llamada mostrarBienvenida.
Si la función recibe parámetros, la llamada puede incluir argumentos:
sumar(10, 20)Cuando la función devuelve un valor, podemos utilizarlo directamente:
ESCRIBIR sumar(10, 20)O almacenarlo:
resultado ← sumar(10, 20)
Diferencia entre definición y llamada
| Definición | Llamada |
|---|---|
| Establece qué hará la función | Solicita ejecutar la función |
| Describe sus instrucciones | Proporciona los argumentos necesarios |
| Se escribe para crearla | Se utiliza para aprovecharla |
Ejemplo: FUNCIÓN sumar(a, b) | Ejemplo: sumar(5, 3) |
Una función puede definirse una vez y llamarse numerosas veces.
Tipos de funciones en programación
Podemos clasificar las funciones según distintos criterios.
Una clasificación introductoria considera si reciben parámetros y si devuelven resultados.
| Tipo | Recibe parámetros | Devuelve un valor |
|---|---|---|
| Sin parámetros y sin retorno | No | No |
| Con parámetros y sin retorno | Sí | No |
| Sin parámetros y con retorno | No | Sí |
| Con parámetros y con retorno | Sí | Sí |
Estas categorías describen características de las funciones, no cuatro estructuras completamente diferentes.
Funciones sin parámetros y sin retorno
Son funciones que realizan una tarea sin necesitar datos de entrada y sin devolver un resultado.
Ejemplo: mostrar un mensaje
FUNCIÓN mostrarSaludo()
ESCRIBIR "¡Bienvenido a la Academia!"
FIN FUNCIÓN
INICIO
mostrarSaludo()
FINResultado:
¡Bienvenido a la Academia!Este tipo de función es útil para mostrar mensajes, presentar encabezados o realizar acciones sencillas.
Observación: en algunos lenguajes, una función sin retorno explícito puede producir automáticamente un valor especial que representa la ausencia de resultado.
Funciones con parámetros y sin retorno
Estas funciones reciben información para realizar una tarea, pero no devuelven un resultado mediante una instrucción de retorno.
Ejemplo: mostrar un saludo personalizado
FUNCIÓN saludar(nombre)
ESCRIBIR "Hola, ", nombre
FIN FUNCIÓN
INICIO
saludar("Ana")
saludar("Carlos")
FINResultado:
Hola, Ana
Hola, CarlosLa función utiliza el valor recibido para personalizar el mensaje.
Aplicaciones
Mostrar información personalizada.
Imprimir reportes.
Presentar mensajes.
Ejecutar acciones utilizando datos recibidos.
Funciones sin parámetros y con retorno
Estas funciones no reciben argumentos, pero generan o entregan un resultado.
Ejemplo: obtener un valor fijo
FUNCIÓN obtenerIVA()
RETORNAR 0.16
FIN FUNCIÓN
INICIO
tasa ← obtenerIVA()
ESCRIBIR tasa
FINResultado:
0.16La función devuelve un valor que el programa puede utilizar posteriormente.
Nota: la tasa se utiliza únicamente como ejemplo numérico. En aplicaciones reales, los impuestos deben determinarse según la normativa y el producto correspondientes.
Funciones con parámetros y con retorno
Reciben datos, realizan una operación y devuelven un resultado.
Son especialmente útiles para cálculos y procesamiento de información.
Ejemplo: calcular un descuento
FUNCIÓN calcularDescuento(precio, porcentaje)
descuento ← precio * porcentaje / 100
RETORNAR descuento
FIN FUNCIÓN
INICIO
descuento ← calcularDescuento(1000, 15)
ESCRIBIR descuento
FINResultado:
150La función recibe un precio de 1,000 y un porcentaje de 15.
Calcula el importe del descuento y devuelve 150.
Podemos utilizarla con otros valores sin modificar su definición.
Parámetros y argumentos: ¿cuál es la diferencia?
Los términos parámetro y argumento están relacionados, pero no significan exactamente lo mismo.
Un parámetro es una variable declarada en la definición de una función para recibir información.
Un argumento es el valor o expresión que proporcionamos al llamar a esa función.
Ejemplo
FUNCIÓN multiplicar(a, b)
RETORNAR a * b
FIN FUNCIÓN
resultado ← multiplicar(4, 7)En este ejemplo:
aybson parámetros.4y7son argumentos.28es el valor de retorno.
Comparación
| Parámetro | Argumento |
|---|---|
| Aparece en la definición | Aparece en la llamada |
| Recibe información | Proporciona información |
Ejemplo: a | Ejemplo: 4 |
Ejemplo: b | Ejemplo: 7 |
Forma sencilla de recordarlo
El parámetro es el espacio preparado para recibir un dato; el argumento es el dato que proporcionamos.
¿Qué es el valor de retorno de una función?
El valor de retorno es el resultado que una función entrega al código que la llamó.
En nuestro pseudocódigo utilizaremos la instrucción:
RETORNAR
En muchos lenguajes de programación se utiliza la palabra:
return
Ejemplo: calcular el área de un rectángulo
FUNCIÓN calcularArea(base, altura)
area ← base * altura
RETORNAR area
FIN FUNCIÓN
INICIO
resultado ← calcularArea(8, 5)
ESCRIBIR resultado
FINResultado:
40La función calcula el área y devuelve el resultado.
Diferencia entre mostrar y retornar
Considera estas dos funciones:
Función que muestra un resultado:
FUNCIÓN mostrarSuma(a, b)
ESCRIBIR a + b
FIN FUNCIÓNFunción que devuelve un resultado:
FUNCIÓN obtenerSuma(a, b)
RETORNAR a + b
FIN FUNCIÓNLa primera muestra directamente el resultado.
La segunda permite almacenarlo o utilizarlo en otros cálculos.
Por ejemplo:
total ← obtenerSuma(10, 5)
resultadoFinal ← total * 2
ESCRIBIR resultadoFinalResultado: 30.
Una función que retorna un valor ofrece mayor flexibilidad cuando necesitamos utilizar ese resultado en otras operaciones.
Diferencia entre funciones y procedimientos
En programación introductoria suele distinguirse entre funciones y procedimientos.
Un procedimiento es un bloque de instrucciones que realiza una tarea, normalmente sin devolver un valor al código que lo llamó.
Una función, en la distinción tradicional, puede devolver un resultado que se utiliza en una expresión.
Comparación
| Característica | Función | Procedimiento |
|---|---|---|
| Realiza una tarea | Sí | Sí |
| Puede recibir parámetros | Sí | Sí |
| Puede devolver un valor | Sí | Generalmente no |
| Puede reutilizarse | Sí | Sí |
| Ejemplo | Calcular un promedio | Mostrar un mensaje |
Ejemplo de procedimiento
PROCEDIMIENTO mostrarMenu()
ESCRIBIR "1. Consultar productos"
ESCRIBIR "2. Registrar venta"
ESCRIBIR "3. Salir"
FIN PROCEDIMIENTO
Ejemplo de función
FUNCIÓN calcularTotal(precio, cantidad)
RETORNAR precio * cantidad
FIN FUNCIÓNImportante: esta distinción depende del lenguaje. Algunos utilizan la palabra «función» tanto para bloques que devuelven valores como para aquellos que solo realizan acciones.
¿Qué son los subprogramas?
Un subprograma es una unidad de código que agrupa instrucciones para realizar una tarea.
Las funciones y los procedimientos son formas habituales de subprogramas.
Su finalidad es dividir un programa extenso en componentes más pequeños y organizados.
Ejemplo: programa de una tienda
Podemos imaginar un sistema formado por los siguientes subprogramas:
mostrarMenu()
registrarProducto()
calcularSubtotal()
calcularDescuento()
mostrarTicket()Cada uno tiene una responsabilidad diferente.
Esta organización permite comprender mejor el funcionamiento del sistema y facilita su mantenimiento.
¿Qué es la programación modular?
La programación modular es una forma de organizar programas dividiéndolos en componentes que cumplen responsabilidades específicas.
Las funciones contribuyen a este enfoque porque permiten separar operaciones y reutilizarlas.
Ejemplo
Imagina un programa que administra las calificaciones de estudiantes.
Podemos dividirlo en:
Una función para solicitar datos.
Una función para calcular el promedio.
Una función para determinar si el estudiante aprobó.
Una función para mostrar los resultados.
En lugar de reunir todas las instrucciones en un solo bloque, cada tarea se organiza de manera independiente.
Ventajas de la modularidad
Facilita comprender programas grandes.
Reduce la duplicación de código.
Permite probar componentes por separado.
Favorece la reutilización.
Simplifica la corrección de errores.
Ayuda a distribuir tareas entre desarrolladores.
La modularidad no consiste simplemente en crear muchas funciones, sino en dividir correctamente las responsabilidades del programa.
Variables locales y globales
Las variables también tienen un papel importante dentro de las funciones.
Según dónde se declaren y las reglas del lenguaje, pueden tener distintos ámbitos de acceso.
Variables locales
Una variable local pertenece al ámbito de una función o bloque determinado.
Normalmente solo puede utilizarse dentro de ese ámbito.
Ejemplo
FUNCIÓN calcularDoble(numero)
doble ← numero * 2
RETORNAR doble
FIN FUNCIÓNEn este ejemplo, doble es una variable local de la función.
Variables globales
Una variable global se declara en un ámbito general y puede ser accesible desde diferentes partes del programa, según las reglas del lenguaje.
Ejemplo conceptual
GLOBAL nombreAcademia ← "PCUniverseOne"
FUNCIÓN mostrarAcademia()
ESCRIBIR nombreAcademia
FIN FUNCIÓN
INICIO
mostrarAcademia()
FINResultado:
PCUniverseOneLa función utiliza una variable definida en el ámbito global.
Diferencias principales
| Variable local | Variable global |
|---|---|
| Pertenece a un ámbito específico | Pertenece a un ámbito general |
| Normalmente se utiliza dentro de una función o bloque | Puede ser accesible desde distintas partes |
| Reduce dependencias externas | Puede facilitar compartir información |
| Suele favorecer el aislamiento de tareas | Su uso excesivo puede complicar el mantenimiento |
Buena práctica
Siempre que sea razonable, conviene que las funciones reciban los datos necesarios mediante parámetros y devuelvan resultados, en lugar de depender excesivamente de variables globales.
Funciones predefinidas y funciones creadas por el programador
Otra clasificación distingue entre funciones que ya proporciona un lenguaje o biblioteca y funciones desarrolladas por el propio programador.
Funciones predefinidas
Son funciones disponibles en el lenguaje o en sus bibliotecas.
Pueden utilizarse para:
Calcular valores matemáticos.
Trabajar con textos.
Procesar fechas.
Convertir tipos de datos.
Obtener información de colecciones.
Por ejemplo, muchos lenguajes ofrecen herramientas para calcular raíces cuadradas o valores absolutos.
Funciones definidas por el usuario
Son aquellas que el programador crea para resolver necesidades particulares.
Por ejemplo:
FUNCIÓN calcularTriple(numero)
RETORNAR numero * 3
FIN FUNCIÓN
Comparación
| Funciones predefinidas | Funciones del usuario |
|---|---|
| Las proporciona el lenguaje o una biblioteca | Las desarrolla el programador |
| Resuelven operaciones habituales | Resuelven necesidades específicas |
| Su uso depende de la documentación disponible | Su comportamiento depende de su definición |
Ambos tipos pueden combinarse dentro de un mismo programa.
Ejemplos prácticos de funciones en programación
Ejemplo: calcular el subtotal de una compra
Problema: calcular el importe de un producto a partir de su precio y cantidad.
FUNCIÓN calcularSubtotal(precio, cantidad)
subtotal ← precio * cantidad
RETORNAR subtotal
FIN FUNCIÓN
INICIO
total ← calcularSubtotal(250, 4)
ESCRIBIR "Subtotal: ", total
FINResultado:
Subtotal: 1000La función puede utilizarse para diferentes productos.
Ejemplo: determinar si un estudiante aprobó
Problema: indicar si una calificación alcanza el mínimo requerido.
Para este ejemplo, consideraremos 6 como calificación mínima aprobatoria.
FUNCIÓN estaAprobado(calificacion)
SI calificacion >= 6 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓN
INICIO
resultado ← estaAprobado(8)
SI resultado = VERDADERO ENTONCES
ESCRIBIR "Aprobado"
SINO
ESCRIBIR "No aprobado"
FIN SI
FINResultado:
AprobadoEste ejemplo combina funciones y estructuras condicionales.
Ejemplo: identificar números pares
Problema: determinar si un número es par.
FUNCIÓN esPar(numero)
SI numero MOD 2 = 0 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓNEl operador MOD obtiene el residuo de una división entera.
Si el residuo al dividir entre 2 es cero, el número es par.
Podemos utilizar la función dentro de un ciclo:
INICIO
PARA i ← 1 HASTA 10 HACER
SI esPar(i) ENTONCES
ESCRIBIR i
FIN SI
FIN PARA
FINResultado:
2
4
6
8
10Este algoritmo combina funciones, operadores, condicionales y ciclos.
Ejemplo integrador: calcular el promedio de calificaciones
Vamos a desarrollar un programa que utilice funciones para calcular un promedio y determinar si un estudiante aprobó.
Objetivo: organizar el programa mediante funciones independientes.
Solución en pseudocódigo
FUNCIÓN calcularPromedio(a, b, c)
suma ← a + b + c
promedio ← suma / 3
RETORNAR promedio
FIN FUNCIÓN
FUNCIÓN estaAprobado(promedio)
SI promedio >= 6 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓN
PROCEDIMIENTO mostrarResultado(promedio, aprobado)
ESCRIBIR "Promedio: ", promedio
SI aprobado ENTONCES
ESCRIBIR "Resultado: Aprobado"
SINO
ESCRIBIR "Resultado: No aprobado"
FIN SI
FIN PROCEDIMIENTO
INICIO
ESCRIBIR "Introduce tres calificaciones"
LEER nota1
LEER nota2
LEER nota3
promedio ← calcularPromedio(nota1, nota2, nota3)
aprobado ← estaAprobado(promedio)
mostrarResultado(promedio, aprobado)
FINSuposición del ejercicio: las tres calificaciones son números válidos entre 0 y 10. En una aplicación real sería necesario validar las entradas.
Ejemplo de ejecución
| Calificación | Valor |
|---|---|
| Primera | 8 |
| Segunda | 9 |
| Tercera | 7 |
| Suma | 24 |
| Promedio | 8 |
Resultado mostrado:
Promedio: 8
Resultado: Aprobado
¿Qué hemos aplicado?
Una función para calcular el promedio.
Una función para determinar la aprobación.
Un procedimiento para mostrar resultados.
Parámetros para recibir información.
Argumentos para proporcionar valores.
Valores de retorno para comunicar resultados.
Variables locales para realizar cálculos.
Condicionales para tomar decisiones.
Este ejemplo demuestra cómo las funciones permiten organizar un programa mediante tareas independientes.
Introducción a las funciones recursivas
Una función recursiva es aquella que se llama a sí misma para resolver un problema.
La recursividad permite dividir ciertas tareas en versiones más pequeñas del mismo problema.
Sin embargo, una función recursiva necesita una condición base que permita detener las llamadas.
De lo contrario, podría continuar llamándose indefinidamente hasta agotar los recursos disponibles.
Ejemplo conceptual
Imagina una función que realiza una cuenta regresiva:
FUNCIÓN cuentaRegresiva(numero)
SI numero <= 0 ENTONCES
RETORNAR
FIN SI
ESCRIBIR numero
cuentaRegresiva(numero - 1)
FIN FUNCIÓNSi llamamos:
cuentaRegresiva(3)El resultado será:
3
2
1La función se llama a sí misma con un número menor hasta alcanzar la condición base.
Por ahora, basta con comprender el concepto. La recursividad requiere un estudio más profundo que corresponde a etapas posteriores de programación.
Errores comunes al utilizar funciones
Utilizar nombres poco descriptivos
Nombres como f1() o hacerAlgo() dificultan comprender el propósito de una función.
Mejor opción: utilizar nombres como calcularPromedio() o mostrarResultado().
Confundir parámetros y argumentos
Los parámetros se declaran en la función; los argumentos se proporcionan durante la llamada.
Olvidar devolver un resultado
Si necesitamos utilizar el resultado de una función, debemos comprobar que realmente lo devuelva.
Confundir mostrar con retornar
Mostrar un valor en pantalla no significa devolverlo al programa.
Proporcionar argumentos incorrectos
La cantidad y el tipo de argumentos deben cumplir los requisitos establecidos por la función y el lenguaje.
Crear funciones demasiado extensas
Una función que realiza numerosas tareas diferentes puede resultar difícil de comprender y mantener.
Repetir código que podría reutilizarse
Si varias partes del programa realizan la misma operación, conviene evaluar si una función puede centralizarla.
Depender excesivamente de variables globales
Puede provocar relaciones difíciles de controlar entre distintas partes del programa.
Utilizar recursividad sin condición base
Puede generar llamadas repetidas hasta provocar un error por agotamiento de recursos.
Consejo: procura que cada función tenga una responsabilidad clara, un nombre descriptivo y un comportamiento fácil de comprender.
Actividad práctica integradora
Vamos a desarrollar un programa sencillo para una tienda que calcule el subtotal, el descuento y el total de una compra.
Requisitos
El programa deberá:
Solicitar el precio de un producto.
Solicitar la cantidad adquirida.
Solicitar el porcentaje de descuento.
Validar que los datos estén dentro de los límites establecidos.
Calcular el subtotal mediante una función.
Calcular el descuento mediante otra función.
Calcular el total final.
Mostrar los resultados.
Solución en pseudocódigo
FUNCIÓN calcularSubtotal(precio, cantidad)
RETORNAR precio * cantidad
FIN FUNCIÓN
FUNCIÓN calcularDescuento(subtotal, porcentaje)
RETORNAR subtotal * porcentaje / 100
FIN FUNCIÓN
FUNCIÓN calcularTotal(subtotal, descuento)
RETORNAR subtotal - descuento
FIN FUNCIÓN
INICIO
ESCRIBIR "Precio del producto"
LEER precio
MIENTRAS precio < 0 HACER
ESCRIBIR "Introduce un precio válido"
LEER precio
FIN MIENTRAS
ESCRIBIR "Cantidad de productos"
LEER cantidad
MIENTRAS cantidad <= 0 HACER
ESCRIBIR "Introduce una cantidad válida"
LEER cantidad
FIN MIENTRAS
ESCRIBIR "Porcentaje de descuento"
LEER porcentaje
MIENTRAS porcentaje < 0 O porcentaje > 100 HACER
ESCRIBIR "Introduce un porcentaje entre 0 y 100"
LEER porcentaje
FIN MIENTRAS
subtotal ← calcularSubtotal(precio, cantidad)
descuento ← calcularDescuento(subtotal, porcentaje)
total ← calcularTotal(subtotal, descuento)
ESCRIBIR "Subtotal: ", subtotal
ESCRIBIR "Descuento: ", descuento
ESCRIBIR "Total: ", total
FINSuposiciones: cantidad debe ser un número entero positivo; precio y porcentaje deben ser valores numéricos. Para simplificar el ejercicio, se omite la validación del tipo de dato y no se incluyen impuestos.
Ejemplo de ejecución
Supongamos que el usuario introduce:
| Dato | Valor |
|---|---|
| Precio | $500 |
| Cantidad | 3 |
| Descuento | 10% |
Los resultados serán:
| Operación | Resultado |
|---|---|
| Subtotal | $1,500 |
| Descuento | $150 |
| Total final | $1,350 |
¿Por qué este programa está organizado?
Porque cada función realiza una tarea concreta:
calcularSubtotal()multiplica el precio por la cantidad.calcularDescuento()determina el importe del descuento.calcularTotal()obtiene el importe final.
Si necesitamos modificar el cálculo del descuento, podemos concentrar el cambio en la función correspondiente.
Esta es una de las principales ventajas de organizar los programas mediante funciones.
Ejercicios de funciones en programación
Resuelve los siguientes ejercicios utilizando pseudocódigo.
Ejercicio: función sin parámetros
Crea una función llamada mostrarBienvenida() que muestre el mensaje:
«Bienvenido al curso de programación».
Ejercicio: función con parámetros
Diseña una función llamada mostrarNombre(nombre) que reciba un nombre y muestre un saludo personalizado.
Ejercicio: función con retorno
Crea una función llamada calcularTriple(numero) que devuelva el triple del número recibido.
Ejercicio: calcular un área
Escribe una función llamada areaTriangulo(base, altura) que devuelva el área de un triángulo.
Recuerda:
Área = (base × altura) / 2.
Ejercicio: identificar números positivos
Diseña una función llamada esPositivo(numero) que devuelva VERDADERO cuando el número sea mayor que cero y FALSO en caso contrario.
Ejercicio de razonamiento
Analiza el siguiente pseudocódigo:
FUNCIÓN sumar(a, b)
RETORNAR a + b
FIN FUNCIÓN
INICIO
x ← sumar(4, 6)
y ← sumar(x, 5)
ESCRIBIR y
FIN¿Qué resultado mostrará el programa?
Explica cómo se utilizan los valores devueltos por la función.
Autoevaluación
Comprueba tus conocimientos respondiendo estas preguntas:
¿Qué son las funciones en programación?
¿Para qué sirve dividir un programa en funciones?
¿Qué diferencia existe entre definir y llamar una función?
¿Qué es un parámetro?
¿Qué es un argumento?
¿Qué significa retornar un valor?
¿Puede existir una función sin parámetros?
¿Puede una función realizar una tarea sin devolver un resultado explícito?
¿Cuál es la diferencia tradicional entre función y procedimiento?
¿Qué es una variable local?
¿Qué es la programación modular?
¿Qué caracteriza a una función recursiva?
Respuestas orientativas
Son bloques de instrucciones reutilizables que realizan tareas específicas.
Para organizar el código, facilitar su mantenimiento y evitar repeticiones.
Definir establece el comportamiento; llamar solicita la ejecución.
Es una variable declarada para recibir información en una función.
Es el valor o expresión proporcionado durante la llamada.
Entregar un resultado al código que llamó a la función.
Sí.
Sí.
Tradicionalmente, la función devuelve un valor y el procedimiento realiza una acción sin devolverlo.
Es una variable cuyo ámbito pertenece a una función o bloque determinado.
Es una forma de organizar programas mediante componentes con responsabilidades específicas.
Se llama a sí misma y necesita una condición base para detenerse.
Soluciones de los ejercicios
Función sin parámetros:
FUNCIÓN mostrarBienvenida()
ESCRIBIR "Bienvenido al curso de programación"
FIN FUNCIÓNFunción con parámetros:
FUNCIÓN mostrarNombre(nombre)
ESCRIBIR "Hola, ", nombre
FIN FUNCIÓNFunción con retorno:
FUNCIÓN calcularTriple(numero)
RETORNAR numero * 3
FIN FUNCIÓNÁrea de un triángulo:
FUNCIÓN areaTriangulo(base, altura)
RETORNAR (base * altura) / 2
FIN FUNCIÓNIdentificar números positivos:
FUNCIÓN esPositivo(numero)
SI numero > 0 ENTONCES
RETORNAR VERDADERO
SINO
RETORNAR FALSO
FIN SI
FIN FUNCIÓNEjercicio de razonamiento:
El programa mostrará:
15Primero, sumar(4, 6) devuelve 10.
Después, sumar(10, 5) devuelve 15.
Finalmente, el programa muestra el valor almacenado en y.
Lo que has aprendido
Al completar esta lección, ya puedes:
Explicar qué son las funciones en programación y para qué sirven.
Reconocer sus principales componentes: nombre, parámetros, cuerpo y retorno.
Diferenciar la definición y la llamada de una función.
Identificar parámetros y argumentos.
Crear funciones con parámetros y sin parámetros.
Comprender funciones con retorno y sin retorno.
Distinguir entre mostrar y devolver resultados.
Reconocer las diferencias tradicionales entre funciones y procedimientos.
Comprender el papel de las variables locales y globales.
Explicar los fundamentos de la programación modular.
Combinar funciones, condicionales y ciclos para resolver problemas.
Reconocer el concepto básico de recursividad.
Estos conocimientos te permitirán organizar mejor tus algoritmos y comenzar a construir programas formados por componentes reutilizables.
Conclusión
Las funciones en programación son una herramienta fundamental para desarrollar programas organizados, comprensibles y fáciles de mantener.
Mediante ellas podemos dividir problemas complejos en tareas más pequeñas, reutilizar instrucciones y evitar duplicaciones innecesarias.
Los parámetros y argumentos permiten intercambiar información con las funciones, mientras que los valores de retorno hacen posible aprovechar sus resultados en otras operaciones.
Además, las funciones constituyen una base importante de la programación modular, una forma de organización utilizada en el desarrollo de aplicaciones reales.
Recuerda: programar no consiste únicamente en escribir instrucciones que funcionen, sino también en organizarlas para que puedan comprenderse, reutilizarse y mejorarse.
