TAI
Tema

Funciones y procedimientos para Oposiciones TAI: Guía Completa

📝 31 preguntas 📖 Teoría 🎯 Preparación TAI

💡 Qué aprenderás

En este tema estudiarás todos los conceptos necesarios para responder correctamente las preguntas relacionadas con Funciones y procedimientos en la oposición.

Funciones y procedimientos

Las funciones y los procedimientos son bloques de código reutilizables que permiten organizar un programa en unidades independientes para realizar tareas concretas.

Ambos favorecen la modularidad, facilitan el mantenimiento del código y evitan la duplicidad de instrucciones.

La principal diferencia es que las funciones devuelven un valor, mientras que los procedimientos ejecutan acciones sin devolver un resultado.

📖 Definición
En muchos lenguajes modernos ambos conceptos se unifican, pero en programación y en los exámenes es habitual distinguir claramente entre funciones y procedimientos.

Conceptos fundamentales

Para comprender las funciones y procedimientos es necesario conocer los siguientes conceptos:

  • Subprograma: bloque de código independiente.
  • Parámetro: dato que recibe el subprograma.
  • Argumento: valor que se pasa al invocar el subprograma.
  • Valor de retorno: resultado devuelto por una función.
  • Ámbito (Scope): zona donde una variable es accesible.
  • Llamada (Invocación): ejecución de una función o procedimiento.
🎯 Muy preguntado
Una función puede recibir parámetros y devolver un resultado; un procedimiento puede recibir parámetros, pero no devuelve ningún valor.

¿Qué es una función?

Una función es un subprograma que realiza una operación y devuelve un resultado al programa que la invoca.

Ejemplo conceptual:

función sumar(a, b)

↓

calcula a + b

↓

devuelve resultado

Las funciones son especialmente útiles para realizar cálculos, validaciones y transformaciones de datos.

💡 Consejo para el examen
Una función siempre devuelve un resultado mediante una instrucción como return.

¿Qué es un procedimiento?

Un procedimiento es un subprograma que ejecuta una serie de instrucciones, pero no devuelve un valor.

Normalmente se utiliza para realizar acciones como:

  • Mostrar información.
  • Guardar datos.
  • Modificar registros.
  • Enviar información.
  • Inicializar variables.

Ejemplo conceptual:

procedimiento imprimirFactura()

↓

genera la factura

↓

la muestra por pantalla
🎯 Muy preguntado
El objetivo principal de un procedimiento es ejecutar una tarea, no producir un valor.

Diferencias entre función y procedimiento

Función Procedimiento
Devuelve un valor No devuelve valor
Puede utilizarse dentro de expresiones No suele formar parte de expresiones
Normalmente finaliza con return Finaliza al terminar sus instrucciones
Orientada al cálculo Orientado a ejecutar acciones
⚠️ Error habitual
Es muy habitual confundir ambos conceptos en los exámenes.

Parámetros y argumentos

Las funciones y procedimientos pueden recibir información desde el programa principal.

Ejemplo conceptual:

sumar(5, 8)

↓

Parámetros:
a
b

↓

Argumentos:
5
8
  • Parámetro: variable definida en la función.
  • Argumento: valor real enviado durante la llamada.
💡 Consejo para el examen
Los parámetros pertenecen a la definición del subprograma; los argumentos pertenecen a la llamada.

Paso de parámetros

Los parámetros pueden transmitirse de diferentes formas.

Paso por valor

La función recibe una copia del dato.

Los cambios realizados dentro del subprograma no afectan a la variable original.

Paso por referencia

La función recibe una referencia al dato original.

Las modificaciones realizadas sí afectan a la variable del programa principal.

🎯 Muy preguntado
En programación es fundamental distinguir entre paso por valor y paso por referencia.

Valor de retorno

Una función puede devolver un único resultado o, dependiendo del lenguaje, varios resultados.

Ejemplo conceptual:

Área = calcularArea(base, altura)

↓

Resultado

↓

Área = 25

El programa puede utilizar inmediatamente el valor devuelto.

📌 Recuerda
Una función sin valor de retorno se comporta, en muchos lenguajes, como un procedimiento.

Variables locales y globales

Las variables pueden tener diferente ámbito.

Variables locales

  • Solo existen dentro de la función o procedimiento.
  • Se destruyen al finalizar la ejecución.

Variables globales

  • Son accesibles desde varias partes del programa.
  • Permanecen disponibles durante toda la ejecución.
⚠️ Error habitual
El abuso de variables globales dificulta el mantenimiento del código y aumenta el riesgo de errores.

Ventajas de utilizar funciones

El uso de funciones aporta numerosos beneficios:

  • Reutilización del código.
  • Mayor legibilidad.
  • Programas más modulares.
  • Mantenimiento más sencillo.
  • Reducción de errores.
  • Facilidad para realizar pruebas.
🎯 Muy preguntado
La modularidad es una de las principales ventajas de dividir un programa en funciones y procedimientos.

Recursividad

Una función puede llamarse a sí misma.

Este mecanismo recibe el nombre de recursividad.

Ejemplo conceptual:

factorial(5)

↓

factorial(4)

↓

factorial(3)

↓

...

↓

Caso base

↓

Se resuelven las llamadas

Toda función recursiva debe disponer de:

  • Caso base.
  • Llamada recursiva.
⚠️ Error habitual
Si no existe un caso base, la recursividad puede producir una recursión infinita.

