En este tema, aprenderemos sobre las estructuras de control en Ada, que son fundamentales para dirigir el flujo de ejecución de un programa. Las estructuras de control permiten tomar decisiones, repetir acciones y seleccionar entre diferentes caminos de ejecución.
Contenido
Estructuras Condicionales
if - elsif - else
La estructura condicional if permite ejecutar un bloque de código si una condición es verdadera. Se puede extender con elsif y else para manejar múltiples condiciones.
Sintaxis:
if condición_1 then
-- Bloque de código si condición_1 es verdadera
elsif condición_2 then
-- Bloque de código si condición_2 es verdadera
else
-- Bloque de código si ninguna condición anterior es verdadera
end if;Ejemplo:
procedure Ejemplo_If is
A, B : Integer := 10;
begin
if A > B then
Put_Line("A es mayor que B");
elsif A < B then
Put_Line("A es menor que B");
else
Put_Line("A es igual a B");
end if;
end Ejemplo_If;case
La estructura case permite seleccionar entre múltiples alternativas basadas en el valor de una expresión.
Sintaxis:
case expresión is
when valor_1 =>
-- Bloque de código para valor_1
when valor_2 =>
-- Bloque de código para valor_2
when others =>
-- Bloque de código para cualquier otro valor
end case;Ejemplo:
procedure Ejemplo_Case is
Dia : Integer := 3;
begin
case Dia is
when 1 =>
Put_Line("Lunes");
when 2 =>
Put_Line("Martes");
when 3 =>
Put_Line("Miércoles");
when others =>
Put_Line("Otro día");
end case;
end Ejemplo_Case;Estructuras de Selección
select
La estructura select se utiliza principalmente en programación concurrente para manejar múltiples tareas y eventos.
Sintaxis:
select
-- Bloque de código para la primera alternativa
or
-- Bloque de código para la segunda alternativa
else
-- Bloque de código si ninguna alternativa es seleccionada
end select;Ejemplo:
task type Tarea is
entry Iniciar;
end Tarea;
task body Tarea is
begin
select
accept Iniciar do
Put_Line("Tarea iniciada");
end Iniciar;
or
delay 5.0;
Put_Line("Tiempo de espera agotado");
end select;
end Tarea;Estructuras de Iteración
loop
La estructura loop permite repetir un bloque de código indefinidamente hasta que se encuentre una instrucción de salida (exit).
Sintaxis:
Ejemplo:
procedure Ejemplo_Loop is
Contador : Integer := 0;
begin
loop
Put_Line("Contador: " & Integer'Image(Contador));
Contador := Contador + 1;
exit when Contador = 10;
end loop;
end Ejemplo_Loop;for loop
El bucle for se utiliza para iterar sobre un rango de valores.
Sintaxis:
Ejemplo:
procedure Ejemplo_For_Loop is
begin
for I in 1 .. 10 loop
Put_Line("Valor de I: " & Integer'Image(I));
end loop;
end Ejemplo_For_Loop;while loop
El bucle while repite un bloque de código mientras una condición sea verdadera.
Sintaxis:
Ejemplo:
procedure Ejemplo_While_Loop is
Contador : Integer := 0;
begin
while Contador < 10 loop
Put_Line("Contador: " & Integer'Image(Contador));
Contador := Contador + 1;
end loop;
end Ejemplo_While_Loop;Ejercicios Prácticos
Ejercicio 1: Condicionales
Escribe un programa que lea un número entero y determine si es positivo, negativo o cero.
Solución:
with Ada.Text_IO; use Ada.Text_IO;
procedure Determinar_Signo is
Numero : Integer;
begin
Put("Introduce un número: ");
Get(Numero);
if Numero > 0 then
Put_Line("El número es positivo");
elsif Numero < 0 then
Put_Line("El número es negativo");
else
Put_Line("El número es cero");
end if;
end Determinar_Signo;Ejercicio 2: Bucle for
Escribe un programa que imprima los números del 1 al 20.
Solución:
with Ada.Text_IO; use Ada.Text_IO;
procedure Imprimir_Numeros is
begin
for I in 1 .. 20 loop
Put_Line(Integer'Image(I));
end loop;
end Imprimir_Numeros;Ejercicio 3: Bucle while
Escribe un programa que calcule la suma de los números del 1 al 100 usando un bucle while.
Solución:
with Ada.Text_IO; use Ada.Text_IO;
procedure Suma_While is
Suma, Contador : Integer := 0;
begin
while Contador <= 100 loop
Suma := Suma + Contador;
Contador := Contador + 1;
end loop;
Put_Line("La suma de los números del 1 al 100 es: " & Integer'Image(Suma));
end Suma_While;Conclusión
En esta sección, hemos cubierto las estructuras de control en Ada, incluyendo las estructuras condicionales (if, case), las estructuras de selección (select) y las estructuras de iteración (loop, for, while). Estas estructuras son esenciales para controlar el flujo de ejecución de un programa y son fundamentales para cualquier programador.
Asegúrate de practicar los ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En el próximo tema, exploraremos los bucles en Ada con más detalle.
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
