En Ada, los subprogramas son bloques de código que realizan tareas específicas y pueden ser reutilizados en diferentes partes de un programa. Los subprogramas en Ada se dividen en dos categorías principales: procedimientos y funciones.
Procedimientos
Definición de Procedimientos
Un procedimiento es un subprograma que realiza una acción pero no devuelve un valor. Los procedimientos se utilizan para ejecutar secuencias de instrucciones que no requieren un resultado de retorno.
Sintaxis de un Procedimiento
procedure Nombre_Procedimiento (Parametro1: in Tipo; Parametro2: out Tipo) is begin -- Cuerpo del procedimiento end Nombre_Procedimiento;
Ejemplo de Procedimiento
En este ejemplo, el procedimiento Saludar
toma un parámetro de entrada Nombre
de tipo String
y muestra un saludo en la consola.
Llamada a un Procedimiento
Parámetros de Procedimientos
Los parámetros de un procedimiento pueden ser de tres tipos:
in
: Parámetro de entrada (solo lectura).out
: Parámetro de salida (solo escritura).in out
: Parámetro de entrada/salida (lectura y escritura).
Ejemplo con Parámetros in
y out
procedure Sumar (A: in Integer; B: in Integer; Resultado: out Integer) is begin Resultado := A + B; end Sumar;
Funciones
Definición de Funciones
Una función es un subprograma que realiza una acción y devuelve un valor. Las funciones se utilizan cuando se necesita calcular y devolver un resultado.
Sintaxis de una Función
function Nombre_Funcion (Parametro1: in Tipo) return Tipo_Retorno is begin -- Cuerpo de la función return Valor; end Nombre_Funcion;
Ejemplo de Función
En este ejemplo, la función Sumar
toma dos parámetros de entrada A
y B
de tipo Integer
y devuelve la suma de ambos.
Llamada a una Función
declare Resultado: Integer; begin Resultado := Sumar (5, 3); Put_Line (Integer'Image(Resultado)); end;
Diferencias entre Procedimientos y Funciones
Característica | Procedimiento | Función |
---|---|---|
Retorno de valor | No devuelve un valor | Devuelve un valor |
Uso típico | Realizar acciones | Calcular y devolver resultados |
Sintaxis de llamada | Nombre_Procedimiento (Parametros); |
Variable := Nombre_Funcion (Parametros); |
Ejercicios Prácticos
Ejercicio 1: Procedimiento de Multiplicación
Escribe un procedimiento llamado Multiplicar
que tome dos números enteros como parámetros de entrada y devuelva el resultado de la multiplicación como un parámetro de salida.
procedure Multiplicar (A: in Integer; B: in Integer; Resultado: out Integer) is begin Resultado := A * B; end Multiplicar;
Ejercicio 2: Función de División
Escribe una función llamada Dividir
que tome dos números enteros como parámetros de entrada y devuelva el resultado de la división.
function Dividir (A: in Integer; B: in Integer) return Float is begin return Float(A) / Float(B); end Dividir;
Soluciones
Solución al Ejercicio 1
procedure Multiplicar (A: in Integer; B: in Integer; Resultado: out Integer) is begin Resultado := A * B; end Multiplicar;
Solución al Ejercicio 2
function Dividir (A: in Integer; B: in Integer) return Float is begin return Float(A) / Float(B); end Dividir;
Conclusión
En esta sección, hemos aprendido sobre los subprogramas en Ada, específicamente procedimientos y funciones. Los procedimientos se utilizan para realizar acciones sin devolver un valor, mientras que las funciones realizan cálculos y devuelven un resultado. Hemos visto ejemplos prácticos y ejercicios para reforzar estos conceptos. En el próximo módulo, exploraremos los tipos de datos avanzados en Ada, como arreglos y registros.
Curso de Programación en Ada
Módulo 1: Introducción a Ada
Módulo 2: Conceptos Básicos
- Variables y Tipos de Datos
- Operadores y Expresiones
- Estructuras de Control
- Bucles en Ada
- Subprogramas: Procedimientos y Funciones
Módulo 3: Tipos de Datos Avanzados
Módulo 4: Programación Modular
Módulo 5: Concurrencia y Programación en Tiempo Real
Módulo 6: Temas Avanzados
Módulo 7: Mejores Prácticas y Optimización
- Estilo de Código y Mejores Prácticas
- Depuración y Pruebas
- Optimización del Rendimiento
- Consideraciones de Seguridad