Caso práctico

Situación

Una aplicación necesita calcular el IVA de cientos de facturas.

Solución

En lugar de repetir el cálculo en cada parte del programa:

  • Se crea una función calcularIVA().
  • Se llama cada vez que sea necesario.
  • El resultado devuelto se utiliza para generar la factura.

Con este enfoque:

  • Se evita duplicar código.
  • Se simplifica el mantenimiento.
  • Se reducen los errores.
💡 Consejo para el examen
Siempre que una operación vaya a repetirse varias veces, suele ser recomendable encapsularla en una función.

Ventajas e inconvenientes

Ventajas

  • Código reutilizable.
  • Menor duplicidad.
  • Programas más organizados.
  • Mejor mantenimiento.
  • Mayor facilidad para localizar errores.
  • Favorecen el trabajo en equipo.

Inconvenientes

  • Exceso de fragmentación si se crean demasiadas funciones pequeñas.
  • Mayor complejidad en programas muy grandes.
  • Posible sobrecoste de llamadas en aplicaciones críticas de rendimiento.

Errores habituales

⚠️ Error habitual
Los errores más frecuentes al estudiar funciones y procedimientos son:
  • Confundir función con procedimiento.
  • No distinguir parámetros de argumentos.
  • Confundir paso por valor con paso por referencia.
  • Abusar de variables globales.
  • Olvidar devolver un valor en una función.
  • Crear funciones excesivamente largas.

Cómo evitarlos

  • Recordar que las funciones devuelven un resultado.
  • Diferenciar claramente parámetros y argumentos.
  • Comprender el ámbito de las variables.
  • Dividir el programa en módulos pequeños y coherentes.
  • Utilizar variables globales únicamente cuando sea necesario.

Relaciones con otros temas

Las funciones y procedimientos están estrechamente relacionados con:

  • Programación estructurada.
  • Algoritmos.
  • Variables.
  • Tipos de datos.
  • Ámbito de variables (Scope).
  • Recursividad.
  • Programación modular.
  • Programación orientada a objetos.
  • Gestión de memoria.
📌 Recuerda
En exámenes es muy frecuente relacionar las funciones con parámetros, argumentos, valor de retorno, ámbito de variables, recursividad y modularidad.

Conceptos clave para recordar

[!NOTE]

  • Una función devuelve un valor.
  • Un procedimiento ejecuta acciones sin devolver un resultado.
  • Los parámetros aparecen en la definición; los argumentos se proporcionan durante la llamada.
  • El paso de parámetros puede realizarse por valor o por referencia.
  • Las variables locales solo existen dentro del subprograma; las globales pueden utilizarse desde diferentes partes del programa.
  • La recursividad consiste en que una función se invoque a sí misma y requiere siempre un caso base.
  • Las funciones y procedimientos favorecen la modularidad, la reutilización del código y el mantenimiento de las aplicaciones.

📝 Preguntas de ejemplo

Comprueba si reconoces este tipo de preguntas.

1. ¿Cuál es la principal diferencia entre una función y un procedimiento?
2. ¿Qué se entiende por parámetro formal?
3. ¿Qué es un argumento?
4. ¿Qué ventaja principal ofrece el uso de funciones?
5. ¿Qué ocurre cuando una función finaliza su ejecución?

Preguntas frecuentes

¿Qué es una función?

Es un bloque de código reutilizable que realiza una tarea específica, puede recibir parámetros y devuelve un valor como resultado.

¿Qué es un procedimiento?

Es un bloque de código reutilizable que realiza una tarea específica y, a diferencia de una función, no devuelve un valor.

¿Qué diferencia existe entre una función y un procedimiento?

Una función devuelve un valor al finalizar su ejecución, mientras que un procedimiento ejecuta acciones sin devolver un resultado.

¿Qué son los parámetros?

Son los datos que recibe una función o procedimiento para poder realizar su tarea.

¿Qué diferencia existe entre parámetro y argumento?

El parámetro es la variable definida en la declaración de la función o procedimiento, mientras que el argumento es el valor que se proporciona al realizar la llamada.

¿Qué es el valor de retorno?

Es el resultado que devuelve una función al finalizar su ejecución.

¿Qué es el ámbito de una variable (scope)?

Es la región del programa en la que una variable es visible y puede utilizarse.

¿Qué diferencia existe entre una variable local y una global?

Una variable local solo es accesible dentro de la función o procedimiento donde se declara, mientras que una variable global puede utilizarse desde distintas partes del programa, según las reglas del lenguaje.

¿Qué es una llamada a una función?

Es la ejecución de una función o procedimiento proporcionando, si es necesario, los argumentos correspondientes.

¿Qué suele preguntarse en el examen?

Las preguntas suelen centrarse en las diferencias entre funciones y procedimientos, parámetros y argumentos, variables locales y globales, ámbito de las variables y valores de retorno.


Temas relacionados

  • Variables
  • Tipos de datos
  • Recursividad
  • Paso por valor y paso por referencia
  • Ámbito de variables
  • Programación modular
  • Lenguajes de programación

¿Has terminado de estudiar?

Ahora pon a prueba tus conocimientos realizando el test completo de este tema.

Comenzar test

Utilizamos cookies

Utilizamos cookies analíticas para conocer el uso de la plataforma y mejorar la experiencia del usuario. Puedes aceptar o rechazarlas en cualquier momento. Más información en nuestra Política de Cookies .